<?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>127111</bug_id>
          
          <creation_ts>2014-01-16 08:07:18 -0800</creation_ts>
          <short_desc>Remove workaround for compilers not supporting explicit override control</short_desc>
          <delta_ts>2014-01-16 11:39:08 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peter Molnar">pmolnar.u-szeged</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>968760</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Molnar">pmolnar.u-szeged</who>
    <bug_when>2014-01-16 08:07:18 -0800</bug_when>
    <thetext>Remove workaround for compilers not supporting explicit override control.

This can be done now because GCC 4.7 is required since r162126. Now all supported compilers support explicit override control.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968764</commentid>
    <comment_count>1</comment_count>
      <attachid>221378</attachid>
    <who name="Peter Molnar">pmolnar.u-szeged</who>
    <bug_when>2014-01-16 08:12:48 -0800</bug_when>
    <thetext>Created attachment 221378
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968765</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-16 08:15:41 -0800</bug_when>
    <thetext>Attachment 221378 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSAPIWrapperObject.mm&apos;, u&apos;Source/JavaScriptCore/API/JSCallbackObject.h&apos;, u&apos;Source/JavaScriptCore/API/JSManagedValue.mm&apos;, u&apos;Source/JavaScriptCore/API/JSScriptRef.cpp&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/bytecode/CodeBlock.h&apos;, u&apos;Source/JavaScriptCore/bytecode/CodeBlockJettisoningWatchpoint.h&apos;, u&apos;Source/JavaScriptCore/bytecode/ProfiledCodeBlockJettisoningWatchpoint.h&apos;, u&apos;Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGArrayifySlowPathGenerator.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGCallArrayAllocatorSlowPathGenerator.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGFailedFinalizer.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGJITCode.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGJITFinalizer.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGSaneStringGetByValSlowPathGenerator.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGSlowPathGenerator.h&apos;, u&apos;Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp&apos;, u&apos;Source/JavaScriptCore/heap/Heap.h&apos;, u&apos;Source/JavaScriptCore/heap/IncrementalSweeper.h&apos;, u&apos;Source/JavaScriptCore/heap/SuperRegion.h&apos;, u&apos;Source/JavaScriptCore/inspector/InspectorValues.h&apos;, u&apos;Source/JavaScriptCore/inspector/JSGlobalObjectInspectorController.h&apos;, u&apos;Source/JavaScriptCore/inspector/agents/InspectorAgent.h&apos;, u&apos;Source/JavaScriptCore/inspector/remote/RemoteInspector.h&apos;, u&apos;Source/JavaScriptCore/inspector/remote/RemoteInspectorDebuggableConnection.h&apos;, u&apos;Source/JavaScriptCore/inspector/scripts/CodeGeneratorInspector.py&apos;, u&apos;Source/JavaScriptCore/jit/ClosureCallStubRoutine.h&apos;, u&apos;Source/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp&apos;, u&apos;Source/JavaScriptCore/jit/GCAwareJITStubRoutine.h&apos;, u&apos;Source/JavaScriptCore/jit/JITCode.h&apos;, u&apos;Source/JavaScriptCore/jit/JITToDFGDeferredCompilationCallback.h&apos;, u&apos;Source/JavaScriptCore/parser/Nodes.h&apos;, u&apos;Source/JavaScriptCore/parser/SourceProvider.h&apos;, u&apos;Source/JavaScriptCore/runtime/DataView.h&apos;, u&apos;Source/JavaScriptCore/runtime/GCActivityCallback.h&apos;, u&apos;Source/JavaScriptCore/runtime/GenericTypedArrayView.h&apos;, u&apos;Source/JavaScriptCore/runtime/JSGlobalObjectDebuggable.h&apos;, u&apos;Source/JavaScriptCore/runtime/JSPromiseReaction.cpp&apos;, u&apos;Source/JavaScriptCore/runtime/RegExpCache.h&apos;, u&apos;Source/JavaScriptCore/runtime/SimpleTypedArrayController.h&apos;, u&apos;Source/JavaScriptCore/runtime/SymbolTable.h&apos;, u&apos;Source/JavaScriptCore/runtime/WeakMapData.h&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/Compiler.h&apos;, u&apos;Source/WTF/wtf/FilePrintStream.h&apos;, u&apos;Source/WTF/wtf/RunLoop.h&apos;, u&apos;Source/WTF/wtf/StringPrintStream.h&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.h&apos;, u&apos;Source/WebCore/Modules/encryptedmedia/CDMPrivateAVFoundation.h&apos;, u&apos;Source/WebCore/Modules/encryptedmedia/CDMPrivateAVFoundation.mm&apos;, u&apos;Source/WebCore/Modules/encryptedmedia/MediaKeyMessageEvent.h&apos;, u&apos;Source/WebCore/Modules/encryptedmedia/MediaKeyNeededEvent.h&apos;, u&apos;Source/WebCore/Modules/encryptedmedia/MediaKeySession.h&apos;, u&apos;Source/WebCore/Modules/encryptedmedia/MediaKeys.h&apos;, u&apos;Source/WebCore/Modules/geolocation/Geolocation.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBCursorBackendOperations.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBCursorWithValue.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBDatabase.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBDatabaseCallbacksImpl.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBRequest.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBTransaction.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/IDBTransactionBackendOperations.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h&apos;, u&apos;Source/WebCore/Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h&apos;, u&apos;Source/WebCore/Modules/indieui/UIRequestEvent.h&apos;, u&apos;Source/WebCore/Modules/mediasource/MediaSource.h&apos;, u&apos;Source/WebCore/Modules/mediasource/MediaSourceRegistry.h&apos;, u&apos;Source/WebCore/Modules/mediasource/SourceBuffer.h&apos;, u&apos;Source/WebCore/Modules/mediasource/SourceBufferList.h&apos;, u&apos;Source/WebCore/Modules/mediastream/AudioStreamTrack.h&apos;, u&apos;Source/WebCore/Modules/mediastream/MediaConstraintsImpl.h&apos;, u&apos;Source/WebCore/Modules/mediastream/MediaStream.h&apos;, u&apos;Source/WebCore/Modules/mediastream/MediaStreamRegistry.h&apos;, u&apos;Source/WebCore/Modules/mediastream/MediaStreamTrack.h&apos;, u&apos;Source/WebCore/Modules/mediastream/MediaStreamTrackEvent.h&apos;, u&apos;Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesRequest.h&apos;, u&apos;Source/WebCore/Modules/mediastream/RTCDTMFSender.h&apos;, u&apos;Source/WebCore/Modules/mediastream/RTCDataChannel.h&apos;, u&apos;Source/WebCore/Modules/mediastream/RTCPeerConnection.h&apos;, u&apos;Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.h&apos;, u&apos;Source/WebCore/Modules/mediastream/RTCStatsRequestImpl.h&apos;, u&apos;Source/WebCore/Modules/mediastream/RTCStatsResponse.h&apos;, u&apos;Source/WebCore/Modules/mediastream/RTCVoidRequestImpl.h&apos;, u&apos;Source/WebCore/Modules/mediastream/UserMediaRequest.h&apos;, u&apos;Source/WebCore/Modules/mediastream/VideoStreamTrack.h&apos;, u&apos;Source/WebCore/Modules/networkinfo/NetworkInfoConnection.h&apos;, u&apos;Source/WebCore/Modules/notifications/DOMWindowNotifications.h&apos;, u&apos;Source/WebCore/Modules/notifications/Notification.h&apos;, u&apos;Source/WebCore/Modules/notifications/NotificationCenter.h&apos;, u&apos;Source/WebCore/Modules/plugins/QuickTimePluginReplacement.h&apos;, u&apos;Source/WebCore/Modules/speech/SpeechRecognition.h&apos;, u&apos;Source/WebCore/Modules/speech/SpeechRecognitionError.h&apos;, u&apos;Source/WebCore/Modules/speech/SpeechRecognitionEvent.h&apos;, u&apos;Source/WebCore/Modules/speech/SpeechSynthesis.h&apos;, u&apos;Source/WebCore/Modules/speech/SpeechSynthesisUtterance.h&apos;, u&apos;Source/WebCore/Modules/webaudio/AnalyserNode.h&apos;, u&apos;Source/WebCore/Modules/webaudio/AudioBasicInspectorNode.h&apos;, u&apos;Source/WebCore/Modules/webaudio/AudioBasicProcessorNode.h&apos;, u&apos;Source/WebCore/Modules/webaudio/AudioBufferSourceNode.h&apos;, u&apos;Source/WebCore/Modules/webaudio/AudioContext.h&apos;, u&apos;Source/WebCore/Modules/webaudio/AudioDestinationNode.h&apos;, u&apos;Source/WebCore/Modules/webaudio/AudioNode.h&apos;, u&apos;Source/WebCore/Modules/webaudio/AudioNodeInput.h&apos;, u&apos;Source/WebCore/Modules/webaudio/AudioParam.h&apos;, u&apos;Source/WebCore/Modules/webaudio/AudioProcessingEvent.h&apos;, u&apos;Source/WebCore/Modules/webaudio/BiquadDSPKernel.h&apos;, u&apos;Source/WebCore/Modules/webaudio/BiquadProcessor.h&apos;, u&apos;Source/WebCore/Modules/webaudio/ChannelMergerNode.h&apos;, u&apos;Source/WebCore/Modules/webaudio/ChannelSplitterNode.h&apos;, u&apos;Source/WebCore/Modules/webaudio/ConvolverNode.h&apos;, u&apos;Source/WebCore/Modules/webaudio/DefaultAudioDestinationNode.h&apos;, u&apos;Source/WebCore/Modules/webaudio/DelayDSPKernel.h&apos;, u&apos;Source/WebCore/Modules/webaudio/DelayProcessor.h&apos;, u&apos;Source/WebCore/Modules/webaudio/DynamicsCompressorNode.h&apos;, u&apos;Source/WebCore/Modules/webaudio/GainNode.h&apos;, u&apos;Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.h&apos;, u&apos;Source/WebCore/Modules/webaudio/MediaStreamAudioDestinationNode.h&apos;, u&apos;Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.h&apos;, u&apos;Source/WebCore/Modules/webaudio/OfflineAudioCompletionEvent.h&apos;, u&apos;Source/WebCore/Modules/webaudio/OfflineAudioDestinationNode.h&apos;, u&apos;Source/WebCore/Modules/webaudio/OscillatorNode.h&apos;, u&apos;Source/WebCore/Modules/webaudio/PannerNode.h&apos;, u&apos;Source/WebCore/Modules/webaudio/ScriptProcessorNode.h&apos;, u&apos;Source/WebCore/Modules/webaudio/WaveShaperDSPKernel.h&apos;, u&apos;Source/WebCore/Modules/webaudio/WaveShaperProcessor.h&apos;, u&apos;Source/WebCore/Modules/webdatabase/DatabaseTask.h&apos;, u&apos;Source/WebCore/Modules/webdatabase/SQLTransaction.h&apos;, u&apos;Source/WebCore/Modules/webdatabase/SQLTransactionBackend.h&apos;, u&apos;Source/WebCore/Modules/websockets/CloseEvent.h&apos;, u&apos;Source/WebCore/Modules/websockets/WebSocket.h&apos;, u&apos;Source/WebCore/Modules/websockets/WebSocketChannel.h&apos;, u&apos;Source/WebCore/Modules/websockets/WebSocketDeflateFramer.cpp&apos;, u&apos;Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.cpp&apos;, u&apos;Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilityARIAGrid.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilityARIAGridCell.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilityARIAGridRow.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilityImageMapLink.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilityList.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilityListBox.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilityListBoxOption.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilityMediaControls.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilityMenuList.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilityMenuListOption.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilityMenuListPopup.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilityMockObject.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilityNodeObject.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilityProgressIndicator.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilityRenderObject.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilitySVGRoot.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilityScrollView.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilityScrollbar.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilitySearchFieldButtons.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilitySlider.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilitySpinButton.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilityTable.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilityTableCell.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilityTableColumn.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilityTableHeaderContainer.h&apos;, u&apos;Source/WebCore/accessibility/AccessibilityTableRow.h&apos;, u&apos;Source/WebCore/bindings/js/JSCryptoAlgorithmBuilder.h&apos;, u&apos;Source/WebCore/bindings/js/JSCryptoKeySerializationJWK.h&apos;, u&apos;Source/WebCore/bindings/js/JSDOMGlobalObjectTask.h&apos;, u&apos;Source/WebCore/bindings/js/JSEventListener.h&apos;, u&apos;Source/WebCore/bindings/js/JSLazyEventListener.h&apos;, u&apos;Source/WebCore/bindings/js/JSMutationCallback.h&apos;, u&apos;Source/WebCore/bindings/js/PageScriptDebugServer.h&apos;, u&apos;Source/WebCore/bindings/js/ScriptDebugServer.h&apos;, u&apos;Source/WebCore/bindings/js/WebCoreTypedArrayController.h&apos;, u&apos;Source/WebCore/bindings/js/WorkerScriptDebugServer.h&apos;, u&apos;Source/WebCore/bridge/c/c_class.h&apos;, u&apos;Source/WebCore/bridge/c/c_instance.h&apos;, u&apos;Source/WebCore/bridge/c/c_runtime.h&apos;, u&apos;Source/WebCore/bridge/runtime_root.h&apos;, u&apos;Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_CBC.h&apos;, u&apos;Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.h&apos;, u&apos;Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.h&apos;, u&apos;Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h&apos;, u&apos;Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h&apos;, u&apos;Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.h&apos;, u&apos;Source/WebCore/crypto/algorithms/CryptoAlgorithmSHA1.h&apos;, u&apos;Source/WebCore/crypto/algorithms/CryptoAlgorithmSHA224.h&apos;, u&apos;Source/WebCore/crypto/algorithms/CryptoAlgorithmSHA256.h&apos;, u&apos;Source/WebCore/crypto/algorithms/CryptoAlgorithmSHA384.h&apos;, u&apos;Source/WebCore/crypto/algorithms/CryptoAlgorithmSHA512.h&apos;, u&apos;Source/WebCore/crypto/keys/CryptoKeyAES.h&apos;, u&apos;Source/WebCore/crypto/keys/CryptoKeyHMAC.h&apos;, u&apos;Source/WebCore/crypto/keys/CryptoKeyRSA.h&apos;, u&apos;Source/WebCore/crypto/keys/CryptoKeySerializationRaw.h&apos;, u&apos;Source/WebCore/crypto/parameters/CryptoAlgorithmAesCbcParams.h&apos;, u&apos;Source/WebCore/crypto/parameters/CryptoAlgorithmAesKeyGenParams.h&apos;, u&apos;Source/WebCore/crypto/parameters/CryptoAlgorithmHmacKeyParams.h&apos;, u&apos;Source/WebCore/crypto/parameters/CryptoAlgorithmHmacParams.h&apos;, u&apos;Source/WebCore/crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h&apos;, u&apos;Source/WebCore/crypto/parameters/CryptoAlgorithmRsaKeyParamsWithHash.h&apos;, u&apos;Source/WebCore/crypto/parameters/CryptoAlgorithmRsaOaepParams.h&apos;, u&apos;Source/WebCore/crypto/parameters/CryptoAlgorithmRsaSsaParams.h&apos;, u&apos;Source/WebCore/css/CSSBasicShapes.h&apos;, u&apos;Source/WebCore/css/CSSCanvasValue.h&apos;, u&apos;Source/WebCore/css/CSSCharsetRule.h&apos;, u&apos;Source/WebCore/css/CSSComputedStyleDeclaration.h&apos;, u&apos;Source/WebCore/css/CSSCrossfadeValue.h&apos;, u&apos;Source/WebCore/css/CSSFilterImageValue.h&apos;, u&apos;Source/WebCore/css/CSSFontFaceRule.h&apos;, u&apos;Source/WebCore/css/CSSFontSelector.h&apos;, u&apos;Source/WebCore/css/CSSGroupingRule.h&apos;, u&apos;Source/WebCore/css/CSSHostRule.h&apos;, u&apos;Source/WebCore/css/CSSImportRule.h&apos;, u&apos;Source/WebCore/css/CSSMediaRule.h&apos;, u&apos;Source/WebCore/css/CSSPageRule.h&apos;, u&apos;Source/WebCore/css/CSSStyleRule.h&apos;, u&apos;Source/WebCore/css/CSSStyleSheet.h&apos;, u&apos;Source/WebCore/css/CSSSupportsRule.h&apos;, u&apos;Source/WebCore/css/CSSUnknownRule.h&apos;, u&apos;Source/WebCore/css/FontLoader.cpp&apos;, u&apos;Source/WebCore/css/FontLoader.h&apos;, u&apos;Source/WebCore/css/PropertySetCSSStyleDeclaration.h&apos;, u&apos;Source/WebCore/css/WebKitCSSFilterRule.h&apos;, u&apos;Source/WebCore/css/WebKitCSSKeyframeRule.h&apos;, u&apos;Source/WebCore/css/WebKitCSSKeyframesRule.h&apos;, u&apos;Source/WebCore/css/WebKitCSSRegionRule.h&apos;, u&apos;Source/WebCore/css/WebKitCSSViewportRule.h&apos;, u&apos;Source/WebCore/dom/Attr.h&apos;, u&apos;Source/WebCore/dom/BeforeTextInsertedEvent.h&apos;, u&apos;Source/WebCore/dom/BeforeUnloadEvent.h&apos;, u&apos;Source/WebCore/dom/CDATASection.h&apos;, u&apos;Source/WebCore/dom/CharacterData.h&apos;, u&apos;Source/WebCore/dom/ChildNodeList.h&apos;, u&apos;Source/WebCore/dom/Clipboard.cpp&apos;, u&apos;Source/WebCore/dom/ClipboardEvent.h&apos;, u&apos;Source/WebCore/dom/ContainerNode.h&apos;, u&apos;Source/WebCore/dom/DOMImplementation.cpp&apos;, u&apos;Source/WebCore/dom/DatasetDOMStringMap.h&apos;, u&apos;Source/WebCore/dom/DeviceMotionController.h&apos;, u&apos;Source/WebCore/dom/DeviceOrientationController.h&apos;, u&apos;Source/WebCore/dom/Document.h&apos;, u&apos;Source/WebCore/dom/DocumentEventQueue.cpp&apos;, u&apos;Source/WebCore/dom/DocumentEventQueue.h&apos;, u&apos;Source/WebCore/dom/DocumentFragment.h&apos;, u&apos;Source/WebCore/dom/Element.h&apos;, u&apos;Source/WebCore/dom/ErrorEvent.h&apos;, u&apos;Source/WebCore/dom/EventContext.h&apos;, u&apos;Source/WebCore/dom/EventTarget.h&apos;, u&apos;Source/WebCore/dom/FocusEvent.h&apos;, u&apos;Source/WebCore/dom/KeyboardEvent.h&apos;, u&apos;Source/WebCore/dom/LiveNodeList.h&apos;, u&apos;Source/WebCore/dom/MessagePort.h&apos;, u&apos;Source/WebCore/dom/MouseEvent.h&apos;, u&apos;Source/WebCore/dom/MutationRecord.cpp&apos;, u&apos;Source/WebCore/dom/Node.h&apos;, u&apos;Source/WebCore/dom/PageTransitionEvent.h&apos;, u&apos;Source/WebCore/dom/ProcessingInstruction.h&apos;, u&apos;Source/WebCore/dom/ProgressEvent.h&apos;, u&apos;Source/WebCore/dom/PseudoElement.h&apos;, u&apos;Source/WebCore/dom/ScriptExecutionContext.h&apos;, u&apos;Source/WebCore/dom/ShadowRoot.h&apos;, u&apos;Source/WebCore/dom/StaticNodeList.h&apos;, u&apos;Source/WebCore/dom/StyledElement.h&apos;, u&apos;Source/WebCore/dom/TagNodeList.h&apos;, u&apos;Source/WebCore/dom/TemplateContentDocumentFragment.h&apos;, u&apos;Source/WebCore/dom/Text.h&apos;, u&apos;Source/WebCore/dom/TextEvent.h&apos;, u&apos;Source/WebCore/dom/TouchEvent.h&apos;, u&apos;Source/WebCore/dom/TransitionEvent.h&apos;, u&apos;Source/WebCore/dom/UIEvent.h&apos;, u&apos;Source/WebCore/dom/WebKitAnimationEvent.h&apos;, u&apos;Source/WebCore/dom/WebKitNamedFlow.h&apos;, u&apos;Source/WebCore/dom/WebKitTransitionEvent.h&apos;, u&apos;Source/WebCore/editing/AppendNodeCommand.h&apos;, u&apos;Source/WebCore/editing/ApplyBlockElementCommand.h&apos;, u&apos;Source/WebCore/editing/ApplyStyleCommand.h&apos;, u&apos;Source/WebCore/editing/BreakBlockquoteCommand.h&apos;, u&apos;Source/WebCore/editing/CompositeEditCommand.h&apos;, u&apos;Source/WebCore/editing/DeleteButton.h&apos;, u&apos;Source/WebCore/editing/DeleteFromTextNodeCommand.h&apos;, u&apos;Source/WebCore/editing/EditCommand.h&apos;, u&apos;Source/WebCore/editing/InsertIntoTextNodeCommand.h&apos;, u&apos;Source/WebCore/editing/InsertNodeBeforeCommand.h&apos;, u&apos;Source/WebCore/editing/InsertTextCommand.h&apos;, u&apos;Source/WebCore/editing/MergeIdenticalElementsCommand.h&apos;, u&apos;Source/WebCore/editing/RemoveCSSPropertyCommand.h&apos;, u&apos;Source/WebCore/editing/RemoveNodeCommand.h&apos;, u&apos;Source/WebCore/editing/ReplaceNodeWithSpanCommand.h&apos;, u&apos;Source/WebCore/editing/SetNodeAttributeCommand.h&apos;, u&apos;Source/WebCore/editing/SetSelectionCommand.h&apos;, u&apos;Source/WebCore/editing/SpellChecker.h&apos;, u&apos;Source/WebCore/editing/SpellingCorrectionCommand.cpp&apos;, u&apos;Source/WebCore/editing/SpellingCorrectionCommand.h&apos;, u&apos;Source/WebCore/editing/SplitElementCommand.h&apos;, u&apos;Source/WebCore/editing/SplitTextNodeCommand.h&apos;, u&apos;Source/WebCore/editing/WrapContentsInDummySpanCommand.h&apos;, u&apos;Source/WebCore/editing/ios/EditorIOS.mm&apos;, u&apos;Source/WebCore/editing/markup.cpp&apos;, u&apos;Source/WebCore/fileapi/Blob.cpp&apos;, u&apos;Source/WebCore/fileapi/Blob.h&apos;, u&apos;Source/WebCore/fileapi/File.h&apos;, u&apos;Source/WebCore/fileapi/FileReader.h&apos;, u&apos;Source/WebCore/fileapi/FileThreadTask.h&apos;, u&apos;Source/WebCore/history/BackForwardList.h&apos;, u&apos;Source/WebCore/html/BaseButtonInputType.h&apos;, u&apos;Source/WebCore/html/BaseCheckableInputType.h&apos;, u&apos;Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.h&apos;, u&apos;Source/WebCore/html/BaseClickableWithKeyInputType.h&apos;, u&apos;Source/WebCore/html/BaseDateAndTimeInputType.h&apos;, u&apos;Source/WebCore/html/BaseTextInputType.h&apos;, u&apos;Source/WebCore/html/ButtonInputType.h&apos;, u&apos;Source/WebCore/html/CheckboxInputType.h&apos;, u&apos;Source/WebCore/html/ClassList.h&apos;, u&apos;Source/WebCore/html/ColorInputType.h&apos;, u&apos;Source/WebCore/html/DOMSettableTokenList.h&apos;, u&apos;Source/WebCore/html/DateInputType.h&apos;, u&apos;Source/WebCore/html/DateTimeInputType.h&apos;, u&apos;Source/WebCore/html/DateTimeLocalInputType.h&apos;, u&apos;Source/WebCore/html/EmailInputType.h&apos;, u&apos;Source/WebCore/html/FTPDirectoryDocument.cpp&apos;, u&apos;Source/WebCore/html/FileInputType.h&apos;, u&apos;Source/WebCore/html/FormAssociatedElement.cpp&apos;, u&apos;Source/WebCore/html/FormAssociatedElement.h&apos;, u&apos;Source/WebCore/html/HTMLAnchorElement.h&apos;, u&apos;Source/WebCore/html/HTMLAppletElement.h&apos;, u&apos;Source/WebCore/html/HTMLAreaElement.h&apos;, u&apos;Source/WebCore/html/HTMLBRElement.h&apos;, u&apos;Source/WebCore/html/HTMLBaseElement.h&apos;, u&apos;Source/WebCore/html/HTMLBodyElement.h&apos;, u&apos;Source/WebCore/html/HTMLButtonElement.h&apos;, u&apos;Source/WebCore/html/HTMLCanvasElement.h&apos;, u&apos;Source/WebCore/html/HTMLDetailsElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLDetailsElement.h&apos;, u&apos;Source/WebCore/html/HTMLDivElement.h&apos;, u&apos;Source/WebCore/html/HTMLDocument.h&apos;, u&apos;Source/WebCore/html/HTMLElement.h&apos;, u&apos;Source/WebCore/html/HTMLEmbedElement.h&apos;, u&apos;Source/WebCore/html/HTMLFieldSetElement.h&apos;, u&apos;Source/WebCore/html/HTMLFontElement.h&apos;, u&apos;Source/WebCore/html/HTMLFormControlElement.h&apos;, u&apos;Source/WebCore/html/HTMLFormControlElementWithState.h&apos;, u&apos;Source/WebCore/html/HTMLFormControlsCollection.h&apos;, u&apos;Source/WebCore/html/HTMLFormElement.h&apos;, u&apos;Source/WebCore/html/HTMLFrameElement.h&apos;, u&apos;Source/WebCore/html/HTMLFrameElementBase.h&apos;, u&apos;Source/WebCore/html/HTMLFrameOwnerElement.h&apos;, u&apos;Source/WebCore/html/HTMLFrameSetElement.h&apos;, u&apos;Source/WebCore/html/HTMLHRElement.h&apos;, u&apos;Source/WebCore/html/HTMLHtmlElement.h&apos;, u&apos;Source/WebCore/html/HTMLIFrameElement.h&apos;, u&apos;Source/WebCore/html/HTMLImageElement.h&apos;, u&apos;Source/WebCore/html/HTMLImageLoader.h&apos;, u&apos;Source/WebCore/html/HTMLInputElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLInputElement.h&apos;, u&apos;Source/WebCore/html/HTMLKeygenElement.h&apos;, u&apos;Source/WebCore/html/HTMLLIElement.h&apos;, u&apos;Source/WebCore/html/HTMLLabelElement.h&apos;, u&apos;Source/WebCore/html/HTMLLegendElement.h&apos;, u&apos;Source/WebCore/html/HTMLLinkElement.h&apos;, u&apos;Source/WebCore/html/HTMLMapElement.h&apos;, u&apos;Source/WebCore/html/HTMLMarqueeElement.h&apos;, u&apos;Source/WebCore/html/HTMLMediaElement.h&apos;, u&apos;Source/WebCore/html/HTMLMediaSession.h&apos;, u&apos;Source/WebCore/html/HTMLMediaSource.h&apos;, u&apos;Source/WebCore/html/HTMLMetaElement.h&apos;, u&apos;Source/WebCore/html/HTMLMeterElement.h&apos;, u&apos;Source/WebCore/html/HTMLModElement.h&apos;, u&apos;Source/WebCore/html/HTMLOListElement.h&apos;, u&apos;Source/WebCore/html/HTMLObjectElement.h&apos;, u&apos;Source/WebCore/html/HTMLOptGroupElement.h&apos;, u&apos;Source/WebCore/html/HTMLOptionElement.h&apos;, u&apos;Source/WebCore/html/HTMLOutputElement.h&apos;, u&apos;Source/WebCore/html/HTMLParagraphElement.h&apos;, u&apos;Source/WebCore/html/HTMLParamElement.h&apos;, u&apos;Source/WebCore/html/HTMLPlugInElement.h&apos;, u&apos;Source/WebCore/html/HTMLPlugInImageElement.h&apos;, u&apos;Source/WebCore/html/HTMLPreElement.h&apos;, u&apos;Source/WebCore/html/HTMLProgressElement.h&apos;, u&apos;Source/WebCore/html/HTMLQuoteElement.h&apos;, u&apos;Source/WebCore/html/HTMLScriptElement.h&apos;, u&apos;Source/WebCore/html/HTMLSelectElement.h&apos;, u&apos;Source/WebCore/html/HTMLSourceElement.h&apos;, u&apos;Source/WebCore/html/HTMLStyleElement.h&apos;, u&apos;Source/WebCore/html/HTMLSummaryElement.h&apos;, u&apos;Source/WebCore/html/HTMLTableCaptionElement.h&apos;, u&apos;Source/WebCore/html/HTMLTableCellElement.h&apos;, u&apos;Source/WebCore/html/HTMLTableColElement.h&apos;, u&apos;Source/WebCore/html/HTMLTableElement.h&apos;, u&apos;Source/WebCore/html/HTMLTablePartElement.h&apos;, u&apos;Source/WebCore/html/HTMLTableRowsCollection.h&apos;, u&apos;Source/WebCore/html/HTMLTableSectionElement.h&apos;, u&apos;Source/WebCore/html/HTMLTemplateElement.h&apos;, u&apos;Source/WebCore/html/HTMLTextAreaElement.h&apos;, u&apos;Source/WebCore/html/HTMLTextFormControlElement.h&apos;, u&apos;Source/WebCore/html/HTMLTitleElement.h&apos;, u&apos;Source/WebCore/html/HTMLTrackElement.h&apos;, u&apos;Source/WebCore/html/HTMLUListElement.h&apos;, u&apos;Source/WebCore/html/HTMLUnknownElement.h&apos;, u&apos;Source/WebCore/html/HTMLVideoElement.h&apos;, u&apos;Source/WebCore/html/HiddenInputType.h&apos;, u&apos;Source/WebCore/html/ImageDocument.cpp&apos;, u&apos;Source/WebCore/html/ImageInputType.h&apos;, u&apos;Source/WebCore/html/LabelableElement.h&apos;, u&apos;Source/WebCore/html/LabelsNodeList.h&apos;, u&apos;Source/WebCore/html/MediaController.h&apos;, u&apos;Source/WebCore/html/MonthInputType.h&apos;, u&apos;Source/WebCore/html/NumberInputType.h&apos;, u&apos;Source/WebCore/html/PasswordInputType.h&apos;, u&apos;Source/WebCore/html/PluginDocument.h&apos;, u&apos;Source/WebCore/html/RadioInputType.h&apos;, u&apos;Source/WebCore/html/RangeInputType.h&apos;, u&apos;Source/WebCore/html/ResetInputType.h&apos;, u&apos;Source/WebCore/html/SearchInputType.h&apos;, u&apos;Source/WebCore/html/SubmitInputType.h&apos;, u&apos;Source/WebCore/html/TelephoneInputType.h&apos;, u&apos;Source/WebCore/html/TextFieldInputType.h&apos;, u&apos;Source/WebCore/html/TextInputType.h&apos;, u&apos;Source/WebCore/html/TimeInputType.h&apos;, u&apos;Source/WebCore/html/URLInputType.h&apos;, u&apos;Source/WebCore/html/WeekInputType.h&apos;, u&apos;Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp&apos;, u&apos;Source/WebCore/html/canvas/CanvasRenderingContext2D.h&apos;, u&apos;Source/WebCore/html/canvas/WebGLRenderingContext.h&apos;, u&apos;Source/WebCore/html/parser/HTMLDocumentParser.h&apos;, u&apos;Source/WebCore/html/parser/TextDocumentParser.h&apos;, u&apos;Source/WebCore/html/shadow/DetailsMarkerControl.h&apos;, u&apos;Source/WebCore/html/shadow/InsertionPoint.h&apos;, u&apos;Source/WebCore/html/shadow/MediaControlElementTypes.h&apos;, u&apos;Source/WebCore/html/shadow/MediaControlElements.h&apos;, u&apos;Source/WebCore/html/shadow/MediaControls.h&apos;, u&apos;Source/WebCore/html/shadow/MediaControlsApple.h&apos;, u&apos;Source/WebCore/html/shadow/MediaControlsGtk.h&apos;, u&apos;Source/WebCore/html/shadow/MeterShadowElement.h&apos;, u&apos;Source/WebCore/html/shadow/ProgressShadowElement.h&apos;, u&apos;Source/WebCore/html/shadow/SliderThumbElement.cpp&apos;, u&apos;Source/WebCore/html/shadow/SliderThumbElement.h&apos;, u&apos;Source/WebCore/html/shadow/SpinButtonElement.h&apos;, u&apos;Source/WebCore/html/shadow/TextControlInnerElements.h&apos;, u&apos;Source/WebCore/html/shadow/YouTubeEmbedShadowElement.h&apos;, u&apos;Source/WebCore/html/track/AudioTrack.h&apos;, u&apos;Source/WebCore/html/track/AudioTrackList.h&apos;, u&apos;Source/WebCore/html/track/InbandGenericTextTrack.h&apos;, u&apos;Source/WebCore/html/track/InbandTextTrack.h&apos;, u&apos;Source/WebCore/html/track/InbandWebVTTTextTrack.h&apos;, u&apos;Source/WebCore/html/track/LoadableTextTrack.h&apos;, u&apos;Source/WebCore/html/track/TextTrack.h&apos;, u&apos;Source/WebCore/html/track/TextTrackCue.h&apos;, u&apos;Source/WebCore/html/track/TextTrackCueGeneric.cpp&apos;, u&apos;Source/WebCore/html/track/TextTrackCueGeneric.h&apos;, u&apos;Source/WebCore/html/track/TextTrackList.h&apos;, u&apos;Source/WebCore/html/track/TrackListBase.h&apos;, u&apos;Source/WebCore/html/track/VideoTrack.h&apos;, u&apos;Source/WebCore/html/track/VideoTrackList.h&apos;, u&apos;Source/WebCore/html/track/WebVTTElement.h&apos;, u&apos;Source/WebCore/inspector/CommandLineAPIModule.h&apos;, u&apos;Source/WebCore/inspector/InjectedScriptCanvasModule.h&apos;, u&apos;Source/WebCore/inspector/InspectorApplicationCacheAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorCSSAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorCanvasAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorConsoleAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorConsoleAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorController.h&apos;, u&apos;Source/WebCore/inspector/InspectorDOMAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorDOMDebuggerAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorDOMStorageAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorDatabaseAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorDebuggerAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorHeapProfilerAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorIndexedDBAgent.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorIndexedDBAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorInputAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorLayerTreeAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorMemoryAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorPageAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorProfilerAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorResourceAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorTimelineAgent.h&apos;, u&apos;Source/WebCore/inspector/InspectorWorkerAgent.h&apos;, u&apos;Source/WebCore/inspector/PageConsoleAgent.cpp&apos;, u&apos;Source/WebCore/inspector/PageConsoleAgent.h&apos;, u&apos;Source/WebCore/inspector/PageInjectedScriptHost.h&apos;, u&apos;Source/WebCore/inspector/PageInjectedScriptManager.h&apos;, u&apos;Source/WebCore/inspector/PageRuntimeAgent.h&apos;, u&apos;Source/WebCore/inspector/WorkerConsoleAgent.h&apos;, u&apos;Source/WebCore/inspector/WorkerDebuggerAgent.h&apos;, u&apos;Source/WebCore/inspector/WorkerInspectorController.h&apos;, u&apos;Source/WebCore/inspector/WorkerRuntimeAgent.h&apos;, u&apos;Source/WebCore/loader/DocumentLoader.h&apos;, u&apos;Source/WebCore/loader/EmptyClients.h&apos;, u&apos;Source/WebCore/loader/FrameNetworkingContext.h&apos;, u&apos;Source/WebCore/loader/ImageLoader.h&apos;, u&apos;Source/WebCore/loader/NavigationScheduler.cpp&apos;, u&apos;Source/WebCore/loader/NetscapePlugInStreamLoader.h&apos;, u&apos;Source/WebCore/loader/PingLoader.h&apos;, u&apos;Source/WebCore/loader/ResourceLoader.h&apos;, u&apos;Source/WebCore/loader/SubresourceLoader.h&apos;, u&apos;Source/WebCore/loader/WorkerThreadableLoader.h&apos;, u&apos;Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp&apos;, u&apos;Source/WebCore/loader/appcache/ApplicationCacheGroup.h&apos;, u&apos;Source/WebCore/loader/appcache/DOMApplicationCache.h&apos;, u&apos;Source/WebCore/loader/archive/cf/LegacyWebArchive.h&apos;, u&apos;Source/WebCore/loader/cache/CachedCSSStyleSheet.h&apos;, u&apos;Source/WebCore/loader/cache/CachedFont.h&apos;, u&apos;Source/WebCore/loader/cache/CachedFontClient.h&apos;, u&apos;Source/WebCore/loader/cache/CachedImage.h&apos;, u&apos;Source/WebCore/loader/cache/CachedImageClient.h&apos;, u&apos;Source/WebCore/loader/cache/CachedRawResource.h&apos;, u&apos;Source/WebCore/loader/cache/CachedRawResourceClient.h&apos;, u&apos;Source/WebCore/loader/cache/CachedSVGDocument.h&apos;, u&apos;Source/WebCore/loader/cache/CachedSVGDocumentClient.h&apos;, u&apos;Source/WebCore/loader/cache/CachedScript.h&apos;, u&apos;Source/WebCore/loader/cache/CachedShader.h&apos;, u&apos;Source/WebCore/loader/cache/CachedStyleSheetClient.h&apos;, u&apos;Source/WebCore/loader/cache/CachedTextTrack.h&apos;, u&apos;Source/WebCore/loader/cache/CachedXSLStyleSheet.h&apos;, u&apos;Source/WebCore/loader/icon/IconLoader.h&apos;, u&apos;Source/WebCore/mathml/MathMLElement.h&apos;, u&apos;Source/WebCore/mathml/MathMLInlineContainerElement.h&apos;, u&apos;Source/WebCore/mathml/MathMLMathElement.h&apos;, u&apos;Source/WebCore/mathml/MathMLSelectElement.h&apos;, u&apos;Source/WebCore/mathml/MathMLTextElement.h&apos;, u&apos;Source/WebCore/page/CaptionUserPreferencesMediaAF.h&apos;, u&apos;Source/WebCore/page/Chrome.h&apos;, u&apos;Source/WebCore/page/DOMTimer.h&apos;, u&apos;Source/WebCore/page/DOMWindow.h&apos;, u&apos;Source/WebCore/page/DOMWindowExtension.h&apos;, u&apos;Source/WebCore/page/EventSource.h&apos;, u&apos;Source/WebCore/page/Frame.h&apos;, u&apos;Source/WebCore/page/FrameView.h&apos;, u&apos;Source/WebCore/page/PageDebuggable.h&apos;, u&apos;Source/WebCore/page/PageSerializer.cpp&apos;, u&apos;Source/WebCore/page/Performance.h&apos;, u&apos;Source/WebCore/page/SuspendableTimer.h&apos;, u&apos;Source/WebCore/page/animation/ImplicitAnimation.h&apos;, u&apos;Source/WebCore/page/animation/KeyframeAnimation.h&apos;, u&apos;Source/WebCore/page/scrolling/AsyncScrollingCoordinator.h&apos;, u&apos;Source/WebCore/page/scrolling/ScrollingConstraints.h&apos;, u&apos;Source/WebCore/page/scrolling/ScrollingStateFixedNode.h&apos;, u&apos;Source/WebCore/page/scrolling/ScrollingStateScrollingNode.h&apos;, u&apos;Source/WebCore/page/scrolling/ScrollingStateStickyNode.h&apos;, u&apos;Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h&apos;, u&apos;Source/WebCore/page/scrolling/ThreadedScrollingTree.h&apos;, u&apos;Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h&apos;, u&apos;Source/WebCore/page/scrolling/ios/ScrollingCoordinatorIOS.h&apos;, u&apos;Source/WebCore/page/scrolling/ios/ScrollingTreeIOS.h&apos;, u&apos;Source/WebCore/page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h&apos;, u&apos;Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.h&apos;, u&apos;Source/WebCore/page/scrolling/mac/ScrollingTreeFixedNode.h&apos;, u&apos;Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.h&apos;, u&apos;Source/WebCore/page/scrolling/mac/ScrollingTreeStickyNode.h&apos;, u&apos;Source/WebCore/pdf/ios/PDFDocument.cpp&apos;, u&apos;Source/WebCore/pdf/ios/PDFDocument.h&apos;, u&apos;Source/WebCore/platform/CalculationValue.h&apos;, u&apos;Source/WebCore/platform/ClockGeneric.h&apos;, u&apos;Source/WebCore/platform/MainThreadTask.h&apos;, u&apos;Source/WebCore/platform/PODIntervalTree.h&apos;, u&apos;Source/WebCore/platform/PODRedBlackTree.h&apos;, u&apos;Source/WebCore/platform/RefCountedSupplement.h&apos;, u&apos;Source/WebCore/platform/ScrollView.h&apos;, u&apos;Source/WebCore/platform/Scrollbar.h&apos;, u&apos;Source/WebCore/platform/Timer.h&apos;, u&apos;Source/WebCore/platform/animation/TimingFunction.h&apos;, u&apos;Source/WebCore/platform/audio/AudioDSPKernelProcessor.h&apos;, u&apos;Source/WebCore/platform/audio/EqualPowerPanner.h&apos;, u&apos;Source/WebCore/platform/audio/HRTFPanner.h&apos;, u&apos;Source/WebCore/platform/audio/ios/AudioDestinationIOS.h&apos;, u&apos;Source/WebCore/platform/audio/mac/AudioDestinationMac.h&apos;, u&apos;Source/WebCore/platform/audio/nix/AudioDestinationNix.h&apos;, u&apos;Source/WebCore/platform/efl/RenderThemeEfl.h&apos;, u&apos;Source/WebCore/platform/efl/ScrollbarEfl.h&apos;, u&apos;Source/WebCore/platform/efl/ScrollbarThemeEfl.h&apos;, u&apos;Source/WebCore/platform/graphics/AudioTrackPrivate.h&apos;, u&apos;Source/WebCore/platform/graphics/BitmapImage.h&apos;, u&apos;Source/WebCore/platform/graphics/CrossfadeGeneratedImage.h&apos;, u&apos;Source/WebCore/platform/graphics/FloatPolygon.h&apos;, u&apos;Source/WebCore/platform/graphics/GeneratedImage.h&apos;, u&apos;Source/WebCore/platform/graphics/GradientImage.h&apos;, u&apos;Source/WebCore/platform/graphics/GraphicsLayer.h&apos;, u&apos;Source/WebCore/platform/graphics/InbandTextTrackPrivate.h&apos;, u&apos;Source/WebCore/platform/graphics/MediaPlayer.cpp&apos;, u&apos;Source/WebCore/platform/graphics/SimpleFontData.h&apos;, u&apos;Source/WebCore/platform/graphics/VideoTrackPrivate.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/VideoTrackPrivateAVF.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h&apos;, u&apos;Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h&apos;, u&apos;Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.h&apos;, u&apos;Source/WebCore/platform/graphics/ca/mac/TileController.h&apos;, u&apos;Source/WebCore/platform/graphics/ca/win/LegacyCACFLayerTreeHost.h&apos;, u&apos;Source/WebCore/platform/graphics/ca/win/PlatformCALayerWin.h&apos;, u&apos;Source/WebCore/platform/graphics/ca/win/WKCACFViewLayerTreeHost.h&apos;, u&apos;Source/WebCore/platform/graphics/cg/PDFDocumentImage.h&apos;, u&apos;Source/WebCore/platform/graphics/efl/GraphicsContext3DPrivate.h&apos;, u&apos;Source/WebCore/platform/graphics/egl/GLContextFromCurrentEGL.h&apos;, u&apos;Source/WebCore/platform/graphics/filters/DistantLightSource.h&apos;, u&apos;Source/WebCore/platform/graphics/filters/FEComposite.h&apos;, u&apos;Source/WebCore/platform/graphics/filters/FEDisplacementMap.h&apos;, u&apos;Source/WebCore/platform/graphics/filters/FEFlood.h&apos;, u&apos;Source/WebCore/platform/graphics/filters/FilterOperation.h&apos;, u&apos;Source/WebCore/platform/graphics/filters/PointLightSource.h&apos;, u&apos;Source/WebCore/platform/graphics/filters/SpotLightSource.h&apos;, u&apos;Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h&apos;, u&apos;Source/WebCore/platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h&apos;, u&apos;Source/WebCore/platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h&apos;, u&apos;Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h&apos;, u&apos;Source/WebCore/platform/graphics/ios/InbandTextTrackPrivateAVFIOS.h&apos;, u&apos;Source/WebCore/platform/graphics/ios/MediaPlayerPrivateIOS.h&apos;, u&apos;Source/WebCore/platform/graphics/ios/TextTrackRepresentationIOS.h&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/GLTransportSurface.h&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/egl/EGLContext.h&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/egl/EGLSurface.h&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/egl/EGLXSurface.h&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/glx/GLXContext.h&apos;, u&apos;Source/WebCore/platform/graphics/surfaces/glx/GLXSurface.h&apos;, u&apos;Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.h&apos;, u&apos;Source/WebCore/platform/graphics/texmap/TextureMapperGL.h&apos;, u&apos;Source/WebCore/platform/graphics/texmap/TextureMapperImageBuffer.h&apos;, u&apos;Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h&apos;, u&apos;Source/WebCore/platform/graphics/texmap/TextureMapperTiledBackingStore.h&apos;, u&apos;Source/WebCore/platform/graphics/texmap/coordinated/CompositingCoordinator.h&apos;, u&apos;Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStore.h&apos;, u&apos;Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedCustomFilterProgram.h&apos;, u&apos;Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h&apos;, u&apos;Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp&apos;, u&apos;Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedTile.h&apos;, u&apos;Source/WebCore/platform/graphics/texmap/coordinated/UpdateAtlas.cpp&apos;, u&apos;Source/WebCore/platform/gtk/RenderThemeGtk.h&apos;, u&apos;Source/WebCore/platform/ios/DeviceMotionClientIOS.h&apos;, u&apos;Source/WebCore/platform/ios/DeviceOrientationClientIOS.h&apos;, u&apos;Source/WebCore/platform/ios/ScrollAnimatorIOS.h&apos;, u&apos;Source/WebCore/platform/ios/ScrollbarThemeIOS.h&apos;, u&apos;Source/WebCore/platform/ios/WebSafeGCActivityCallbackIOS.h&apos;, u&apos;Source/WebCore/platform/ios/WebSafeIncrementalSweeperIOS.h&apos;, u&apos;Source/WebCore/platform/mac/PlatformClockCA.h&apos;, u&apos;Source/WebCore/platform/mac/PlatformClockCM.h&apos;, u&apos;Source/WebCore/platform/mac/ScrollAnimatorMac.h&apos;, u&apos;Source/WebCore/platform/mac/ScrollbarThemeMac.h&apos;, u&apos;Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.h&apos;, u&apos;Source/WebCore/platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h&apos;, u&apos;Source/WebCore/platform/mediastream/mac/AVAudioCaptureSource.h&apos;, u&apos;Source/WebCore/platform/mediastream/mac/AVMediaCaptureSource.h&apos;, u&apos;Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.h&apos;, u&apos;Source/WebCore/platform/mediastream/mac/MediaStreamCenterMac.h&apos;, u&apos;Source/WebCore/platform/mock/DeviceMotionClientMock.h&apos;, u&apos;Source/WebCore/platform/mock/DeviceOrientationClientMock.h&apos;, u&apos;Source/WebCore/platform/mock/MockMediaStreamCenter.h&apos;, u&apos;Source/WebCore/platform/mock/RTCDataChannelHandlerMock.h&apos;, u&apos;Source/WebCore/platform/mock/RTCNotifiersMock.h&apos;, u&apos;Source/WebCore/platform/mock/RTCPeerConnectionHandlerMock.h&apos;, u&apos;Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.h&apos;, u&apos;Source/WebCore/platform/mock/mediasource/MockMediaSourcePrivate.h&apos;, u&apos;Source/WebCore/platform/mock/mediasource/MockSourceBufferPrivate.cpp&apos;, u&apos;Source/WebCore/platform/mock/mediasource/MockSourceBufferPrivate.h&apos;, u&apos;Source/WebCore/platform/network/BlobRegistryImpl.h&apos;, u&apos;Source/WebCore/platform/network/BlobResourceHandle.cpp&apos;, u&apos;Source/WebCore/platform/network/BlobResourceHandle.h&apos;, u&apos;Source/WebCore/platform/network/ResourceHandle.h&apos;, u&apos;Source/WebCore/platform/network/SynchronousLoaderClient.h&apos;, u&apos;Source/WebCore/platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h&apos;, u&apos;Source/WebCore/platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h&apos;, u&apos;Source/WebCore/platform/nix/RenderThemeNix.h&apos;, u&apos;Source/WebCore/platform/nix/ScrollbarThemeNix.h&apos;, u&apos;Source/WebCore/platform/text/LocaleICU.h&apos;, u&apos;Source/WebCore/platform/text/LocaleNone.cpp&apos;, u&apos;Source/WebCore/platform/text/PlatformLocale.cpp&apos;, u&apos;Source/WebCore/platform/text/mac/LocaleMac.h&apos;, u&apos;Source/WebCore/platform/text/win/LocaleWin.h&apos;, u&apos;Source/WebCore/platform/win/PopupMenuWin.h&apos;, u&apos;Source/WebCore/plugins/PluginView.h&apos;, u&apos;Source/WebCore/rendering/AutoTableLayout.h&apos;, u&apos;Source/WebCore/rendering/ClipPathOperation.h&apos;, u&apos;Source/WebCore/rendering/EllipsisBox.h&apos;, u&apos;Source/WebCore/rendering/FilterEffectRenderer.h&apos;, u&apos;Source/WebCore/rendering/FixedTableLayout.h&apos;, u&apos;Source/WebCore/rendering/InlineElementBox.h&apos;, u&apos;Source/WebCore/rendering/InlineFlowBox.h&apos;, u&apos;Source/WebCore/rendering/InlineTextBox.h&apos;, u&apos;Source/WebCore/rendering/RenderBlock.h&apos;, u&apos;Source/WebCore/rendering/RenderBlockFlow.h&apos;, u&apos;Source/WebCore/rendering/RenderBox.h&apos;, u&apos;Source/WebCore/rendering/RenderBoxModelObject.h&apos;, u&apos;Source/WebCore/rendering/RenderButton.h&apos;, u&apos;Source/WebCore/rendering/RenderCombineText.h&apos;, u&apos;Source/WebCore/rendering/RenderCounter.h&apos;, u&apos;Source/WebCore/rendering/RenderDeprecatedFlexibleBox.h&apos;, u&apos;Source/WebCore/rendering/RenderDetailsMarker.h&apos;, u&apos;Source/WebCore/rendering/RenderElement.h&apos;, u&apos;Source/WebCore/rendering/RenderEmbeddedObject.h&apos;, u&apos;Source/WebCore/rendering/RenderFieldset.h&apos;, u&apos;Source/WebCore/rendering/RenderFileUploadControl.h&apos;, u&apos;Source/WebCore/rendering/RenderFlexibleBox.h&apos;, u&apos;Source/WebCore/rendering/RenderFlowThread.h&apos;, u&apos;Source/WebCore/rendering/RenderFrame.h&apos;, u&apos;Source/WebCore/rendering/RenderFrameSet.h&apos;, u&apos;Source/WebCore/rendering/RenderFullScreen.h&apos;, u&apos;Source/WebCore/rendering/RenderGrid.h&apos;, u&apos;Source/WebCore/rendering/RenderHTMLCanvas.h&apos;, u&apos;Source/WebCore/rendering/RenderIFrame.h&apos;, u&apos;Source/WebCore/rendering/RenderImage.h&apos;, u&apos;Source/WebCore/rendering/RenderImageResourceStyleImage.h&apos;, u&apos;Source/WebCore/rendering/RenderInline.h&apos;, u&apos;Source/WebCore/rendering/RenderLayer.h&apos;, u&apos;Source/WebCore/rendering/RenderLayerBacking.h&apos;, u&apos;Source/WebCore/rendering/RenderLayerCompositor.h&apos;, u&apos;Source/WebCore/rendering/RenderLayerFilterInfo.h&apos;, u&apos;Source/WebCore/rendering/RenderLayerModelObject.h&apos;, u&apos;Source/WebCore/rendering/RenderLineBreak.h&apos;, u&apos;Source/WebCore/rendering/RenderListBox.h&apos;, u&apos;Source/WebCore/rendering/RenderListItem.h&apos;, u&apos;Source/WebCore/rendering/RenderListMarker.h&apos;, u&apos;Source/WebCore/rendering/RenderMedia.h&apos;, u&apos;Source/WebCore/rendering/RenderMenuList.h&apos;, u&apos;Source/WebCore/rendering/RenderMeter.h&apos;, u&apos;Source/WebCore/rendering/RenderMultiColumnBlock.h&apos;, u&apos;Source/WebCore/rendering/RenderMultiColumnFlowThread.h&apos;, u&apos;Source/WebCore/rendering/RenderMultiColumnSet.h&apos;, u&apos;Source/WebCore/rendering/RenderNamedFlowFragment.h&apos;, u&apos;Source/WebCore/rendering/RenderNamedFlowThread.h&apos;, u&apos;Source/WebCore/rendering/RenderObject.h&apos;, u&apos;Source/WebCore/rendering/RenderProgress.h&apos;, u&apos;Source/WebCore/rendering/RenderQuote.h&apos;, u&apos;Source/WebCore/rendering/RenderRegion.h&apos;, u&apos;Source/WebCore/rendering/RenderRegionSet.h&apos;, u&apos;Source/WebCore/rendering/RenderReplaced.h&apos;, u&apos;Source/WebCore/rendering/RenderReplica.h&apos;, u&apos;Source/WebCore/rendering/RenderRuby.h&apos;, u&apos;Source/WebCore/rendering/RenderRubyRun.h&apos;, u&apos;Source/WebCore/rendering/RenderRubyText.h&apos;, u&apos;Source/WebCore/rendering/RenderScrollbar.h&apos;, u&apos;Source/WebCore/rendering/RenderScrollbarPart.h&apos;, u&apos;Source/WebCore/rendering/RenderScrollbarTheme.h&apos;, u&apos;Source/WebCore/rendering/RenderSearchField.h&apos;, u&apos;Source/WebCore/rendering/RenderSlider.h&apos;, u&apos;Source/WebCore/rendering/RenderSnapshottedPlugIn.h&apos;, u&apos;Source/WebCore/rendering/RenderTable.h&apos;, u&apos;Source/WebCore/rendering/RenderTableCaption.h&apos;, u&apos;Source/WebCore/rendering/RenderTableCell.h&apos;, u&apos;Source/WebCore/rendering/RenderTableCol.h&apos;, u&apos;Source/WebCore/rendering/RenderTableRow.h&apos;, u&apos;Source/WebCore/rendering/RenderTableSection.h&apos;, u&apos;Source/WebCore/rendering/RenderText.h&apos;, u&apos;Source/WebCore/rendering/RenderTextControl.h&apos;, u&apos;Source/WebCore/rendering/RenderTextControlMultiLine.h&apos;, u&apos;Source/WebCore/rendering/RenderTextControlSingleLine.h&apos;, u&apos;Source/WebCore/rendering/RenderTextFragment.h&apos;, u&apos;Source/WebCore/rendering/RenderTextTrackCue.h&apos;, u&apos;Source/WebCore/rendering/RenderThemeIOS.h&apos;, u&apos;Source/WebCore/rendering/RenderThemeMac.h&apos;, u&apos;Source/WebCore/rendering/RenderThemeSafari.h&apos;, u&apos;Source/WebCore/rendering/RenderThemeWin.h&apos;, u&apos;Source/WebCore/rendering/RenderVideo.h&apos;, u&apos;Source/WebCore/rendering/RenderView.h&apos;, u&apos;Source/WebCore/rendering/RenderWidget.h&apos;, u&apos;Source/WebCore/rendering/RootInlineBox.h&apos;, u&apos;Source/WebCore/rendering/mathml/RenderMathMLBlock.h&apos;, u&apos;Source/WebCore/rendering/mathml/RenderMathMLFenced.h&apos;, u&apos;Source/WebCore/rendering/mathml/RenderMathMLFraction.h&apos;, u&apos;Source/WebCore/rendering/mathml/RenderMathMLMath.h&apos;, u&apos;Source/WebCore/rendering/mathml/RenderMathMLOperator.h&apos;, u&apos;Source/WebCore/rendering/mathml/RenderMathMLRoot.h&apos;, u&apos;Source/WebCore/rendering/mathml/RenderMathMLRow.h&apos;, u&apos;Source/WebCore/rendering/mathml/RenderMathMLScripts.h&apos;, u&apos;Source/WebCore/rendering/mathml/RenderMathMLSpace.h&apos;, u&apos;Source/WebCore/rendering/mathml/RenderMathMLSquareRoot.h&apos;, u&apos;Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h&apos;, u&apos;Source/WebCore/rendering/shapes/BoxShape.h&apos;, u&apos;Source/WebCore/rendering/shapes/PolygonShape.h&apos;, u&apos;Source/WebCore/rendering/shapes/RasterShape.h&apos;, u&apos;Source/WebCore/rendering/shapes/RectangleShape.h&apos;, u&apos;Source/WebCore/rendering/shapes/ShapeInsideInfo.h&apos;, u&apos;Source/WebCore/rendering/shapes/ShapeOutsideInfo.h&apos;, u&apos;Source/WebCore/rendering/style/BasicShapes.h&apos;, u&apos;Source/WebCore/rendering/style/ContentData.h&apos;, u&apos;Source/WebCore/rendering/style/StyleCachedImage.h&apos;, u&apos;Source/WebCore/rendering/style/StyleCachedImageSet.h&apos;, u&apos;Source/WebCore/rendering/style/StyleGeneratedImage.h&apos;, u&apos;Source/WebCore/rendering/style/StylePendingImage.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGBlock.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGContainer.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGForeignObject.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGGradientStop.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGHiddenContainer.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGImage.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGInline.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGInlineText.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGModelObject.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGPath.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGResourceClipper.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGResourceContainer.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGResourceFilter.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGResourceGradient.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGResourceMarker.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGResourceMasker.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGResourcePattern.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGResourceSolidColor.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGRoot.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGShape.cpp&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGShape.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGText.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGTextPath.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGViewportContainer.h&apos;, u&apos;Source/WebCore/rendering/svg/SVGInlineFlowBox.h&apos;, u&apos;Source/WebCore/rendering/svg/SVGInlineTextBox.h&apos;, u&apos;Source/WebCore/rendering/svg/SVGRootInlineBox.h&apos;, u&apos;Source/WebCore/rendering/svg/SVGTextRunRenderingContext.h&apos;, u&apos;Source/WebCore/storage/StorageAreaImpl.h&apos;, u&apos;Source/WebCore/storage/StorageNamespaceImpl.h&apos;, u&apos;Source/WebCore/svg/SVGAElement.h&apos;, u&apos;Source/WebCore/svg/SVGAltGlyphDefElement.h&apos;, u&apos;Source/WebCore/svg/SVGAltGlyphElement.h&apos;, u&apos;Source/WebCore/svg/SVGAltGlyphItemElement.h&apos;, u&apos;Source/WebCore/svg/SVGAnimateElement.h&apos;, u&apos;Source/WebCore/svg/SVGAnimateMotionElement.h&apos;, u&apos;Source/WebCore/svg/SVGAnimateTransformElement.h&apos;, u&apos;Source/WebCore/svg/SVGAnimatedAngle.h&apos;, u&apos;Source/WebCore/svg/SVGAnimatedBoolean.h&apos;, u&apos;Source/WebCore/svg/SVGAnimatedColor.h&apos;, u&apos;Source/WebCore/svg/SVGAnimatedEnumeration.h&apos;, u&apos;Source/WebCore/svg/SVGAnimatedInteger.h&apos;, u&apos;Source/WebCore/svg/SVGAnimatedIntegerOptionalInteger.h&apos;, u&apos;Source/WebCore/svg/SVGAnimatedLength.h&apos;, u&apos;Source/WebCore/svg/SVGAnimatedLengthList.h&apos;, u&apos;Source/WebCore/svg/SVGAnimatedNumber.h&apos;, u&apos;Source/WebCore/svg/SVGAnimatedNumberList.h&apos;, u&apos;Source/WebCore/svg/SVGAnimatedNumberOptionalNumber.h&apos;, u&apos;Source/WebCore/svg/SVGAnimatedPath.h&apos;, u&apos;Source/WebCore/svg/SVGAnimatedPointList.h&apos;, u&apos;Source/WebCore/svg/SVGAnimatedPreserveAspectRatio.h&apos;, u&apos;Source/WebCore/svg/SVGAnimatedRect.h&apos;, u&apos;Source/WebCore/svg/SVGAnimatedString.h&apos;, u&apos;Source/WebCore/svg/SVGAnimatedTransformList.h&apos;, u&apos;Source/WebCore/svg/SVGAnimationElement.h&apos;, u&apos;Source/WebCore/svg/SVGCircleElement.h&apos;, u&apos;Source/WebCore/svg/SVGClipPathElement.h&apos;, u&apos;Source/WebCore/svg/SVGComponentTransferFunctionElement.h&apos;, u&apos;Source/WebCore/svg/SVGCursorElement.h&apos;, u&apos;Source/WebCore/svg/SVGDefsElement.h&apos;, u&apos;Source/WebCore/svg/SVGDocument.h&apos;, u&apos;Source/WebCore/svg/SVGElement.h&apos;, u&apos;Source/WebCore/svg/SVGElementInstance.h&apos;, u&apos;Source/WebCore/svg/SVGEllipseElement.h&apos;, u&apos;Source/WebCore/svg/SVGFEBlendElement.h&apos;, u&apos;Source/WebCore/svg/SVGFEColorMatrixElement.h&apos;, u&apos;Source/WebCore/svg/SVGFEComponentTransferElement.h&apos;, u&apos;Source/WebCore/svg/SVGFECompositeElement.h&apos;, u&apos;Source/WebCore/svg/SVGFEConvolveMatrixElement.h&apos;, u&apos;Source/WebCore/svg/SVGFEDiffuseLightingElement.h&apos;, u&apos;Source/WebCore/svg/SVGFEDisplacementMapElement.h&apos;, u&apos;Source/WebCore/svg/SVGFEDropShadowElement.h&apos;, u&apos;Source/WebCore/svg/SVGFEGaussianBlurElement.h&apos;, u&apos;Source/WebCore/svg/SVGFEImageElement.h&apos;, u&apos;Source/WebCore/svg/SVGFELightElement.h&apos;, u&apos;Source/WebCore/svg/SVGFEMergeNodeElement.h&apos;, u&apos;Source/WebCore/svg/SVGFEMorphologyElement.h&apos;, u&apos;Source/WebCore/svg/SVGFEOffsetElement.h&apos;, u&apos;Source/WebCore/svg/SVGFESpecularLightingElement.h&apos;, u&apos;Source/WebCore/svg/SVGFETileElement.h&apos;, u&apos;Source/WebCore/svg/SVGFETurbulenceElement.h&apos;, u&apos;Source/WebCore/svg/SVGFilterElement.h&apos;, u&apos;Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h&apos;, u&apos;Source/WebCore/svg/SVGFontElement.h&apos;, u&apos;Source/WebCore/svg/SVGFontFaceElement.h&apos;, u&apos;Source/WebCore/svg/SVGFontFaceFormatElement.h&apos;, u&apos;Source/WebCore/svg/SVGFontFaceNameElement.h&apos;, u&apos;Source/WebCore/svg/SVGFontFaceSrcElement.h&apos;, u&apos;Source/WebCore/svg/SVGFontFaceUriElement.h&apos;, u&apos;Source/WebCore/svg/SVGForeignObjectElement.h&apos;, u&apos;Source/WebCore/svg/SVGGElement.h&apos;, u&apos;Source/WebCore/svg/SVGGlyphElement.h&apos;, u&apos;Source/WebCore/svg/SVGGlyphRefElement.h&apos;, u&apos;Source/WebCore/svg/SVGGradientElement.h&apos;, u&apos;Source/WebCore/svg/SVGGraphicsElement.h&apos;, u&apos;Source/WebCore/svg/SVGHKernElement.h&apos;, u&apos;Source/WebCore/svg/SVGImageElement.h&apos;, u&apos;Source/WebCore/svg/SVGLineElement.h&apos;, u&apos;Source/WebCore/svg/SVGLinearGradientElement.h&apos;, u&apos;Source/WebCore/svg/SVGMPathElement.h&apos;, u&apos;Source/WebCore/svg/SVGMarkerElement.h&apos;, u&apos;Source/WebCore/svg/SVGMaskElement.h&apos;, u&apos;Source/WebCore/svg/SVGMetadataElement.h&apos;, u&apos;Source/WebCore/svg/SVGPathElement.h&apos;, u&apos;Source/WebCore/svg/SVGPathStringBuilder.h&apos;, u&apos;Source/WebCore/svg/SVGPatternElement.h&apos;, u&apos;Source/WebCore/svg/SVGPolyElement.h&apos;, u&apos;Source/WebCore/svg/SVGRadialGradientElement.h&apos;, u&apos;Source/WebCore/svg/SVGRectElement.h&apos;, u&apos;Source/WebCore/svg/SVGSVGElement.h&apos;, u&apos;Source/WebCore/svg/SVGScriptElement.h&apos;, u&apos;Source/WebCore/svg/SVGSetElement.h&apos;, u&apos;Source/WebCore/svg/SVGStopElement.h&apos;, u&apos;Source/WebCore/svg/SVGStyleElement.h&apos;, u&apos;Source/WebCore/svg/SVGSwitchElement.h&apos;, u&apos;Source/WebCore/svg/SVGSymbolElement.h&apos;, u&apos;Source/WebCore/svg/SVGTRefElement.cpp&apos;, u&apos;Source/WebCore/svg/SVGTRefElement.h&apos;, u&apos;Source/WebCore/svg/SVGTSpanElement.h&apos;, u&apos;Source/WebCore/svg/SVGTextContentElement.h&apos;, u&apos;Source/WebCore/svg/SVGTextElement.h&apos;, u&apos;Source/WebCore/svg/SVGTextPathElement.h&apos;, u&apos;Source/WebCore/svg/SVGTextPositioningElement.h&apos;, u&apos;Source/WebCore/svg/SVGTitleElement.h&apos;, u&apos;Source/WebCore/svg/SVGTransformable.h&apos;, u&apos;Source/WebCore/svg/SVGUnknownElement.h&apos;, u&apos;Source/WebCore/svg/SVGUseElement.h&apos;, u&apos;Source/WebCore/svg/SVGVKernElement.h&apos;, u&apos;Source/WebCore/svg/SVGViewElement.h&apos;, u&apos;Source/WebCore/svg/animation/SVGSMILElement.h&apos;, u&apos;Source/WebCore/svg/graphics/SVGImage.h&apos;, u&apos;Source/WebCore/svg/graphics/SVGImageForContainer.h&apos;, u&apos;Source/WebCore/svg/graphics/filters/SVGFilter.h&apos;, u&apos;Source/WebCore/svg/properties/SVGAnimatedListPropertyTearOff.h&apos;, u&apos;Source/WebCore/svg/properties/SVGAnimatedTransformListPropertyTearOff.h&apos;, u&apos;Source/WebCore/svg/properties/SVGListPropertyTearOff.h&apos;, u&apos;Source/WebCore/svg/properties/SVGPathSegListPropertyTearOff.h&apos;, u&apos;Source/WebCore/svg/properties/SVGPropertyTearOff.h&apos;, u&apos;Source/WebCore/testing/InternalSettings.cpp&apos;, u&apos;Source/WebCore/testing/Internals.cpp&apos;, u&apos;Source/WebCore/testing/MockCDM.cpp&apos;, u&apos;Source/WebCore/testing/MockCDM.h&apos;, u&apos;Source/WebCore/workers/AbstractWorker.h&apos;, u&apos;Source/WebCore/workers/DedicatedWorkerGlobalScope.h&apos;, u&apos;Source/WebCore/workers/DedicatedWorkerThread.h&apos;, u&apos;Source/WebCore/workers/SharedWorker.h&apos;, u&apos;Source/WebCore/workers/SharedWorkerGlobalScope.h&apos;, u&apos;Source/WebCore/workers/SharedWorkerThread.h&apos;, u&apos;Source/WebCore/workers/Worker.h&apos;, u&apos;Source/WebCore/workers/WorkerEventQueue.cpp&apos;, u&apos;Source/WebCore/workers/WorkerEventQueue.h&apos;, u&apos;Source/WebCore/workers/WorkerGlobalScope.h&apos;, u&apos;Source/WebCore/workers/WorkerMessagingProxy.h&apos;, u&apos;Source/WebCore/workers/WorkerObjectProxy.h&apos;, u&apos;Source/WebCore/workers/WorkerScriptLoader.h&apos;, u&apos;Source/WebCore/workers/WorkerThread.cpp&apos;, u&apos;Source/WebCore/xml/XMLHttpRequest.h&apos;, u&apos;Source/WebCore/xml/XMLHttpRequestUpload.h&apos;, u&apos;Source/WebCore/xml/XPathFunctions.cpp&apos;, u&apos;Source/WebCore/xml/XPathPath.h&apos;, u&apos;Source/WebCore/xml/XPathPredicate.h&apos;, u&apos;Source/WebCore/xml/XSLStyleSheet.h&apos;, u&apos;Source/WebKit/efl/ChangeLog&apos;, u&apos;Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.h&apos;, u&apos;Source/WebKit/efl/WebCoreSupport/ProgressTrackerClientEfl.h&apos;, u&apos;Source/WebKit/gtk/ChangeLog&apos;, u&apos;Source/WebKit/gtk/WebCoreSupport/EditorClientGtk.h&apos;, u&apos;Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h&apos;, u&apos;Source/WebKit/gtk/WebCoreSupport/ProgressTrackerClientGtk.h&apos;, u&apos;Source/WebKit/ios/ChangeLog&apos;, u&apos;Source/WebKit/ios/Misc/EmojiFallbackFontSelector.h&apos;, u&apos;Source/WebKit/ios/Storage/WebSQLiteDatabaseTrackerClient.h&apos;, u&apos;Source/WebKit/ios/WebCoreSupport/PopupMenuIOS.h&apos;, u&apos;Source/WebKit/ios/WebCoreSupport/SearchPopupMenuIOS.h&apos;, u&apos;Source/WebKit/ios/WebCoreSupport/WebChromeClientIOS.h&apos;, u&apos;Source/WebKit/ios/WebCoreSupport/WebDiskImageCacheClientIOS.h&apos;, u&apos;Source/WebKit/mac/ChangeLog&apos;, u&apos;Source/WebKit/mac/Storage/WebDatabaseManagerClient.h&apos;, u&apos;Source/WebKit/mac/Storage/WebStorageTrackerClient.h&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebAlternativeTextClient.h&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebChromeClient.h&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebContextMenuClient.h&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebDeviceOrientationClient.h&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebDragClient.h&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebEditorClient.h&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.h&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebFrameNetworkingContext.h&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebGeolocationClient.h&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.h&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebNotificationClient.h&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.h&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebProgressTrackerClient.h&apos;, u&apos;Source/WebKit/mac/WebCoreSupport/WebUserMediaClient.h&apos;, u&apos;Source/WebKit/mac/WebView/WebScriptDebugger.h&apos;, u&apos;Source/WebKit/mac/WebView/WebViewData.h&apos;, u&apos;Source/WebKit/win/AccessibleDocument.h&apos;, u&apos;Source/WebKit/win/ChangeLog&apos;, u&apos;Source/WebKit/win/FullscreenVideoController.cpp&apos;, u&apos;Source/WebKit/win/WebCoreSupport/WebChromeClient.h&apos;, u&apos;Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.h&apos;, u&apos;Source/WebKit/win/WebCoreSupport/WebFrameNetworkingContext.h&apos;, u&apos;Source/WebKit/win/WebCoreSupport/WebInspectorClient.h&apos;, u&apos;Source/WebKit/win/WebHistory.h&apos;, u&apos;Source/WebKit/wince/ChangeLog&apos;, u&apos;Source/WebKit/wince/WebCoreSupport/ChromeClientWinCE.h&apos;, u&apos;Source/WebKit/wince/WebCoreSupport/ContextMenuClientWinCE.h&apos;, u&apos;Source/WebKit/wince/WebCoreSupport/DragClientWinCE.h&apos;, u&apos;Source/WebKit/wince/WebCoreSupport/EditorClientWinCE.h&apos;, u&apos;Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.h&apos;, u&apos;Source/WebKit/wince/WebCoreSupport/FrameNetworkingContextWinCE.h&apos;, u&apos;Source/WebKit/wince/WebCoreSupport/InspectorClientWinCE.h&apos;, u&apos;Source/WebKit/wince/WebCoreSupport/PlatformStrategiesWinCE.h&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/DatabaseProcess/DatabaseProcess.h&apos;, u&apos;Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.h&apos;, u&apos;Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h&apos;, u&apos;Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h&apos;, u&apos;Source/WebKit2/NetworkProcess/AsynchronousNetworkLoaderClient.h&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcess.h&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkProcessPlatformStrategies.h&apos;, u&apos;Source/WebKit2/NetworkProcess/NetworkResourceLoader.h&apos;, u&apos;Source/WebKit2/NetworkProcess/RemoteNetworkingContext.h&apos;, u&apos;Source/WebKit2/NetworkProcess/SynchronousNetworkLoaderClient.h&apos;, u&apos;Source/WebKit2/NetworkProcess/mac/DiskCacheMonitor.h&apos;, u&apos;Source/WebKit2/PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm&apos;, u&apos;Source/WebKit2/PluginProcess/PluginControllerProxy.h&apos;, u&apos;Source/WebKit2/PluginProcess/PluginProcess.h&apos;, u&apos;Source/WebKit2/PluginProcess/WebProcessConnection.h&apos;, u&apos;Source/WebKit2/Shared/API/Cocoa/RemoteObjectRegistry.h&apos;, u&apos;Source/WebKit2/Shared/APIObject.h&apos;, u&apos;Source/WebKit2/Shared/AsyncRequest.h&apos;, u&apos;Source/WebKit2/Shared/AsyncTask.h&apos;, u&apos;Source/WebKit2/Shared/Authentication/AuthenticationManager.h&apos;, u&apos;Source/WebKit2/Shared/ChildProcess.h&apos;, u&apos;Source/WebKit2/Shared/ChildProcessProxy.h&apos;, u&apos;Source/WebKit2/Shared/CoordinatedGraphics/WebCoordinatedSurface.h&apos;, u&apos;Source/WebKit2/Shared/Downloads/Download.h&apos;, u&apos;Source/WebKit2/Shared/Network/CustomProtocols/CustomProtocolManager.h&apos;, u&apos;Source/WebKit2/Shared/WebConnection.h&apos;, u&apos;Source/WebKit2/Shared/WebResourceBuffer.h&apos;, u&apos;Source/WebKit2/Shared/cf/KeyedEncoder.h&apos;, u&apos;Source/WebKit2/Shared/mac/SecItemShim.h&apos;, u&apos;Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm&apos;, u&apos;Source/WebKit2/UIProcess/API/gtk/PageClientImpl.h&apos;, u&apos;Source/WebKit2/UIProcess/API/ios/PageClientImplIOS.h&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/PageClientImpl.h&apos;, u&apos;Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/CoordinatedGraphics/WebView.h&apos;, u&apos;Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/Downloads/DownloadProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/DrawingAreaProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/Scrolling/RemoteScrollingTree.h&apos;, u&apos;Source/WebKit2/UIProcess/Storage/StorageManager.h&apos;, u&apos;Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebBatteryManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebConnectionToWebProcess.h&apos;, u&apos;Source/WebKit2/UIProcess/WebContext.h&apos;, u&apos;Source/WebKit2/UIProcess/WebCookieManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebDatabaseManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebFullScreenManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebGeolocationManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebIconDatabase.h&apos;, u&apos;Source/WebKit2/UIProcess/WebInspectorProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebKeyValueStorageManager.h&apos;, u&apos;Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebNetworkInfoManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebOriginDataManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebProcessProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebVibrationProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.h&apos;, u&apos;Source/WebKit2/UIProcess/efl/WebViewEfl.h&apos;, u&apos;Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/mac/SecItemShimProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/mac/ViewGestureController.h&apos;, u&apos;Source/WebKit2/UIProcess/mac/WebColorPickerMac.h&apos;, u&apos;Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.h&apos;, u&apos;Source/WebKit2/WebProcess/ApplicationCache/WebApplicationCacheManager.h&apos;, u&apos;Source/WebKit2/WebProcess/Battery/WebBatteryManager.h&apos;, u&apos;Source/WebKit2/WebProcess/Cookies/WebCookieManager.h&apos;, u&apos;Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h&apos;, u&apos;Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.h&apos;, u&apos;Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.h&apos;, u&apos;Source/WebKit2/WebProcess/EntryPoint/mac/LegacyProcess/WebContentProcessMain.mm&apos;, u&apos;Source/WebKit2/WebProcess/FileAPI/BlobRegistryProxy.h&apos;, u&apos;Source/WebKit2/WebProcess/Geolocation/WebGeolocationManager.h&apos;, u&apos;Source/WebKit2/WebProcess/IconDatabase/WebIconDatabaseProxy.h&apos;, u&apos;Source/WebKit2/WebProcess/InjectedBundle/API/c/mac/WKBundlePageBannerMac.mm&apos;, u&apos;Source/WebKit2/WebProcess/MediaCache/WebMediaCacheManager.h&apos;, u&apos;Source/WebKit2/WebProcess/Network/NetworkProcessConnection.h&apos;, u&apos;Source/WebKit2/WebProcess/Network/WebResourceLoadScheduler.h&apos;, u&apos;Source/WebKit2/WebProcess/Network/WebResourceLoader.h&apos;, u&apos;Source/WebKit2/WebProcess/NetworkInfo/WebNetworkInfoManager.h&apos;, u&apos;Source/WebKit2/WebProcess/Notifications/WebNotificationManager.h&apos;, u&apos;Source/WebKit2/WebProcess/OriginData/WebOriginDataManager.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginAnnotation.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginPasswordField.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PDF/PDFPluginTextAnnotation.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PluginProcessConnection.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PluginProcessConnectionManager.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PluginProxy.h&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PluginView.h&apos;, u&apos;Source/WebKit2/WebProcess/ResourceCache/WebResourceCacheManager.h&apos;, u&apos;Source/WebKit2/WebProcess/Scrolling/RemoteScrollingCoordinator.h&apos;, u&apos;Source/WebKit2/WebProcess/Storage/StorageAreaImpl.h&apos;, u&apos;Source/WebKit2/WebProcess/Storage/StorageAreaMap.h&apos;, u&apos;Source/WebKit2/WebProcess/Storage/StorageNamespaceImpl.h&apos;, u&apos;Source/WebKit2/WebProcess/WebConnectionToUIProcess.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebAlternativeTextClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebBatteryClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebColorChooser.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebContextMenuClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebDatabaseManager.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebDeviceProximityClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebDragClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebGeolocationClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorFrontendClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebNavigatorContentUtilsClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebNetworkInfoClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebNotificationClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebPopupMenu.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebProgressTrackerClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebSearchPopupMenu.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebVibrationClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/EventDispatcher.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/ViewGestureGeometryCollector.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/mac/GraphicsLayerCARemote.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeContext.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h&apos;, u&apos;Source/WebKit2/WebProcess/WebProcess.h&apos;, u&apos;Source/WebKit2/WebProcess/soup/WebSoupRequestManager.h&apos;, u&apos;Tools/ChangeLog&apos;, u&apos;Tools/DumpRenderTree/gtk/fonts/fonts.conf&apos;, u&apos;Tools/Scripts/do-webcore-rename&apos;, u&apos;Tools/TestWebKitAPI/Tests/WebKit2/DidAssociateFormControls_Bundle.cpp&apos;, u&apos;Tools/TestWebKitAPI/Tests/WebKit2/InjectedBundleFrameHitTest_Bundle.cpp&apos;, u&apos;Tools/TestWebKitAPI/Tests/WebKit2/WillLoad_Bundle.cpp&apos;, u&apos;Tools/TestWebKitAPI/Tests/WebKit2ObjC/CustomProtocolsInvalidScheme_Bundle.cpp&apos;, u&apos;Tools/TestWebKitAPI/Tests/mac/PageVisibilityStateWithWindowChanges.mm&apos;, &apos;--commit-queue&apos;]&quot; exit_code: 1
ERROR: Source/WebCore/rendering/RenderText.h:111:  The parameter name &quot;s&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/bindings/js/JSEventListener.h:50:  Wrong number of spaces before statement. (expected: 20)  [whitespace/indent] [4]
ERROR: Source/WebKit2/UIProcess/API/ios/PageClientImplIOS.h:96:  The parameter name &quot;rootLayer&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/UIProcess/API/ios/PageClientImplIOS.h:101:  The parameter name &quot;color&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/UIProcess/API/ios/PageClientImplIOS.h:103:  The parameter name &quot;viewportArguments&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h:183:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:48:  The parameter name &quot;data&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/crypto/algorithms/CryptoAlgorithmHMAC.h:48:  The parameter name &quot;data&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/rendering/RenderBlock.h:189:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/rendering/RenderBlock.h:192:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/rendering/RenderBlock.h:208:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:94:  The parameter name &quot;volume&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 12 in 1156 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968837</commentid>
    <comment_count>3</comment_count>
      <attachid>221378</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-16 11:39:07 -0800</bug_when>
    <thetext>Comment on attachment 221378
patch

Clearing flags on attachment: 221378

Committed r162139: &lt;http://trac.webkit.org/changeset/162139&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968838</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-16 11:39:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221378</attachid>
            <date>2014-01-16 08:12:48 -0800</date>
            <delta_ts>2014-01-16 11:39:06 -0800</delta_ts>
            <desc>patch</desc>
            <filename>override-remove.patch</filename>
            <type>text/plain</type>
            <size>2287624</size>
            <attacher name="Peter Molnar">pmolnar.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElXcmFwcGVyT2JqZWN0
Lm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmplY3QubW0KaW5k
ZXggZGQzYWYzOS4uZDM4ZTY0MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0FQSVdyYXBwZXJPYmplY3QubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0FQSVdyYXBwZXJPYmplY3QubW0KQEAgLTM5LDggKzM5LDggQEAKIAogY2xhc3MgSlNBUElXcmFw
cGVyT2JqZWN0SGFuZGxlT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewogcHVi
bGljOgotICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
LCB2b2lkKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xv
dFZpc2l0b3ImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiwgdm9pZCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1Jl
YWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBj
b250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJikgb3ZlcnJpZGU7CiB9OwogCiBzdGF0aWMgSlNBUElX
cmFwcGVyT2JqZWN0SGFuZGxlT3duZXIqIGpzQVBJV3JhcHBlck9iamVjdEhhbmRsZU93bmVyKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggN2Fk
MTYwOC4uM2Y1ODkwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
T2JqZWN0LmgKQEAgLTExMCw3ICsxMTAsNyBAQCBzdHJ1Y3QgSlNDYWxsYmFja09iamVjdERhdGEg
OiBXZWFrSGFuZGxlT3duZXIgewogICAgICAgICBQcml2YXRlUHJvcGVydHlNYXAgbV9wcm9wZXJ0
eU1hcDsKICAgICB9OwogICAgIE93blB0cjxKU1ByaXZhdGVQcm9wZXJ0eU1hcD4gbV9wcml2YXRl
UHJvcGVydGllczsKLSAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSGFuZGxlPFVua25vd24+LCB2
b2lkKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEhhbmRsZTxVbmtub3du
Piwgdm9pZCopIG92ZXJyaWRlOwogfTsKIAogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNNYW5hZ2VkVmFsdWUubW0KaW5kZXggMTljZmFlZC4uNDU4MWEwZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5tbQorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLm1tCkBAIC00MCw4ICs0MCw4IEBACiAK
IGNsYXNzIEpTTWFuYWdlZFZhbHVlSGFuZGxlT3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxl
T3duZXIgewogcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxK
U0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9p
ZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpIG92
ZXJyaWRlOwogfTsKIAogc3RhdGljIEpTTWFuYWdlZFZhbHVlSGFuZGxlT3duZXIqIG1hbmFnZWRW
YWx1ZUhhbmRsZU93bmVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNTY3JpcHRSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdFJlZi5j
cHAKaW5kZXggOWJhODJhNi4uOGRkOTc3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU1NjcmlwdFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U1NjcmlwdFJlZi5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
V1RGOjphZG9wdFJlZihuZXcgT3BhcXVlSlNTY3JpcHQodm0sIHVybCwgc3RhcnRpbmdMaW5lTnVt
YmVyLCBzb3VyY2UpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgc291cmNl
KCkgY29uc3QgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgc291cmNlKCkgY29u
c3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiBtX3NvdXJjZTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZwppbmRleCAyYjIwNWUzLi5lZmI2ZjY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxNC0wMS0xNiAgUGV0ZXIgTW9sbmFyICA8cG1v
bG5hci51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgorCisgICAgICAgIFJlbW92ZSB3b3Jr
YXJvdW5kIGZvciBjb21waWxlcnMgbm90IHN1cHBvcnRpbmcgZXhwbGljaXQgb3ZlcnJpZGUgY29u
dHJvbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3
MTExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm93
IGFsbCBjb21waWxlcnMgc3VwcG9ydCBleHBsaWNpdCBvdmVycmlkZSBjb250cm9sLCB0aGlzIHdv
cmthcm91bmQgY2FuIGJlIHJlbW92ZWQuCisKKyAgICAgICAgKiBBUEkvSlNBUElXcmFwcGVyT2Jq
ZWN0Lm1tOgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0Lmg6CisgICAgICAgICogQVBJ
L0pTTWFuYWdlZFZhbHVlLm1tOgorICAgICAgICAqIEFQSS9KU1NjcmlwdFJlZi5jcHA6CisgICAg
ICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2Nr
SmV0dGlzb25pbmdXYXRjaHBvaW50Lmg6CisgICAgICAgICogYnl0ZWNvZGUvUHJvZmlsZWRDb2Rl
QmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuaDoKKyAgICAgICAgKiBieXRlY29kZS9TdHJ1Y3R1
cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50Lmg6CisgICAgICAgICogZGZnL0RGR0FycmF5aWZ5U2xv
d1BhdGhHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBkZmcvREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xv
d1BhdGhHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBkZmcvREZHRmFpbGVkRmluYWxpemVyLmg6Cisg
ICAgICAgICogZGZnL0RGR0pJVENvZGUuaDoKKyAgICAgICAgKiBkZmcvREZHSklURmluYWxpemVy
Lmg6CisgICAgICAgICogZGZnL0RGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9y
Lmg6CisgICAgICAgICogZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmg6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAqIGhlYXAvSGVhcC5oOgorICAgICAg
ICAqIGhlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmg6CisgICAgICAgICogaGVhcC9TdXBlclJlZ2lv
bi5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICog
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9y
ZW1vdGUvUmVtb3RlSW5zcGVjdG9yLmg6CisgICAgICAgICogaW5zcGVjdG9yL3JlbW90ZS9SZW1v
dGVJbnNwZWN0b3JEZWJ1Z2dhYmxlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIGluc3BlY3Rvci9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHk6CisgICAgICAgIChHZW5lcmF0b3IuZ28p
OgorICAgICAgICAqIGppdC9DbG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmg6CisgICAgICAgICogaml0
L0V4ZWN1dGFibGVBbGxvY2F0b3JGaXhlZFZNUG9vbC5jcHA6CisgICAgICAgICogaml0L0dDQXdh
cmVKSVRTdHViUm91dGluZS5oOgorICAgICAgICAqIGppdC9KSVRDb2RlLmg6CisgICAgICAgICog
aml0L0pJVFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmg6CisgICAgICAgICogcGFy
c2VyL05vZGVzLmg6CisgICAgICAgICogcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmg6CisgICAgICAg
ICogcnVudGltZS9EYXRhVmlldy5oOgorICAgICAgICAqIHJ1bnRpbWUvR0NBY3Rpdml0eUNhbGxi
YWNrLmg6CisgICAgICAgICogcnVudGltZS9HZW5lcmljVHlwZWRBcnJheVZpZXcuaDoKKyAgICAg
ICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oOgorICAgICAgICAqIHJ1bnRp
bWUvSlNQcm9taXNlUmVhY3Rpb24uY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ2FjaGUu
aDoKKyAgICAgICAgKiBydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmg6CisgICAg
ICAgICogcnVudGltZS9TeW1ib2xUYWJsZS5oOgorICAgICAgICAqIHJ1bnRpbWUvV2Vha01hcERh
dGEuaDoKKwogMjAxNC0wMS0xNSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29t
PgogCiAgICAgICAgIFtpT1NdIENsZWFuIHVwIFJFTU9URV9JTlNQRUNUT1IgY29kZSBpbiBPcGVu
U291cmNlIGFmdGVyIHRoZSBpT1MgbWVyZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suaAppbmRleCBjZjYyZjhlLi4yMmExMWZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCkBAIC05MjMsOCArOTIzLDggQEAgcHVibGljOgog
ICAgIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggdm9pZCBlbmRWYWxpZGF0aW9uRGlkRmFpbCgpOwog
CiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB2b2lkIHZpc2l0V2Vha1JlZmVyZW5jZXMoU2xvdFZp
c2l0b3ImKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemVVbmNvbmRpdGlvbmFs
bHkoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdmlzaXRXZWFrUmVmZXJlbmNlcyhTbG90
VmlzaXRvciYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZVVuY29uZGl0aW9u
YWxseSgpIG92ZXJyaWRlOwogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAgICAgdm9pZCB0YWxseUZy
ZXF1ZW50RXhpdFNpdGVzKCk7CkBAIC0xMTQ2LDggKzExNDYsOCBAQCBwdWJsaWM6CiAKICNpZiBF
TkFCTEUoSklUKQogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgQ29kZUJsb2NrKiByZXBsYWNlbWVu
dCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgREZHOjpDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0
eUxldmVsSW50ZXJuYWwoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIENvZGVCbG9jayogcmVwbGFj
ZW1lbnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIERGRzo6Q2FwYWJpbGl0eUxldmVsIGNhcGFi
aWxpdHlMZXZlbEludGVybmFsKCkgb3ZlcnJpZGU7CiAjZW5kaWYKIH07CiAKQEAgLTExNjgsOCAr
MTE2OCw4IEBAIHB1YmxpYzoKICAgICAKICNpZiBFTkFCTEUoSklUKQogcHJvdGVjdGVkOgotICAg
IHZpcnR1YWwgQ29kZUJsb2NrKiByZXBsYWNlbWVudCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
REZHOjpDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsSW50ZXJuYWwoKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIENvZGVCbG9jayogcmVwbGFjZW1lbnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIERGRzo6Q2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbEludGVybmFsKCkgb3ZlcnJp
ZGU7CiAjZW5kaWYKICAgICAKIHByaXZhdGU6CkBAIC0xMTkwLDggKzExOTAsOCBAQCBwdWJsaWM6
CiAgICAgCiAjaWYgRU5BQkxFKEpJVCkKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIENvZGVCbG9j
ayogcmVwbGFjZW1lbnQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIERGRzo6Q2FwYWJpbGl0eUxl
dmVsIGNhcGFiaWxpdHlMZXZlbEludGVybmFsKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBDb2Rl
QmxvY2sqIHJlcGxhY2VtZW50KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBERkc6OkNhcGFiaWxp
dHlMZXZlbCBjYXBhYmlsaXR5TGV2ZWxJbnRlcm5hbCgpIG92ZXJyaWRlOwogI2VuZGlmCiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrSmV0
dGlzb25pbmdXYXRjaHBvaW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50LmgKaW5kZXggOTI0YWZkYi4uODlkODdmNCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9ja0pldHRpc29u
aW5nV2F0Y2hwb2ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAg
ICAgfQogICAgIAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCBmaXJlSW50ZXJuYWwoKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZmlyZUludGVybmFsKCkgb3ZlcnJpZGU7CiAKIHBy
aXZhdGU6CiAgICAgQ29kZUJsb2NrKiBtX2NvZGVCbG9jazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qcm9maWxlZENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hw
b2ludC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2Nr
SmV0dGlzb25pbmdXYXRjaHBvaW50LmgKaW5kZXggZTk5MmU5MC4uMTA4ZTIzYSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Byb2ZpbGVkQ29kZUJsb2NrSmV0dGlz
b25pbmdXYXRjaHBvaW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1By
b2ZpbGVkQ29kZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50LmgKQEAgLTUxLDcgKzUxLDcgQEAg
cHVibGljOgogICAgIH0KICAgICAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgZmlyZUlu
dGVybmFsKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGZpcmVJbnRlcm5hbCgpIG92ZXJy
aWRlOwogCiBwcml2YXRlOgogICAgIENvZGVPcmlnaW4gbV9jb2RlT3JpZ2luOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJDbGVhcmluZ1dh
dGNocG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHVi
Q2xlYXJpbmdXYXRjaHBvaW50LmgKaW5kZXggMmZhNTYwZS4uNGM2YmRlYyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNo
cG9pbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1
YkNsZWFyaW5nV2F0Y2hwb2ludC5oCkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICAgICAg
T3duUHRyPFN0cnVjdHVyZVN0dWJDbGVhcmluZ1dhdGNocG9pbnQ+JiBoZWFkKTsKIAogcHJvdGVj
dGVkOgotICAgIHZpcnR1YWwgdm9pZCBmaXJlSW50ZXJuYWwoKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgZmlyZUludGVybmFsKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgV2F0Y2hw
b2ludHNPblN0cnVjdHVyZVN0dWJJbmZvJiBtX2hvbGRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlpZnlTbG93UGF0aEdlbmVyYXRvci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheWlmeVNsb3dQYXRoR2VuZXJhdG9yLmgKaW5kZXgg
MjAxY2E0Ny4uOWM3ZDQ3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBcnJheWlmeVNsb3dQYXRoR2VuZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBcnJheWlmeVNsb3dQYXRoR2VuZXJhdG9yLmgKQEAgLTczLDcgKzczLDcgQEAgcHVi
bGljOgogICAgIH0KICAgICAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgZ2VuZXJhdGVJ
bnRlcm5hbChTcGVjdWxhdGl2ZUpJVCogaml0KSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBn
ZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklUKiBqaXQpIG92ZXJyaWRlCiAgICAgewogICAg
ICAgICBsaW5rRnJvbShqaXQpOwogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5lcmF0b3IuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FsbEFycmF5QWxsb2NhdG9yU2xvd1BhdGhHZW5l
cmF0b3IuaAppbmRleCA3MjUyOGYxLi5hYzdkYzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NhbGxBcnJheUFsbG9jYXRvclNsb3dQYXRoR2VuZXJhdG9yLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYWxsQXJyYXlBbGxvY2F0b3JTbG93UGF0
aEdlbmVyYXRvci5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3Rl
ZDoKLSAgICB2aXJ0dWFsIHZvaWQgZ2VuZXJhdGVJbnRlcm5hbChTcGVjdWxhdGl2ZUpJVCogaml0
KSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZl
SklUKiBqaXQpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBsaW5rRnJvbShqaXQpOwogICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wbGFucy5zaXplKCk7ICsraSkKQEAgLTkyLDcg
KzkyLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCBn
ZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklUKiBqaXQpIE9WRVJSSURFCisgICAgdmlydHVh
bCB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQqIGppdCkgb3ZlcnJpZGUKICAg
ICB7CiAgICAgICAgIGxpbmtGcm9tKGppdCk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBtX3BsYW5zLnNpemUoKTsgKytpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdGYWlsZWRGaW5hbGl6ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRmFpbGVkRmluYWxpemVyLmgKaW5kZXggNWEwOTg2Mi4uNmRmNWEzMCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGYWlsZWRGaW5hbGl6ZXIuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZhaWxlZEZpbmFsaXplci5oCkBAIC0zOSw4ICszOSw4
IEBAIHB1YmxpYzoKICAgICBGYWlsZWRGaW5hbGl6ZXIoUGxhbiYpOwogICAgIHZpcnR1YWwgfkZh
aWxlZEZpbmFsaXplcigpOwogICAgIAotICAgIHZpcnR1YWwgYm9vbCBmaW5hbGl6ZSgpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBmaW5hbGl6ZUZ1bmN0aW9uKCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBib29sIGZpbmFsaXplKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGZpbmFs
aXplRnVuY3Rpb24oKSBvdmVycmlkZTsKIH07CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmgKaW5kZXggM2E4OTk0NC4uMGU3NzFl
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmgKQEAgLTQ5LDggKzQ5LDgg
QEAgcHVibGljOgogICAgIEpJVENvZGUoKTsKICAgICB2aXJ0dWFsIH5KSVRDb2RlKCk7CiAgICAg
Ci0gICAgdmlydHVhbCBDb21tb25EYXRhKiBkZmdDb21tb24oKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIEpJVENvZGUqIGRmZygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgQ29tbW9uRGF0YSogZGZn
Q29tbW9uKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBKSVRDb2RlKiBkZmcoKSBvdmVycmlkZTsK
ICAgICAKICAgICBPU1JFbnRyeURhdGEqIGFwcGVuZE9TUkVudHJ5RGF0YSh1bnNpZ25lZCBieXRl
Y29kZUluZGV4LCB1bnNpZ25lZCBtYWNoaW5lQ29kZU9mZnNldCkKICAgICB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXplci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRGaW5hbGl6ZXIuaAppbmRleCAzZWE5YjcxLi41YzdjODJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVEZpbmFsaXplci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklURmluYWxpemVyLmgKQEAgLTQy
LDggKzQyLDggQEAgcHVibGljOgogICAgIEpJVEZpbmFsaXplcihQbGFuJiwgUGFzc1JlZlB0cjxK
SVRDb2RlPiwgUGFzc093blB0cjxMaW5rQnVmZmVyPiwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIHdp
dGhBcml0eUNoZWNrID0gTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKE1hY3JvQXNzZW1ibGVyQ29kZVB0
cjo6RW1wdHlWYWx1ZSkpOwogICAgIHZpcnR1YWwgfkpJVEZpbmFsaXplcigpOwogICAgIAotICAg
IHZpcnR1YWwgYm9vbCBmaW5hbGl6ZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBmaW5h
bGl6ZUZ1bmN0aW9uKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGZpbmFsaXplKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBib29sIGZpbmFsaXplRnVuY3Rpb24oKSBvdmVycmlkZTsKIAog
cHJpdmF0ZToKICAgICB2b2lkIGZpbmFsaXplQ29tbW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQYXRoR2VuZXJhdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhbmVTdHJpbmdHZXRCeVZhbFNsb3dQ
YXRoR2VuZXJhdG9yLmgKaW5kZXggNzhkZTg2Zi4uYjkxOTg0NyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYW5lU3RyaW5nR2V0QnlWYWxTbG93UGF0aEdlbmVyYXRv
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FuZVN0cmluZ0dldEJ5VmFs
U2xvd1BhdGhHZW5lcmF0b3IuaApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgfQogICAg
IAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0
aXZlSklUKiBqaXQpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIGdlbmVyYXRlSW50ZXJuYWwo
U3BlY3VsYXRpdmVKSVQqIGppdCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGxpbmtGcm9tKGpp
dCk7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
bG93UGF0aEdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTbG93UGF0
aEdlbmVyYXRvci5oCmluZGV4IDM3NTdlMTMuLjM0ZDM2MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU2xvd1BhdGhHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1Nsb3dQYXRoR2VuZXJhdG9yLmgKQEAgLTEwNiw3ICsxMDYsNyBA
QCBwdWJsaWM6CiAgICAgICAgICAgICBqaXQtPnNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzSW1wbChm
YWxzZSwgbV9wbGFucywgZXh0cmFjdFJlc3VsdChyZXN1bHQpKTsKICAgICB9CiAgICAgCi0gICAg
dmlydHVhbCBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsKCkgY29uc3QgT1ZFUlJJREUKKyAgICB2
aXJ0dWFsIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwoKSBjb25zdCBvdmVycmlkZQogICAgIHsK
ICAgICAgICAgcmV0dXJuIG1fY2FsbDsKICAgICB9CkBAIC0xNTYsNyArMTU2LDcgQEAgcHVibGlj
OgogICAgIH0KICAgICAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgZ2VuZXJhdGVJbnRl
cm5hbChTcGVjdWxhdGl2ZUpJVCogaml0KSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBnZW5l
cmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklUKiBqaXQpIG92ZXJyaWRlCiAgICAgewogICAgICAg
ICB0aGlzLT5zZXRVcChqaXQpOwogICAgICAgICB0aGlzLT5yZWNvcmRDYWxsKGppdC0+Y2FsbE9w
ZXJhdGlvbih0aGlzLT5tX2Z1bmN0aW9uLCBleHRyYWN0UmVzdWx0KHRoaXMtPm1fcmVzdWx0KSkp
OwpAQCAtMTgwLDcgKzE4MCw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiBwcm90ZWN0ZWQ6Ci0g
ICAgdmlydHVhbCB2b2lkIGdlbmVyYXRlSW50ZXJuYWwoU3BlY3VsYXRpdmVKSVQqIGppdCkgT1ZF
UlJJREUKKyAgICB2aXJ0dWFsIHZvaWQgZ2VuZXJhdGVJbnRlcm5hbChTcGVjdWxhdGl2ZUpJVCog
aml0KSBvdmVycmlkZQogICAgIHsKICAgICAgICAgdGhpcy0+c2V0VXAoaml0KTsKICAgICAgICAg
dGhpcy0+cmVjb3JkQ2FsbChqaXQtPmNhbGxPcGVyYXRpb24odGhpcy0+bV9mdW5jdGlvbiwgZXh0
cmFjdFJlc3VsdCh0aGlzLT5tX3Jlc3VsdCksIG1fYXJndW1lbnQxKSk7CkBAIC0yMDgsNyArMjA4
LDcgQEAgcHVibGljOgogICAgIH0KICAgICAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQg
Z2VuZXJhdGVJbnRlcm5hbChTcGVjdWxhdGl2ZUpJVCogaml0KSBPVkVSUklERQorICAgIHZpcnR1
YWwgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklUKiBqaXQpIG92ZXJyaWRlCiAg
ICAgewogICAgICAgICB0aGlzLT5zZXRVcChqaXQpOwogICAgICAgICB0aGlzLT5yZWNvcmRDYWxs
KGppdC0+Y2FsbE9wZXJhdGlvbih0aGlzLT5tX2Z1bmN0aW9uLCBleHRyYWN0UmVzdWx0KHRoaXMt
Pm1fcmVzdWx0KSwgbV9hcmd1bWVudDEsIG1fYXJndW1lbnQyKSk7CkBAIC0yMzgsNyArMjM4LDcg
QEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOiAgICAKLSAgICB2aXJ0dWFsIHZvaWQgZ2Vu
ZXJhdGVJbnRlcm5hbChTcGVjdWxhdGl2ZUpJVCogaml0KSBPVkVSUklERQorICAgIHZpcnR1YWwg
dm9pZCBnZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklUKiBqaXQpIG92ZXJyaWRlCiAgICAg
ewogICAgICAgICB0aGlzLT5zZXRVcChqaXQpOwogICAgICAgICB0aGlzLT5yZWNvcmRDYWxsKApA
QCAtNDM3LDcgKzQzNyw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0
dWFsIHZvaWQgZ2VuZXJhdGVJbnRlcm5hbChTcGVjdWxhdGl2ZUpJVCogaml0KSBPVkVSUklERQor
ICAgIHZpcnR1YWwgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNwZWN1bGF0aXZlSklUKiBqaXQpIG92
ZXJyaWRlCiAgICAgewogICAgICAgICB0aGlzLT5saW5rRnJvbShqaXQpOwogICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSBudW1iZXJPZkFzc2lnbm1lbnRzOyBpLS07KQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggMTViNDk2My4u
ODEwMDM0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCkBAIC00NDQsNyArNDQ0LDcgQEAgcHVibGljOgogICAgIH0KICAgICAKIHBy
b3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgZ2VuZXJhdGVJbnRlcm5hbChTcGVjdWxhdGl2ZUpJ
VCogaml0KSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBnZW5lcmF0ZUludGVybmFsKFNwZWN1
bGF0aXZlSklUKiBqaXQpIG92ZXJyaWRlCiAgICAgewogICAgICAgICB0aGlzLT5zZXRVcChqaXQp
OwogICAgICAgICB0aGlzLT5yZWNvcmRDYWxsKGppdC0+Y2FsbE9wZXJhdGlvbih0aGlzLT5tX2Z1
bmN0aW9uLCB0aGlzLT5tX3Jlc3VsdCwgbV9hcmcxLCBtX2FyZzIpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0hlYXAuaAppbmRleCBhYjU4MGFhLi43NjRlNzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcC5oCkBAIC0yMzQsNyArMjM0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRp
YyBjb25zdCBzaXplX3QgbWF4RXh0cmFDb3N0ID0gMTAyNCAqIDEwMjQ7CiAgICAgICAgIAogICAg
ICAgICBjbGFzcyBGaW5hbGl6ZXJPd25lciA6IHB1YmxpYyBXZWFrSGFuZGxlT3duZXIgewotICAg
ICAgICAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEhhbmRsZTxVbmtub3duPiwgdm9pZCogY29u
dGV4dCkgT1ZFUlJJREU7CisgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSGFuZGxl
PFVua25vd24+LCB2b2lkKiBjb250ZXh0KSBvdmVycmlkZTsKICAgICAgICAgfTsKIAogICAgICAg
ICBKU19FWFBPUlRfUFJJVkFURSBib29sIGlzVmFsaWRBbGxvY2F0aW9uKHNpemVfdCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCmluZGV4IGY1
OTk4MjU0Li4wYWMxNDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9J
bmNyZW1lbnRhbFN3ZWVwZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNy
ZW1lbnRhbFN3ZWVwZXIuaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBJbmNyZW1lbnRhbFN3ZWVw
ZXIgOiBwdWJsaWMgSGVhcFRpbWVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxJ
bmNyZW1lbnRhbFN3ZWVwZXI+IGNyZWF0ZShIZWFwKik7CiAgICAgdm9pZCBzdGFydFN3ZWVwaW5n
KFZlY3RvcjxNYXJrZWRCbG9jayo+Jik7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2
b2lkIGRvV29yaygpIE9WRVJSSURFOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgdm9p
ZCBkb1dvcmsoKSBvdmVycmlkZTsKICAgICB2b2lkIHN3ZWVwTmV4dEJsb2NrKCk7CiAgICAgdm9p
ZCB3aWxsRmluaXNoU3dlZXBpbmcoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvU3VwZXJSZWdpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N1cGVy
UmVnaW9uLmgKaW5kZXggNzkxOGIzYi4uZTIxNTI2YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvU3VwZXJSZWdpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9TdXBlclJlZ2lvbi5oCkBAIC00MCw5ICs0MCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5TdXBlclJlZ2lvbigpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB2b2lkKiBhbGxvY2F0
ZU5ld1NwYWNlKHNpemVfdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlOZWVk
UGFnZSh2b2lkKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVBhZ2VJc0ZyZWUo
dm9pZCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCogYWxsb2NhdGVOZXdTcGFjZShzaXpl
X3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5TmVlZFBhZ2Uodm9pZCopIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlQYWdlSXNGcmVlKHZvaWQqKSBvdmVycmlk
ZTsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgdWludDY0X3Qgc19maXhlZEhlYXBNZW1v
cnlQb29sU2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yVmFsdWVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclZhbHVlcy5oCmluZGV4IDAxMmExYTYuLjA2YzVkZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaApAQCAtOTcsMTQgKzk3LDE0
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JCYXNpY1ZhbHVlPiBj
cmVhdGUoaW50KTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JCYXNpY1ZhbHVlPiBj
cmVhdGUoZG91YmxlKTsKIAotICAgIHZpcnR1YWwgYm9vbCBhc0Jvb2xlYW4oYm9vbCogb3V0cHV0
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgYXNOdW1iZXIoZG91YmxlKiBvdXRw
dXQpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBhc051bWJlcihsb25nKiBvdXRw
dXQpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBhc051bWJlcihpbnQqIG91dHB1
dCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGFzTnVtYmVyKHVuc2lnbmVkIGxv
bmcqIG91dHB1dCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGFzTnVtYmVyKHVu
c2lnbmVkKiBvdXRwdXQpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBhc0Jvb2xl
YW4oYm9vbCogb3V0cHV0KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgYXNOdW1i
ZXIoZG91YmxlKiBvdXRwdXQpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBhc051
bWJlcihsb25nKiBvdXRwdXQpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBhc051
bWJlcihpbnQqIG91dHB1dCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGFzTnVt
YmVyKHVuc2lnbmVkIGxvbmcqIG91dHB1dCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBi
b29sIGFzTnVtYmVyKHVuc2lnbmVkKiBvdXRwdXQpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmly
dHVhbCB2b2lkIHdyaXRlSlNPTihTdHJpbmdCdWlsZGVyKiBvdXRwdXQpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCB3cml0ZUpTT04oU3RyaW5nQnVpbGRlciogb3V0cHV0KSBjb25z
dCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnNwZWN0b3JCYXNpY1ZhbHVl
KGJvb2wgdmFsdWUpIDogSW5zcGVjdG9yVmFsdWUoVHlwZUJvb2xlYW4pLCBtX2Jvb2xWYWx1ZSh2
YWx1ZSkgeyB9CkBAIC0xMjIsOSArMTIyLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEluc3BlY3RvclN0cmluZz4gY3JlYXRlKGNvbnN0IFN0cmluZyYpOwogICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEluc3BlY3RvclN0cmluZz4gY3JlYXRlKGNvbnN0IGNoYXIqKTsKIAotICAgIHZp
cnR1YWwgYm9vbCBhc1N0cmluZyhTdHJpbmcqIG91dHB1dCkgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBib29sIGFzU3RyaW5nKFN0cmluZyogb3V0cHV0KSBjb25zdCBvdmVycmlkZTsKIAot
ICAgIHZpcnR1YWwgdm9pZCB3cml0ZUpTT04oU3RyaW5nQnVpbGRlciogb3V0cHV0KSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgd3JpdGVKU09OKFN0cmluZ0J1aWxkZXIqIG91dHB1
dCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW5zcGVjdG9yU3Ry
aW5nKGNvbnN0IFN0cmluZyYgdmFsdWUpIDogSW5zcGVjdG9yVmFsdWUoVHlwZVN0cmluZyksIG1f
c3RyaW5nVmFsdWUodmFsdWUpIHsgfQpAQCAtMTQxLDEzICsxNDEsMTMgQEAgcHVibGljOgogICAg
IHR5cGVkZWYgRGljdGlvbmFyeTo6aXRlcmF0b3IgaXRlcmF0b3I7CiAgICAgdHlwZWRlZiBEaWN0
aW9uYXJ5Ojpjb25zdF9pdGVyYXRvciBjb25zdF9pdGVyYXRvcjsKIAotICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGFzT2JqZWN0KCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYXNPYmplY3QoKSBvdmVycmlkZTsKICAgICBJ
bnNwZWN0b3JPYmplY3QqIG9wZW5BY2Nlc3NvcnMoKTsKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1
YWwgfkluc3BlY3Rvck9iamVjdEJhc2UoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBhc09iamVjdChS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piogb3V0cHV0KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJv
b2wgYXNPYmplY3QoUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIG91dHB1dCkgb3ZlcnJpZGU7CiAK
ICAgICB2b2lkIHNldEJvb2xlYW4oY29uc3QgU3RyaW5nJiBuYW1lLCBib29sKTsKICAgICB2b2lk
IHNldE51bWJlcihjb25zdCBTdHJpbmcmIG5hbWUsIGRvdWJsZSk7CkBAIC0xNzMsNyArMTczLDcg
QEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCByZW1vdmUoY29uc3QgU3RyaW5nJiBuYW1lKTsKIAot
ICAgIHZpcnR1YWwgdm9pZCB3cml0ZUpTT04oU3RyaW5nQnVpbGRlciogb3V0cHV0KSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgd3JpdGVKU09OKFN0cmluZ0J1aWxkZXIqIG91dHB1
dCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBpdGVyYXRvciBiZWdpbigpIHsgcmV0dXJuIG1fZGF0
YS5iZWdpbigpOyB9CiAgICAgaXRlcmF0b3IgZW5kKCkgeyByZXR1cm4gbV9kYXRhLmVuZCgpOyB9
CkBAIC0yMjUsMTQgKzIyNSwxNCBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRy
PEluc3BlY3RvclZhbHVlPj46Oml0ZXJhdG9yIGl0ZXJhdG9yOwogICAgIHR5cGVkZWYgVmVjdG9y
PFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4+Ojpjb25zdF9pdGVyYXRvciBjb25zdF9pdGVyYXRvcjsK
IAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJheT4gYXNBcnJheSgpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJheT4gYXNBcnJheSgpIG92
ZXJyaWRlOwogCiAgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLnNp
emUoKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yQXJyYXlCYXNlKCk7
CiAKLSAgICB2aXJ0dWFsIGJvb2wgYXNBcnJheShSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBvdXRw
dXQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBhc0FycmF5KFJlZlB0cjxJbnNwZWN0b3JB
cnJheT4qIG91dHB1dCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHB1c2hCb29sZWFuKGJvb2wpOwog
ICAgIHZvaWQgcHVzaEludChpbnQpOwpAQCAtMjQ0LDcgKzI0NCw3IEBAIHByb3RlY3RlZDoKIAog
ICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IGdldChzaXplX3QgaW5kZXgpOwogCi0gICAg
dmlydHVhbCB2b2lkIHdyaXRlSlNPTihTdHJpbmdCdWlsZGVyKiBvdXRwdXQpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCB3cml0ZUpTT04oU3RyaW5nQnVpbGRlciogb3V0cHV0KSBj
b25zdCBvdmVycmlkZTsKIAogICAgIGl0ZXJhdG9yIGJlZ2luKCkgeyByZXR1cm4gbV9kYXRhLmJl
Z2luKCk7IH0KICAgICBpdGVyYXRvciBlbmQoKSB7IHJldHVybiBtX2RhdGEuZW5kKCk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJ
bnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pT
R2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IDIzMzQ5NDMxLi40Y2ExY2Zk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2Jq
ZWN0SW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTU2LDEyICs1Niwx
MiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNjb25uZWN0RnJvbnRlbmQoKTsKICAgICB2b2lkIGRp
c3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChjb25zdCBTdHJpbmcmKTsKIAotICAgIHZpcnR1YWwg
Ym9vbCBkZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1
ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBjYW5BY2Nlc3NJbnNwZWN0ZWRTY3JpcHRTdGF0ZShKU0M6
OkV4ZWNTdGF0ZSopIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFs
IEluc3BlY3RvckZ1bmN0aW9uQ2FsbEhhbmRsZXIgZnVuY3Rpb25DYWxsSGFuZGxlcigpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgSW5zcGVjdG9yRXZhbHVhdGVIYW5kbGVyIGV2YWx1YXRl
SGFuZGxlcigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2FsbEluamVj
dGVkU2NyaXB0RnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmLCBpbnQpIE9W
RVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRDYWxsSW5qZWN0ZWRTY3JpcHRGdW5jdGlv
bigpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgYm9vbCBkZXZlbG9wZXJFeHRyYXNFbmFibGVk
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5B
Y2Nlc3NJbnNwZWN0ZWRTY3JpcHRTdGF0ZShKU0M6OkV4ZWNTdGF0ZSopIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIEluc3BlY3RvckZ1bmN0aW9uQ2FsbEhhbmRs
ZXIgZnVuY3Rpb25DYWxsSGFuZGxlcigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW5z
cGVjdG9yRXZhbHVhdGVIYW5kbGVyIGV2YWx1YXRlSGFuZGxlcigpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2FsbEluamVjdGVkU2NyaXB0RnVuY3Rpb24oSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBTdHJpbmcmLCBpbnQpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBkaWRDYWxsSW5qZWN0ZWRTY3JpcHRGdW5jdGlvbigpIG92ZXJyaWRlIHsgfQogCiBwcml2YXRl
OgogICAgIEpTQzo6SlNHbG9iYWxPYmplY3QmIG1fZ2xvYmFsT2JqZWN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckFnZW50LmgK
aW5kZXggZmE4NTljZi4uNzhiYzU2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oCkBAIC01MCwxMSArNTAsMTEg
QEAgcHVibGljOgogICAgIEluc3BlY3RvckFnZW50KCk7CiAgICAgdmlydHVhbCB+SW5zcGVjdG9y
QWdlbnQoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5k
KEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKSBvdmVycmlkZTsKIAogICAgIHZvaWQgaW5z
cGVjdChQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+IG9iamVj
dFRvSW5zcGVjdCwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGhpbnRzKTsKICAgICB2b2lk
IGV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQobG9uZyB0ZXN0Q2FsbElkLCBjb25zdCBTdHJpbmcm
IHNjcmlwdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Jl
bW90ZS9SZW1vdGVJbnNwZWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cmVtb3RlL1JlbW90ZUluc3BlY3Rvci5oCmluZGV4IDc3NDY0Y2YuLjRkMjlmYzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3Rv
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUlu
c3BlY3Rvci5oCkBAIC03Myw5ICs3Myw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHVwZGF0ZUhh
c0FjdGl2ZURlYnVnU2Vzc2lvbigpOwogCi0gICAgdmlydHVhbCB2b2lkIHhwY0Nvbm5lY3Rpb25S
ZWNlaXZlZE1lc3NhZ2UoUmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbiosIE5TU3RyaW5nICpt
ZXNzYWdlTmFtZSwgTlNEaWN0aW9uYXJ5ICp1c2VySW5mbykgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHhwY0Nvbm5lY3Rpb25GYWlsZWQoUmVtb3RlSW5zcGVjdG9yWFBDQ29ubmVjdGlvbiop
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB4cGNDb25uZWN0aW9uVW5oYW5kbGVkTWVzc2Fn
ZShSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uKiwgeHBjX29iamVjdF90KSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgeHBjQ29ubmVjdGlvblJlY2VpdmVkTWVzc2FnZShSZW1vdGVJbnNw
ZWN0b3JYUENDb25uZWN0aW9uKiwgTlNTdHJpbmcgKm1lc3NhZ2VOYW1lLCBOU0RpY3Rpb25hcnkg
KnVzZXJJbmZvKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgeHBjQ29ubmVjdGlvbkZhaWxl
ZChSZW1vdGVJbnNwZWN0b3JYUENDb25uZWN0aW9uKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHhwY0Nvbm5lY3Rpb25VbmhhbmRsZWRNZXNzYWdlKFJlbW90ZUluc3BlY3RvclhQQ0Nvbm5l
Y3Rpb24qLCB4cGNfb2JqZWN0X3QpIG92ZXJyaWRlOwogCiAgICAgdm9pZCByZWNlaXZlZFNldHVw
TWVzc2FnZShOU0RpY3Rpb25hcnkgKnVzZXJJbmZvKTsKICAgICB2b2lkIHJlY2VpdmVkRGF0YU1l
c3NhZ2UoTlNEaWN0aW9uYXJ5ICp1c2VySW5mbyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3JEZWJ1Z2dhYmxlQ29ubmVj
dGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5z
cGVjdG9yRGVidWdnYWJsZUNvbm5lY3Rpb24uaAppbmRleCBjMjRkODgyLi5lMzI3MWQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNw
ZWN0b3JEZWJ1Z2dhYmxlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3RvckRlYnVnZ2FibGVDb25uZWN0aW9uLmgKQEAg
LTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xvc2VGcm9tRGVidWdnYWJsZSgpOwog
CiAgICAgdm9pZCBzZW5kTWVzc2FnZVRvQmFja2VuZChOU1N0cmluZyAqKTsKLSAgICB2aXJ0dWFs
IGJvb2wgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgYm9vbCBzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGU7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaFN5bmNPbkRlYnVnZ2FibGUodm9pZCAo
XmJsb2NrKSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9zY3JpcHRzL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkKaW5kZXggMDdlNjc0
Mi4uOTRlOWZkOSAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkKQEAgLTIwNDks
NyArMjA0OSw3IEBAIGNsYXNzIEdlbmVyYXRvcjoKICAgICAgICAgICAgICAgICBHZW5lcmF0b3Iu
YmFja2VuZF9kaXNwYXRjaGVyX2ludGVyZmFjZV9saXN0LmFwcGVuZCgiY2xhc3MgJXMgJXMgRklO
QUwgOiBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JTdXBwbGVtZW50YWxCYWNrZW5kRGlzcGF0
Y2hlciB7XG4iICUgKElOU1BFQ1RPUl9UWVBFU19HRU5FUkFUT1JfQ09ORklHX01BUFtvdXRwdXRf
dHlwZV1bImV4cG9ydF9tYWNybyJdLCBkaXNwYXRjaGVyX25hbWUpKQogICAgICAgICAgICAgICAg
IEdlbmVyYXRvci5iYWNrZW5kX2Rpc3BhdGNoZXJfaW50ZXJmYWNlX2xpc3QuYXBwZW5kKCJwdWJs
aWM6XG4iKQogICAgICAgICAgICAgICAgIEdlbmVyYXRvci5iYWNrZW5kX2Rpc3BhdGNoZXJfaW50
ZXJmYWNlX2xpc3QuYXBwZW5kKCIgICAgc3RhdGljIFBhc3NSZWZQdHI8JXM+IGNyZWF0ZShJbnNw
ZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKiwgJXMqKTtcbiIgJSAoZGlzcGF0Y2hl
cl9uYW1lLCBhZ2VudF9pbnRlcmZhY2VfbmFtZSkpCi0gICAgICAgICAgICAgICAgR2VuZXJhdG9y
LmJhY2tlbmRfZGlzcGF0Y2hlcl9pbnRlcmZhY2VfbGlzdC5hcHBlbmQoIiAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2gobG9uZyBjYWxsSWQsIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBQYXNzUmVmUHRy
PEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBtZXNzYWdlKSBPVkVSUklERTtcbiIpCisgICAg
ICAgICAgICAgICAgR2VuZXJhdG9yLmJhY2tlbmRfZGlzcGF0Y2hlcl9pbnRlcmZhY2VfbGlzdC5h
cHBlbmQoIiAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2gobG9uZyBjYWxsSWQsIGNvbnN0IFN0cmlu
ZyYgbWV0aG9kLCBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBtZXNzYWdl
KSBvdmVycmlkZTtcbiIpCiAgICAgICAgICAgICAgICAgR2VuZXJhdG9yLmJhY2tlbmRfZGlzcGF0
Y2hlcl9pbnRlcmZhY2VfbGlzdC5hcHBlbmQoInByaXZhdGU6XG4iKQogCiAgICAgICAgICAgICAg
ICAgR2VuZXJhdG9yLmJhY2tlbmRfaGFuZGxlcl9pbnRlcmZhY2VfbGlzdC5hcHBlbmQoImNsYXNz
ICVzICVzIHtcbiIgJSAoSU5TUEVDVE9SX1RZUEVTX0dFTkVSQVRPUl9DT05GSUdfTUFQW291dHB1
dF90eXBlXVsiZXhwb3J0X21hY3JvIl0sIGFnZW50X2ludGVyZmFjZV9uYW1lKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2xvc3VyZUNhbGxTdHViUm91dGluZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DbG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmgKaW5kZXgg
YmJjZjA2Mi4uYWQ2MWVkNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9D
bG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9D
bG9zdXJlQ2FsbFN0dWJSb3V0aW5lLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIGNv
bnN0IENvZGVPcmlnaW4mIGNvZGVPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX2NvZGVPcmlnaW47
IH0KIAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCBtYXJrUmVxdWlyZWRPYmplY3RzSW50
ZXJuYWwoU2xvdFZpc2l0b3ImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFya1JlcXVp
cmVkT2JqZWN0c0ludGVybmFsKFNsb3RWaXNpdG9yJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAg
ICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9zdHJ1Y3R1cmU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3JGaXhlZFZNUG9vbC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3JGaXhlZFZNUG9v
bC5jcHAKaW5kZXggMTQ0ZDQxNS4uOGUwYjc3YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yRml4ZWRWTVBvb2wuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvckZpeGVkVk1Qb29sLmNwcApA
QCAtNzYsMTMgKzc2LDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5GaXhlZFZNUG9vbEV4ZWN1
dGFibGVBbGxvY2F0b3IoKTsKICAgICAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQqIGFs
bG9jYXRlTmV3U3BhY2Uoc2l6ZV90JikgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIHZvaWQqIGFsbG9j
YXRlTmV3U3BhY2Uoc2l6ZV90Jikgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIC8vIFdlJ3JlIG9w
ZXJhdGluZyBpbiBhIGZpeGVkIHBvb2wsIHNvIG5ldyBhbGxvY2F0aW9uIGlzIGFsd2F5cyBwcm9o
aWJpdGVkLgogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgCi0gICAgdmlydHVhbCB2b2lk
IG5vdGlmeU5lZWRQYWdlKHZvaWQqIHBhZ2UpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIG5v
dGlmeU5lZWRQYWdlKHZvaWQqIHBhZ2UpIG92ZXJyaWRlCiAgICAgewogI2lmIFVTRShNQURWX0ZS
RUVfRk9SX0pJVF9NRU1PUlkpCiAgICAgICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKQEAgLTkxLDcg
KzkxLDcgQEAgcHJvdGVjdGVkOgogI2VuZGlmCiAgICAgfQogICAgIAotICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlQYWdlSXNGcmVlKHZvaWQqIHBhZ2UpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lk
IG5vdGlmeVBhZ2VJc0ZyZWUodm9pZCogcGFnZSkgb3ZlcnJpZGUKICAgICB7CiAjaWYgVVNFKE1B
RFZfRlJFRV9GT1JfSklUX01FTU9SWSkKICAgICAgICAgZm9yICg7OykgewpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HQ0F3YXJlSklUU3R1YlJvdXRpbmUuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvR0NBd2FyZUpJVFN0dWJSb3V0aW5lLmgKaW5kZXggZDBhYjk4
Yi4uMDMwNDVjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HQ0F3YXJl
SklUU3R1YlJvdXRpbmUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dDQXdhcmVK
SVRTdHViUm91dGluZS5oCkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzQ2xv
c3VyZUNhbGwoKSBjb25zdCB7IHJldHVybiBtX2lzQ2xvc3VyZUNhbGw7IH0KICAgICAKIHByb3Rl
Y3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgb2JzZXJ2ZVplcm9SZWZDb3VudCgpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBvYnNlcnZlWmVyb1JlZkNvdW50KCkgb3ZlcnJpZGU7CiAgICAgCiAg
ICAgdmlydHVhbCB2b2lkIG1hcmtSZXF1aXJlZE9iamVjdHNJbnRlcm5hbChTbG90VmlzaXRvciYp
OwogCkBAIC04OCw3ICs4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5NYXJraW5nR0NBd2Fy
ZUpJVFN0dWJSb3V0aW5lV2l0aE9uZU9iamVjdCgpOwogICAgIAogcHJvdGVjdGVkOgotICAgIHZp
cnR1YWwgdm9pZCBtYXJrUmVxdWlyZWRPYmplY3RzSW50ZXJuYWwoU2xvdFZpc2l0b3ImKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFya1JlcXVpcmVkT2JqZWN0c0ludGVybmFsKFNsb3RW
aXNpdG9yJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgV3JpdGVCYXJyaWVyPEpTQ2VsbD4g
bV9vYmplY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCmluZGV4IGQ3ZjNjY2QuLjUy
Yzc4MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCkBAIC0xOTcsMTIgKzE5Nywx
MiBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBpbml0aWFsaXplQ29kZVJlZihDb2RlUmVmIHJl
Zik7CiAKLSAgICB2aXJ0dWFsIENvZGVQdHIgYWRkcmVzc0ZvckNhbGwoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkKiBkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBv
ZmZzZXQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdW5zaWduZWQgb2Zmc2V0T2Yodm9pZCogcG9p
bnRlckludG9Db2RlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHNpemVfdCBzaXplKCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBib29sIGNvbnRhaW5zKHZvaWQqKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIENvZGVQdHIgYWRkcmVzc0ZvckNhbGwoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQq
IGV4ZWN1dGFibGVBZGRyZXNzQXRPZmZzZXQoc2l6ZV90IG9mZnNldCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkKiBkYXRhQWRkcmVzc0F0T2Zmc2V0KHNpemVfdCBvZmZzZXQpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdW5zaWduZWQgb2Zmc2V0T2Yodm9pZCogcG9pbnRlckludG9Db2RlKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHNpemVfdCBzaXplKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBib29sIGNvbnRhaW5zKHZvaWQqKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBDb2RlUmVm
IG1fcmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUb0RGR0Rl
ZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRUb0RGR0RlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oCmluZGV4IDgwZjc0MTEuLmNmMWMw
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVG9ERkdEZWZlcnJl
ZENvbXBpbGF0aW9uQ2FsbGJhY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFRvREZHRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmgKQEAgLTQ2LDggKzQ2LDggQEAgcHVi
bGljOgogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2s+IGNyZWF0ZSgpOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBjb21waWxhdGlvbkRp
ZEJlY29tZVJlYWR5QXN5bmNocm9ub3VzbHkoQ29kZUJsb2NrKikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGNvbXBpbGF0aW9uRGlkQ29tcGxldGUoQ29kZUJsb2NrKiwgQ29tcGlsYXRpb25S
ZXN1bHQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb21waWxhdGlvbkRpZEJlY29tZVJl
YWR5QXN5bmNocm9ub3VzbHkoQ29kZUJsb2NrKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IGNvbXBpbGF0aW9uRGlkQ29tcGxldGUoQ29kZUJsb2NrKiwgQ29tcGlsYXRpb25SZXN1bHQpIG92
ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVzLmgKaW5kZXggOTkwZmY1Ni4uZGQ0ODdlNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvTm9kZXMuaApAQCAtMTk5LDEyICsxOTksMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xh
c3MgQ29uc3RhbnROb2RlIDogcHVibGljIEV4cHJlc3Npb25Ob2RlIHsKICAgICBwdWJsaWM6CiAg
ICAgICAgIENvbnN0YW50Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBSZXN1bHRUeXBlKTsK
LSAgICAgICAgdmlydHVhbCBib29sIGlzUHVyZShCeXRlY29kZUdlbmVyYXRvciYpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGlzQ29uc3RhbnQo
KSBjb25zdCAgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wg
aXNQdXJlKEJ5dGVjb2RlR2VuZXJhdG9yJikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQorICAgICAgICB2aXJ0dWFsIGJvb2wgaXNDb25zdGFudCgpIGNvbnN0ICBvdmVycmlkZSB7IHJl
dHVybiB0cnVlOyB9CiAgICAgICAgIHZpcnR1YWwgSlNWYWx1ZSBqc1ZhbHVlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJikgY29uc3QgPSAwOwogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgUmVnaXN0
ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBP
VkVSUklERTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGVtaXRCeXRlY29kZUluQ29uZGl0aW9uQ29u
dGV4dChCeXRlY29kZUdlbmVyYXRvciYsIExhYmVsKiB0cnVlVGFyZ2V0LCBMYWJlbCogZmFsc2VU
YXJnZXQsIEZhbGxUaHJvdWdoTW9kZSkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgUmVnaXN0
ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBv
dmVycmlkZTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGVtaXRCeXRlY29kZUluQ29uZGl0aW9uQ29u
dGV4dChCeXRlY29kZUdlbmVyYXRvciYsIExhYmVsKiB0cnVlVGFyZ2V0LCBMYWJlbCogZmFsc2VU
YXJnZXQsIEZhbGxUaHJvdWdoTW9kZSkgb3ZlcnJpZGU7CiAgICAgfTsKIAogICAgIGNsYXNzIE51
bGxOb2RlIDogcHVibGljIENvbnN0YW50Tm9kZSB7CkBAIC0yMTIsOCArMjEyLDggQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIE51bGxOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYpOwogCiAg
ICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBib29sIGlzTnVsbCgpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgdmlydHVhbCBKU1ZhbHVlIGpzVmFsdWUoQnl0ZWNv
ZGVHZW5lcmF0b3ImKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBqc051bGwoKTsgfQorICAgICAg
ICB2aXJ0dWFsIGJvb2wgaXNOdWxsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgICAgICB2aXJ0dWFsIEpTVmFsdWUganNWYWx1ZShCeXRlY29kZUdlbmVyYXRvciYpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGpzTnVsbCgpOyB9CiAgICAgfTsKIAogICAgIGNsYXNzIEJvb2xl
YW5Ob2RlIDogcHVibGljIENvbnN0YW50Tm9kZSB7CkBAIC0yMjIsOCArMjIyLDggQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIGJvb2wgdmFsdWUoKSB7IHJldHVybiBtX3ZhbHVlOyB9CiAKICAg
ICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNCb29sZWFuKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAgICB2aXJ0dWFsIEpTVmFsdWUganNWYWx1ZShCeXRl
Y29kZUdlbmVyYXRvciYpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGpzQm9vbGVhbihtX3ZhbHVl
KTsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgaXNCb29sZWFuKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgICAgICB2aXJ0dWFsIEpTVmFsdWUganNWYWx1ZShCeXRlY29kZUdl
bmVyYXRvciYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGpzQm9vbGVhbihtX3ZhbHVlKTsgfQog
CiAgICAgICAgIGJvb2wgbV92YWx1ZTsKICAgICB9OwpAQCAtMjM1LDggKzIzNSw4IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB2b2lkIHNldFZhbHVlKGRvdWJsZSB2YWx1ZSkgeyBtX3ZhbHVl
ID0gdmFsdWU7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBpc051bWJl
cigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgdmlydHVhbCBKU1Zh
bHVlIGpzVmFsdWUoQnl0ZWNvZGVHZW5lcmF0b3ImKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBq
c051bWJlcihtX3ZhbHVlKTsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgaXNOdW1iZXIoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIHZpcnR1YWwgSlNWYWx1ZSBqc1Zh
bHVlKEJ5dGVjb2RlR2VuZXJhdG9yJikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4ganNOdW1iZXIo
bV92YWx1ZSk7IH0KIAogICAgICAgICBkb3VibGUgbV92YWx1ZTsKICAgICB9OwpAQCAtMjQ3LDgg
KzI0Nyw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiB2YWx1
ZSgpIHsgcmV0dXJuIG1fdmFsdWU7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwg
Ym9vbCBpc1N0cmluZygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAg
dmlydHVhbCBKU1ZhbHVlIGpzVmFsdWUoQnl0ZWNvZGVHZW5lcmF0b3ImKSBjb25zdCBPVkVSUklE
RTsKKyAgICAgICAgdmlydHVhbCBib29sIGlzU3RyaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQorICAgICAgICB2aXJ0dWFsIEpTVmFsdWUganNWYWx1ZShCeXRlY29kZUdlbmVy
YXRvciYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1fdmFs
dWU7CiAgICAgfTsKQEAgLTQxMCw3ICs0MTAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
UmVnRXhwTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiBwYXR0
ZXJuLCBjb25zdCBJZGVudGlmaWVyJiBmbGFncyk7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2
aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lz
dGVySUQqID0gMCkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5
dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKIAog
ICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX3BhdHRlcm47CiAgICAgICAgIGNvbnN0IElkZW50
aWZpZXImIG1fZmxhZ3M7CkBAIC00MjEsNyArNDIxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIFRoaXNOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYpOwogCiAgICAgcHJpdmF0ZToKLSAg
ICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IDApIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQq
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJp
ZGU7CiAgICAgfTsKIAogICAgIGNsYXNzIFJlc29sdmVOb2RlIDogcHVibGljIEV4cHJlc3Npb25O
b2RlIHsKQEAgLTQzMSwxMSArNDMxLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25z
dCBJZGVudGlmaWVyJiBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudDsgfQogCiAg
ICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIE9WRVJSSURFOworICAgICAgICB2aXJ0
dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVy
SUQqID0gMCkgb3ZlcnJpZGU7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGlzUHVyZShCeXRlY29k
ZUdlbmVyYXRvciYpIGNvbnN0IE9WRVJSSURFOwotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNMb2Nh
dGlvbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgdmlydHVhbCBi
b29sIGlzUmVzb2x2ZU5vZGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAg
ICAgIHZpcnR1YWwgYm9vbCBpc1B1cmUoQnl0ZWNvZGVHZW5lcmF0b3ImKSBjb25zdCBvdmVycmlk
ZTsKKyAgICAgICAgdmlydHVhbCBib29sIGlzTG9jYXRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiB0cnVlOyB9CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc1Jlc29sdmVOb2RlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1f
aWRlbnQ7CiAgICAgICAgIEpTVGV4dFBvc2l0aW9uIG1fc3RhcnQ7CkBAIC00NjYsOSArNDY2LDkg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgRWxlbWVudE5vZGUqIGVsZW1lbnRzKCkgY29u
c3QgeyBBU1NFUlQoaXNTaW1wbGVBcnJheSgpKTsgcmV0dXJuIG1fZWxlbWVudDsgfQogICAgIHBy
aXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCBS
ZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9
IDApIG92ZXJyaWRlOwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBpc1NpbXBsZUFycmF5KCkgY29u
c3QgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc1NpbXBsZUFycmF5KCkgY29uc3Qg
b3ZlcnJpZGU7CiAKICAgICAgICAgRWxlbWVudE5vZGUqIG1fZWxlbWVudDsKICAgICAgICAgaW50
IG1fZWxpc2lvbjsKQEAgLTUwMSw3ICs1MDEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
UHJvcGVydHlMaXN0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBQcm9wZXJ0eU5vZGUqKTsK
ICAgICAgICAgUHJvcGVydHlMaXN0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBQcm9wZXJ0
eU5vZGUqLCBQcm9wZXJ0eUxpc3ROb2RlKik7CiAKLSAgICAgICAgdmlydHVhbCBSZWdpc3RlcklE
KiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIE9WRVJS
SURFOworICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CiAKICAgICBwcml2YXRlOgogICAg
ICAgICBQcm9wZXJ0eU5vZGUqIG1fbm9kZTsKQEAgLTUxNCw3ICs1MTQsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgT2JqZWN0TGl0ZXJhbE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwg
UHJvcGVydHlMaXN0Tm9kZSopOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBSZWdp
c3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDAp
IE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CiAKICAgICAgICAgUHJv
cGVydHlMaXN0Tm9kZSogbV9saXN0OwogICAgIH07CkBAIC01MjksMTAgKzUyOSwxMCBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBzdWJzY3JpcHRIYXNBc3NpZ25tZW50cygpIGNvbnN0
IHsgcmV0dXJuIG1fc3Vic2NyaXB0SGFzQXNzaWdubWVudHM7IH0KIAogICAgIHByaXZhdGU6Ci0g
ICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiwgUmVnaXN0ZXJJRCogPSAwKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCBSZWdpc3RlcklE
KiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJy
aWRlOwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBpc0xvY2F0aW9uKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gdHJ1ZTsgfQotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNCcmFja2V0QWNjZXNzb3JO
b2RlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICB2aXJ0dWFsIGJv
b2wgaXNMb2NhdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAg
dmlydHVhbCBib29sIGlzQnJhY2tldEFjY2Vzc29yTm9kZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9iYXNlOwogICAgICAgICBF
eHByZXNzaW9uTm9kZSogbV9zdWJzY3JpcHQ7CkBAIC01NDcsMTAgKzU0NywxMCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1faWRlbnQ7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgUmVnaXN0
ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBP
VkVSUklERTsKKyAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNv
ZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOwogCi0gICAgICAgIHZpcnR1
YWwgYm9vbCBpc0xvY2F0aW9uKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQotICAg
ICAgICB2aXJ0dWFsIGJvb2wgaXNEb3RBY2Nlc3Nvck5vZGUoKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiB0cnVlOyB9CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc0xvY2F0aW9uKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgaXNEb3RBY2Nlc3Nv
ck5vZGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAgRXhwcmVz
c2lvbk5vZGUqIG1fYmFzZTsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsKQEAg
LTU2Myw5ICs1NjMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRXhwcmVzc2lvbk5vZGUq
IGV4cHJlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX2V4cHJlc3Npb247IH0KICAgICAgICAgCiAg
ICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIE9WRVJSSURFOworICAgICAgICB2aXJ0
dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVy
SUQqID0gMCkgb3ZlcnJpZGU7CiAgICAgICAgIAotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTcHJl
YWRFeHByZXNzaW9uKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICB2
aXJ0dWFsIGJvb2wgaXNTcHJlYWRFeHByZXNzaW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9leHByZXNzaW9uOwogICAgIH07CiAK
QEAgLTU3OCw3ICs1NzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRXhwcmVzc2lvbk5v
ZGUqIG1fZXhwcjsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCog
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBPVkVSUklE
RTsKKyAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOwogICAgIH07CiAKICAgICBjbGFzcyBB
cmd1bWVudHNOb2RlIDogcHVibGljIFBhcnNlckFyZW5hRnJlZWFibGUgewpAQCAtNTk1LDcgKzU5
NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBOZXdFeHByTm9kZShjb25zdCBKU1Rva2Vu
TG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSosIEFyZ3VtZW50c05vZGUqKTsKIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCBSZWdp
c3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDAp
IG92ZXJyaWRlOwogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4cHI7CiAgICAgICAgIEFy
Z3VtZW50c05vZGUqIG1fYXJnczsKQEAgLTYwNiw3ICs2MDYsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgRXZhbEZ1bmN0aW9uQ2FsbE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgQXJn
dW1lbnRzTm9kZSosIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAg
ICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1
YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJ
RCogPSAwKSBvdmVycmlkZTsKIAogICAgICAgICBBcmd1bWVudHNOb2RlKiBtX2FyZ3M7CiAgICAg
fTsKQEAgLTYxNiw3ICs2MTYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRnVuY3Rpb25D
YWxsVmFsdWVOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiwgQXJn
dW1lbnRzTm9kZSosIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAg
ICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1
YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJ
RCogPSAwKSBvdmVycmlkZTsKIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9leHByOwogICAg
ICAgICBBcmd1bWVudHNOb2RlKiBtX2FyZ3M7CkBAIC02MjcsNyArNjI3LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIEZ1bmN0aW9uQ2FsbFJlc29sdmVOb2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYsIGNvbnN0IElkZW50aWZpZXImLCBBcmd1bWVudHNOb2RlKiwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNU
ZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwg
UmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCog
PSAwKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOwogCiAgICAgICAg
IGNvbnN0IElkZW50aWZpZXImIG1faWRlbnQ7CiAgICAgICAgIEFyZ3VtZW50c05vZGUqIG1fYXJn
czsKQEAgLTYzOCw3ICs2MzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRnVuY3Rpb25D
YWxsQnJhY2tldE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGJh
c2UsIEV4cHJlc3Npb25Ob2RlKiBzdWJzY3JpcHQsIEFyZ3VtZW50c05vZGUqLCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmly
dHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IDApIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CiAKICAg
ICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1f
c3Vic2NyaXB0OwpAQCAtNjUwLDcgKzY1MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBG
dW5jdGlvbkNhbGxEb3ROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2Rl
KiBiYXNlLCBjb25zdCBJZGVudGlmaWVyJiwgQXJndW1lbnRzTm9kZSosIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFs
IFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQq
ID0gMCkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2Rl
KEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKIAogICAgIHBy
b3RlY3RlZDoKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKQEAgLTY2Myw3ICs2NjMs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgQ2FsbEZ1bmN0aW9uQ2FsbERvdE5vZGUoY29u
c3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIGNvbnN0IElkZW50aWZp
ZXImLCBBcmd1bWVudHNOb2RlKiwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5k
KTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVj
b2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBPVkVSUklERTsKKyAgICAg
ICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBS
ZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOwogICAgIH07CiAgICAgCiAgICAgY2xhc3MgQXBwbHlG
dW5jdGlvbkNhbGxEb3ROb2RlIDogcHVibGljIEZ1bmN0aW9uQ2FsbERvdE5vZGUgewpAQCAtNjcx
LDcgKzY3MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBBcHBseUZ1bmN0aW9uQ2FsbERv
dE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIGNvbnN0
IElkZW50aWZpZXImLCBBcmd1bWVudHNOb2RlKiwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCog
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBPVkVSUklE
RTsKKyAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOwogICAgIH07CiAKICAgICBjbGFzcyBE
ZWxldGVSZXNvbHZlTm9kZSA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSwgcHVibGljIFRocm93YWJs
ZUV4cHJlc3Npb25EYXRhIHsKQEAgLTY3OSw3ICs2NzksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgRGVsZXRlUmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRl
bnRpZmllciYsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICBw
cml2YXRlOgotICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwg
UmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCog
PSAwKSBvdmVycmlkZTsKIAogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX2lkZW50OwogICAg
IH07CkBAIC02ODksNyArNjg5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIERlbGV0ZUJy
YWNrZXROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBF
eHByZXNzaW9uTm9kZSogc3Vic2NyaXB0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2
b3RFbmQpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIE9WRVJSSURFOwor
ICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUq
IG1fYmFzZTsKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fc3Vic2NyaXB0OwpAQCAtNzAwLDcg
KzcwMCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBEZWxldGVEb3ROb2RlKGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBiYXNlLCBjb25zdCBJZGVudGlmaWVyJiwg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RT
dGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgIHByaXZhdGU6Ci0g
ICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiwgUmVnaXN0ZXJJRCogPSAwKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCBSZWdpc3RlcklE
KiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJy
aWRlOwogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2Jhc2U7CiAgICAgICAgIGNvbnN0IElk
ZW50aWZpZXImIG1faWRlbnQ7CkBAIC03MTEsNyArNzExLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIERlbGV0ZVZhbHVlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9u
Tm9kZSopOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIE9WRVJSSURFOwor
ICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUq
IG1fZXhwcjsKICAgICB9OwpAQCAtNzIxLDcgKzcyMSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBWb2lkTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSopOwog
CiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIE9WRVJSSURFOworICAgICAgICB2
aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lz
dGVySUQqID0gMCkgb3ZlcnJpZGU7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjsK
ICAgICB9OwpAQCAtNzMzLDcgKzczMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25z
dCBJZGVudGlmaWVyJiBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudDsgfQogCiAg
ICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIE9WRVJSSURFOworICAgICAgICB2aXJ0
dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVy
SUQqID0gMCkgb3ZlcnJpZGU7CiAKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsK
ICAgICB9OwpAQCAtNzQzLDcgKzc0Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBUeXBl
T2ZWYWx1ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqKTsKIAog
ICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBPVkVSUklERTsKKyAgICAgICAgdmly
dHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IDApIG92ZXJyaWRlOwogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4cHI7CiAg
ICAgfTsKQEAgLTc1Myw3ICs3NTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUHJlZml4
Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSosIE9wZXJhdG9yLCBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0
YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwogCiAgICAgcHJvdGVjdGVkOgot
ICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gMCkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJ
RCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVy
cmlkZTsKICAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0UmVzb2x2ZShCeXRlY29kZUdl
bmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCk7CiAgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCog
ZW1pdEJyYWNrZXQoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApOwogICAgICAg
ICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXREb3QoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IDApOwpAQCAtNzY3LDEwICs3NjcsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IFBvc3RmaXhOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiwgT3Bl
cmF0b3IsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICBwcml2
YXRlOgotICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgT1ZFUlJJREU7Ci0gICAgICAgIHZpcnR1YWwgUmVn
aXN0ZXJJRCogZW1pdFJlc29sdmUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDAp
IE9WRVJSSURFOwotICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCcmFja2V0KEJ5dGVj
b2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBPVkVSUklERTsKLSAgICAgICAgdmlydHVh
bCBSZWdpc3RlcklEKiBlbWl0RG90KEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAw
KSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0
ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOworICAgICAgICB2aXJ0
dWFsIFJlZ2lzdGVySUQqIGVtaXRSZXNvbHZlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJ
RCogPSAwKSBvdmVycmlkZTsKKyAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0QnJhY2tl
dChCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CisgICAgICAg
IHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdERvdChCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVy
SUQqID0gMCkgb3ZlcnJpZGU7CiAgICAgfTsKIAogICAgIGNsYXNzIFVuYXJ5T3BOb2RlIDogcHVi
bGljIEV4cHJlc3Npb25Ob2RlIHsKQEAgLTc4Miw3ICs3ODIsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgY29uc3QgRXhwcmVzc2lvbk5vZGUqIGV4cHIoKSBjb25zdCB7IHJldHVybiBtX2V4
cHI7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5
dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBPVkVSUklERTsKKyAg
ICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOwogCiAgICAgICAgIE9wY29kZUlEIG9wY29kZUlE
KCkgY29uc3QgeyByZXR1cm4gbV9vcGNvZGVJRDsgfQogCkBAIC03OTUsNyArNzk1LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIFVuYXJ5UGx1c05vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9u
JiwgRXhwcmVzc2lvbk5vZGUqKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgRXhw
cmVzc2lvbk5vZGUqIHN0cmlwVW5hcnlQbHVzKCkgT1ZFUlJJREUgeyByZXR1cm4gZXhwcigpOyB9
CisgICAgICAgIHZpcnR1YWwgRXhwcmVzc2lvbk5vZGUqIHN0cmlwVW5hcnlQbHVzKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gZXhwcigpOyB9CiAgICAgfTsKIAogICAgIGNsYXNzIE5lZ2F0ZU5vZGUgOiBw
dWJsaWMgVW5hcnlPcE5vZGUgewpAQCAtODEyLDcgKzgxMiw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBjb25zdCBFeHByZXNzaW9uTm9kZSogZXhwcigpIGNvbnN0IHsgcmV0dXJuIG1fZXhw
cjsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0
ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIE9WRVJSSURFOworICAg
ICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYs
IFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1f
ZXhwcjsKICAgICB9OwpAQCAtODIxLDcgKzgyMSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHB1
YmxpYzoKICAgICAgICAgTG9naWNhbE5vdE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhw
cmVzc2lvbk5vZGUqKTsKICAgICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIHZvaWQgZW1pdEJ5
dGVjb2RlSW5Db25kaXRpb25Db250ZXh0KEJ5dGVjb2RlR2VuZXJhdG9yJiwgTGFiZWwqIHRydWVU
YXJnZXQsIExhYmVsKiBmYWxzZVRhcmdldCwgRmFsbFRocm91Z2hNb2RlKSBPVkVSUklERTsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGVtaXRCeXRlY29kZUluQ29uZGl0aW9uQ29udGV4dChCeXRlY29k
ZUdlbmVyYXRvciYsIExhYmVsKiB0cnVlVGFyZ2V0LCBMYWJlbCogZmFsc2VUYXJnZXQsIEZhbGxU
aHJvdWdoTW9kZSkgb3ZlcnJpZGU7CiAgICAgfTsKIAogICAgIGNsYXNzIEJpbmFyeU9wTm9kZSA6
IHB1YmxpYyBFeHByZXNzaW9uTm9kZSB7CkBAIC04MzAsMTQgKzgzMCwxNCBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgQmluYXJ5T3BOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIFJlc3Vs
dFR5cGUsIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBPcGNv
ZGVJRCwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKTsKIAogICAgICAgICBSZWdpc3RlcklEKiBl
bWl0U3RyY2F0KEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRlc3Rp
bmF0aW9uLCBSZWdpc3RlcklEKiBsaHMgPSAwLCBSZWFkTW9kaWZ5UmVzb2x2ZU5vZGUqIGVtaXRF
eHByZXNzaW9uSW5mb0Zvck1lID0gMCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBlbWl0Qnl0ZWNv
ZGVJbkNvbmRpdGlvbkNvbnRleHQoQnl0ZWNvZGVHZW5lcmF0b3ImLCBMYWJlbCogdHJ1ZVRhcmdl
dCwgTGFiZWwqIGZhbHNlVGFyZ2V0LCBGYWxsVGhyb3VnaE1vZGUpIE9WRVJSSURFOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgZW1pdEJ5dGVjb2RlSW5Db25kaXRpb25Db250ZXh0KEJ5dGVjb2RlR2Vu
ZXJhdG9yJiwgTGFiZWwqIHRydWVUYXJnZXQsIExhYmVsKiBmYWxzZVRhcmdldCwgRmFsbFRocm91
Z2hNb2RlKSBvdmVycmlkZTsKIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbGhzKCkgeyByZXR1
cm4gbV9leHByMTsgfTsKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIHJocygpIHsgcmV0dXJuIG1f
ZXhwcjI7IH07CiAKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIHRyeUZvbGRUb0JyYW5jaChC
eXRlY29kZUdlbmVyYXRvciYsIFRyaVN0YXRlJiBicmFuY2hDb25kaXRpb24sIEV4cHJlc3Npb25O
b2RlKiYgYnJhbmNoRXhwcmVzc2lvbik7Ci0gICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBPVkVSUklERTsK
KyAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOwogCiAgICAgcHJvdGVjdGVkOgogICAgICAg
ICBPcGNvZGVJRCBvcGNvZGVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fb3Bjb2RlSUQ7IH0KQEAgLTg3
MCwxNCArODcwLDE0IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAgQWRk
Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogZXhwcjEsIEV4cHJl
c3Npb25Ob2RlKiBleHByMiwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKTsKIAotICAgICAgICB2
aXJ0dWFsIGJvb2wgaXNBZGQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAg
ICAgIHZpcnR1YWwgYm9vbCBpc0FkZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
ICAgICB9OwogCiAgICAgY2xhc3MgU3ViTm9kZSA6IHB1YmxpYyBCaW5hcnlPcE5vZGUgewogICAg
IHB1YmxpYzoKICAgICAgICAgU3ViTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNz
aW9uTm9kZSogZXhwcjEsIEV4cHJlc3Npb25Ob2RlKiBleHByMiwgYm9vbCByaWdodEhhc0Fzc2ln
bm1lbnRzKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTdWJ0cmFjdCgpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgdmlydHVhbCBib29sIGlzU3VidHJhY3QoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgfTsKIAogICAgIGNsYXNzIExlZnRT
aGlmdE5vZGUgOiBwdWJsaWMgQmluYXJ5T3BOb2RlIHsKQEAgLTkyMSw3ICs5MjEsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgVGhyb3dhYmxlQmluYXJ5T3BOb2RlKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBP
cGNvZGVJRCwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKTsKIAogICAgIHByaXZhdGU6Ci0gICAg
ICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwg
UmVnaXN0ZXJJRCogPSAwKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRl
OwogICAgIH07CiAgICAgCiAgICAgY2xhc3MgSW5zdGFuY2VPZk5vZGUgOiBwdWJsaWMgVGhyb3dh
YmxlQmluYXJ5T3BOb2RlIHsKQEAgLTkyOSw3ICs5MjksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgSW5zdGFuY2VPZk5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5v
ZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50
cyk7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgT1ZFUlJJREU7CisgICAg
ICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwg
UmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKICAgICB9OwogCiAgICAgY2xhc3MgSW5Ob2RlIDog
cHVibGljIFRocm93YWJsZUJpbmFyeU9wTm9kZSB7CkBAIC05NDIsNyArOTQyLDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIEVxdWFsTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHBy
ZXNzaW9uTm9kZSogZXhwcjEsIEV4cHJlc3Npb25Ob2RlKiBleHByMiwgYm9vbCByaWdodEhhc0Fz
c2lnbm1lbnRzKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCog
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBPVkVSUklE
RTsKKyAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOwogICAgIH07CiAKICAgICBjbGFzcyBO
b3RFcXVhbE5vZGUgOiBwdWJsaWMgQmluYXJ5T3BOb2RlIHsKQEAgLTk1NSw3ICs5NTUsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3RyaWN0RXF1YWxOb2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBib29s
IHJpZ2h0SGFzQXNzaWdubWVudHMpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBS
ZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9
IDApIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CiAgICAgfTsKIAog
ICAgIGNsYXNzIE5vdFN0cmljdEVxdWFsTm9kZSA6IHB1YmxpYyBCaW5hcnlPcE5vZGUgewpAQCAt
OTg0LDggKzk4NCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBMb2dpY2FsT3BOb2RlKGNv
bnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5v
ZGUqIGV4cHIyLCBMb2dpY2FsT3BlcmF0b3IpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmly
dHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IDApIE9WRVJSSURFOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZW1pdEJ5dGVjb2RlSW5D
b25kaXRpb25Db250ZXh0KEJ5dGVjb2RlR2VuZXJhdG9yJiwgTGFiZWwqIHRydWVUYXJnZXQsIExh
YmVsKiBmYWxzZVRhcmdldCwgRmFsbFRocm91Z2hNb2RlKSBPVkVSUklERTsKKyAgICAgICAgdmly
dHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IDApIG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIHZvaWQgZW1pdEJ5dGVjb2RlSW5D
b25kaXRpb25Db250ZXh0KEJ5dGVjb2RlR2VuZXJhdG9yJiwgTGFiZWwqIHRydWVUYXJnZXQsIExh
YmVsKiBmYWxzZVRhcmdldCwgRmFsbFRocm91Z2hNb2RlKSBvdmVycmlkZTsKIAogICAgICAgICBF
eHByZXNzaW9uTm9kZSogbV9leHByMTsKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjI7
CkBAIC05OTgsNyArOTk4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIENvbmRpdGlvbmFs
Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogbG9naWNhbCwgRXhw
cmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIpOwogCiAgICAgcHJpdmF0
ZToKLSAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5l
cmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIFJlZ2lz
dGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkg
b3ZlcnJpZGU7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fbG9naWNhbDsKICAgICAgICAg
RXhwcmVzc2lvbk5vZGUqIG1fZXhwcjE7CkBAIC0xMDEwLDcgKzEwMTAsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgUmVhZE1vZGlmeVJlc29sdmVOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYsIGNvbnN0IElkZW50aWZpZXImLCBPcGVyYXRvciwgRXhwcmVzc2lvbk5vZGUqICByaWdodCwg
Ym9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2
b3RFbmQpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIE9WRVJSSURFOwor
ICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CiAKICAgICAgICAgY29uc3QgSWRlbnRpZmll
ciYgbV9pZGVudDsKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fcmlnaHQ7CkBAIC0xMDIzLDcg
KzEwMjMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgQXNzaWduUmVzb2x2ZU5vZGUoY29u
c3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgSWRlbnRpZmllciYsIEV4cHJlc3Npb25Ob2RlKiBy
aWdodCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgT1ZFUlJJREU7Cisg
ICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKIAogICAgICAgICBjb25zdCBJZGVudGlmaWVy
JiBtX2lkZW50OwogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9yaWdodDsKQEAgLTEwMzQsNyAr
MTAzNCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWFkTW9kaWZ5QnJhY2tldE5vZGUo
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGJhc2UsIEV4cHJlc3Npb25O
b2RlKiBzdWJzY3JpcHQsIE9wZXJhdG9yLCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgc3Vi
c2NyaXB0SGFzQXNzaWdubWVudHMsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cywgY29uc3QgSlNU
ZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29u
c3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZp
cnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0
ZXJJRCogPSAwKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0
ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOwogCiAg
ICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2Jhc2U7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBt
X3N1YnNjcmlwdDsKQEAgLTEwNDksNyArMTA0OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBBc3NpZ25CcmFja2V0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9k
ZSogYmFzZSwgRXhwcmVzc2lvbk5vZGUqIHN1YnNjcmlwdCwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0
LCBib29sIHN1YnNjcmlwdEhhc0Fzc2lnbm1lbnRzLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMs
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90
U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICBwcml2YXRlOgot
ICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gMCkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJ
RCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVy
cmlkZTsKIAogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9iYXNlOwogICAgICAgICBFeHByZXNz
aW9uTm9kZSogbV9zdWJzY3JpcHQ7CkBAIC0xMDYzLDcgKzEwNjMsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgQXNzaWduRG90Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNz
aW9uTm9kZSogYmFzZSwgY29uc3QgSWRlbnRpZmllciYsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwg
Ym9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2
b3RFbmQpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIE9WRVJSSURFOwor
ICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUq
IG1fYmFzZTsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciYgbV9pZGVudDsKQEAgLTEwNzYsNyAr
MTA3Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWFkTW9kaWZ5RG90Tm9kZShjb25z
dCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogYmFzZSwgY29uc3QgSWRlbnRpZmll
ciYsIE9wZXJhdG9yLCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25t
ZW50cywgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYg
ZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCBSZWdp
c3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDAp
IG92ZXJyaWRlOwogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2Jhc2U7CiAgICAgICAgIGNv
bnN0IElkZW50aWZpZXImIG1faWRlbnQ7CkBAIC0xMDkwLDcgKzEwOTAsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgQXNzaWduRXJyb3JOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3Rh
cnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICBwcml2YXRlOgotICAg
ICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYs
IFJlZ2lzdGVySUQqID0gMCkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCog
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlk
ZTsKICAgICB9OwogICAgIAogICAgIHR5cGVkZWYgVmVjdG9yPEV4cHJlc3Npb25Ob2RlKiwgOD4g
RXhwcmVzc2lvblZlY3RvcjsKQEAgLTExMDQsOCArMTEwNCw4IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICB2b2lkIGFwcGVuZChFeHByZXNzaW9uTm9kZSogZXhwcikgeyBBU1NFUlQoZXhwcik7
IG1fZXhwcmVzc2lvbnMuYXBwZW5kKGV4cHIpOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICB2
aXJ0dWFsIGJvb2wgaXNDb21tYU5vZGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9
Ci0gICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCBib29sIGlz
Q29tbWFOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICB2aXJ0
dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVy
SUQqID0gMCkgb3ZlcnJpZGU7CiAKICAgICAgICAgRXhwcmVzc2lvblZlY3RvciBtX2V4cHJlc3Np
b25zOwogICAgIH07CkBAIC0xMTE4LDcgKzExMTgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgY29uc3QgSWRlbnRpZmllciYgaWRlbnQoKSB7IHJldHVybiBtX2lkZW50OyB9CiAKICAgICBw
cml2YXRlOgotICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwg
UmVnaXN0ZXJJRCogZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCog
PSAwKSBvdmVycmlkZTsKICAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Q29kZVNpbmds
ZShCeXRlY29kZUdlbmVyYXRvciYpOwogCiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1faWRl
bnQ7CkBAIC0xMTM1LDcgKzExMzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgQ29uc3RT
dGF0ZW1lbnROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIENvbnN0RGVjbE5vZGUqIG5leHQp
OwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCB2b2lkIGVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1
YWwgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDAp
IG92ZXJyaWRlOwogCiAgICAgICAgIENvbnN0RGVjbE5vZGUqIG1fbmV4dDsKICAgICB9OwpAQCAt
MTE2Myw5ICsxMTYzLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFN0YXRlbWVudE5vZGUq
IGxhc3RTdGF0ZW1lbnQoKSBjb25zdDsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwg
dm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIE9W
RVJSSURFOworICAgICAgICB2aXJ0dWFsIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wg
aXNCbG9jaygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgdmlydHVh
bCBib29sIGlzQmxvY2soKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICAg
ICAgU291cmNlRWxlbWVudHMqIG1fc3RhdGVtZW50czsKICAgICB9OwpAQCAtMTE3NSw5ICsxMTc1
LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEVtcHR5U3RhdGVtZW50Tm9kZShjb25zdCBK
U1Rva2VuTG9jYXRpb24mKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIE9WRVJSSURF
OworICAgICAgICB2aXJ0dWFsIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwg
UmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0
eVN0YXRlbWVudCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgdmly
dHVhbCBib29sIGlzRW1wdHlTdGF0ZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9CiAgICAgfTsKICAgICAKICAgICBjbGFzcyBEZWJ1Z2dlclN0YXRlbWVudE5vZGUgOiBwdWJs
aWMgU3RhdGVtZW50Tm9kZSB7CkBAIC0xMTg1LDcgKzExODUsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgRGVidWdnZXJTdGF0ZW1lbnROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYpOwog
ICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIHZvaWQgZW1pdEJ5dGVjb2Rl
KEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBPVkVSUklERTsKKyAgICAgICAg
dmlydHVhbCB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQq
ID0gMCkgb3ZlcnJpZGU7CiAgICAgfTsKIAogICAgIGNsYXNzIEV4cHJTdGF0ZW1lbnROb2RlIDog
cHVibGljIFN0YXRlbWVudE5vZGUgewpAQCAtMTE5NSw5ICsxMTk1LDkgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBleHByKCkgY29uc3QgeyByZXR1cm4gbV9leHBy
OyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNFeHByU3RhdGVtZW50
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wg
aXNFeHByU3RhdGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAg
ICAgIHZpcnR1YWwgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IDApIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKIAogICAgICAgICBF
eHByZXNzaW9uTm9kZSogbV9leHByOwogICAgIH07CkBAIC0xMjA2LDcgKzEyMDYsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFZhclN0YXRlbWVudE5vZGUoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqKTsKICAgICBwcml2YXRlOgotICAgICAg
ICB2aXJ0dWFsIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJ
RCogPSAwKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CiAKICAgICAgICAgRXhw
cmVzc2lvbk5vZGUqIG1fZXhwcjsKICAgICB9OwpAQCAtMTIxNiw3ICsxMjE2LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIElmRWxzZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhw
cmVzc2lvbk5vZGUqIGNvbmRpdGlvbiwgU3RhdGVtZW50Tm9kZSogaWZCbG9jaywgU3RhdGVtZW50
Tm9kZSogZWxzZUJsb2NrKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIE9WRVJSSURF
OworICAgICAgICB2aXJ0dWFsIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwg
UmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKICAgICAgICAgYm9vbCB0cnlGb2xkQnJlYWtBbmRD
b250aW51ZShCeXRlY29kZUdlbmVyYXRvciYsIFN0YXRlbWVudE5vZGUqIGlmQmxvY2ssCiAgICAg
ICAgICAgICBMYWJlbComIHRydWVUYXJnZXQsIEZhbGxUaHJvdWdoTW9kZSYpOwogCkBAIC0xMjMw
LDcgKzEyMzAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgRG9XaGlsZU5vZGUoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiwgU3RhdGVtZW50Tm9kZSosIEV4cHJlc3Npb25Ob2RlKik7CiAKICAg
ICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCB2b2lk
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJp
ZGU7CiAKICAgICAgICAgU3RhdGVtZW50Tm9kZSogbV9zdGF0ZW1lbnQ7CiAgICAgICAgIEV4cHJl
c3Npb25Ob2RlKiBtX2V4cHI7CkBAIC0xMjQxLDcgKzEyNDEsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgV2hpbGVOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2Rl
KiwgU3RhdGVtZW50Tm9kZSopOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCB2b2lk
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgT1ZFUlJJ
REU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOwogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBt
X2V4cHI7CiAgICAgICAgIFN0YXRlbWVudE5vZGUqIG1fc3RhdGVtZW50OwpAQCAtMTI1Miw3ICsx
MjUyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEZvck5vZGUoY29uc3QgSlNUb2tlbkxv
Y2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIsIEV4
cHJlc3Npb25Ob2RlKiBleHByMywgU3RhdGVtZW50Tm9kZSopOwogCiAgICAgcHJpdmF0ZToKLSAg
ICAgICAgdmlydHVhbCB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lz
dGVySUQqID0gMCkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBlbWl0Qnl0ZWNvZGUo
Qnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOwogCiAgICAgICAg
IEV4cHJlc3Npb25Ob2RlKiBtX2V4cHIxOwogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9leHBy
MjsKQEAgLTEyNzksNyArMTI3OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBGb3JJbk5v
ZGUoVk0qLCBjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBEZWNvbnN0cnVjdGlvblBhdHRlcm5Ob2Rl
KiwgRXhwcmVzc2lvbk5vZGUqLCBTdGF0ZW1lbnROb2RlKik7CiAKICAgICBwcml2YXRlOgotICAg
ICAgICB2aXJ0dWFsIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0
ZXJJRCogPSAwKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CiAgICAgfTsKICAg
ICAKICAgICBjbGFzcyBGb3JPZk5vZGUgOiBwdWJsaWMgRW51bWVyYXRpb25Ob2RlIHsKQEAgLTEy
ODgsNyArMTI4OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBGb3JPZk5vZGUoVk0qLCBj
b25zdCBKU1Rva2VuTG9jYXRpb24mLCBEZWNvbnN0cnVjdGlvblBhdHRlcm5Ob2RlKiwgRXhwcmVz
c2lvbk5vZGUqLCBTdGF0ZW1lbnROb2RlKik7CiAgICAgICAgIAogICAgIHByaXZhdGU6Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IDApIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5
dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKICAgICB9OwogCiAg
ICAgY2xhc3MgQ29udGludWVOb2RlIDogcHVibGljIFN0YXRlbWVudE5vZGUsIHB1YmxpYyBUaHJv
d2FibGVFeHByZXNzaW9uRGF0YSB7CkBAIC0xMjk4LDggKzEyOTgsOCBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgTGFiZWwqIHRyaXZpYWxUYXJnZXQoQnl0ZWNvZGVHZW5lcmF0b3ImKTsKICAg
ICAgICAgCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBib29sIGlzQ29udGludWUoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBlbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIE9WRVJSSURFOwor
ICAgICAgICB2aXJ0dWFsIGJvb2wgaXNDb250aW51ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CiAKICAgICAgICAgY29uc3QgSWRlbnRp
ZmllciYgbV9pZGVudDsKICAgICB9OwpAQCAtMTMxMSw4ICsxMzExLDggQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIExhYmVsKiB0cml2aWFsVGFyZ2V0KEJ5dGVjb2RlR2VuZXJhdG9yJik7CiAg
ICAgICAgIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBpc0JyZWFrKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgZW1pdEJ5
dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBPVkVSUklERTsKKyAg
ICAgICAgdmlydHVhbCBib29sIGlzQnJlYWsoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOwogCiAgICAgICAgIGNvbnN0IElkZW50aWZpZXIm
IG1faWRlbnQ7CiAgICAgfTsKQEAgLTEzMjQsOSArMTMyNCw5IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBFeHByZXNzaW9uTm9kZSogdmFsdWUoKSB7IHJldHVybiBtX3ZhbHVlOyB9CiAKICAg
ICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCB2b2lk
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJp
ZGU7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGlzUmV0dXJuTm9kZSgpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgdmlydHVhbCBib29sIGlzUmV0dXJuTm9kZSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgICAgICBFeHByZXNzaW9uTm9kZSog
bV92YWx1ZTsKICAgICB9OwpAQCAtMTMzNiw3ICsxMzM2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIFdpdGhOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiwg
U3RhdGVtZW50Tm9kZSosIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgdWludDMyX3QgZXhw
cmVzc2lvbkxlbmd0aCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIHZvaWQgZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBPVkVSUklERTsK
KyAgICAgICAgdmlydHVhbCB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJl
Z2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CiAKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhw
cjsKICAgICAgICAgU3RhdGVtZW50Tm9kZSogbV9zdGF0ZW1lbnQ7CkBAIC0xMzQ5LDcgKzEzNDks
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgTGFiZWxOb2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIFN0YXRlbWVudE5vZGUqKTsKIAogICAgIHBy
aXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IDApIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIHZvaWQgZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsK
IAogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX25hbWU7CiAgICAgICAgIFN0YXRlbWVudE5v
ZGUqIG1fc3RhdGVtZW50OwpAQCAtMTM2MCw3ICsxMzYwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIFRocm93Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSop
OwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCB2b2lkIGVtaXRCeXRlY29kZShCeXRl
Y29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1
YWwgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDAp
IG92ZXJyaWRlOwogCiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4cHI7CiAgICAgfTsKQEAg
LTEzNzAsNyArMTM3MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBUcnlOb2RlKGNvbnN0
IEpTVG9rZW5Mb2NhdGlvbiYsIFN0YXRlbWVudE5vZGUqIHRyeUJsb2NrLCBjb25zdCBJZGVudGlm
aWVyJiBleGNlcHRpb25JZGVudCwgU3RhdGVtZW50Tm9kZSogY2F0Y2hCbG9jaywgU3RhdGVtZW50
Tm9kZSogZmluYWxseUJsb2NrKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgdm9p
ZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIE9WRVJS
SURFOworICAgICAgICB2aXJ0dWFsIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKIAogICAgICAgICBTdGF0ZW1lbnROb2RlKiBt
X3RyeUJsb2NrOwogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBtX2V4Y2VwdGlvbklkZW50OwpA
QCAtMTQ3OCw3ICsxNDc4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHJpdmF0ZToKICAgICAg
ICAgUHJvZ3JhbU5vZGUoVk0qLCBjb25zdCBKU1Rva2VuTG9jYXRpb24mIHN0YXJ0LCBjb25zdCBK
U1Rva2VuTG9jYXRpb24mIGVuZCwgdW5zaWduZWQgc3RhcnRDb2x1bW4sIHVuc2lnbmVkIGVuZENv
bHVtbiwgU291cmNlRWxlbWVudHMqLCBWYXJTdGFjayosIEZ1bmN0aW9uU3RhY2sqLCBJZGVudGlm
aWVyU2V0JiwgY29uc3QgU291cmNlQ29kZSYsIENvZGVGZWF0dXJlcywgaW50IG51bUNvbnN0YW50
cyk7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRv
ciYsIFJlZ2lzdGVySUQqID0gMCkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBlbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOwog
CiAgICAgICAgIHVuc2lnbmVkIG1fc3RhcnRDb2x1bW47CiAgICAgICAgIHVuc2lnbmVkIG1fZW5k
Q29sdW1uOwpAQCAtMTQ5Nyw3ICsxNDk3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHJpdmF0
ZToKICAgICAgICAgRXZhbE5vZGUoVk0qLCBjb25zdCBKU1Rva2VuTG9jYXRpb24mIHN0YXJ0LCBj
b25zdCBKU1Rva2VuTG9jYXRpb24mIGVuZCwgdW5zaWduZWQgZW5kQ29sdW1uLCBTb3VyY2VFbGVt
ZW50cyosIFZhclN0YWNrKiwgRnVuY3Rpb25TdGFjayosIElkZW50aWZpZXJTZXQmLCBjb25zdCBT
b3VyY2VDb2RlJiwgQ29kZUZlYXR1cmVzLCBpbnQgbnVtQ29uc3RhbnRzKTsKIAotICAgICAgICB2
aXJ0dWFsIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCog
PSAwKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CiAKICAgICAgICAgdW5zaWdu
ZWQgbV9lbmRDb2x1bW47CiAgICAgfTsKQEAgLTE1MzAsNyArMTUzMCw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBGdW5jdGlvblBhcmFtZXRlcnMqIHBhcmFtZXRlcnMoKSBjb25zdCB7IHJl
dHVybiBtX3BhcmFtZXRlcnMuZ2V0KCk7IH0KICAgICAgICAgc2l6ZV90IHBhcmFtZXRlckNvdW50
KCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLT5zaXplKCk7IH0KIAotICAgICAgICB2aXJ0
dWFsIHZvaWQgZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAw
KSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdl
bmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CiAKICAgICAgICAgdm9pZCBmaW5p
c2hQYXJzaW5nKGNvbnN0IFNvdXJjZUNvZGUmLCBQYXJhbWV0ZXJOb2RlKiwgY29uc3QgSWRlbnRp
ZmllciYsIEZ1bmN0aW9uTmFtZUlzSW5TY29wZVRvZ2dsZSk7CiAgICAgICAgIHZvaWQgZmluaXNo
UGFyc2luZyhQYXNzUmVmUHRyPEZ1bmN0aW9uUGFyYW1ldGVycz4sIGNvbnN0IElkZW50aWZpZXIm
LCBGdW5jdGlvbk5hbWVJc0luU2NvcGVUb2dnbGUpOwpAQCAtMTU3MSw5ICsxNTcxLDkgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIEZ1bmN0aW9uQm9keU5vZGUqIGJvZHkoKSB7IHJldHVybiBt
X2JvZHk7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBPVkVSUklERTsK
KyAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBp
c0Z1bmNFeHByTm9kZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAg
dmlydHVhbCBib29sIGlzRnVuY0V4cHJOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQogCiAgICAgICAgIEZ1bmN0aW9uQm9keU5vZGUqIG1fYm9keTsKICAgICB9OwpAQCAtMTYw
NiwxMCArMTYwNiwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAg
IEFycmF5UGF0dGVybk5vZGUoVk0qKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RCb3Vu
ZElkZW50aWZpZXJzKFZlY3RvcjxJZGVudGlmaWVyPiYpIGNvbnN0IE9WRVJSSURFOwotICAgICAg
ICB2aXJ0dWFsIHZvaWQgYmluZFZhbHVlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCop
IGNvbnN0IE9WRVJSSURFOwotICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXREaXJlY3RC
aW5kaW5nKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogZHN0LCBFeHByZXNzaW9uTm9k
ZSopIE9WRVJSSURFOwotICAgICAgICB2aXJ0dWFsIHZvaWQgdG9TdHJpbmcoU3RyaW5nQnVpbGRl
ciYpIGNvbnN0IE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdEJvdW5kSWRl
bnRpZmllcnMoVmVjdG9yPElkZW50aWZpZXI+JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgICAgIHZp
cnR1YWwgdm9pZCBiaW5kVmFsdWUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKikgY29u
c3Qgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwgUmVnaXN0ZXJJRCogZW1pdERpcmVjdEJpbmRp
bmcoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiBkc3QsIEV4cHJlc3Npb25Ob2RlKikg
b3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwgdm9pZCB0b1N0cmluZyhTdHJpbmdCdWlsZGVyJikg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICAgICAgVmVjdG9yPFJlZlB0cjxEZWNvbnN0cnVjdGlvblBh
dHRlcm5Ob2RlPj4gbV90YXJnZXRQYXR0ZXJuczsKICAgICB9OwpAQCAtMTYyNCw5ICsxNjI0LDkg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIAogICAgIHByaXZhdGU6CiAgICAgICAgIE9iamVj
dFBhdHRlcm5Ob2RlKFZNKik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0Qm91bmRJZGVu
dGlmaWVycyhWZWN0b3I8SWRlbnRpZmllcj4mKSBjb25zdCBPVkVSUklERTsKLSAgICAgICAgdmly
dHVhbCB2b2lkIGJpbmRWYWx1ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqKSBjb25z
dCBPVkVSUklERTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHRvU3RyaW5nKFN0cmluZ0J1aWxkZXIm
KSBjb25zdCBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RCb3VuZElkZW50
aWZpZXJzKFZlY3RvcjxJZGVudGlmaWVyPiYpIGNvbnN0IG92ZXJyaWRlOworICAgICAgICB2aXJ0
dWFsIHZvaWQgYmluZFZhbHVlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCopIGNvbnN0
IG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIHZvaWQgdG9TdHJpbmcoU3RyaW5nQnVpbGRlciYp
IGNvbnN0IG92ZXJyaWRlOwogICAgICAgICBzdHJ1Y3QgRW50cnkgewogICAgICAgICAgICAgRW50
cnkoY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBib29sIHdhc1N0cmluZywgRGVjb25z
dHJ1Y3Rpb25QYXR0ZXJuTm9kZSogcGF0dGVybikKICAgICAgICAgICAgICAgICA6IHByb3BlcnR5
TmFtZShwcm9wZXJ0eU5hbWUpCkBAIC0xNjQ5LDExICsxNjQ5LDExIEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgIHByaXZhdGU6CiAgICAgICAgIEJpbmRpbmdOb2RlKFZNKiwgY29uc3QgSWRlbnRpZmll
ciYgYm91bmRQcm9wZXJ0eSwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBlbmQpOwogCi0gICAgICAg
IHZpcnR1YWwgdm9pZCBjb2xsZWN0Qm91bmRJZGVudGlmaWVycyhWZWN0b3I8SWRlbnRpZmllcj4m
KSBjb25zdCBPVkVSUklERTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGJpbmRWYWx1ZShCeXRlY29k
ZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqKSBjb25zdCBPVkVSUklERTsKLSAgICAgICAgdmlydHVh
bCB2b2lkIHRvU3RyaW5nKFN0cmluZ0J1aWxkZXImKSBjb25zdCBPVkVSUklERTsKKyAgICAgICAg
dmlydHVhbCB2b2lkIGNvbGxlY3RCb3VuZElkZW50aWZpZXJzKFZlY3RvcjxJZGVudGlmaWVyPiYp
IGNvbnN0IG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIHZvaWQgYmluZFZhbHVlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCopIGNvbnN0IG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFs
IHZvaWQgdG9TdHJpbmcoU3RyaW5nQnVpbGRlciYpIGNvbnN0IG92ZXJyaWRlOwogICAgICAgICAK
LSAgICAgICAgdmlydHVhbCBib29sIGlzQmluZGluZ05vZGUoKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiB0cnVlOyB9CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc0JpbmRpbmdOb2RlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgICAgICAKICAgICAgICAgSWRlbnRpZmllciBt
X2JvdW5kUHJvcGVydHk7CiAgICAgfTsKQEAgLTE2NjYsOSArMTY2Niw5IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICB1c2luZyBQYXJzZXJBcmVuYURlbGV0YWJsZTo6b3BlcmF0b3IgbmV3Owog
CiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBib29sIGlzTG9jYXRpb24oKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBpc0RlY29uc3Ry
dWN0aW9uTm9kZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICAgICAgdmly
dHVhbCBSZWdpc3RlcklEKiBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3Rl
cklEKiA9IDApIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIGJvb2wgaXNMb2NhdGlvbigpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgdmlydHVhbCBib29sIGlzRGVj
b25zdHJ1Y3Rpb25Ob2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAg
ICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJl
Z2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CiAKICAgICAgICAgUmVmUHRyPERlY29uc3RydWN0aW9u
UGF0dGVybk5vZGU+IG1fYmluZGluZ3M7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2luaXRp
YWxpemVyOwpAQCAtMTY4MSw3ICsxNjgxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEZ1
bmN0aW9uQm9keU5vZGUqIGJvZHkoKSB7IHJldHVybiBtX2JvZHk7IH0KIAogICAgIHByaXZhdGU6
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBS
ZWdpc3RlcklEKiA9IDApIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIHZvaWQgZW1pdEJ5dGVj
b2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBvdmVycmlkZTsKIAogICAg
ICAgICBGdW5jdGlvbkJvZHlOb2RlKiBtX2JvZHk7CiAgICAgfTsKQEAgLTE3MzEsNyArMTczMSw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTd2l0Y2hOb2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYsIEV4cHJlc3Npb25Ob2RlKiwgQ2FzZUJsb2NrTm9kZSopOwogCiAgICAgcHJpdmF0ZToK
LSAgICAgICAgdmlydHVhbCB2b2lkIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJl
Z2lzdGVySUQqID0gMCkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBlbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9IDApIG92ZXJyaWRlOwogCiAgICAg
ICAgIEV4cHJlc3Npb25Ob2RlKiBtX2V4cHI7CiAgICAgICAgIENhc2VCbG9ja05vZGUqIG1fYmxv
Y2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3Zp
ZGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyLmgKaW5k
ZXggNGNlZDlkOS4uNzJjMGRlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9Tb3VyY2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
U291cmNlUHJvdmlkZXIuaApAQCAtODMsNyArODMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RyaW5nU291cmNlUHJvdmlkZXIoc291cmNlLCB1
cmwsIHN0YXJ0UG9zaXRpb24pKTsKICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgY29uc3Qg
U3RyaW5nJiBzb3VyY2UoKSBjb25zdCBPVkVSUklERQorICAgICAgICB2aXJ0dWFsIGNvbnN0IFN0
cmluZyYgc291cmNlKCkgY29uc3Qgb3ZlcnJpZGUKICAgICAgICAgewogICAgICAgICAgICAgcmV0
dXJuIG1fc291cmNlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EYXRhVmlldy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
YVZpZXcuaAppbmRleCA3NTIxZGVkLi40YThhYTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRhVmlldy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0RhdGFWaWV3LmgKQEAgLTQwLDE3ICs0MCwxNyBAQCBwdWJsaWM6CiAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVZpZXc+IGNyZWF0ZShQYXNzUmVmUHRy
PEFycmF5QnVmZmVyPiwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVmlldz4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZm
ZXI+KTsKICAgICAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVMZW5ndGgoKSBjb25zdCBPVkVS
UklERQorICAgIHZpcnR1YWwgdW5zaWduZWQgYnl0ZUxlbmd0aCgpIGNvbnN0IG92ZXJyaWRlCiAg
ICAgewogICAgICAgICByZXR1cm4gbV9ieXRlTGVuZ3RoOwogICAgIH0KICAgICAKLSAgICB2aXJ0
dWFsIFR5cGVkQXJyYXlUeXBlIGdldFR5cGUoKSBjb25zdCBPVkVSUklERQorICAgIHZpcnR1YWwg
VHlwZWRBcnJheVR5cGUgZ2V0VHlwZSgpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBy
ZXR1cm4gVHlwZURhdGFWaWV3OwogICAgIH0KIAotICAgIHZpcnR1YWwgSlNBcnJheUJ1ZmZlclZp
ZXcqIHdyYXAoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIEpTQXJyYXlCdWZmZXJWaWV3KiB3cmFwKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0Kikg
b3ZlcnJpZGU7CiAgICAgCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBUIGdldCh1bnNp
Z25lZCBvZmZzZXQsIGJvb2wgbGl0dGxlRW5kaWFuLCBib29sKiBzdGF0dXMgPSAwKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR0NBY3Rpdml0eUNhbGxiYWNrLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HQ0FjdGl2aXR5Q2FsbGJhY2suaAppbmRl
eCA5NTIzNzAxLi4wMjI4YzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9HQ0FjdGl2aXR5Q2FsbGJhY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9HQ0FjdGl2aXR5Q2FsbGJhY2suaApAQCAtODIsMTEgKzgyLDExIEBAIHB1YmxpYzoKIAog
ICAgIERlZmF1bHRHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCopOwogCi0gICAgSlNfRVhQT1JUX1BS
SVZBVEUgdmlydHVhbCB2b2lkIGRpZEFsbG9jYXRlKHNpemVfdCkgT1ZFUlJJREU7Ci0gICAgSlNf
RVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lkIHdpbGxDb2xsZWN0KCkgT1ZFUlJJREU7Ci0gICAg
SlNfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB2b2lkIGNhbmNlbCgpIE9WRVJSSURFOworICAgIEpT
X0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgdm9pZCBkaWRBbGxvY2F0ZShzaXplX3QpIG92ZXJyaWRl
OworICAgIEpTX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgdm9pZCB3aWxsQ29sbGVjdCgpIG92ZXJy
aWRlOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgdm9pZCBjYW5jZWwoKSBvdmVycmlk
ZTsKIAotICAgIEpTX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgdm9pZCBkb1dvcmsoKSBPVkVSUklE
RTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZvaWQgZG9Xb3JrKCkgb3ZlcnJpZGU7
CiAKICNpZiBVU0UoQ0YpCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9HZW5lcmljVHlwZWRBcnJheVZpZXcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oCmluZGV4IDJiYmUwMTIuLjAwNjli
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyaWNUeXBl
ZEFycmF5Vmlldy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyaWNU
eXBlZEFycmF5Vmlldy5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IG1fbGVuZ3RoOwogICAgIH0KICAgICAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5dGVMZW5ndGgo
KSBjb25zdCBPVkVSUklERQorICAgIHZpcnR1YWwgdW5zaWduZWQgYnl0ZUxlbmd0aCgpIGNvbnN0
IG92ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gbGVuZ3RoKCkgKiBzaXplb2YodHlwZW5h
bWUgQWRhcHRvcjo6VHlwZSk7CiAgICAgfQpAQCAtMTAxLDEyICsxMDEsMTIgQEAgcHVibGljOgog
ICAgIFBhc3NSZWZQdHI8R2VuZXJpY1R5cGVkQXJyYXlWaWV3PiBzdWJhcnJheShpbnQgc3RhcnQp
IGNvbnN0OwogICAgIFBhc3NSZWZQdHI8R2VuZXJpY1R5cGVkQXJyYXlWaWV3PiBzdWJhcnJheShp
bnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogICAgIAotICAgIHZpcnR1YWwgVHlwZWRBcnJheVR5
cGUgZ2V0VHlwZSgpIGNvbnN0IE9WRVJSSURFCisgICAgdmlydHVhbCBUeXBlZEFycmF5VHlwZSBn
ZXRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiBBZGFwdG9yOjp0
eXBlVmFsdWU7CiAgICAgfQogCi0gICAgdmlydHVhbCBKU0FycmF5QnVmZmVyVmlldyogd3JhcChF
eGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgSlNBcnJh
eUJ1ZmZlclZpZXcqIHdyYXAoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKSBvdmVycmlkZTsK
IAogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2xlbmd0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmgKaW5kZXgg
OTM3MWNjZS4uYTRjYmJlNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmgKQEAgLTQyLDE0ICs0MiwxNCBAQCBw
dWJsaWM6CiAgICAgSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlKEpTR2xvYmFsT2JqZWN0Jik7CiAg
ICAgfkpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZSgpOwogCi0gICAgdmlydHVhbCBJbnNwZWN0b3I6
OlJlbW90ZUluc3BlY3RvckRlYnVnZ2FibGU6OkRlYnVnZ2FibGVUeXBlIHR5cGUoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvckRlYnVnZ2FibGU6Okph
dmFTY3JpcHQ7IH0KKyAgICB2aXJ0dWFsIEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yRGVidWdn
YWJsZTo6RGVidWdnYWJsZVR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEluc3Bl
Y3Rvcjo6UmVtb3RlSW5zcGVjdG9yRGVidWdnYWJsZTo6SmF2YVNjcmlwdDsgfQogCi0gICAgdmly
dHVhbCBTdHJpbmcgbmFtZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBoYXNM
b2NhbERlYnVnZ2VyKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0
dWFsIFN0cmluZyBuYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGhhc0xv
Y2FsRGVidWdnZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmly
dHVhbCB2b2lkIGNvbm5lY3QoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdCgpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlRnJvbnRlbmQoY29uc3QgU3RyaW5n
JiBtZXNzYWdlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdChJbnNwZWN0b3I6
Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBk
aXNjb25uZWN0KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoTWVzc2FnZUZy
b21SZW1vdGVGcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIG92ZXJyaWRlOwogCiBwcml2
YXRlOgogICAgIEpTR2xvYmFsT2JqZWN0JiBtX2dsb2JhbE9iamVjdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZVJlYWN0aW9uLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZVJlYWN0aW9uLmNwcAppbmRleCBjMGU3
NWRmLi42MzNlMjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1Byb21pc2VSZWFjdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNQcm9taXNlUmVhY3Rpb24uY3BwCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICB9CiAK
IHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHJ1bihFeGVjU3RhdGUqKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcnVuKEV4ZWNTdGF0ZSopIG92ZXJyaWRlOwogCiAgICAgU3Ryb25nPEpT
UHJvbWlzZVJlYWN0aW9uPiBtX3JlYWN0aW9uOwogICAgIFN0cm9uZzxVbmtub3duPiBtX2FyZ3Vt
ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ2Fj
aGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENhY2hlLmgKaW5kZXgg
MjY3ZWIzNS4uZDJiZmRmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwQ2FjaGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBDYWNoZS5oCkBAIC01Miw3ICs1Miw3IEBAIHByaXZhdGU6CiAKICAgICBzdGF0aWMgY29uc3Qg
aW50IG1heFN0cm9uZ0NhY2hlYWJsZUVudHJpZXMgPSAzMjsKIAotICAgIHZpcnR1YWwgdm9pZCBm
aW5hbGl6ZShIYW5kbGU8VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBmaW5hbGl6ZShIYW5kbGU8VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpIG92ZXJy
aWRlOwogCiAgICAgUmVnRXhwKiBsb29rdXBPckNyZWF0ZShjb25zdCBXVEY6OlN0cmluZyYgcGF0
dGVyblN0cmluZywgUmVnRXhwRmxhZ3MpOwogICAgIHZvaWQgYWRkVG9TdHJvbmdDYWNoZShSZWdF
eHAqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5
cGVkQXJyYXlDb250cm9sbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TaW1w
bGVUeXBlZEFycmF5Q29udHJvbGxlci5oCmluZGV4IDc0YzVlNjAuLjNkNTViODkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NpbXBsZVR5cGVkQXJyYXlDb250cm9s
bGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2ltcGxlVHlwZWRBcnJh
eUNvbnRyb2xsZXIuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgU2ltcGxlVHlwZWRB
cnJheUNvbnRyb2xsZXIoKTsKICAgICB2aXJ0dWFsIH5TaW1wbGVUeXBlZEFycmF5Q29udHJvbGxl
cigpOwogICAgIAotICAgIHZpcnR1YWwgSlNBcnJheUJ1ZmZlciogdG9KUyhFeGVjU3RhdGUqLCBK
U0dsb2JhbE9iamVjdCosIEFycmF5QnVmZmVyKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBKU0Fy
cmF5QnVmZmVyKiB0b0pTKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgQXJyYXlCdWZmZXIq
KSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sVGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N5bWJvbFRhYmxlLmgKaW5kZXggMGExNWY5ZC4uNmUyYzI2ZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sVGFibGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xUYWJsZS5oCkBAIC00ODAsNyArNDgw
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCB+V2F0Y2hwb2ludENsZWFudXAoKTsKICAg
ICAgICAgCiAgICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemVVbmNv
bmRpdGlvbmFsbHkoKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplVW5j
b25kaXRpb25hbGx5KCkgb3ZlcnJpZGU7CiAKICAgICBwcml2YXRlOgogICAgICAgICBTeW1ib2xU
YWJsZSogbV9zeW1ib2xUYWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1dlYWtNYXBEYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFr
TWFwRGF0YS5oCmluZGV4IGIwZjUyN2MuLjBjYjdiNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBEYXRhLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvV2Vha01hcERhdGEuaApAQCAtNzYsOCArNzYsOCBAQCBwcml2YXRlOgogICAg
ICAgICB7CiAgICAgICAgIH0KICAgICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIHZvaWQgdmlz
aXRXZWFrUmVmZXJlbmNlcyhTbG90VmlzaXRvciYpIE9WRVJSSURFOwotICAgICAgICB2aXJ0dWFs
IHZvaWQgZmluYWxpemVVbmNvbmRpdGlvbmFsbHkoKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVh
bCB2b2lkIHZpc2l0V2Vha1JlZmVyZW5jZXMoU2xvdFZpc2l0b3ImKSBvdmVycmlkZTsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIGZpbmFsaXplVW5jb25kaXRpb25hbGx5KCkgb3ZlcnJpZGU7CiAgICAg
ICAgIGludCBtX2xpdmVLZXlDb3VudDsKICAgICAgICAgV2Vha01hcERhdGEqIG1fdGFyZ2V0Owog
ICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCmluZGV4IDI3NGQ4NmIuLmFhNDU3NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTQt
MDEtMTYgIFBldGVyIE1vbG5hciAgPHBtb2xuYXIudS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNv
bT4KKworICAgICAgICBSZW1vdmUgd29ya2Fyb3VuZCBmb3IgY29tcGlsZXJzIG5vdCBzdXBwb3J0
aW5nIGV4cGxpY2l0IG92ZXJyaWRlIGNvbnRyb2wKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzExMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vdyBhbGwgY29tcGlsZXJzIHN1cHBvcnQgZXhwbGljaXQg
b3ZlcnJpZGUgY29udHJvbCwgdGhpcyB3b3JrYXJvdW5kIGNhbiBiZSByZW1vdmVkLgorCisgICAg
ICAgICogd3RmL0NvbXBpbGVyLmg6CisgICAgICAgICogd3RmL0ZpbGVQcmludFN0cmVhbS5oOgor
ICAgICAgICAqIHd0Zi9SdW5Mb29wLmg6CisgICAgICAgICogd3RmL1N0cmluZ1ByaW50U3RyZWFt
Lmg6CisKIDIwMTQtMDEtMTUgIEFsYmVydG8gR2FyY2lhICA8YmVydG9AaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1RLXSB2Mi4zLjMgZmFpbHMgdG8gYnVpbGQgaW4gRGViaWFuIC8gRnJlZUJTRApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ29tcGlsZXIuaCBiL1NvdXJjZS9XVEYvd3RmL0Nv
bXBpbGVyLmgKaW5kZXggZDdiOTU4YS4uM2RkMDhlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvQ29tcGlsZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Db21waWxlci5oCkBAIC0yNjYsMTMg
KzI2Niw3IEBACiAjZGVmaW5lIFdBUk5fVU5VU0VEX1JFVFVSTgogI2VuZGlmCiAKLS8qIE9WRVJS
SURFIGFuZCBGSU5BTCAqLwotCi0jaWYgQ09NUElMRVJfU1VQUE9SVFMoQ1hYX09WRVJSSURFX0NP
TlRST0wpCi0jZGVmaW5lIE9WRVJSSURFIG92ZXJyaWRlCi0jZWxzZQotI2RlZmluZSBPVkVSUklE
RQotI2VuZGlmCisvKiBGSU5BTCAqLwogCiAjaWYgQ09NUElMRVJfU1VQUE9SVFMoQ1hYX09WRVJS
SURFX0NPTlRST0wpICYmICFDT01QSUxFUl9RVUlSSyhGSU5BTF9JU19CVUdHWSkKICNpZiBDT01Q
SUxFUl9RVUlSSyhGSU5BTF9JU19DQUxMRURfU0VBTEVEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvRmlsZVByaW50U3RyZWFtLmggYi9Tb3VyY2UvV1RGL3d0Zi9GaWxlUHJpbnRTdHJlYW0u
aAppbmRleCAwNWI4ZTc1Li5mNjk4YTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GaWxl
UHJpbnRTdHJlYW0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9GaWxlUHJpbnRTdHJlYW0uaApAQCAt
NDYsOCArNDYsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgRklMRSogZmlsZSgpIHsgcmV0dXJuIG1f
ZmlsZTsgfQogICAgIAotICAgIHZpcnR1YWwgdm9pZCB2cHJpbnRmKGNvbnN0IGNoYXIqIGZvcm1h
dCwgdmFfbGlzdCkgT1ZFUlJJREUgV1RGX0FUVFJJQlVURV9QUklOVEYoMiwgMCk7Ci0gICAgdmly
dHVhbCB2b2lkIGZsdXNoKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHZwcmludGYoY29u
c3QgY2hhciogZm9ybWF0LCB2YV9saXN0KSBvdmVycmlkZSBXVEZfQVRUUklCVVRFX1BSSU5URigy
LCAwKTsKKyAgICB2aXJ0dWFsIHZvaWQgZmx1c2goKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAg
ICBGSUxFKiBtX2ZpbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmggYi9T
b3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKaW5kZXggNTI4YjQ0ZS4uZGMxM2E5MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3Au
aApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRp
YyBib29sIGlzTWFpbigpOwogICAgIH5SdW5Mb29wKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2goc3RkOjpmdW5jdGlvbjx2b2lkICgpPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPikgb3ZlcnJpZGU7CiAKICAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgcnVuKCk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgc3RvcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU3RyaW5nUHJpbnRTdHJlYW0u
aCBiL1NvdXJjZS9XVEYvd3RmL1N0cmluZ1ByaW50U3RyZWFtLmgKaW5kZXggNzI1YTkyMi4uM2Ji
YjNmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU3RyaW5nUHJpbnRTdHJlYW0uaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9TdHJpbmdQcmludFN0cmVhbS5oCkBAIC0zNyw3ICszNyw3IEBAIHB1
YmxpYzoKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nUHJpbnRTdHJlYW0oKTsKICAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB+U3RyaW5nUHJpbnRTdHJlYW0oKTsKICAgICAKLSAg
ICB2aXJ0dWFsIHZvaWQgdnByaW50Zihjb25zdCBjaGFyKiBmb3JtYXQsIHZhX2xpc3QpIE9WRVJS
SURFIFdURl9BVFRSSUJVVEVfUFJJTlRGKDIsIDApOworICAgIHZpcnR1YWwgdm9pZCB2cHJpbnRm
KGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCkgb3ZlcnJpZGUgV1RGX0FUVFJJQlVURV9QUklO
VEYoMiwgMCk7CiAgICAgCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIENTdHJpbmcgdG9DU3RyaW5n
KCk7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyB0b1N0cmluZygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDA2ZDUyODMuLjQ3MWE4M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5MTkgQEAKKzIwMTQt
MDEtMTYgIFBldGVyIE1vbG5hciAgPHBtb2xuYXIudS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNv
bT4KKworICAgICAgICBSZW1vdmUgd29ya2Fyb3VuZCBmb3IgY29tcGlsZXJzIG5vdCBzdXBwb3J0
aW5nIGV4cGxpY2l0IG92ZXJyaWRlIGNvbnRyb2wKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzExMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vdyBhbGwgY29tcGlsZXJzIHN1cHBvcnQgZXhwbGljaXQg
b3ZlcnJpZGUgY29udHJvbCwgdGhpcyB3b3JrYXJvdW5kIGNhbiBiZSByZW1vdmVkLgorCisgICAg
ICAgICogTW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZl
bnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETVByaXZhdGVBVkZvdW5k
YXRpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETVByaXZhdGVBVkZv
dW5kYXRpb24ubW06CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleU1l
c3NhZ2VFdmVudC5oOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlO
ZWVkZWRFdmVudC5oOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlT
ZXNzaW9uLmg6CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuaDoK
KyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmg6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmg6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZE9wZXJhdGlvbnMuaDoKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JXaXRoVmFsdWUuaDoKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQk9wZW5EQlJlcXVlc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1
ZXN0Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaDoKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRPcGVyYXRpb25z
Lmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJCYWNraW5nU3RvcmVM
ZXZlbERCLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkZhY3Rv
cnlCYWNrZW5kTGV2ZWxEQi5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIv
SURCU2VydmVyQ29ubmVjdGlvbkxldmVsREIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGlldWkv
VUlSZXF1ZXN0RXZlbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291
cmNlLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5
Lmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaDoKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaDoKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL0F1ZGlvU3RyZWFtVHJhY2suaDoKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmg6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1SZWdpc3RyeS5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFja0V2ZW50Lmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bVRyYWNrU291cmNlc1JlcXVlc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q0RUTUZTZW5kZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFu
bmVsLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5o
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdEltcGwuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVz
dEltcGwuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2Uu
aDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5oOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5oOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVmlkZW9TdHJlYW1UcmFjay5oOgorICAgICAgICAqIE1v
ZHVsZXMvbmV0d29ya2luZm8vTmV0d29ya0luZm9Db25uZWN0aW9uLmg6CisgICAgICAgICogTW9k
dWxlcy9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaDoKKyAgICAgICAgKiBN
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oOgorICAgICAgICAqIE1vZHVsZXMvcGx1
Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25FcnJvci5oOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uRXZlbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMu
aDoKKyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaDoK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2VyTm9kZS5oOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9CYXNpY0luc3BlY3Rvck5vZGUuaDoKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQmFzaWNQcm9jZXNzb3JOb2RlLmg6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9E
ZXN0aW5hdGlvbk5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5o
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlSW5wdXQuaDoKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9C
aXF1YWREU1BLZXJuZWwuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZFByb2Nl
c3Nvci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbE1lcmdlck5vZGUuaDoK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxTcGxpdHRlck5vZGUuaDoKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vRGVsYXlEU1BLZXJuZWwuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L0RlbGF5UHJvY2Vzc29yLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9EeW5hbWljc0Nv
bXByZXNzb3JOb2RlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9HYWluTm9kZS5oOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmg6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25O
b2RlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNl
Tm9kZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29tcGxldGlv
bkV2ZW50Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5h
dGlvbk5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmg6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmg6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmg6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9XYXZlU2hhcGVyRFNQS2VybmVsLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9XYXZlU2hhcGVyUHJvY2Vzc29yLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZVRhc2suaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0
aW9uLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tl
bmQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvQ2xvc2VFdmVudC5oOgorICAgICAg
ICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tl
dHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAqIE1vZHVs
ZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkLmg6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsLmg6CisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlMaXN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5TGlzdEJveC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RC
b3hPcHRpb24uaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZWRpYUNv
bnRyb2xzLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3Qu
aDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5o
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuaDoK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNb2NrT2JqZWN0Lmg6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmg6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHUm9vdC5oOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlTZWFyY2hGaWVsZEJ1dHRvbnMuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTbGlkZXIuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTcGluQnV0dG9uLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFi
bGUuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuaDoK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5oOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyLmg6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobUJ1aWxkZXIuaDoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdFRhc2suaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0V2ZW50TGlzdGVuZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3Rl
bmVyLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmg6CisgICAg
ICAgICogYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmg6CisgICAgICAgICogYmlu
ZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJD
b3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHREZWJ1Z1NlcnZlci5oOgorICAgICAgICAqIGJyaWRnZS9jL2NfY2xhc3MuaDoKKyAgICAg
ICAgKiBicmlkZ2UvYy9jX2luc3RhbmNlLmg6CisgICAgICAgICogYnJpZGdlL2MvY19ydW50aW1l
Lmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfcm9vdC5oOgorICAgICAgICAqIGNyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5oOgorICAgICAgICAqIGNyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81Lmg6CisgICAgICAgICogY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuaDoKKyAgICAgICAgKiBjcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmg6CisgICAgICAgICogY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0Lmg6CisgICAgICAgICogY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2Lmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0Lmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtU0hBNTEyLmg6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5
QUVTLmg6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1BQy5oOgorICAgICAgICAq
IGNyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5oOgorICAgICAgICAqIGNyeXB0by9rZXlzL0NyeXB0
b0tleVNlcmlhbGl6YXRpb25SYXcuaDoKKyAgICAgICAgKiBjcnlwdG8vcGFyYW1ldGVycy9Dcnlw
dG9BbGdvcml0aG1BZXNDYmNQYXJhbXMuaDoKKyAgICAgICAgKiBjcnlwdG8vcGFyYW1ldGVycy9D
cnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMuaDoKKyAgICAgICAgKiBjcnlwdG8vcGFyYW1l
dGVycy9DcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zLmg6CisgICAgICAgICogY3J5cHRvL3Bh
cmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcy5oOgorICAgICAgICAqIGNyeXB0by9w
YXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcy5oOgorICAgICAgICAqIGNy
eXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoLmg6Cisg
ICAgICAgICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtcy5o
OgorICAgICAgICAqIGNyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFt
cy5oOgorICAgICAgICAqIGNzcy9DU1NCYXNpY1NoYXBlcy5oOgorICAgICAgICAqIGNzcy9DU1ND
YW52YXNWYWx1ZS5oOgorICAgICAgICAqIGNzcy9DU1NDaGFyc2V0UnVsZS5oOgorICAgICAgICAq
IGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaDoKKyAgICAgICAgKiBjc3MvQ1NTQ3Jv
c3NmYWRlVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTRmlsdGVySW1hZ2VWYWx1ZS5oOgorICAg
ICAgICAqIGNzcy9DU1NGb250RmFjZVJ1bGUuaDoKKyAgICAgICAgKiBjc3MvQ1NTRm9udFNlbGVj
dG9yLmg6CisgICAgICAgICogY3NzL0NTU0dyb3VwaW5nUnVsZS5oOgorICAgICAgICAqIGNzcy9D
U1NIb3N0UnVsZS5oOgorICAgICAgICAqIGNzcy9DU1NJbXBvcnRSdWxlLmg6CisgICAgICAgICog
Y3NzL0NTU01lZGlhUnVsZS5oOgorICAgICAgICAqIGNzcy9DU1NQYWdlUnVsZS5oOgorICAgICAg
ICAqIGNzcy9DU1NTdHlsZVJ1bGUuaDoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTaGVldC5oOgor
ICAgICAgICAqIGNzcy9DU1NTdXBwb3J0c1J1bGUuaDoKKyAgICAgICAgKiBjc3MvQ1NTVW5rbm93
blJ1bGUuaDoKKyAgICAgICAgKiBjc3MvRm9udExvYWRlci5jcHA6CisgICAgICAgICogY3NzL0Zv
bnRMb2FkZXIuaDoKKyAgICAgICAgKiBjc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9u
Lmg6CisgICAgICAgICogY3NzL1dlYktpdENTU0ZpbHRlclJ1bGUuaDoKKyAgICAgICAgKiBjc3Mv
V2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmg6CisgICAgICAgICogY3NzL1dlYktpdENTU0tleWZyYW1l
c1J1bGUuaDoKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTUmVnaW9uUnVsZS5oOgorICAgICAgICAq
IGNzcy9XZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaDoKKyAgICAgICAgKiBkb20vQXR0ci5oOgorICAg
ICAgICAqIGRvbS9CZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oOgorICAgICAgICAqIGRvbS9CZWZv
cmVVbmxvYWRFdmVudC5oOgorICAgICAgICAqIGRvbS9DREFUQVNlY3Rpb24uaDoKKyAgICAgICAg
KiBkb20vQ2hhcmFjdGVyRGF0YS5oOgorICAgICAgICAqIGRvbS9DaGlsZE5vZGVMaXN0Lmg6Cisg
ICAgICAgICogZG9tL0NsaXBib2FyZC5jcHA6CisgICAgICAgICogZG9tL0NsaXBib2FyZEV2ZW50
Lmg6CisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuaDoKKyAgICAgICAgKiBkb20vRE9NSW1w
bGVtZW50YXRpb24uY3BwOgorICAgICAgICAqIGRvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmg6Cisg
ICAgICAgICogZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBkb20vRGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmg6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHA6CisgICAgICAgICogZG9tL0RvY3Vt
ZW50RXZlbnRRdWV1ZS5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudEZyYWdtZW50Lmg6CisgICAg
ICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiBkb20vRXJyb3JFdmVudC5oOgorICAgICAg
ICAqIGRvbS9FdmVudENvbnRleHQuaDoKKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQuaDoKKyAg
ICAgICAgKiBkb20vRm9jdXNFdmVudC5oOgorICAgICAgICAqIGRvbS9LZXlib2FyZEV2ZW50Lmg6
CisgICAgICAgICogZG9tL0xpdmVOb2RlTGlzdC5oOgorICAgICAgICAqIGRvbS9NZXNzYWdlUG9y
dC5oOgorICAgICAgICAqIGRvbS9Nb3VzZUV2ZW50Lmg6CisgICAgICAgICogZG9tL011dGF0aW9u
UmVjb3JkLmNwcDoKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAqIGRvbS9QYWdlVHJh
bnNpdGlvbkV2ZW50Lmg6CisgICAgICAgICogZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oOgor
ICAgICAgICAqIGRvbS9Qcm9ncmVzc0V2ZW50Lmg6CisgICAgICAgICogZG9tL1BzZXVkb0VsZW1l
bnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOgorICAgICAgICAq
IGRvbS9TaGFkb3dSb290Lmg6CisgICAgICAgICogZG9tL1N0YXRpY05vZGVMaXN0Lmg6CisgICAg
ICAgICogZG9tL1N0eWxlZEVsZW1lbnQuaDoKKyAgICAgICAgKiBkb20vVGFnTm9kZUxpc3QuaDoK
KyAgICAgICAgKiBkb20vVGVtcGxhdGVDb250ZW50RG9jdW1lbnRGcmFnbWVudC5oOgorICAgICAg
ICAqIGRvbS9UZXh0Lmg6CisgICAgICAgICogZG9tL1RleHRFdmVudC5oOgorICAgICAgICAqIGRv
bS9Ub3VjaEV2ZW50Lmg6CisgICAgICAgICogZG9tL1RyYW5zaXRpb25FdmVudC5oOgorICAgICAg
ICAqIGRvbS9VSUV2ZW50Lmg6CisgICAgICAgICogZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50Lmg6
CisgICAgICAgICogZG9tL1dlYktpdE5hbWVkRmxvdy5oOgorICAgICAgICAqIGRvbS9XZWJLaXRU
cmFuc2l0aW9uRXZlbnQuaDoKKyAgICAgICAgKiBlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmg6
CisgICAgICAgICogZWRpdGluZy9BcHBseUJsb2NrRWxlbWVudENvbW1hbmQuaDoKKyAgICAgICAg
KiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9CcmVha0Js
b2NrcXVvdGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFu
ZC5oOgorICAgICAgICAqIGVkaXRpbmcvRGVsZXRlQnV0dG9uLmg6CisgICAgICAgICogZWRpdGlu
Zy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9FZGl0Q29t
bWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5oOgor
ICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQuaDoKKyAgICAgICAgKiBl
ZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9NZXJnZUlkZW50
aWNhbEVsZW1lbnRzQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvUmVtb3ZlQ1NTUHJvcGVy
dHlDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5oOgorICAg
ICAgICAqIGVkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaDoKKyAgICAgICAgKiBl
ZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9TZXRT
ZWxlY3Rpb25Db21tYW5kLmg6CisgICAgICAgICogZWRpdGluZy9TcGVsbENoZWNrZXIuaDoKKyAg
ICAgICAgKiBlZGl0aW5nL1NwZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAq
IGVkaXRpbmcvU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcv
U3BsaXRFbGVtZW50Q29tbWFuZC5oOgorICAgICAgICAqIGVkaXRpbmcvU3BsaXRUZXh0Tm9kZUNv
bW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1dyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFu
ZC5oOgorICAgICAgICAqIGVkaXRpbmcvaW9zL0VkaXRvcklPUy5tbToKKyAgICAgICAgKiBlZGl0
aW5nL21hcmt1cC5jcHA6CisgICAgICAgICogZmlsZWFwaS9CbG9iLmNwcDoKKyAgICAgICAgKiBm
aWxlYXBpL0Jsb2IuaDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGUuaDoKKyAgICAgICAgKiBmaWxl
YXBpL0ZpbGVSZWFkZXIuaDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVUaHJlYWRUYXNrLmg6Cisg
ICAgICAgICogaGlzdG9yeS9CYWNrRm9yd2FyZExpc3QuaDoKKyAgICAgICAgKiBodG1sL0Jhc2VC
dXR0b25JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUu
aDoKKyAgICAgICAgKiBodG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmg6
CisgICAgICAgICogaHRtbC9CYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oOgorICAgICAg
ICAqIGh0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9CYXNl
VGV4dElucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvQnV0dG9uSW5wdXRUeXBlLmg6CisgICAg
ICAgICogaHRtbC9DaGVja2JveElucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvQ2xhc3NMaXN0
Lmg6CisgICAgICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRE9N
U2V0dGFibGVUb2tlbkxpc3QuaDoKKyAgICAgICAgKiBodG1sL0RhdGVJbnB1dFR5cGUuaDoKKyAg
ICAgICAgKiBodG1sL0RhdGVUaW1lSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9EYXRlVGlt
ZUxvY2FsSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9FbWFpbElucHV0VHlwZS5oOgorICAg
ICAgICAqIGh0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwvRmls
ZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcDoK
KyAgICAgICAgKiBodG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
SFRNTEFuY2hvckVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBcHBsZXRFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9IVE1MQXJlYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxC
UkVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxCYXNlRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTEJvZHlFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQnV0dG9uRWxlbWVu
dC5oOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxEZXRhaWxzRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MRGV0YWlsc0VsZW1l
bnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxEaXZFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MRG9jdW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9IVE1MRW1iZWRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRmllbGRTZXRFbGVt
ZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRm9udEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJv
bEVsZW1lbnRXaXRoU3RhdGUuaDoKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbHNDb2xs
ZWN0aW9uLmg6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuaDoKKyAgICAgICAgKiBo
dG1sL0hUTUxGcmFtZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZUVsZW1lbnRC
YXNlLmg6CisgICAgICAgICogaHRtbC9IVE1MRnJhbWVPd25lckVsZW1lbnQuaDoKKyAgICAgICAg
KiBodG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxIUkVsZW1l
bnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxIdG1sRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
SFRNTElGcmFtZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUVsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUxvYWRlci5oOgorICAgICAgICAqIGh0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTExJRWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTExhYmVsRWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTExlZ2VuZEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTE1hcEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxN
YXJxdWVlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTE1lZGlhU2Vzc2lvbi5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlh
U291cmNlLmg6CisgICAgICAgICogaHRtbC9IVE1MTWV0YUVsZW1lbnQuaDoKKyAgICAgICAgKiBo
dG1sL0hUTUxNZXRlckVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNb2RFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9IVE1MT0xpc3RFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1M
T2JqZWN0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oOgor
ICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxP
dXRwdXRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MUGFyYWdyYXBoRWxlbWVudC5oOgor
ICAgICAgICAqIGh0bWwvSFRNTFBhcmFtRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFBs
dWdJbkVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxQcmVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MUHJv
Z3Jlc3NFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MUXVvdGVFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxTb3VyY2VFbGVtZW50Lmg6CisgICAgICAg
ICogaHRtbC9IVE1MU3R5bGVFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MU3VtbWFyeUVs
ZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRh
YmxlQ29sRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxU
YWJsZVJvd3NDb2xsZWN0aW9uLmg6CisgICAgICAgICogaHRtbC9IVE1MVGFibGVTZWN0aW9uRWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUaXRsZUVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxUcmFja0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxVTGlz
dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxVbmtub3duRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSGlkZGVuSW5wdXRU
eXBlLmg6CisgICAgICAgICogaHRtbC9JbWFnZURvY3VtZW50LmNwcDoKKyAgICAgICAgKiBodG1s
L0ltYWdlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9MYWJlbGFibGVFbGVtZW50Lmg6Cisg
ICAgICAgICogaHRtbC9MYWJlbHNOb2RlTGlzdC5oOgorICAgICAgICAqIGh0bWwvTWVkaWFDb250
cm9sbGVyLmg6CisgICAgICAgICogaHRtbC9Nb250aElucHV0VHlwZS5oOgorICAgICAgICAqIGh0
bWwvTnVtYmVySW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9QYXNzd29yZElucHV0VHlwZS5o
OgorICAgICAgICAqIGh0bWwvUGx1Z2luRG9jdW1lbnQuaDoKKyAgICAgICAgKiBodG1sL1JhZGlv
SW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5oOgorICAgICAgICAq
IGh0bWwvUmVzZXRJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1NlYXJjaElucHV0VHlwZS5o
OgorICAgICAgICAqIGh0bWwvU3VibWl0SW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9UZWxl
cGhvbmVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlwZS5oOgor
ICAgICAgICAqIGh0bWwvVGV4dElucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvVGltZUlucHV0
VHlwZS5oOgorICAgICAgICAqIGh0bWwvVVJMSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9X
ZWVrSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmNwcDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaDoKKyAg
ICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaDoKKyAgICAgICAgKiBodG1s
L3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EZXRh
aWxzTWFya2VyQ29udHJvbC5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L0luc2VydGlvblBvaW50
Lmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudFR5cGVzLmg6Cisg
ICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaDoKKyAgICAgICAgKiBo
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sc0FwcGxlLmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0d0ay5o
OgorICAgICAgICAqIGh0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvc2hh
ZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVy
VGh1bWJFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaDoKKyAg
ICAgICAgKiBodG1sL3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50Lmg6CisgICAgICAg
ICogaHRtbC90cmFjay9BdWRpb1RyYWNrLmg6CisgICAgICAgICogaHRtbC90cmFjay9BdWRpb1Ry
YWNrTGlzdC5oOgorICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5o
OgorICAgICAgICAqIGh0bWwvdHJhY2svSW5iYW5kVGV4dFRyYWNrLmg6CisgICAgICAgICogaHRt
bC90cmFjay9JbmJhbmRXZWJWVFRUZXh0VHJhY2suaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL0xv
YWRhYmxlVGV4dFRyYWNrLmg6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2suaDoKKyAg
ICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oOgorICAgICAgICAqIGh0bWwvdHJhY2sv
VGV4dFRyYWNrQ3VlR2VuZXJpYy5jcHA6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tD
dWVHZW5lcmljLmg6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0Lmg6CisgICAg
ICAgICogaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmg6CisgICAgICAgICogaHRtbC90cmFjay9W
aWRlb1RyYWNrLmg6CisgICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrTGlzdC5oOgorICAg
ICAgICAqIGh0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9D
b21tYW5kTGluZUFQSU1vZHVsZS5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlw
dENhbnZhc01vZHVsZS5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlv
bkNhY2hlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yQ29uc29sZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50
LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JNZW1vcnlBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50Lmg6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yV29ya2VyQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2Vu
dC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuaDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvUGFnZUluamVjdGVkU2NyaXB0SG9zdC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9QYWdlSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmg6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VS
dW50aW1lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50Lmg6
CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9Xb3JrZXJSdW50aW1lQWdlbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIu
aDoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTmV0d29ya2luZ0NvbnRleHQuaDoKKyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuaDoK
KyAgICAgICAgKiBsb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHA6CisgICAgICAgICogbG9h
ZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL1BpbmdM
b2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBs
b2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvV29ya2VyVGhyZWFk
YWJsZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
R3JvdXAuY3BwOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3Jv
dXAuaDoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5oOgor
ICAgICAgICAqIGxvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmUuaDoKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oOgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRGb250Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnRDbGll
bnQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaDoKKyAgICAgICAgKiBs
b2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2VDbGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUv
Q2FjaGVkUmF3UmVzb3VyY2UuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVz
b3VyY2VDbGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQu
aDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRDbGllbnQuaDoKKyAg
ICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0Lmg6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFNoYWRlci5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTdHlsZVNo
ZWV0Q2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0Lmg6CisgICAgICAgICog
bG9hZGVyL2ljb24vSWNvbkxvYWRlci5oOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxFbGVtZW50
Lmg6CisgICAgICAgICogbWF0aG1sL01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuaDoKKyAg
ICAgICAgKiBtYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBtYXRobWwvTWF0
aE1MU2VsZWN0RWxlbWVudC5oOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5o
OgorICAgICAgICAqIHBhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuaDoKKyAgICAg
ICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAgICAqIHBhZ2UvRE9NVGltZXIuaDoKKyAgICAgICAg
KiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93RXh0ZW5zaW9uLmg6
CisgICAgICAgICogcGFnZS9FdmVudFNvdXJjZS5oOgorICAgICAgICAqIHBhZ2UvRnJhbWUuaDoK
KyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBhZ2UvUGFnZURlYnVnZ2Fi
bGUuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAgKiBwYWdl
L1BlcmZvcm1hbmNlLmg6CisgICAgICAgICogcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmg6CisgICAg
ICAgICogcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uaDoKKyAgICAgICAgKiBwYWdl
L2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdDb25zdHJhaW50cy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1N0YXRlRml4ZWROb2RlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3Rh
dGVTY3JvbGxpbmdOb2RlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3Rh
dGVTdGlja3lOb2RlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGlu
Z1RyZWUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5oOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdDb29yZGluYXRvcklPUy5oOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlSU9TLmg6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmg6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGaXhlZE5vZGUuaDoKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMuaDoKKyAgICAgICAgKiBw
YWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUuaDoKKyAgICAgICAgKiBw
ZGYvaW9zL1BERkRvY3VtZW50LmNwcDoKKyAgICAgICAgKiBwZGYvaW9zL1BERkRvY3VtZW50Lmg6
CisgICAgICAgICogcGxhdGZvcm0vQ2FsY3VsYXRpb25WYWx1ZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL0Nsb2NrR2VuZXJpYy5oOgorICAgICAgICAqIHBsYXRmb3JtL01haW5UaHJlYWRUYXNrLmg6
CisgICAgICAgICogcGxhdGZvcm0vUE9ESW50ZXJ2YWxUcmVlLmg6CisgICAgICAgICogcGxhdGZv
cm0vUE9EUmVkQmxhY2tUcmVlLmg6CisgICAgICAgICogcGxhdGZvcm0vUmVmQ291bnRlZFN1cHBs
ZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6CisgICAgICAgICogcGxh
dGZvcm0vU2Nyb2xsYmFyLmg6CisgICAgICAgICogcGxhdGZvcm0vVGltZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9BdWRpb0RTUEtlcm5lbFByb2Nlc3Nvci5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL0VxdWFsUG93ZXJQYW5uZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGUGFu
bmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9zL0F1ZGlvRGVzdGluYXRpb25JT1Mu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL25peC9BdWRpb0Rlc3RpbmF0aW9uTml4Lmg6CisgICAg
ICAgICogcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmg6CisgICAgICAgICogcGxhdGZvcm0v
ZWZsL1Njcm9sbGJhckVmbC5oOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9TY3JvbGxiYXJUaGVt
ZUVmbC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRlLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9seWdvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dlbmVyYXRlZEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGll
bnRJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL1NpbXBsZUZvbnREYXRhLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24u
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vVmlkZW9UcmFja1By
aXZhdGVBVkYuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2Yv
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWQ0YuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vY2YvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWQ0YuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uQ0YuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0luYmFuZFRleHRUcmFja1By
aXZhdGVBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWRk9iakMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZG
T2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1Nv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW06CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVB
VkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
VmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDb250cm9sbGVyLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbi5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9XS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9z
dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEZyb21DdXJyZW50
RUdMLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9EaXN0YW50TGlnaHRT
b3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1h
cC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Qb2ludExpZ2h0U291cmNlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9TcG90TGlnaHRTb3VyY2UuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFt
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kTWV0YWRh
dGFUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9pb3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUFWRklPUy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2lvcy9NZWRpYVBsYXllclBy
aXZhdGVJT1MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9pb3MvVGV4dFRyYWNrUmVw
cmVzZW50YXRpb25JT1MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9H
TFRyYW5zcG9ydFN1cmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNl
cy9lZ2wvRUdMQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2Vz
L2VnbC9FR0xTdXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
ZWdsL0VHTFhTdXJmYWNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
Z2x4L0dMWENvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9n
bHgvR0xYU3VyZmFjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRv
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29y
ZGluYXRlZEJhY2tpbmdTdG9yZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZEN1c3RvbUZpbHRlclByb2dyYW0uaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRUaWxlLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1VwZGF0ZUF0bGFzLmNwcDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mv
RGV2aWNlTW90aW9uQ2xpZW50SU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9y
aWVudGF0aW9uQ2xpZW50SU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1Njcm9sbEFuaW1h
dG9ySU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1Njcm9sbGJhclRoZW1lSU9TLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlNhZmVHQ0FjdGl2aXR5Q2FsbGJhY2tJT1MuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViU2FmZUluY3JlbWVudGFsU3dlZXBlcklPUy5oOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUNsb2NrQ0EuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvUGxhdGZvcm1DbG9ja0NNLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbEFu
aW1hdG9yTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLmg6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1D
ZW50ZXJHU3RyZWFtZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZB
dWRpb0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QVZNZWRpYUNhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvTWVkaWFTdHJlYW1DZW50ZXJNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL0Rl
dmljZU1vdGlvbkNsaWVudE1vY2suaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL0RldmljZU9y
aWVudGF0aW9uQ2xpZW50TW9jay5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja01lZGlh
U3RyZWFtQ2VudGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhh
bmRsZXJNb2NrLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9SVENOb3RpZmllcnNNb2NrLmg6
CisgICAgICAgICogcGxhdGZvcm0vbW9jay9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrLmg6
CisgICAgICAgICogcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRp
YVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlh
U291cmNlUHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9j
a1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svbWVkaWFz
b3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL0Jsb2JSZWdpc3RyeUltcGwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JS
ZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3Vy
Y2VIYW5kbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9TeW5jaHJvbm91c0xvYWRlckNsaWVudC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rp
b25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY2YvU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmg6
CisgICAgICAgICogcGxhdGZvcm0vbml4L1JlbmRlclRoZW1lTml4Lmg6CisgICAgICAgICogcGxh
dGZvcm0vbml4L1Njcm9sbGJhclRoZW1lTml4Lmg6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9M
b2NhbGVJQ1UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsZU5vbmUuY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvbWFjL0xvY2FsZU1hYy5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvd2luL0xv
Y2FsZVdpbi5oOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaDoKKyAgICAg
ICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvQXV0b1RhYmxl
TGF5b3V0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL0NsaXBQYXRoT3BlcmF0aW9uLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL0VsbGlwc2lzQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL0ZpbHRl
ckVmZmVjdFJlbmRlcmVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lRWxlbWVudEJveC5oOgorICAgICAgICAqIHJl
bmRlcmluZy9JbmxpbmVGbG93Qm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZVRleHRC
b3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQmxvY2tGbG93Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCdXR0b24uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQ29t
YmluZVRleHQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQ291bnRlci5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJFbGVtZW50Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0Lmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0Lmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckZsZXhpYmxlQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnJhbWUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRnJhbWVTZXQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckhUTUxDYW52YXMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySUZyYW1lLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckltYWdlLmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlcklubGluZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
RmlsdGVySW5mby5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMaXN0Qm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RJ
dGVtLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTWVkaWEuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVu
dUxpc3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWV0ZXIuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TXVsdGlDb2x1bW5TZXQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93RnJh
Z21lbnQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJQcm9ncmVzcy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJRdW90ZS5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZWdpb24uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyUmVnaW9uU2V0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyUnVieS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnlUZXh0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclNjcm9sbGJhci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXJQYXJ0
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhclRoZW1lLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclNsaWRlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bi5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZS5oOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUYWJsZUNhcHRpb24uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFi
bGVDZWxsLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRhYmxlU2VjdGlvbi5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0
RnJhZ21lbnQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dFRyYWNrQ3VlLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lU2FmYXJp
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclZpZGVvLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyV2lkZ2V0Lmg6CisgICAgICAgICogcmVuZGVyaW5n
L1Jvb3RJbmxpbmVCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhN
TEJsb2NrLmg6CisgICAgICAgICogcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZyYWN0aW9uLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxNYXRoLmg6CisgICAgICAgICog
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5oOgorICAgICAgICAqIHJlbmRl
cmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm9vdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9tYXRo
bWwvUmVuZGVyTWF0aE1MUm93Lmg6CisgICAgICAgICogcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJN
YXRoTUxTY3JpcHRzLmg6CisgICAgICAgICogcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxT
cGFjZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU3F1YXJlUm9v
dC5oOgorICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVW5kZXJPdmVyLmg6
CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5oOgorICAgICAgICAqIHJlbmRl
cmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9S
YXN0ZXJTaGFwZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvUmVjdGFuZ2xlU2hhcGUu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5oOgorICAgICAgICAqIHJlbmRl
cmluZy9zdHlsZS9CYXNpY1NoYXBlcy5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9Db250
ZW50RGF0YS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmg6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2VTZXQuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5oOgorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdJbWFnZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHQmxvY2suaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Nv
bnRhaW5lci5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVj
dC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHR3JhZGllbnRTdG9wLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmg6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdJbmxpbmUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0lubGluZVRleHQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2Jq
ZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdQYXRoLmg6CisgICAgICAg
ICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VMaW5lYXJHcmFkaWVudC5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSZXNvdXJjZVBhdHRlcm4uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlUmFkaWFsR3JhZGllbnQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlU29saWRDb2xvci5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUm9vdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuY3BwOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1RleHRQYXRoLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdWaWV3cG9y
dENvbnRhaW5lci5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHSW5saW5lRmxvd0JveC5o
OgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvU1ZHVGV4dFJ1blJlbmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBzdG9yYWdlL1N0b3Jh
Z2VBcmVhSW1wbC5oOgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaDoK
KyAgICAgICAgKiBzdmcvU1ZHQUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQWx0R2x5cGhE
ZWZFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oOgorICAgICAg
ICAqIHN2Zy9TVkdBbHRHbHlwaEl0ZW1FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0FuaW1h
dGVFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50Lmg6Cisg
ICAgICAgICogc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR0FuaW1hdGVkQW5nbGUuaDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmg6
CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkQ29sb3IuaDoKKyAgICAgICAgKiBzdmcvU1ZHQW5p
bWF0ZWRFbnVtZXJhdGlvbi5oOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZEludGVnZXIuaDoK
KyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLmg6CisgICAg
ICAgICogc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmg6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVk
TGVuZ3RoTGlzdC5oOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZE51bWJlci5oOgorICAgICAg
ICAqIHN2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuaDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0
ZWROdW1iZXJPcHRpb25hbE51bWJlci5oOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFBhdGgu
aDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZWRQb2ludExpc3QuaDoKKyAgICAgICAgKiBzdmcv
U1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvLmg6CisgICAgICAgICogc3ZnL1NWR0FuaW1h
dGVkUmVjdC5oOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFN0cmluZy5oOgorICAgICAgICAq
IHN2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0
aW9uRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdDaXJjbGVFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdDdXJzb3JFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0RlZnNFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0Rv
Y3VtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZH
RWxlbWVudEluc3RhbmNlLmg6CisgICAgICAgICogc3ZnL1NWR0VsbGlwc2VFbGVtZW50Lmg6Cisg
ICAgICAgICogc3ZnL1NWR0ZFQmxlbmRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFQ29s
b3JNYXRyaXhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJF
bGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5oOgorICAgICAg
ICAqIHN2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdG
RURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVEaXNwbGFjZW1l
bnRNYXBFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR0ZFSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFTGlnaHRFbGVtZW50Lmg6
CisgICAgICAgICogc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9T
VkdGRU1vcnBob2xvZ3lFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50Lmg6CisgICAg
ICAgICogc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVUdXJidWxl
bmNlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oOgorICAgICAgICAq
IHN2Zy9TVkdGb250RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZUVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VT
cmNFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oOgorICAg
ICAgICAqIHN2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdH
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdHbHlwaEVsZW1lbnQuaDoKKyAgICAgICAgKiBz
dmcvU1ZHR2x5cGhSZWZFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0dyYWRpZW50RWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdHcmFwaGljc0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcv
U1ZHSEtlcm5FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ltYWdlRWxlbWVudC5oOgorICAg
ICAgICAqIHN2Zy9TVkdMaW5lRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdMaW5lYXJHcmFk
aWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTVBhdGhFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR01hcmtlckVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTWFza0VsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHTWV0YWRhdGFFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R1BhdGhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BhdGhTdHJpbmdCdWlsZGVyLmg6Cisg
ICAgICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1BvbHlF
bGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oOgorICAg
ICAgICAqIHN2Zy9TVkdSZWN0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdTVkdFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZH
U2V0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdTdG9wRWxlbWVudC5oOgorICAgICAgICAq
IHN2Zy9TVkdTdHlsZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU3dpdGNoRWxlbWVudC5o
OgorICAgICAgICAqIHN2Zy9TVkdTeW1ib2xFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1RS
ZWZFbGVtZW50LmNwcDoKKyAgICAgICAgKiBzdmcvU1ZHVFJlZkVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHVFNwYW5FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1RleHRDb250ZW50RWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdUZXh0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9T
VkdUZXh0UGF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdUaXRsZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcv
U1ZHVHJhbnNmb3JtYWJsZS5oOgorICAgICAgICAqIHN2Zy9TVkdVbmtub3duRWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1ZLZXJuRWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdWaWV3RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9h
bmltYXRpb24vU1ZHU01JTEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2UuaDoKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuaDoKKyAg
ICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaDoKKyAgICAgICAgKiBzdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKiBz
dmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaDoK
KyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmg6CisgICAg
ICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0eVRlYXJPZmYuaDoKKyAg
ICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
LmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tDRE0uY3BwOgorICAgICAgICAqIHRlc3Rpbmcv
TW9ja0NETS5oOgorICAgICAgICAqIHdvcmtlcnMvQWJzdHJhY3RXb3JrZXIuaDoKKyAgICAgICAg
KiB3b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmg6CisgICAgICAgICogd29ya2Vy
cy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL1NoYXJlZFdvcmtl
ci5oOgorICAgICAgICAqIHdvcmtlcnMvU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAgICAg
ICAgKiB3b3JrZXJzL1NoYXJlZFdvcmtlclRocmVhZC5oOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVlLmNwcDoKKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlckV2ZW50UXVldWUuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckds
b2JhbFNjb3BlLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oOgor
ICAgICAgICAqIHdvcmtlcnMvV29ya2VyT2JqZWN0UHJveHkuaDoKKyAgICAgICAgKiB3b3JrZXJz
L1dvcmtlclNjcmlwdExvYWRlci5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNw
cDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaDoKKyAgICAgICAgKiB4bWwvWE1MSHR0
cFJlcXVlc3RVcGxvYWQuaDoKKyAgICAgICAgKiB4bWwvWFBhdGhGdW5jdGlvbnMuY3BwOgorICAg
ICAgICAqIHhtbC9YUGF0aFBhdGguaDoKKyAgICAgICAgKiB4bWwvWFBhdGhQcmVkaWNhdGUuaDoK
KyAgICAgICAgKiB4bWwvWFNMU3R5bGVTaGVldC5oOgorCiAyMDE0LTAxLTE2ICBEaXJrIFNjaHVs
emUgIDxrcml0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVuYW1lIGZ1bmN0aW9ucyBpbiBTVkdE
b2N1bWVudEV4dGVuc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9haXJw
bGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYWlycGxheS9XZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50
LmgKaW5kZXggZGJiZmRlNy4uOTljZDUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FpcnBsYXkvV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFp
bGFiaWxpdHlFdmVudC5oCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyBh
dmFpbGFiaWxpdHkoKSBjb25zdCB7IHJldHVybiBtX2F2YWlsYWJpbGl0eTsgfQogCi0gICAgdmly
dHVhbCBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIFdlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnRJbnRlcmZhY2VUeXBlOyB9
CisgICAgdmlydHVhbCBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIFdlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnRJbnRlcmZh
Y2VUeXBlOyB9CiAKIHByaXZhdGU6CiAgICAgV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxp
dHlFdmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9DRE1Qcml2YXRlQVZGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL0NETVByaXZhdGVBVkZvdW5kYXRpb24uaAppbmRleCA4MDU3ZjBkLi42YjA2
YmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NE
TVByaXZhdGVBVkZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL0NETVByaXZhdGVBVkZvdW5kYXRpb24uaApAQCAtNDUsOCArNDUsOCBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIH5DRE1Qcml2YXRlQVZGb3VuZGF0aW9uKCkgeyB9CiAKLSAgICB2
aXJ0dWFsIGJvb2wgc3VwcG9ydHNNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8Q0RNU2Vzc2lvbj4gY3JlYXRlU2Vzc2lvbigp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c01JTUVUeXBlKGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFzc093blB0cjxDRE1TZXNzaW9u
PiBjcmVhdGVTZXNzaW9uKCkgb3ZlcnJpZGU7CiAKICAgICBDRE0qIGNkbSgpIGNvbnN0IHsgcmV0
dXJuIG1fY2RtOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvQ0RNUHJpdmF0ZUFWRm91bmRhdGlvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvQ0RNUHJpdmF0ZUFWRm91bmRhdGlvbi5tbQppbmRleCA0NzA0YWEy
Li41OWRiNWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL0NETVByaXZhdGVBVkZvdW5kYXRpb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9DRE1Qcml2YXRlQVZGb3VuZGF0aW9uLm1tCkBAIC00NCwxMCArNDQs
MTAgQEAgcHVibGljOgogICAgIENETVNlc3Npb25BVkZvdW5kYXRpb24oQ0RNUHJpdmF0ZUFWRm91
bmRhdGlvbiogcGFyZW50KTsKICAgICB2aXJ0dWFsIH5DRE1TZXNzaW9uQVZGb3VuZGF0aW9uKCkg
eyB9CiAKLSAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gbV9zZXNzaW9uSWQ7IH0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VWludDhB
cnJheT4gZ2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJy
YXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJy
b3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgcmVsZWFzZUtleXMoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlKFVp
bnQ4QXJyYXkqLCBSZWZQdHI8VWludDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25lZCBzaG9y
dCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9zZXNzaW9uSWQ7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VWludDhBcnJheT4gZ2VuZXJh
dGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRh
LCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNp
Z25lZCBsb25nJiBzeXN0ZW1Db2RlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVsZWFz
ZUtleXMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlKFVpbnQ4QXJyYXkqLCBS
ZWZQdHI8VWludDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2Rl
LCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAg
IENETVByaXZhdGVBVkZvdW5kYXRpb24qIG1fcGFyZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleU1lc3NhZ2VFdmVudC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleU1lc3NhZ2VFdmVudC5o
CmluZGV4IDFkZDRlNjcuLmIyNzQ5NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlNZXNzYWdlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5TWVzc2FnZUV2ZW50LmgKQEAgLTU1
LDcgKzU1LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhS2V5
TWVzc2FnZUV2ZW50KHR5cGUsIGluaXRpYWxpemVyKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBF
dmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKIAogICAg
IFVpbnQ4QXJyYXkqIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2UuZ2V0KCk7IH0K
ICAgICBTdHJpbmcgZGVzdGluYXRpb25VUkwoKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9u
VVJMOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L01lZGlhS2V5TmVlZGVkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvTWVkaWFLZXlOZWVkZWRFdmVudC5oCmluZGV4IDlmYmIzM2YuLjc4NDk2NzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlOZWVk
ZWRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVk
aWFLZXlOZWVkZWRFdmVudC5oCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBNZWRpYUtleU5lZWRlZEV2ZW50KHR5cGUsIGluaXRpYWxpemVyKSk7
CiAgICAgfQogCi0gICAgdmlydHVhbCBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2Uo
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIFVpbnQ4QXJyYXkqIGluaXREYXRhKCkgY29uc3QgeyBy
ZXR1cm4gbV9pbml0RGF0YS5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaAppbmRleCA0YTlkNGYzLi5k
NzA1YTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L01lZGlhS2V5U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvTWVkaWFLZXlTZXNzaW9uLmgKQEAgLTcyLDggKzcyLDggQEAgcHVibGljOgogICAgIERF
RklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIod2Via2l0a2V5ZXJyb3IpOwogICAgIERFRklO
RV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIod2Via2l0a2V5bWVzc2FnZSk7CiAKLSAgICB2aXJ0
dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gTWVkaWFLZXlTZXNzaW9uRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9
Ci0gICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6
OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRl
cmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBNZWRp
YUtleVNlc3Npb25FdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICB2aXJ0dWFsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpOyB9CiAKIHByb3RlY3RlZDoKICAgICBNZWRpYUtleVNlc3Npb24oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIE1lZGlhS2V5cyosIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKTsKQEAgLTk5
LDggKzk5LDggQEAgcHJvdGVjdGVkOgogICAgIFRpbWVyPE1lZGlhS2V5U2Vzc2lvbj4gbV9hZGRL
ZXlUaW1lcjsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBP
VkVSUklERSB7IHJlZigpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBP
VkVSUklERSB7IGRlcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBv
dmVycmlkZSB7IHJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBv
dmVycmlkZSB7IGRlcmVmKCk7IH0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5oCmluZGV4IGQ4ZWY5M2QuLmNiZmVmODcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMu
aApAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICAvLyBDRE1DbGll
bnQ6Ci0gICAgdmlydHVhbCBNZWRpYVBsYXllciogY2RtTWVkaWFQbGF5ZXIoY29uc3QgQ0RNKikg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBNZWRpYVBsYXllciogY2RtTWVkaWFQbGF5ZXIo
Y29uc3QgQ0RNKikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBNZWRpYUtleXMoY29uc3QgU3RyaW5n
JiBrZXlTeXN0ZW0sIFBhc3NPd25QdHI8Q0RNPik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaAppbmRleCAyOGNhMjg1Li5hYjQ4NjQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5o
CkBAIC01NSw5ICs1NSw5IEBAIHB1YmxpYzoKICAgICB+R2VvbG9jYXRpb24oKTsKIAogI2lmIFBM
QVRGT1JNKElPUykKLSAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wg
Y2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKFJl
YXNvbkZvclN1c3BlbnNpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKSBv
dmVycmlkZTsKICAgICB2b2lkIHJlc2V0QWxsR2VvbG9jYXRpb25QZXJtaXNzaW9uKCk7CiAjZW5k
aWYgLy8gUExBVEZPUk0oSU9TKQogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OwpAQCAt
NzksNyArNzksNyBAQCBwcml2YXRlOgogICAgIEdlb3Bvc2l0aW9uKiBsYXN0UG9zaXRpb24oKTsK
IAogICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsKIAogICAgIGJvb2wgaXNEZW5p
ZWQoKSBjb25zdCB7IHJldHVybiBtX2FsbG93R2VvbG9jYXRpb24gPT0gTm87IH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERh
dGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRl
eGVkRGF0YWJhc2UuaAppbmRleCAxMDhhNWEyLi4xZDE0YjA3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJh
c2UuaApAQCAtNDMsMTEgKzQzLDExIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBJREJGYWN0b3J5
KiBpbmRleGVkREIoRE9NV2luZG93Kik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdEZy
YW1lRm9yUGFnZUNhY2hlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlY29ubmVjdEZy
YW1lRnJvbVBhZ2VDYWNoZShGcmFtZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxs
RGVzdHJveUdsb2JhbE9iamVjdEluQ2FjaGVkRnJhbWUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgd2lsbERlc3Ryb3lHbG9iYWxPYmplY3RJbkZyYW1lKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHdpbGxEZXRhY2hHbG9iYWxPYmplY3RGcm9tRnJhbWUoKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdEZyYW1lRm9yUGFnZUNhY2hlKCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHJlY29ubmVjdEZyYW1lRnJvbVBhZ2VDYWNoZShGcmFtZSopIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluQ2FjaGVkRnJh
bWUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lHbG9iYWxPYmplY3RJ
bkZyYW1lKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hHbG9iYWxPYmpl
Y3RGcm9tRnJhbWUoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBET01XaW5k
b3dJbmRleGVkRGF0YWJhc2UoRE9NV2luZG93Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kT3BlcmF0aW9ucy5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZE9wZXJhdGlvbnMuaApp
bmRleCAyM2NhNDk0Li5kM2Q4YzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRPcGVyYXRpb25zLmgKQEAgLTQw
LDcgKzQwLDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBD
dXJzb3JJdGVyYXRpb25PcGVyYXRpb24oY3Vyc29yLCBrZXksIGNhbGxiYWNrcykpOwogICAgIH0K
LSAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybShzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlv
bkNhbGxiYWNrKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybShzdGQ6
OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlvbkNhbGxiYWNrKSBvdmVycmlkZSBGSU5BTDsKIAog
ICAgIElEQktleSoga2V5KCkgY29uc3QgeyByZXR1cm4gbV9rZXkuZ2V0KCk7IH0KICAgICBJREJD
YWxsYmFja3MqIGNhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbGJhY2tzLmdldCgpOyB9
CkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgQ3Vyc29yQWR2YW5jZU9wZXJhdGlvbihjdXJzb3IsIGNvdW50LCBjYWxsYmFja3MpKTsK
ICAgICB9Ci0gICAgdmlydHVhbCB2b2lkIHBlcmZvcm0oc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNv
bXBsZXRpb25DYWxsYmFjaykgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHBlcmZv
cm0oc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25DYWxsYmFjaykgb3ZlcnJpZGUgRklO
QUw7CiAKICAgICB1bnNpZ25lZCBsb25nIGNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9jb3VudDsg
fQogICAgIElEQkNhbGxiYWNrcyogY2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsYmFj
a3MuZ2V0KCk7IH0KQEAgLTg4LDcgKzg4LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBDdXJzb3JQcmVmZXRjaEl0ZXJhdGlvbk9wZXJhdGlvbihjdXJzb3Is
IG51bWJlclRvRmV0Y2gsIGNhbGxiYWNrcykpOwogICAgIH0KLSAgICB2aXJ0dWFsIHZvaWQgcGVy
Zm9ybShzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlvbkNhbGxiYWNrKSBPVkVSUklERSBG
SU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybShzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29t
cGxldGlvbkNhbGxiYWNrKSBvdmVycmlkZSBGSU5BTDsKIAogICAgIGludCBudW1iZXJUb0ZldGNo
KCkgY29uc3QgeyByZXR1cm4gbV9udW1iZXJUb0ZldGNoOyB9CiAgICAgSURCQ2FsbGJhY2tzKiBj
YWxsYmFja3MoKSBjb25zdCB7IHJldHVybiBtX2NhbGxiYWNrcy5nZXQoKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yV2l0aFZhbHVlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JXaXRoVmFsdWUuaApp
bmRleCAwYmI0ZmY0Li45NmY5NmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJDdXJzb3JXaXRoVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JXaXRoVmFsdWUuaApAQCAtNDIsNyArNDIsNyBAQCBwdWJs
aWM6CiAgICAgLy8gaXRzIElETCkuIFRoaXMgaXMgdG8gbWFrZSB0aGUgaW1wbGVtZW50YXRpb24g
bW9yZSBzaW1wbGUgd2hpbGUgbWF0Y2hpbmcgd2hhdCB0aGUgc3BlYyBzYXlzLgogCiBwcm90ZWN0
ZWQ6Ci0gICAgdmlydHVhbCBib29sIGlzS2V5Q3Vyc29yKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNLZXlDdXJzb3IoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBmYWxzZTsgfQogCiBwcml2YXRlOgogICAgIElEQkN1cnNvcldpdGhWYWx1ZShQ
YXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmQ+LCBJbmRleGVkREI6OkN1cnNvckRpcmVjdGlvbiwg
SURCUmVxdWVzdCosIElEQkFueSogc291cmNlLCBJREJUcmFuc2FjdGlvbiopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmgKaW5kZXggMDY5ZGJjZi4u
ZWUxNzBlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZS5oCkBAIC04MSwxMSArODEsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvbkNv
bXBsZXRlKGludDY0X3QpOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0Ci0gICAgdmlydHVhbCBi
b29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9v
bCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIEV2ZW50VGFy
Z2V0Ci0gICAgdmlydHVhbCBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFj
ZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIElEQkRhdGFiYXNlRXZlbnRUYXJnZXRJ
bnRlcmZhY2VUeXBlOyB9Ci0gICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gQWN0aXZl
RE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKyAgICB2aXJ0dWFsIEV2ZW50
VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUgRklO
QUwgeyByZXR1cm4gSURCRGF0YWJhc2VFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICB2
aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBj
b25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKTsgfQogCiAgICAgYm9vbCBpc0Nsb3NlUGVuZGluZygpIGNvbnN0IHsgcmV0
dXJuIG1fY2xvc2VQZW5kaW5nOyB9CiAgICAgdm9pZCBmb3JjZUNsb3NlKCk7CkBAIC05Myw3ICs5
Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGVucXVldWVFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7
CiAKICAgICB1c2luZyBFdmVudFRhcmdldDo6ZGlzcGF0Y2hFdmVudDsKLSAgICB2aXJ0dWFsIGJv
b2wgZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBib29sIGRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pIG92ZXJyaWRlOwogCiAgICAg
aW50NjRfdCBmaW5kT2JqZWN0U3RvcmVJZChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OwogICAg
IGJvb2wgY29udGFpbnNPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0CkBAIC0x
MTIsMTEgKzExMiwxMSBAQCBwcml2YXRlOgogICAgIElEQkRhdGFiYXNlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZD4sIFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VDYWxsYmFja3M+KTsKIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1
YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlk
ZTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0Ci0gICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0
KCkgT1ZFUlJJREUgRklOQUwgeyByZWYoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50
VGFyZ2V0KCkgT1ZFUlJJREUgRklOQUwgeyBkZXJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIHJl
ZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgRklOQUwgeyByZWYoKTsgfQorICAgIHZpcnR1YWwgdm9p
ZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgRklOQUwgeyBkZXJlZigpOyB9CiAKICAgICB2
b2lkIGNsb3NlQ29ubmVjdGlvbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCmluZGV4IDRmZDc1
NTkuLjg3ZWI2NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oCkBAIC0zOSwxNiArMzksMTYgQEAg
Y2xhc3MgSURCRGF0YWJhc2U7CiBjbGFzcyBJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwgRklOQUwg
OiBwdWJsaWMgSURCRGF0YWJhc2VDYWxsYmFja3MgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbD4gY3JlYXRlKCk7Ci0gICAgdmlydHVhbCB+
SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB+SURCRGF0
YWJhc2VDYWxsYmFja3NJbXBsKCkgb3ZlcnJpZGU7CiAKICAgICAvLyBJREJEYXRhYmFzZUNhbGxi
YWNrcwotICAgIHZpcnR1YWwgdm9pZCBvbkZvcmNlZENsb3NlKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZSh1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRfdCBu
ZXdWZXJzaW9uLCBJbmRleGVkREI6OlZlcnNpb25OdWxsbmVzcyBuZXdWZXJzaW9uTnVsbG5lc3Mp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBvbkZvcmNlZENsb3NlKCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIG9uVmVyc2lvbkNoYW5nZSh1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50
NjRfdCBuZXdWZXJzaW9uLCBJbmRleGVkREI6OlZlcnNpb25OdWxsbmVzcyBuZXdWZXJzaW9uTnVs
bG5lc3MpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIG9uQWJvcnQoaW50NjRfdCB0cmFu
c2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgb25Db21wbGV0ZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBvbkFib3J0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUVycm9yPikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG9uQ29tcGxl
dGUoaW50NjRfdCB0cmFuc2FjdGlvbklkKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBj
b25uZWN0KElEQkRhdGFiYXNlKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNvbm5lY3Qo
SURCRGF0YWJhc2UqKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBJREJEYXRhYmFzZUNhbGxi
YWNrc0ltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQk9wZW5EQlJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
Qk9wZW5EQlJlcXVlc3QuaAppbmRleCAzOWRkNTM2Li44NmIxYTBmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5oCkBAIC00Miwx
OSArNDIsMTkgQEAgcHVibGljOgogCiAgICAgdXNpbmcgSURCUmVxdWVzdDo6b25TdWNjZXNzOwog
Ci0gICAgdmlydHVhbCB2b2lkIG9uQmxvY2tlZCh1aW50NjRfdCBleGlzdGluZ1ZlcnNpb24pIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBvblVwZ3JhZGVOZWVkZWQodWludDY0X3Qgb2xkVmVy
c2lvbiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmQ+LCBjb25zdCBJREJEYXRhYmFzZU1l
dGFkYXRhJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRy
PElEQkRhdGFiYXNlQmFja2VuZD4sIGNvbnN0IElEQkRhdGFiYXNlTWV0YWRhdGEmKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKHVpbnQ2NF90IGV4aXN0aW5nVmVyc2lvbikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG9uVXBncmFkZU5lZWRlZCh1aW50NjRfdCBvbGRW
ZXJzaW9uLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZD4sIGNvbnN0IElEQkRhdGFiYXNl
TWV0YWRhdGEmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VCYWNrZW5kPiwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYpIG92ZXJy
aWRlOwogCiAgICAgLy8gRXZlbnRUYXJnZXQKICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJm
YWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGRpc3Bh
dGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBk
aXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KSBvdmVycmlkZTsKIAogICAgIERFRklORV9B
VFRSSUJVVEVfRVZFTlRfTElTVEVORVIoYmxvY2tlZCk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9F
VkVOVF9MSVNURU5FUih1cGdyYWRlbmVlZGVkKTsKIAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRFbnF1ZXVlRXZlbnQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkRW5xdWV1ZUV2ZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAg
SURCT3BlbkRCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUNhbGxiYWNrcz4sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgdWludDY0X3QgdmVyc2lv
biwgSW5kZXhlZERCOjpWZXJzaW9uTnVsbG5lc3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCmluZGV4IGFjNzVkYTUuLjJlZjk5ZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKQEAgLTk2LDE1ICs5
NiwxNSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhQcmVmZXRjaChj
b25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+
PiYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8U2hhcmVkQnVmZmVyPj4mKSB7IEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOyB9IC8vIE5vdCBpbXBsZW1lbnRlZC4gQ2FsbGJhY2sgc2hvdWxkIG5vdCByZWFjaCB0
aGUgcmVuZGVyZXIgc2lkZS4KIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwg
Ym9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJv
b2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBFdmVudFRh
cmdldAotICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZh
Y2UoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBB
Y3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQotICAgIHZpcnR1YWwg
dm9pZCB1bmNhdWdodEV4Y2VwdGlvbkluRXZlbnRIYW5kbGVyKCkgT1ZFUlJJREUgRklOQUw7Cisg
ICAgdmlydHVhbCBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIEZJTkFMIHsgcmV0dXJuIEFjdGl2ZURP
TU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisgICAgdmlydHVhbCB2b2lkIHVu
Y2F1Z2h0RXhjZXB0aW9uSW5FdmVudEhhbmRsZXIoKSBvdmVycmlkZSBGSU5BTDsKIAogICAgIHVz
aW5nIEV2ZW50VGFyZ2V0OjpkaXNwYXRjaEV2ZW50OwotICAgIHZpcnR1YWwgYm9vbCBkaXNwYXRj
aEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgZGlz
cGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50Pikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHRyYW5z
YWN0aW9uRGlkRmluaXNoQW5kRGlzcGF0Y2goKTsKIApAQCAtMTMzLDExICsxMzMsMTEgQEAgcHJv
dGVjdGVkOgogCiBwcml2YXRlOgogICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwg
dm9pZCBzdG9wKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZTsK
IAogICAgIC8vIEV2ZW50VGFyZ2V0Ci0gICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkg
T1ZFUlJJREUgRklOQUwgeyByZWYoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFy
Z2V0KCkgT1ZFUlJJREUgRklOQUwgeyBkZXJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIHJlZkV2
ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgRklOQUwgeyByZWYoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBk
ZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgRklOQUwgeyBkZXJlZigpOyB9CiAKICAgICBQYXNz
UmVmUHRyPElEQkN1cnNvcj4gZ2V0UmVzdWx0Q3Vyc29yKCk7CiAgICAgdm9pZCBzZXRSZXN1bHRD
dXJzb3IoUGFzc1JlZlB0cjxJREJDdXJzb3I+LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQ
dHI8SURCS2V5PiBwcmltYXJ5S2V5LCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgK
aW5kZXggOTRjNjNmMy4uNThkYmZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCkBAIC0xMDUsMTQgKzEwNSwxNCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBvbkNvbXBsZXRlKCk7CiAKICAgICAvLyBFdmVudFRhcmdldAotICAgIHZpcnR1
YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiBJREJUcmFuc2FjdGlvbkV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQot
ICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpOyB9CisgICAgdmlydHVhbCBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRh
cmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIElEQlRyYW5zYWN0aW9uRXZl
bnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQWN0
aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAogICAgIHVzaW5nIEV2
ZW50VGFyZ2V0OjpkaXNwYXRjaEV2ZW50OwotICAgIHZpcnR1YWwgYm9vbCBkaXNwYXRjaEV2ZW50
KFBhc3NSZWZQdHI8RXZlbnQ+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgZGlzcGF0Y2hF
dmVudChQYXNzUmVmUHRyPEV2ZW50Pikgb3ZlcnJpZGU7CiAKICAgICAvLyBBY3RpdmVET01PYmpl
Y3QKLSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgdXNpbmcgUmVmQ291bnRlZDxJREJUcmFuc2FjdGlvbj46OnJlZjsKICAgICB1c2luZyBS
ZWZDb3VudGVkPElEQlRyYW5zYWN0aW9uPjo6ZGVyZWY7CkBAIC0xMjcsMTIgKzEyNywxMiBAQCBw
cml2YXRlOgogICAgIHZvaWQgdW5yZWdpc3Rlck9wZW5DdXJzb3IoSURCQ3Vyc29yKik7CiAKICAg
ICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc3Rv
cCgpIG92ZXJyaWRlOwogCiAgICAgLy8gRXZlbnRUYXJnZXQKLSAgICB2aXJ0dWFsIHZvaWQgcmVm
RXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IHJlZigpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRlcmVm
RXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVm
RXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVm
RXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KIAogICAgIGVudW0gU3RhdGUgewog
ICAgICAgICBJbmFjdGl2ZSwgLy8gQ3JlYXRlZCBvciBzdGFydGVkLCBidXQgbm90IGluIGFuIGV2
ZW50IGNhbGxiYWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbkJhY2tlbmRPcGVyYXRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRPcGVyYXRpb25zLmgKaW5kZXggZjcx
M2E5ZC4uODZiZmIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuaApAQCAt
NDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IENyZWF0ZU9iamVjdFN0b3JlT3BlcmF0aW9uKHRyYW5zYWN0aW9uLCBvYmplY3RTdG9yZU1ldGFk
YXRhKSk7CiAgICAgfQotICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtKHN0ZDo6ZnVuY3Rpb248dm9p
ZCgpPiBzdWNjZXNzQ2FsbGJhY2spIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBw
ZXJmb3JtKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBzdWNjZXNzQ2FsbGJhY2spIG92ZXJyaWRlIEZJ
TkFMOwogCiAgICAgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYgb2JqZWN0U3RvcmVNZXRh
ZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0U3RvcmVNZXRhZGF0YTsgfQogCkBAIC02Myw3
ICs2Myw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGVs
ZXRlT2JqZWN0U3RvcmVPcGVyYXRpb24odHJhbnNhY3Rpb24sIG9iamVjdFN0b3JlTWV0YWRhdGEp
KTsKICAgICB9Ci0gICAgdmlydHVhbCB2b2lkIHBlcmZvcm0oc3RkOjpmdW5jdGlvbjx2b2lkKCk+
IHN1Y2Nlc3NDYWxsYmFjaykgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHBlcmZv
cm0oc3RkOjpmdW5jdGlvbjx2b2lkKCk+IHN1Y2Nlc3NDYWxsYmFjaykgb3ZlcnJpZGUgRklOQUw7
CiAKICAgICBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZU1ldGFkYXRh
KCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3RTdG9yZU1ldGFkYXRhOyB9CiAKQEAgLTg0LDcgKzg0
LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBWZXJzaW9u
Q2hhbmdlT3BlcmF0aW9uKHRyYW5zYWN0aW9uLCB2ZXJzaW9uLCBjYWxsYmFja3MsIGRhdGFiYXNl
Q2FsbGJhY2tzKSk7CiAgICAgfQotICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtKHN0ZDo6ZnVuY3Rp
b248dm9pZCgpPiBzdWNjZXNzQ2FsbGJhY2spIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwg
dm9pZCBwZXJmb3JtKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBzdWNjZXNzQ2FsbGJhY2spIG92ZXJy
aWRlIEZJTkFMOwogCiAgICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kKiB0cmFuc2FjdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fdHJhbnNhY3Rpb24uZ2V0KCk7IH0KICAgICBpbnQ2NF90IHZlcnNpb24o
KSBjb25zdCB7IHJldHVybiBtX3ZlcnNpb247IH0KQEAgLTExMiw3ICsxMTIsNyBAQCBwdWJsaWM6
CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENyZWF0ZU9iamVjdFN0b3JlQWJv
cnRPcGVyYXRpb24odHJhbnNhY3Rpb24sIG9iamVjdFN0b3JlSWQpKTsKICAgICB9Ci0gICAgdmly
dHVhbCB2b2lkIHBlcmZvcm0oKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgcGVy
Zm9ybSgpIG92ZXJyaWRlIEZJTkFMOwogcHJpdmF0ZToKICAgICBDcmVhdGVPYmplY3RTdG9yZUFi
b3J0T3BlcmF0aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZCogdHJhbnNhY3Rpb24sIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCkKICAgICAgICAgOiBtX3RyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKQpAQCAt
MTMwLDcgKzEzMCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgRGVsZXRlT2JqZWN0U3RvcmVBYm9ydE9wZXJhdGlvbih0cmFuc2FjdGlvbiwgb2JqZWN0U3Rv
cmUpKTsKICAgICB9Ci0gICAgdmlydHVhbCB2b2lkIHBlcmZvcm0oKSBPVkVSUklERSBGSU5BTDsK
KyAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybSgpIG92ZXJyaWRlIEZJTkFMOwogcHJpdmF0ZToKICAg
ICBEZWxldGVPYmplY3RTdG9yZUFib3J0T3BlcmF0aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZCog
dHJhbnNhY3Rpb24sIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmIG9iamVjdFN0b3JlTWV0
YWRhdGEpCiAgICAgICAgIDogbV90cmFuc2FjdGlvbih0cmFuc2FjdGlvbikKQEAgLTE0OCw3ICsx
NDgsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFZlcnNp
b25DaGFuZ2VBYm9ydE9wZXJhdGlvbih0cmFuc2FjdGlvbiwgcHJldmlvdXNWZXJzaW9uLCBwcmV2
aW91c0ludFZlcnNpb24pKTsKICAgICB9Ci0gICAgdmlydHVhbCB2b2lkIHBlcmZvcm0oKSBPVkVS
UklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybSgpIG92ZXJyaWRlIEZJTkFMOwog
cHJpdmF0ZToKICAgICBWZXJzaW9uQ2hhbmdlQWJvcnRPcGVyYXRpb24oSURCVHJhbnNhY3Rpb25C
YWNrZW5kKiB0cmFuc2FjdGlvbiwgY29uc3QgU3RyaW5nJiBwcmV2aW91c1ZlcnNpb24sIGludDY0
X3QgcHJldmlvdXNJbnRWZXJzaW9uKQogICAgICAgICA6IG1fdHJhbnNhY3Rpb24odHJhbnNhY3Rp
b24pCkBAIC0xNjgsNyArMTY4LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBDcmVhdGVJbmRleE9wZXJhdGlvbih0cmFuc2FjdGlvbiwgb2JqZWN0U3RvcmVJ
ZCwgaW5kZXhNZXRhZGF0YSkpOwogICAgIH0KLSAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybShzdGQ6
OmZ1bmN0aW9uPHZvaWQoKT4gc3VjY2Vzc0NhbGxiYWNrKSBPVkVSUklERSBGSU5BTDsKKyAgICB2
aXJ0dWFsIHZvaWQgcGVyZm9ybShzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gc3VjY2Vzc0NhbGxiYWNr
KSBvdmVycmlkZSBGSU5BTDsKIAogICAgIGludDY0X3Qgb2JqZWN0U3RvcmVJRCgpIGNvbnN0IHsg
cmV0dXJuIG1fb2JqZWN0U3RvcmVJRDsgfQogICAgIGNvbnN0IElEQkluZGV4TWV0YWRhdGEmIGlk
YkluZGV4TWV0YWRhdGEoKSBjb25zdCB7IHJldHVybiBtX2luZGV4TWV0YWRhdGE7IH0KQEAgLTE5
Miw3ICsxOTIsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IENyZWF0ZUluZGV4QWJvcnRPcGVyYXRpb24odHJhbnNhY3Rpb24sIG9iamVjdFN0b3JlSWQsIGlu
ZGV4SWQpKTsKICAgICB9Ci0gICAgdmlydHVhbCB2b2lkIHBlcmZvcm0oKSBPVkVSUklERSBGSU5B
TDsKKyAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybSgpIG92ZXJyaWRlIEZJTkFMOwogcHJpdmF0ZToK
ICAgICBDcmVhdGVJbmRleEFib3J0T3BlcmF0aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZCogdHJh
bnNhY3Rpb24sIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkKQogICAgICAg
ICA6IG1fdHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pCkBAIC0yMTIsNyArMjEyLDcgQEAgcHVibGlj
OgogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZWxldGVJbmRleE9wZXJhdGlv
bih0cmFuc2FjdGlvbiwgb2JqZWN0U3RvcmVJZCwgaW5kZXhNZXRhZGF0YSkpOwogICAgIH0KLSAg
ICB2aXJ0dWFsIHZvaWQgcGVyZm9ybShzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gc3VjY2Vzc0NhbGxi
YWNrKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybShzdGQ6OmZ1bmN0
aW9uPHZvaWQoKT4gc3VjY2Vzc0NhbGxiYWNrKSBvdmVycmlkZSBGSU5BTDsKIAogICAgIGludDY0
X3Qgb2JqZWN0U3RvcmVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0U3RvcmVJRDsgfQogICAg
IGNvbnN0IElEQkluZGV4TWV0YWRhdGEmIGlkYkluZGV4TWV0YWRhdGEoKSBjb25zdCB7IHJldHVy
biBtX2luZGV4TWV0YWRhdGE7IH0KQEAgLTIzNiw3ICsyMzYsNyBAQCBwdWJsaWM6CiAgICAgewog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERlbGV0ZUluZGV4QWJvcnRPcGVyYXRpb24odHJh
bnNhY3Rpb24sIG9iamVjdFN0b3JlSWQsIGluZGV4TWV0YWRhdGEpKTsKICAgICB9Ci0gICAgdmly
dHVhbCB2b2lkIHBlcmZvcm0oKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgcGVy
Zm9ybSgpIG92ZXJyaWRlIEZJTkFMOwogcHJpdmF0ZToKICAgICBEZWxldGVJbmRleEFib3J0T3Bl
cmF0aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZCogdHJhbnNhY3Rpb24sIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwgY29uc3QgSURCSW5kZXhNZXRhZGF0YSYgaW5kZXhNZXRhZGF0YSkKICAgICAgICAg
OiBtX3RyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKQpAQCAtMjU2LDcgKzI1Niw3IEBAIHB1YmxpYzoK
ICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2V0T3BlcmF0aW9uKHRyYW5zYWN0
aW9uLCBtZXRhZGF0YSwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCwga2V5UmFuZ2UsIGN1cnNvclR5
cGUsIGNhbGxiYWNrcykpOwogICAgIH0KLSAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybShzdGQ6OmZ1
bmN0aW9uPHZvaWQoKT4gc3VjY2Vzc0NhbGxiYWNrKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0
dWFsIHZvaWQgcGVyZm9ybShzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gc3VjY2Vzc0NhbGxiYWNrKSBv
dmVycmlkZSBGSU5BTDsKIAogICAgIGludDY0X3Qgb2JqZWN0U3RvcmVJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fb2JqZWN0U3RvcmVJRDsgfQogICAgIGludDY0X3QgaW5kZXhJRCgpIGNvbnN0IHsgcmV0
dXJuIG1faW5kZXhJRDsgfQpAQCAtMjk3LDcgKzI5Nyw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgUHV0T3BlcmF0aW9uKHRyYW5zYWN0aW9uLCBvYmplY3RT
dG9yZSwgdmFsdWUsIGtleSwgcHV0TW9kZSwgY2FsbGJhY2tzLCBpbmRleElkcywgaW5kZXhLZXlz
KSk7CiAgICAgfQotICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtKHN0ZDo6ZnVuY3Rpb248dm9pZCgp
PiBzdWNjZXNzQ2FsbGJhY2spIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBwZXJm
b3JtKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBzdWNjZXNzQ2FsbGJhY2spIG92ZXJyaWRlIEZJTkFM
OwogCiAgICAgSURCRGF0YWJhc2VCYWNrZW5kOjpQdXRNb2RlIHB1dE1vZGUoKSBjb25zdCB7IHJl
dHVybiBtX3B1dE1vZGU7IH0KICAgICBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBvYmpl
Y3RTdG9yZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0U3RvcmU7IH0KQEAgLTMzNiw3ICszMzYs
NyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNldEluZGV4
ZXNSZWFkeU9wZXJhdGlvbih0cmFuc2FjdGlvbiwgaW5kZXhDb3VudCkpOwogICAgIH0KLSAgICB2
aXJ0dWFsIHZvaWQgcGVyZm9ybShzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gc3VjY2Vzc0NhbGxiYWNr
KSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybShzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4gc3VjY2Vzc0NhbGxiYWNrKSBvdmVycmlkZSBGSU5BTDsKIHByaXZhdGU6CiAgICAg
U2V0SW5kZXhlc1JlYWR5T3BlcmF0aW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZCogdHJhbnNhY3Rp
b24sIHNpemVfdCBpbmRleENvdW50KQogICAgICAgICA6IG1fdHJhbnNhY3Rpb24odHJhbnNhY3Rp
b24pCkBAIC0zNTQsNyArMzU0LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBPcGVuQ3Vyc29yT3BlcmF0aW9uKHRyYW5zYWN0aW9uLCBvYmplY3RTdG9yZUlk
LCBpbmRleElkLCBrZXlSYW5nZSwgZGlyZWN0aW9uLCBjdXJzb3JUeXBlLCB0YXNrVHlwZSwgY2Fs
bGJhY2tzKSk7CiAgICAgfQotICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtKHN0ZDo6ZnVuY3Rpb248
dm9pZCgpPiBzdWNjZXNzQ2FsbGJhY2spIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9p
ZCBwZXJmb3JtKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBzdWNjZXNzQ2FsbGJhY2spIG92ZXJyaWRl
IEZJTkFMOwogCiAgICAgaW50NjRfdCBvYmplY3RTdG9yZUlEKCkgY29uc3QgeyByZXR1cm4gbV9v
YmplY3RTdG9yZUlEOyB9CiAgICAgaW50NjRfdCBpbmRleElEKCkgY29uc3QgeyByZXR1cm4gbV9p
bmRleElEOyB9CkBAIC0zOTQsNyArMzk0LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBDb3VudE9wZXJhdGlvbih0cmFuc2FjdGlvbiwgb2JqZWN0U3RvcmVJ
ZCwgaW5kZXhJZCwga2V5UmFuZ2UsIGNhbGxiYWNrcykpOwogICAgIH0KLSAgICB2aXJ0dWFsIHZv
aWQgcGVyZm9ybShzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gc3VjY2Vzc0NhbGxiYWNrKSBPVkVSUklE
RSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybShzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4g
c3VjY2Vzc0NhbGxiYWNrKSBvdmVycmlkZSBGSU5BTDsKIAogICAgIGludDY0X3Qgb2JqZWN0U3Rv
cmVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0U3RvcmVJRDsgfQogICAgIGludDY0X3QgaW5k
ZXhJRCgpIGNvbnN0IHsgcmV0dXJuIG1faW5kZXhJRDsgfQpAQCAtNDIzLDcgKzQyMyw3IEBAIHB1
YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGVsZXRlUmFuZ2VPcGVy
YXRpb24odHJhbnNhY3Rpb24sIG9iamVjdFN0b3JlSWQsIGtleVJhbmdlLCBjYWxsYmFja3MpKTsK
ICAgICB9Ci0gICAgdmlydHVhbCB2b2lkIHBlcmZvcm0oc3RkOjpmdW5jdGlvbjx2b2lkKCk+IHN1
Y2Nlc3NDYWxsYmFjaykgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHBlcmZvcm0o
c3RkOjpmdW5jdGlvbjx2b2lkKCk+IHN1Y2Nlc3NDYWxsYmFjaykgb3ZlcnJpZGUgRklOQUw7CiAK
ICAgICBpbnQ2NF90IG9iamVjdFN0b3JlSUQoKSBjb25zdCB7IHJldHVybiBtX29iamVjdFN0b3Jl
SUQ7IH0KICAgICBJREJDYWxsYmFja3MqIGNhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fY2Fs
bGJhY2tzLmdldCgpOyB9CkBAIC00NTAsNyArNDUwLDcgQEAgcHVibGljOgogICAgIHsKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDbGVhck9iamVjdFN0b3JlT3BlcmF0aW9uKHRyYW5zYWN0
aW9uLCBvYmplY3RTdG9yZUlkLCBjYWxsYmFja3MpKTsKICAgICB9Ci0gICAgdmlydHVhbCB2b2lk
IHBlcmZvcm0oc3RkOjpmdW5jdGlvbjx2b2lkKCk+IHN1Y2Nlc3NDYWxsYmFjaykgT1ZFUlJJREUg
RklOQUw7CisgICAgdmlydHVhbCB2b2lkIHBlcmZvcm0oc3RkOjpmdW5jdGlvbjx2b2lkKCk+IHN1
Y2Nlc3NDYWxsYmFjaykgb3ZlcnJpZGUgRklOQUw7CiAKICAgICBpbnQ2NF90IG9iamVjdFN0b3Jl
SUQoKSBjb25zdCB7IHJldHVybiBtX29iamVjdFN0b3JlSUQ7IH0KICAgICBJREJDYWxsYmFja3Mq
IGNhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbGJhY2tzLmdldCgpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdT
dG9yZUxldmVsREIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxk
Yi9JREJCYWNraW5nU3RvcmVMZXZlbERCLmNwcAppbmRleCBkNDM2MjI5Li4xMWExYTM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tp
bmdTdG9yZUxldmVsREIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5jcHAKQEAgLTE0NTIsOCArMTQ1Miw4IEBA
IHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBJREJCYWNraW5nU3RvcmVDdXJzb3JMZXZlbERCCi0g
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFsdWUoKSBjb25zdCBPVkVSUklE
RSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgYm9vbCBs
b2FkQ3VycmVudFJvdygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTaGFyZWRC
dWZmZXI+IHZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0
dXJuIDA7IH0KKyAgICB2aXJ0dWFsIGJvb2wgbG9hZEN1cnJlbnRSb3coKSBvdmVycmlkZTsKIAog
cHJvdGVjdGVkOgogICAgIHZpcnR1YWwgVmVjdG9yPGNoYXI+IGVuY29kZUtleShjb25zdCBJREJL
ZXkgJmtleSkKQEAgLTE1MTMsOCArMTUxMyw4IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBJ
REJCYWNraW5nU3RvcmVDdXJzb3JMZXZlbERCCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gdmFsdWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2N1cnJlbnRWYWx1ZTsg
fQotICAgIHZpcnR1YWwgYm9vbCBsb2FkQ3VycmVudFJvdygpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9jdXJyZW50VmFsdWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgbG9hZEN1cnJlbnRSb3coKSBv
dmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgVmVjdG9yPGNoYXI+IGVuY29kZUtl
eShjb25zdCBJREJLZXkgJmtleSkKQEAgLTE1ODAsMTAgKzE1ODAsMTAgQEAgcHVibGljOgogICAg
IH0KIAogICAgIC8vIElEQkJhY2tpbmdTdG9yZUN1cnNvckxldmVsREIKLSAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZSgpIGNvbnN0IE9WRVJSSURFIHsgQVNTRVJUX05P
VF9SRUFDSEVEKCk7IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQktleT4g
cHJpbWFyeUtleSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fcHJpbWFyeUtleTsgfQotICAg
IHZpcnR1YWwgY29uc3QgSURCUmVjb3JkSWRlbnRpZmllciYgcmVjb3JkSWRlbnRpZmllcigpIGNv
bnN0IE9WRVJSSURFIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiAqbV9yZWNvcmRJZGVu
dGlmaWVyOyB9Ci0gICAgdmlydHVhbCBib29sIGxvYWRDdXJyZW50Um93KCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFsdWUoKSBjb25zdCBvdmVycmlk
ZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxJREJLZXk+IHByaW1hcnlLZXkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3ByaW1h
cnlLZXk7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IElEQlJlY29yZElkZW50aWZpZXImIHJlY29yZElk
ZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4g
Km1fcmVjb3JkSWRlbnRpZmllcjsgfQorICAgIHZpcnR1YWwgYm9vbCBsb2FkQ3VycmVudFJvdygp
IG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBWZWN0b3I8Y2hhcj4gZW5jb2Rl
S2V5KGNvbnN0IElEQktleSAma2V5KQpAQCAtMTY3MSwxMCArMTY3MSwxMCBAQCBwdWJsaWM6CiAg
ICAgfQogCiAgICAgLy8gSURCQmFja2luZ1N0b3JlQ3Vyc29yTGV2ZWxEQgotICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
bV9jdXJyZW50VmFsdWU7IH0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5
S2V5KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9wcmltYXJ5S2V5OyB9Ci0gICAgdmlydHVh
bCBjb25zdCBJREJSZWNvcmRJZGVudGlmaWVyJiByZWNvcmRJZGVudGlmaWVyKCkgY29uc3QgT1ZF
UlJJREUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuICptX3JlY29yZElkZW50aWZpZXI7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgbG9hZEN1cnJlbnRSb3coKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG1fY3VycmVudFZhbHVlOyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQktleT4gcHJp
bWFyeUtleSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcHJpbWFyeUtleTsgfQorICAgIHZp
cnR1YWwgY29uc3QgSURCUmVjb3JkSWRlbnRpZmllciYgcmVjb3JkSWRlbnRpZmllcigpIGNvbnN0
IG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiAqbV9yZWNvcmRJZGVudGlm
aWVyOyB9CisgICAgdmlydHVhbCBib29sIGxvYWRDdXJyZW50Um93KCkgb3ZlcnJpZGU7CiAKIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIFZlY3RvcjxjaGFyPiBlbmNvZGVLZXkoY29uc3QgSURCS2V5
ICZrZXkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZl
bGRiL0lEQkZhY3RvcnlCYWNrZW5kTGV2ZWxEQi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvbGV2ZWxkYi9JREJGYWN0b3J5QmFja2VuZExldmVsREIuaAppbmRleCA0N2IxZTlm
Li5jZjkxYTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9s
ZXZlbGRiL0lEQkZhY3RvcnlCYWNrZW5kTGV2ZWxEQi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRmFjdG9yeUJhY2tlbmRMZXZlbERCLmgKQEAgLTU2
LDEyICs1NiwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRmFjdG9yeUJhY2tlbmRMZXZl
bERCKCk7CiAKICAgICAvLyBOb3RpZmljYXRpb25zIGZyb20gd2VhayBwb2ludGVycy4KLSAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlSURCRGF0YWJhc2VCYWNrZW5kKGNvbnN0IFN0cmluZyYgdW5pcXVl
SWRlbnRpZmllcikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUlEQkRh
dGFiYXNlQmFja2VuZChjb25zdCBTdHJpbmcmIHVuaXF1ZUlkZW50aWZpZXIpIG92ZXJyaWRlIEZJ
TkFMOwogCi0gICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVh
bCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCB1aW50NjRfdCB2ZXJzaW9uLCBpbnQ2NF90
IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBj
b25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luKSBPVkVSUklERSBGSU5BTDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4s
IFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29u
c3QgU3RyaW5nJiBkYXRhRGlyKSBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgb3Bl
bihjb25zdCBTdHJpbmcmIG5hbWUsIHVpbnQ2NF90IHZlcnNpb24sIGludDY0X3QgdHJhbnNhY3Rp
b25JZCwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2Fs
bGJhY2tzPiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIGNvbnN0IFNlY3Vy
aXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4pIG92ZXJyaWRlIEZJTkFMOwogCi0gICAgdmlydHVh
bCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVh
bCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgb3ZlcnJpZGUgRklOQUw7CiAKIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlTGV2ZWxEQj4gb3BlbkJh
Y2tpbmdTdG9yZShjb25zdCBTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFN0cmluZyYgZGF0YURpcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lE
QlNlcnZlckNvbm5lY3Rpb25MZXZlbERCLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9sZXZlbGRiL0lEQlNlcnZlckNvbm5lY3Rpb25MZXZlbERCLmgKaW5kZXggMmY2Yjg3Yy4u
MTJlNGNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2
ZWxkYi9JREJTZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCU2VydmVyQ29ubmVjdGlvbkxldmVsREIuaApAQCAt
NDYsNDAgKzQ2LDQwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfklEQlNlcnZlckNvbm5lY3Rp
b25MZXZlbERCKCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNDbG9zZWQoKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNDbG9zZWQoKSBvdmVycmlkZTsKIAogICAgIC8vIEZhY3RvcnktbGV2
ZWwgb3BlcmF0aW9ucwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJp
bmcmIG5hbWUsIEJvb2xDYWxsYmFja0Z1bmN0aW9uIHN1Y2Nlc3NDYWxsYmFjaykgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwgQm9v
bENhbGxiYWNrRnVuY3Rpb24gc3VjY2Vzc0NhbGxiYWNrKSBvdmVycmlkZTsKIAogICAgIC8vIERh
dGFiYXNlLWxldmVsIG9wZXJhdGlvbnMKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0T3JFc3RhYmxpc2hJ
REJEYXRhYmFzZU1ldGFkYXRhKEdldElEQkRhdGFiYXNlTWV0YWRhdGFGdW5jdGlvbikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGdldE9yRXN0YWJsaXNoSURCRGF0YWJhc2VNZXRhZGF0YShHZXRJREJEYXRhYmFzZU1ldGFkYXRh
RnVuY3Rpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpIG92ZXJyaWRlOwog
CiAgICAgLy8gVHJhbnNhY3Rpb24tbGV2ZWwgb3BlcmF0aW9ucwotICAgIHZpcnR1YWwgdm9pZCBv
cGVuVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklELCBjb25zdCBIYXNoU2V0PGludDY0
X3Q+JiBvYmplY3RTdG9yZUlkcywgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUsIEJvb2xDYWxs
YmFja0Z1bmN0aW9uIHN1Y2Nlc3NDYWxsYmFjaykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGJlZ2luVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklELCBzdGQ6OmZ1bmN0aW9uPHZv
aWQoKT4gY29tcGxldGlvbkNhbGxiYWNrKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29t
bWl0VHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklELCBCb29sQ2FsbGJhY2tGdW5jdGlv
biBzdWNjZXNzQ2FsbGJhY2spIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXNldFRyYW5z
YWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JRCwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBs
ZXRpb25DYWxsYmFjaykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJvbGxiYWNrVHJhbnNh
Y3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklELCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxl
dGlvbkNhbGxiYWNrKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgb3BlblRyYW5zYWN0aW9u
KGludDY0X3QgdHJhbnNhY3Rpb25JRCwgY29uc3QgSGFzaFNldDxpbnQ2NF90PiYgb2JqZWN0U3Rv
cmVJZHMsIEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlLCBCb29sQ2FsbGJhY2tGdW5jdGlvbiBz
dWNjZXNzQ2FsbGJhY2spIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBiZWdpblRyYW5zYWN0
aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JRCwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRp
b25DYWxsYmFjaykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyYW5zYWN0aW9u
KGludDY0X3QgdHJhbnNhY3Rpb25JRCwgQm9vbENhbGxiYWNrRnVuY3Rpb24gc3VjY2Vzc0NhbGxi
YWNrKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzZXRUcmFuc2FjdGlvbihpbnQ2NF90
IHRyYW5zYWN0aW9uSUQsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9uQ2FsbGJhY2sp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByb2xsYmFja1RyYW5zYWN0aW9uKGludDY0X3Qg
dHJhbnNhY3Rpb25JRCwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25DYWxsYmFjaykg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldEluZGV4S2V5cyhpbnQ2NF90IHRyYW5zYWN0
aW9uSUQsIGludDY0X3QgZGF0YWJhc2VJRCwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBJ
REJPYmplY3RTdG9yZU1ldGFkYXRhJiwgSURCS2V5JiBwcmltYXJ5S2V5LCBjb25zdCBWZWN0b3I8
aW50NjRfdD4mIGluZGV4SURzLCBjb25zdCBWZWN0b3I8VmVjdG9yPFJlZlB0cjxJREJLZXk+Pj4m
IGluZGV4S2V5cywgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJv
cj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spOwogCi0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9iamVj
dFN0b3JlKElEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IENyZWF0ZU9iamVjdFN0b3JlT3Bl
cmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4p
PiBjb21wbGV0aW9uQ2FsbGJhY2spIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVJ
bmRleChJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBDcmVhdGVJbmRleE9wZXJhdGlvbiYs
IHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxl
dGlvbkNhbGxiYWNrKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlSW5kZXgoSURC
VHJhbnNhY3Rpb25CYWNrZW5kJiwgY29uc3QgRGVsZXRlSW5kZXhPcGVyYXRpb24mLCBzdGQ6OmZ1
bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxs
YmFjaykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGdldChJREJUcmFuc2FjdGlvbkJhY2tl
bmQmLCBjb25zdCBHZXRPcGVyYXRpb24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxJ
REJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHB1dChJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBQdXRPcGVyYXRpb24m
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBs
ZXRpb25DYWxsYmFjaykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG9wZW5DdXJzb3IoSURC
VHJhbnNhY3Rpb25CYWNrZW5kJiwgY29uc3QgT3BlbkN1cnNvck9wZXJhdGlvbiYsIHN0ZDo6ZnVu
Y3Rpb248dm9pZChQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxi
YWNrKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY291bnQoSURCVHJhbnNhY3Rpb25CYWNr
ZW5kJiwgY29uc3QgQ291bnRPcGVyYXRpb24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0
cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIGRlbGV0ZVJhbmdlKElEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IERl
bGV0ZVJhbmdlT3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBjbGVhck9iamVjdFN0b3JlKElEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IENsZWFy
T2JqZWN0U3RvcmVPcGVyYXRpb24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxJREJE
YXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKElEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IERl
bGV0ZU9iamVjdFN0b3JlT3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBjaGFuZ2VEYXRhYmFzZVZlcnNpb24oSURCVHJhbnNhY3Rpb25CYWNrZW5kJiwg
Y29uc3QgSURCRGF0YWJhc2VCYWNrZW5kOjpWZXJzaW9uQ2hhbmdlT3BlcmF0aW9uJiwgc3RkOjpm
dW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2Fs
bGJhY2spIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVPYmplY3RTdG9yZShJREJU
cmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBDcmVhdGVPYmplY3RTdG9yZU9wZXJhdGlvbiYsIHN0
ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlv
bkNhbGxiYWNrKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlSW5kZXgoSURCVHJh
bnNhY3Rpb25CYWNrZW5kJiwgY29uc3QgQ3JlYXRlSW5kZXhPcGVyYXRpb24mLCBzdGQ6OmZ1bmN0
aW9uPHZvaWQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFj
aykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUluZGV4KElEQlRyYW5zYWN0aW9u
QmFja2VuZCYsIGNvbnN0IERlbGV0ZUluZGV4T3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lk
KFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBnZXQoSURCVHJhbnNhY3Rpb25CYWNrZW5kJiwgY29uc3Qg
R2V0T3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VF
cnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBw
dXQoSURCVHJhbnNhY3Rpb25CYWNrZW5kJiwgY29uc3QgUHV0T3BlcmF0aW9uJiwgc3RkOjpmdW5j
dGlvbjx2b2lkKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJh
Y2spIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKElEQlRyYW5zYWN0aW9u
QmFja2VuZCYsIGNvbnN0IE9wZW5DdXJzb3JPcGVyYXRpb24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQo
UGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGNvdW50KElEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0
IENvdW50T3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBkZWxldGVSYW5nZShJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBEZWxldGVSYW5nZU9w
ZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+
KT4gY29tcGxldGlvbkNhbGxiYWNrKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJP
YmplY3RTdG9yZShJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBDbGVhck9iamVjdFN0b3Jl
T3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJv
cj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkZWxl
dGVPYmplY3RTdG9yZShJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBEZWxldGVPYmplY3RT
dG9yZU9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPElEQkRhdGFiYXNl
RXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
Y2hhbmdlRGF0YWJhc2VWZXJzaW9uKElEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IElEQkRh
dGFiYXNlQmFja2VuZDo6VmVyc2lvbkNoYW5nZU9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9p
ZChQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSBvdmVy
cmlkZTsKIAogICAgIC8vIEN1cnNvci1sZXZlbCBvcGVyYXRpb25zCi0gICAgdmlydHVhbCB2b2lk
IGN1cnNvckFkdmFuY2UoSURCQ3Vyc29yQmFja2VuZCYsIGNvbnN0IEN1cnNvckFkdmFuY2VPcGVy
YXRpb24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlvbkNhbGxiYWNrKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgY3Vyc29ySXRlcmF0ZShJREJDdXJzb3JCYWNrZW5kJiwgY29u
c3QgQ3Vyc29ySXRlcmF0aW9uT3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBs
ZXRpb25DYWxsYmFjaykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGN1cnNvclByZWZldGNo
SXRlcmF0aW9uKElEQkN1cnNvckJhY2tlbmQmLCBjb25zdCBDdXJzb3JQcmVmZXRjaEl0ZXJhdGlv
bk9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9uQ2FsbGJhY2spIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjdXJzb3JQcmVmZXRjaFJlc2V0KElEQkN1cnNvckJh
Y2tlbmQmLCBpbnQgdXNlZFByZWZldGNoZXMpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBj
dXJzb3JBZHZhbmNlKElEQkN1cnNvckJhY2tlbmQmLCBjb25zdCBDdXJzb3JBZHZhbmNlT3BlcmF0
aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25DYWxsYmFjaykgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGN1cnNvckl0ZXJhdGUoSURCQ3Vyc29yQmFja2VuZCYsIGNvbnN0
IEN1cnNvckl0ZXJhdGlvbk9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0
aW9uQ2FsbGJhY2spIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjdXJzb3JQcmVmZXRjaEl0
ZXJhdGlvbihJREJDdXJzb3JCYWNrZW5kJiwgY29uc3QgQ3Vyc29yUHJlZmV0Y2hJdGVyYXRpb25P
cGVyYXRpb24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlvbkNhbGxiYWNrKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY3Vyc29yUHJlZmV0Y2hSZXNldChJREJDdXJzb3JCYWNr
ZW5kJiwgaW50IHVzZWRQcmVmZXRjaGVzKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBJREJT
ZXJ2ZXJDb25uZWN0aW9uTGV2ZWxEQihjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgSURCQmFj
a2luZ1N0b3JlTGV2ZWxEQiopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRpZXVpL1VJUmVxdWVzdEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGlldWkv
VUlSZXF1ZXN0RXZlbnQuaAppbmRleCA5M2IwYTJmLi5kODNhZTRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGlldWkvVUlSZXF1ZXN0RXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGlldWkvVUlSZXF1ZXN0RXZlbnQuaApAQCAtNTcsNyArNTcsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgCiAgICAgVUlSZXF1ZXN0RXZlbnQoKTsKICAgICAKLSAgICBFdmVu
dEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IE9WRVJSSURFOworICAgIEV2ZW50SW50
ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCiBwcml2YXRlOgog
ICAgIFJlZlB0cjxFdmVudFRhcmdldD4gbV9yZWNlaXZlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuaAppbmRleCAzZjI1ZDQxLi5kZjY4ZTQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291
cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJj
ZS5oCkBAIC02NywxNSArNjcsMTUgQEAgcHVibGljOgogICAgIHZvaWQgc3RyZWFtRW5kZWRXaXRo
RXJyb3IoY29uc3QgQXRvbWljU3RyaW5nJiBlcnJvciwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAg
Ly8gSFRNTE1lZGlhU291cmNlCi0gICAgdmlydHVhbCBib29sIGF0dGFjaFRvRWxlbWVudChIVE1M
TWVkaWFFbGVtZW50KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFByaXZhdGVBbmRP
cGVuKFBhc3NSZWY8TWVkaWFTb3VyY2VQcml2YXRlPikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIGNsb3NlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzQ2xvc2VkKCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBkb3VibGUgZHVyYXRpb24oKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVmSFRNTE1lZGlhU291cmNlKCkgT1ZFUlJJREUgeyBy
ZWYoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBkZXJlZkhUTUxNZWRpYVNvdXJjZSgpIE9WRVJSSURF
IHsgZGVyZWYoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBtb25pdG9yU291cmNlQnVmZmVycygpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBhdHRhY2hUb0VsZW1lbnQoSFRNTE1lZGlhRWxlbWVu
dCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRQcml2YXRlQW5kT3BlbihQYXNzUmVm
PE1lZGlhU291cmNlUHJpdmF0ZT4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc0Nsb3NlZCgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgZG91YmxlIGR1cmF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHJlZkhUTUxNZWRpYVNvdXJjZSgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgZGVyZWZIVE1MTWVkaWFTb3VyY2UoKSBvdmVycmlkZSB7IGRlcmVmKCk7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgbW9uaXRvclNvdXJjZUJ1ZmZlcnMoKSBvdmVycmlkZTsKIAog
ICAgIHZvaWQgc2V0RHVyYXRpb24oZG91YmxlLCBFeGNlcHRpb25Db2RlJik7CiAgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiByZWFkeVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9yZWFkeVN0YXRlOyB9
CkBAIC05MiwxNyArOTIsMTcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGlzVHlwZVN1cHBv
cnRlZChjb25zdCBTdHJpbmcmIHR5cGUpOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0IGludGVy
ZmFjZQotICAgIHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBo
YXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc3Rv
cCgpIG92ZXJyaWRlOwogCiAgICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCi0gICAgdmlydHVh
bCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qg
T1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJ
REUgRklOQUwgeyByZWYoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkg
T1ZFUlJJREUgRklOQUwgeyBkZXJlZigpOyB9Ci0gICAgdmlydHVhbCBFdmVudFRhcmdldEludGVy
ZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92
ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRl
IEZJTkFMIHsgcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92
ZXJyaWRlIEZJTkFMIHsgZGVyZWYoKTsgfQorICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZh
Y2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIFVSTFJl
Z2lzdHJhYmxlIGludGVyZmFjZQotICAgIHZpcnR1YWwgVVJMUmVnaXN0cnkmIHJlZ2lzdHJ5KCkg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBVUkxSZWdpc3RyeSYgcmVnaXN0cnkoKSBjb25z
dCBvdmVycmlkZTsKIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTb3VyY2U+OjpyZWY7CiAg
ICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYVNvdXJjZT46OmRlcmVmOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZVJlZ2lzdHJ5LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuaApp
bmRleCA5Y2UzNWRlLi5lNTMxZTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlUmVnaXN0cnkuaApAQCAtNDksOSArNDksOSBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIE1lZGlhU291cmNlUmVnaXN0cnkmIHJlZ2lzdHJ5KCk7CiAK
ICAgICAvLyBSZWdpc3RlcnMgYSBibG9iIFVSTCByZWZlcnJpbmcgdG8gdGhlIHNwZWNpZmllZCBt
ZWRpYSBzb3VyY2UuCi0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyVVJMKFNlY3VyaXR5T3JpZ2lu
KiwgY29uc3QgVVJMJiwgVVJMUmVnaXN0cmFibGUqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgdW5yZWdpc3RlclVSTChjb25zdCBVUkwmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFVSTFJl
Z2lzdHJhYmxlKiBsb29rdXAoY29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHJlZ2lzdGVyVVJMKFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgVVJMJiwgVVJMUmVn
aXN0cmFibGUqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlclVSTChjb25z
dCBVUkwmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFVSTFJlZ2lzdHJhYmxlKiBsb29rdXAoY29u
c3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgTWVkaWFTb3VyY2VS
ZWdpc3RyeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9Tb3VyY2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291
cmNlQnVmZmVyLmgKaW5kZXggNDdkN2UyZi4uMjI5YjRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCkBAIC04NCw0OCArODQsNDgg
QEAgcHVibGljOgogI2VuZGlmCiAKICAgICAvLyBBY3RpdmVET01PYmplY3QgaW50ZXJmYWNlCi0g
ICAgdmlydHVhbCBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGhhc1BlbmRp
bmdBY3Rpdml0eSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3Zl
cnJpZGU7CiAKICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKLSAgICB2aXJ0dWFsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQot
ICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiBTb3VyY2VCdWZmZXJFdmVudFRhcmdldEludGVyZmFjZVR5
cGU7IH0KKyAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2Ug
ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTb3VyY2VCdWZm
ZXJFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ8U291
cmNlQnVmZmVyPjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8U291cmNlQnVmZmVyPjo6ZGVy
ZWY7CiAKIHByb3RlY3RlZDoKICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKLSAgICB2aXJ0
dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IHJlZigpOyB9Ci0gICAgdmlydHVh
bCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CisgICAgdmlydHVh
bCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KIAogcHJpdmF0
ZToKICAgICBTb3VyY2VCdWZmZXIoUGFzc1JlZjxTb3VyY2VCdWZmZXJQcml2YXRlPiwgTWVkaWFT
b3VyY2UqKTsKIAogICAgIC8vIFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQKLSAgICB2aXJ0dWFs
IHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZEVuZFN0cmVhbShTb3VyY2VCdWZmZXJQcml2YXRl
KiwgY29uc3QgV1RGOjpBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNl
QnVmZmVyUHJpdmF0ZSosIGNvbnN0IEluaXRpYWxpemF0aW9uU2VnbWVudCYpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShTb3Vy
Y2VCdWZmZXJQcml2YXRlKiwgUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4pIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBzb3VyY2VCdWZmZXJQcml2YXRlSGFzQXVkaW8oY29uc3QgU291cmNlQnVm
ZmVyUHJpdmF0ZSopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzb3VyY2VCdWZm
ZXJQcml2YXRlSGFzVmlkZW8oY29uc3QgU291cmNlQnVmZmVyUHJpdmF0ZSopIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkQmVjb21lUmVhZHlG
b3JNb3JlU2FtcGxlcyhTb3VyY2VCdWZmZXJQcml2YXRlKiwgQXRvbWljU3RyaW5nIHRyYWNrSUQp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkRW5kU3Ry
ZWFtKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBjb25zdCBXVEY6OkF0b21pY1N0cmluZyYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRp
YWxpemF0aW9uU2VnbWVudChTb3VyY2VCdWZmZXJQcml2YXRlKiwgY29uc3QgSW5pdGlhbGl6YXRp
b25TZWdtZW50Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZlclByaXZh
dGVEaWRSZWNlaXZlU2FtcGxlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBQYXNzUmVmUHRyPE1lZGlh
U2FtcGxlPikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHNvdXJjZUJ1ZmZlclByaXZhdGVI
YXNBdWRpbyhjb25zdCBTb3VyY2VCdWZmZXJQcml2YXRlKikgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBib29sIHNvdXJjZUJ1ZmZlclByaXZhdGVIYXNWaWRlbyhjb25zdCBTb3VyY2VCdWZm
ZXJQcml2YXRlKikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUJ1ZmZl
clByaXZhdGVEaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKFNvdXJjZUJ1ZmZlclByaXZhdGUq
LCBBdG9taWNTdHJpbmcgdHJhY2tJRCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNvdXJj
ZUJ1ZmZlclByaXZhdGVTZWVrVG9UaW1lKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBjb25zdCBNZWRp
YVRpbWUmKTsKICAgICB2aXJ0dWFsIE1lZGlhVGltZSBzb3VyY2VCdWZmZXJQcml2YXRlRmFzdFNl
ZWtUaW1lRm9yTWVkaWFUaW1lKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBjb25zdCBNZWRpYVRpbWUm
LCBjb25zdCBNZWRpYVRpbWUmIG5lZ2F0aXZlVGhyZXNob2xkLCBjb25zdCBNZWRpYVRpbWUmIHBv
c2l0aXZlVGhyZXNob2xkKTsKIAogCiAgICAgLy8gQXVkaW9UcmFja0NsaWVudAotICAgIHZpcnR1
YWwgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayopIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBhdWRpb1RyYWNrRW5hYmxlZENoYW5nZWQoQXVkaW9UcmFjayopIG92
ZXJyaWRlOwogCiAgICAgLy8gVmlkZW9UcmFja0NsaWVudAotICAgIHZpcnR1YWwgdm9pZCB2aWRl
b1RyYWNrU2VsZWN0ZWRDaGFuZ2VkKFZpZGVvVHJhY2sqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgdmlkZW9UcmFja1NlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrKikgb3ZlcnJpZGU7CiAK
ICAgICAvLyBUZXh0VHJhY2tDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrS2luZENo
YW5nZWQoVGV4dFRyYWNrKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja01v
ZGVDaGFuZ2VkKFRleHRUcmFjayopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJh
Y2tBZGRDdWVzKFRleHRUcmFjayosIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBU
ZXh0VHJhY2tDdWVMaXN0KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0Fk
ZEN1ZShUZXh0VHJhY2sqLCBQYXNzUmVmUHRyPFRleHRUcmFja0N1ZT4pIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrKiwgUGFzc1JlZlB0cjxU
ZXh0VHJhY2tDdWU+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrS2luZENo
YW5nZWQoVGV4dFRyYWNrKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja01v
ZGVDaGFuZ2VkKFRleHRUcmFjayopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJh
Y2tBZGRDdWVzKFRleHRUcmFjayosIGNvbnN0IFRleHRUcmFja0N1ZUxpc3QqKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBU
ZXh0VHJhY2tDdWVMaXN0Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja0Fk
ZEN1ZShUZXh0VHJhY2sqLCBQYXNzUmVmUHRyPFRleHRUcmFja0N1ZT4pIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tSZW1vdmVDdWUoVGV4dFRyYWNrKiwgUGFzc1JlZlB0cjxU
ZXh0VHJhY2tDdWU+KSBvdmVycmlkZTsKIAogICAgIHN0YXRpYyBjb25zdCBXVEY6OkF0b21pY1N0
cmluZyYgZGVjb2RlRXJyb3IoKTsKICAgICBzdGF0aWMgY29uc3QgV1RGOjpBdG9taWNTdHJpbmcm
IG5ldHdvcmtFcnJvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuaAppbmRleCAzN2Y2ZWZhLi44YjgwY2M2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxp
c3QuaApAQCAtNjMsOCArNjMsOCBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPFJlZlB0cjxTb3VyY2VC
dWZmZXI+Pjo6aXRlcmF0b3IgZW5kKCkgeyByZXR1cm4gbV9saXN0LmVuZCgpOyB9CiAKICAgICAv
LyBFdmVudFRhcmdldCBpbnRlcmZhY2UKLSAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNl
IGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gU291cmNlQnVm
ZmVyTGlzdEV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQotICAgIHZpcnR1YWwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsgfQorICAgIHZpcnR1YWwgRXZlbnRUYXJn
ZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBTb3VyY2VCdWZmZXJMaXN0RXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgdmlydHVh
bCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OyB9CiAKICAgICB1c2lu
ZyBSZWZDb3VudGVkPFNvdXJjZUJ1ZmZlckxpc3Q+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRl
ZDxTb3VyY2VCdWZmZXJMaXN0Pjo6ZGVyZWY7CkBAIC03NCw4ICs3NCw4IEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIHNjaGVkdWxlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJik7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IHJlZigpOyB9Ci0gICAgdmlydHVh
bCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CisgICAgdmlydHVh
bCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KIAogICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKICAgICBHZW5l
cmljRXZlbnRRdWV1ZSBtX2FzeW5jRXZlbnRRdWV1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vQXVkaW9TdHJlYW1UcmFjay5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9BdWRpb1N0cmVhbVRyYWNrLmgKaW5kZXggYmVmNmVlNC4u
M2RiMzNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9B
dWRpb1N0cmVhbVRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9BdWRpb1N0cmVhbVRyYWNrLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB+QXVkaW9TdHJlYW1UcmFjaygpIHsgfQogCi0gICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIGtpbmQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYga2luZCgpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIEF1ZGlvU3RyZWFt
VHJhY2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiwg
Y29uc3QgRGljdGlvbmFyeSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5oCmluZGV4IDEzNzJhODcuLmVlYjYz
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFD
b25zdHJhaW50c0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhQ29uc3RyYWludHNJbXBsLmgKQEAgLTQ5LDExICs0OSwxMSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB+TWVkaWFDb25zdHJhaW50c0ltcGwoKTsKICAgICBib29sIGluaXRpYWxpemUoY29u
c3QgRGljdGlvbmFyeSYpOwogCi0gICAgdmlydHVhbCB2b2lkIGdldE1hbmRhdG9yeUNvbnN0cmFp
bnRzKFZlY3RvcjxNZWRpYUNvbnN0cmFpbnQ+JikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGdldE9wdGlvbmFsQ29uc3RyYWludHMoVmVjdG9yPE1lZGlhQ29uc3RyYWludD4mKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0TWFuZGF0b3J5Q29uc3RyYWludHMo
VmVjdG9yPE1lZGlhQ29uc3RyYWludD4mKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0T3B0aW9uYWxDb25zdHJhaW50cyhWZWN0b3I8TWVkaWFDb25zdHJhaW50PiYpIGNvbnN0
IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGdldE1hbmRhdG9yeUNvbnN0cmFpbnRWYWx1
ZShjb25zdCBTdHJpbmcmIG5hbWUsIFN0cmluZyYgdmFsdWUpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBnZXRPcHRpb25hbENvbnN0cmFpbnRWYWx1ZShjb25zdCBTdHJpbmcmIG5h
bWUsIFN0cmluZyYgdmFsdWUpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBnZXRN
YW5kYXRvcnlDb25zdHJhaW50VmFsdWUoY29uc3QgU3RyaW5nJiBuYW1lLCBTdHJpbmcmIHZhbHVl
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3B0aW9uYWxDb25zdHJhaW50
VmFsdWUoY29uc3QgU3RyaW5nJiBuYW1lLCBTdHJpbmcmIHZhbHVlKSBjb25zdCBvdmVycmlkZTsK
IAogcHJpdmF0ZToKICAgICBNZWRpYUNvbnN0cmFpbnRzSW1wbCgpIHsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCmluZGV4IDg4NjU4YjAu
Ljg0NzcwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLmgKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50
ZWQ8TWVkaWFTdHJlYW0+OjpkZXJlZjsKIAogICAgIC8vIFVSTFJlZ2lzdHJhYmxlCi0gICAgdmly
dHVhbCBVUkxSZWdpc3RyeSYgcmVnaXN0cnkoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IFVSTFJlZ2lzdHJ5JiByZWdpc3RyeSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBhZGRP
YnNlcnZlcihPYnNlcnZlciopOwogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXIqKTsK
QEAgLTk0LDIwICs5NCwyMCBAQCBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFTdHJlYW0oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPik7CiAKICAgICAv
LyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcgotICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVz
dHJveWVkKCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95
ZWQoKSBvdmVycmlkZSBGSU5BTDsKIAogcHJpdmF0ZToKICAgICAvLyBFdmVudFRhcmdldAotICAg
IHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIEZJTkFMIHsgcmVmKCk7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIEZJTkFMIHsgZGVy
ZWYoKTsgfQorICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIEZJTkFM
IHsgcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRl
IEZJTkFMIHsgZGVyZWYoKTsgfQogCiAgICAgLy8gTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50Ci0g
ICAgdmlydHVhbCB2b2lkIHRyYWNrRGlkRW5kKCkgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVh
bCB2b2lkIHN0cmVhbURpZEVuZCgpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBh
ZGRSZW1vdGVTb3VyY2UoTWVkaWFTdHJlYW1Tb3VyY2UqKSBPVkVSUklERSBGSU5BTDsKLSAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlUmVtb3RlU291cmNlKE1lZGlhU3RyZWFtU291cmNlKikgT1ZFUlJJ
REUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIGFkZFJlbW90ZVRyYWNrKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlKikgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZVJlbW90
ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKikgT1ZFUlJJREUgRklOQUw7CisgICAgdmly
dHVhbCB2b2lkIHRyYWNrRGlkRW5kKCkgb3ZlcnJpZGUgRklOQUw7CisgICAgdmlydHVhbCB2b2lk
IHN0cmVhbURpZEVuZCgpIG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBhZGRSZW1v
dGVTb3VyY2UoTWVkaWFTdHJlYW1Tb3VyY2UqKSBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlUmVtb3RlU291cmNlKE1lZGlhU3RyZWFtU291cmNlKikgb3ZlcnJpZGUgRklO
QUw7CisgICAgdmlydHVhbCB2b2lkIGFkZFJlbW90ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlKikgb3ZlcnJpZGUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZVJlbW90ZVRyYWNr
KE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKikgb3ZlcnJpZGUgRklOQUw7CiAKICAgICBib29sIHJl
bW92ZVRyYWNrKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4pOwogICAgIGJvb2wgYWRkVHJh
Y2soUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUmVnaXN0cnkuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZWdpc3RyeS5oCmluZGV4IDEy
YzE1MzYuLjc5N2M0N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1SZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1SZWdpc3RyeS5oCkBAIC00NCwxMCArNDQsMTAgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBNZWRpYVN0cmVhbVJlZ2lzdHJ5JiByZWdpc3RyeSgpOwogCiAgICAg
Ly8gUmVnaXN0ZXJzIGEgYmxvYiBVUkwgcmVmZXJyaW5nIHRvIHRoZSBzcGVjaWZpZWQgc3RyZWFt
IGRhdGEuCi0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyVVJMKFNlY3VyaXR5T3JpZ2luKiwgY29u
c3QgVVJMJiwgVVJMUmVnaXN0cmFibGUqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdW5y
ZWdpc3RlclVSTChjb25zdCBVUkwmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0
ZXJVUkwoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBVUkwmLCBVUkxSZWdpc3RyYWJsZSopIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyVVJMKGNvbnN0IFVSTCYpIG92ZXJyaWRl
OwogCi0gICAgdmlydHVhbCBVUkxSZWdpc3RyYWJsZSogbG9va3VwKGNvbnN0IFN0cmluZyYpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgVVJMUmVnaXN0cmFibGUqIGxvb2t1cChjb25zdCBT
dHJpbmcmKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBIYXNoTWFwPFN0cmluZywg
UmVmUHRyPE1lZGlhU3RyZWFtPj4gbV9tZWRpYVN0cmVhbXM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCmluZGV4IDg0ODNk
ZjkuLmZmYTNlYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCkBAIC05OSw4ICs5OSw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlbW92ZU9ic2VydmVyKE9ic2VydmVyKik7CiAKICAgICAvLyBFdmVudFRhcmdldAotICAg
IHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25z
dCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBNZWRpYVN0cmVhbVRyYWNrRXZlbnRUYXJnZXRJbnRl
cmZhY2VUeXBlOyB9Ci0gICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gQWN0aXZlRE9N
T2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKyAgICB2aXJ0dWFsIEV2ZW50VGFy
Z2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUgRklOQUwg
eyByZXR1cm4gTWVkaWFTdHJlYW1UcmFja0V2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAg
IHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
IGNvbnN0IG92ZXJyaWRlIEZJTkFMIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpOyB9CiAKICAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtVHJh
Y2s+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYVN0cmVhbVRyYWNrPjo6ZGVyZWY7
CkBAIC0xMTksMTEgKzExOSwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlzcGF0Y2hRdWV1ZWRF
dmVudHMoKTsKIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwgdm9pZCBzdG9w
KCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBvdmVycmlkZSBGSU5B
TDsKIAogICAgIC8vIEV2ZW50VGFyZ2V0Ci0gICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0
KCkgT1ZFUlJJREUgRklOQUwgeyByZWYoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50
VGFyZ2V0KCkgT1ZFUlJJREUgRklOQUwgeyBkZXJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIHJl
ZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgRklOQUwgeyByZWYoKTsgfQorICAgIHZpcnR1YWwgdm9p
ZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgRklOQUwgeyBkZXJlZigpOyB9CiAKICAgICAv
LyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZUNsaWVudAogICAgIHZvaWQgdHJhY2tSZWFkeVN0YXRl
Q2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50LmgKaW5kZXggNzJkZmU1MS4uYjA4MThhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtVHJhY2tFdmVudC5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICBNZWRpYVN0
cmVhbVRyYWNrKiB0cmFjaygpIGNvbnN0OwogCiAgICAgLy8gRXZlbnQKLSAgICB2aXJ0dWFsIEV2
ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2
YXRlOgogICAgIE1lZGlhU3RyZWFtVHJhY2tFdmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1Nv
dXJjZXNSZXF1ZXN0LmgKaW5kZXggYWM1MDdjNS4uOTY1OTliNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVl
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2tTb3VyY2VzUmVxdWVzdC5oCkBAIC00OCw4ICs0OCw4IEBAIHByaXZhdGU6CiAgICAgTWVk
aWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNz
UmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzQ2FsbGJhY2s+KTsKIAogICAgIC8vIE1lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudAotICAgIHZpcnR1YWwgY29uc3QgU3RyaW5n
JiByZXF1ZXN0T3JpZ2luKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9vcmlnaW47IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVSZXF1ZXN0KGNvbnN0IFZlY3RvcjxSZWZQdHI8VHJh
Y2tTb3VyY2VJbmZvPj4mKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgcmVx
dWVzdE9yaWdpbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fb3JpZ2luOyB9CisgICAgdmly
dHVhbCB2b2lkIGRpZENvbXBsZXRlUmVxdWVzdChjb25zdCBWZWN0b3I8UmVmUHRyPFRyYWNrU291
cmNlSW5mbz4+Jikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGNhbGxDb21wbGV0aW9uSGFuZGxlcigp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RU
TUZTZW5kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNl
bmRlci5oCmluZGV4IGJhMTMzZmQuLjRjMzY0YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRFRNRlNlbmRlci5oCkBAIC01OSwxMSArNTksMTEgQEAg
cHVibGljOgogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIodG9uZWNoYW5nZSk7
CiAKICAgICAvLyBFdmVudFRhcmdldAotICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2Ug
ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBSVENEVE1GU2Vu
ZGVyRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9Ci0gICAgdmlydHVhbCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKyAgICB2aXJ0
dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gUlRDRFRNRlNlbmRlckV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQor
ICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpOyB9CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIHZv
aWQgc3RvcCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAK
ICAgICB1c2luZyBSZWZDb3VudGVkPFJUQ0RUTUZTZW5kZXI+OjpyZWY7CiAgICAgdXNpbmcgUmVm
Q291bnRlZDxSVENEVE1GU2VuZGVyPjo6ZGVyZWY7CkBAIC03NSwxMSArNzUsMTEgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNjaGVkdWxlZEV2ZW50VGltZXJGaXJlZChUaW1lcjxSVENEVE1GU2VuZGVy
PiopOwogCiAgICAgLy8gRXZlbnRUYXJnZXQKLSAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJn
ZXQoKSBPVkVSUklERSB7IHJlZigpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJn
ZXQoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJn
ZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJn
ZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KIAogICAgIC8vIFJUQ0RUTUZTZW5kZXJIYW5kbGVy
Q2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIGRpZFBsYXlUb25lKGNvbnN0IFN0cmluZyYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRQbGF5VG9uZShjb25zdCBTdHJpbmcmKSBvdmVycmlk
ZTsKIAogICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiBtX3RyYWNrOwogICAgIGxvbmcgbV9k
dXJhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDRGF0YUNoYW5uZWwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RGF0YUNoYW5uZWwuaAppbmRleCBjMTZkMDJhLi4wNmEwMmQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oCkBAIC03OSw4ICs3
OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3AoKTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0Ci0g
ICAgdmlydHVhbCBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIFJUQ0RhdGFDaGFubmVsRXZlbnRUYXJnZXRJbnRlcmZhY2VU
eXBlOyB9Ci0gICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0OyB9CisgICAgdmlydHVhbCBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVy
ZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFJUQ0RhdGFDaGFubmVsRXZlbnRUYXJnZXRJ
bnRlcmZhY2VUeXBlOyB9CisgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0OyB9CiAKICAgICB1c2luZyBSZWZDb3VudGVkPFJUQ0RhdGFDaGFubmVsPjo6
cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8UlRDRGF0YUNoYW5uZWw+OjpkZXJlZjsKQEAgLTky
LDE2ICs5MiwxNiBAQCBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVkRXZlbnRUaW1lckZpcmVk
KFRpbWVyPFJUQ0RhdGFDaGFubmVsPiopOwogCiAgICAgLy8gRXZlbnRUYXJnZXQKLSAgICB2aXJ0
dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IHJlZigpOyB9Ci0gICAgdmlydHVh
bCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CisgICAgdmlydHVh
bCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KIAogICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAogICAgIC8v
IFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudAotICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VS
ZWFkeVN0YXRlKFJlYWR5U3RhdGUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlU3RyaW5nRGF0YShjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZVJhd0RhdGEoY29uc3QgY2hhciosIHNpemVfdCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGRpZERldGVjdEVycm9yKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRp
ZENoYW5nZVJlYWR5U3RhdGUoUmVhZHlTdGF0ZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVTdHJpbmdEYXRhKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlUmF3RGF0YShjb25zdCBjaGFyKiwgc2l6ZV90KSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRGV0ZWN0RXJyb3IoKSBvdmVycmlkZTsKIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+IG1faGFuZGxlcjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5o
CmluZGV4IGRlMmU1ZTguLjZlODQ3YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKQEAgLTExMSwyNCArMTExLDI0
IEBAIHB1YmxpYzoKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGRhdGFjaGFu
bmVsKTsKIAogICAgIC8vIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudAotICAgIHZpcnR1
YWwgdm9pZCBuZWdvdGlhdGlvbk5lZWRlZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBk
aWRHZW5lcmF0ZUljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0
b3I+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlU2lnbmFsaW5nU3RhdGUo
U2lnbmFsaW5nU3RhdGUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VJY2VH
YXRoZXJpbmdTdGF0ZShJY2VHYXRoZXJpbmdTdGF0ZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIGRpZENoYW5nZUljZUNvbm5lY3Rpb25TdGF0ZShJY2VDb25uZWN0aW9uU3RhdGUpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRSZW1vdGVTdHJlYW0oUGFzc1JlZlB0cjxNZWRp
YVN0cmVhbVByaXZhdGU+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlUmVt
b3RlU3RyZWFtKE1lZGlhU3RyZWFtUHJpdmF0ZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBkaWRBZGRSZW1vdGVEYXRhQ2hhbm5lbChzdGQ6OnVuaXF1ZV9wdHI8UlRDRGF0YUNoYW5uZWxI
YW5kbGVyPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG5lZ290aWF0aW9uTmVlZGVkKCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZEdlbmVyYXRlSWNlQ2FuZGlkYXRlKFBhc3NS
ZWZQdHI8UlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBkaWRDaGFuZ2VTaWduYWxpbmdTdGF0ZShTaWduYWxpbmdTdGF0ZSkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUljZUdhdGhlcmluZ1N0YXRlKEljZUdhdGhlcmluZ1N0
YXRlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlSWNlQ29ubmVjdGlvblN0
YXRlKEljZUNvbm5lY3Rpb25TdGF0ZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZEFk
ZFJlbW90ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4pIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVSZW1vdGVTdHJlYW0oTWVkaWFTdHJlYW1Qcml2YXRl
Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZFJlbW90ZURhdGFDaGFubmVsKHN0
ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+KSBvdmVycmlkZTsKIAogICAgIC8v
IEV2ZW50VGFyZ2V0Ci0gICAgdmlydHVhbCBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdl
dEludGVyZmFjZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFJUQ1BlZXJDb25uZWN0aW9uRXZl
bnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9Ci0gICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gQWN0
aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKyAgICB2aXJ0dWFsIEV2
ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gUlRDUGVlckNvbm5lY3Rpb25FdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAg
ICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKTsgfQogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0Ci0gICAgdmlydHVhbCB2b2lk
IHN0b3AoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwogCiAg
ICAgLy8gTWVkaWFTdHJlYW06Ok9ic2VydmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZEFkZE9yUmVt
b3ZlVHJhY2soKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkT3JSZW1vdmVUcmFj
aygpIG92ZXJyaWRlOwogCiAgICAgdXNpbmcgUmVmQ291bnRlZDxSVENQZWVyQ29ubmVjdGlvbj46
OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkPFJUQ1BlZXJDb25uZWN0aW9uPjo6ZGVyZWY7CkBA
IC0xNDIsOCArMTQyLDggQEAgcHJpdmF0ZToKICAgICBib29sIGhhc0xvY2FsU3RyZWFtV2l0aFRy
YWNrSWQoY29uc3QgU3RyaW5nJiB0cmFja0lkKTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0IGltcGxl
bWVudGF0aW9uLgotICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsg
cmVmKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsg
ZGVyZWYoKTsgfQorICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsg
cmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsg
ZGVyZWYoKTsgfQogCiAgICAgdm9pZCBjaGFuZ2VTaWduYWxpbmdTdGF0ZShTaWduYWxpbmdTdGF0
ZSk7CiAgICAgdm9pZCBjaGFuZ2VJY2VHYXRoZXJpbmdTdGF0ZShJY2VHYXRoZXJpbmdTdGF0ZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmgKaW5kZXggMjlkZTY0Ny4u
YzU2MjRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaApAQCAt
NDgsMTEgKzQ4LDExIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0SW1wbD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQ
YXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrPiwgUGFzc1JlZlB0cjxSVENQ
ZWVyQ29ubmVjdGlvbkVycm9yQ2FsbGJhY2s+KTsKICAgICB2aXJ0dWFsIH5SVENTZXNzaW9uRGVz
Y3JpcHRpb25SZXF1ZXN0SW1wbCgpOwogCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdWNjZWVk
ZWQoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPikgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RGYWlsZWQoY29uc3QgU3RyaW5nJiBlcnJvcikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoUGFzc1JlZlB0cjxSVENT
ZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RGYWlsZWQoY29uc3QgU3RyaW5nJiBlcnJvcikgb3ZlcnJpZGU7CiAKICAgICAvLyBB
Y3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uUmVxdWVzdEltcGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFJUQ1BlZXJDb25uZWN0
aW9uRXJyb3JDYWxsYmFjaz4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3RJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVxdWVzdEltcGwuaAppbmRleCA3OTE3NjEyLi5iOTVmNDUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRz
UmVxdWVzdEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1N0YXRzUmVxdWVzdEltcGwuaApAQCAtNDMsMTQgKzQzLDE0IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3RJbXBsPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFBhc3NSZWZQdHI8UlRDU3RhdHNDYWxsYmFjaz4sIFBhc3NSZWZQdHI8TWVkaWFT
dHJlYW1UcmFjaz4pOwogICAgIHZpcnR1YWwgflJUQ1N0YXRzUmVxdWVzdEltcGwoKTsKIAotICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxSVENTdGF0c1Jlc3BvbnNlQmFzZT4gY3JlYXRlUmVzcG9uc2Uo
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaGFzU2VsZWN0b3IoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIE1lZGlhU3RyZWFtVHJhY2sqIHRyYWNrKCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBQYXNzUmVmUHRyPFJUQ1N0YXRzUmVzcG9uc2VCYXNlPiBjcmVhdGVSZXNwb25zZSgpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgYm9vbCBoYXNTZWxlY3RvcigpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgTWVkaWFTdHJlYW1UcmFjayogdHJhY2soKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0U3VjY2VlZGVkKFBhc3NSZWZQdHI8UlRDU3RhdHNSZXNwb25zZUJhc2U+KSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN1Y2NlZWRlZChQYXNzUmVmUHRyPFJUQ1N0
YXRzUmVzcG9uc2VCYXNlPikgb3ZlcnJpZGU7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKLSAg
ICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkg
b3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgUlRDU3RhdHNSZXF1ZXN0SW1wbChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxSVENTdGF0c0NhbGxiYWNrPiwgUGFzc1JlZlB0cjxN
ZWRpYVN0cmVhbVRyYWNrPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5oCmluZGV4IGQ5ZTBjZDYuLjMwZTg5ZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25z
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNw
b25zZS5oCkBAIC00OSw4ICs0OSw4IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPFJUQ1N0YXRz
UmVwb3J0PiBuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgYm9vbCBjYW5HZXRJ
dGVtc0Zvck5hbWUoY29uc3QgQXRvbWljU3RyaW5nJik7CiAKLSAgICB2aXJ0dWFsIHNpemVfdCBh
ZGRSZXBvcnQoU3RyaW5nIGlkLCBTdHJpbmcgdHlwZSwgZG91YmxlIHRpbWVzdGFtcCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGFkZFN0YXRpc3RpYyhzaXplX3QgcmVwb3J0LCBTdHJpbmcg
bmFtZSwgU3RyaW5nIHZhbHVlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHNpemVfdCBhZGRSZXBv
cnQoU3RyaW5nIGlkLCBTdHJpbmcgdHlwZSwgZG91YmxlIHRpbWVzdGFtcCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGFkZFN0YXRpc3RpYyhzaXplX3QgcmVwb3J0LCBTdHJpbmcgbmFtZSwg
U3RyaW5nIHZhbHVlKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBSVENTdGF0c1Jlc3BvbnNl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Zv
aWRSZXF1ZXN0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENW
b2lkUmVxdWVzdEltcGwuaAppbmRleCAyMjc1ODMzLi4zYzNmMzRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmgK
QEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RmFpbGVk
KGNvbnN0IFN0cmluZyYgZXJyb3IpOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0Ci0gICAgdmly
dHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJy
aWRlOwogCiBwcml2YXRlOgogICAgIFJUQ1ZvaWRSZXF1ZXN0SW1wbChTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFJUQ1BlZXJDb25u
ZWN0aW9uRXJyb3JDYWxsYmFjaz4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuaAppbmRleCBkYWQ0MjdkLi4wMjJkZGM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJl
cXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRp
YVJlcXVlc3QuaApAQCAtNzAsMTQgKzcwLDE0IEBAIHByaXZhdGU6CiAgICAgVXNlck1lZGlhUmVx
dWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVXNlck1lZGlhQ29udHJvbGxlciosIFBhc3NS
ZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gYXVkaW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxNZWRp
YUNvbnN0cmFpbnRzPiB2aWRlb0NvbnN0cmFpbnRzLCBQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJN
ZWRpYVN1Y2Nlc3NDYWxsYmFjaz4sIFBhc3NSZWZQdHI8TmF2aWdhdG9yVXNlck1lZGlhRXJyb3JD
YWxsYmFjaz4pOwogCiAgICAgLy8gTWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudAotICAgIHZpcnR1
YWwgdm9pZCBjb25zdHJhaW50c1ZhbGlkYXRlZCgpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1
YWwgdm9pZCBjb25zdHJhaW50c0ludmFsaWQoY29uc3QgU3RyaW5nJiBjb25zdHJhaW50TmFtZSkg
T1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZVN0cmVhbShQYXNzUmVm
UHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4pIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9p
ZCBmYWlsZWRUb0NyZWF0ZVN0cmVhbVdpdGhDb25zdHJhaW50c0Vycm9yKGNvbnN0IFN0cmluZyYg
Y29uc3RyYWludE5hbWUpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBmYWlsZWRU
b0NyZWF0ZVN0cmVhbVdpdGhQZXJtaXNzaW9uRXJyb3IoKSBPVkVSUklERSBGSU5BTDsKKyAgICB2
aXJ0dWFsIHZvaWQgY29uc3RyYWludHNWYWxpZGF0ZWQoKSBvdmVycmlkZSBGSU5BTDsKKyAgICB2
aXJ0dWFsIHZvaWQgY29uc3RyYWludHNJbnZhbGlkKGNvbnN0IFN0cmluZyYgY29uc3RyYWludE5h
bWUpIG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVTdHJlYW0oUGFz
c1JlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+KSBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0dWFs
IHZvaWQgZmFpbGVkVG9DcmVhdGVTdHJlYW1XaXRoQ29uc3RyYWludHNFcnJvcihjb25zdCBTdHJp
bmcmIGNvbnN0cmFpbnROYW1lKSBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgZmFp
bGVkVG9DcmVhdGVTdHJlYW1XaXRoUGVybWlzc2lvbkVycm9yKCkgb3ZlcnJpZGUgRklOQUw7CiAK
ICAgICAvLyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcgotICAgIHZpcnR1YWwgdm9pZCBjb250
ZXh0RGVzdHJveWVkKCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHRE
ZXN0cm95ZWQoKSBvdmVycmlkZSBGSU5BTDsKICAgICAKICAgICB2b2lkIGNhbGxTdWNjZXNzSGFu
ZGxlcihQYXNzUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4pOwogICAgIHZvaWQgY2FsbEVycm9y
SGFuZGxlcihQYXNzUmVmUHRyPE5hdmlnYXRvclVzZXJNZWRpYUVycm9yPik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1ZpZGVvU3RyZWFtVHJhY2suaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVmlkZW9TdHJlYW1UcmFjay5oCmlu
ZGV4IGE4MmQxY2MuLjk1ZTkyZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vVmlkZW9TdHJlYW1UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vVmlkZW9TdHJlYW1UcmFjay5oCkBAIC00NSw3ICs0NSw3IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgflZpZGVvU3RyZWFtVHJhY2soKSB7IH0KIAotICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBraW5kKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBj
b25zdCBBdG9taWNTdHJpbmcmIGtpbmQoKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAg
ICBWaWRlb1N0cmVhbVRyYWNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYsIGNvbnN0IERpY3Rpb25hcnkqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbmV0d29ya2luZm8vTmV0d29ya0luZm9Db25uZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL25ldHdvcmtpbmZvL05ldHdvcmtJbmZvQ29ubmVjdGlvbi5oCmluZGV4
IDBiMzk1MGMuLjI3Zjk5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbmV0
d29ya2luZm8vTmV0d29ya0luZm9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9uZXR3b3JraW5mby9OZXR3b3JrSW5mb0Nvbm5lY3Rpb24uaApAQCAtNzYsMTAgKzc2LDEw
IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTmV0d29ya0luZm9Db25uZWN0aW9uKE5hdmlnYXRv
ciopOwogCiAgICAgLy8gRXZlbnRUYXJnZXQgaW1wbGVtZW50YXRpb24uCi0gICAgdmlydHVhbCBF
dmVudFRhcmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
RXZlbnRUYXJnZXREYXRhJiBlbnN1cmVFdmVudFRhcmdldERhdGEoKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IHJlZigpOyB9Ci0gICAgdmly
dHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0KKyAgICB2
aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBFdmVudFRhcmdldERhdGEmIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsg
fQogCiAgICAgLy8gRXZlbnRUYXJnZXQgaW1wbGVtZW50YXRpb24uCiAgICAgRXZlbnRUYXJnZXRE
YXRhIG1fZXZlbnRUYXJnZXREYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmgKaW5kZXggOTNh
NzhlNi4uYzhlMjIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmlj
YXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5oCkBAIC00NSwxMSArNDUs
MTEgQEAgcHVibGljOgogICAgIHN0YXRpYyBOb3RpZmljYXRpb25DZW50ZXIqIHdlYmtpdE5vdGlm
aWNhdGlvbnMoRE9NV2luZG93Kik7CiAgICAgc3RhdGljIERPTVdpbmRvd05vdGlmaWNhdGlvbnMq
IGZyb20oRE9NV2luZG93Kik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdEZyYW1lRm9y
UGFnZUNhY2hlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlY29ubmVjdEZyYW1lRnJv
bVBhZ2VDYWNoZShGcmFtZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJv
eUdsb2JhbE9iamVjdEluQ2FjaGVkRnJhbWUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
d2lsbERlc3Ryb3lHbG9iYWxPYmplY3RJbkZyYW1lKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHdpbGxEZXRhY2hHbG9iYWxPYmplY3RGcm9tRnJhbWUoKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlzY29ubmVjdEZyYW1lRm9yUGFnZUNhY2hlKCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHJlY29ubmVjdEZyYW1lRnJvbVBhZ2VDYWNoZShGcmFtZSopIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluQ2FjaGVkRnJhbWUoKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lHbG9iYWxPYmplY3RJbkZyYW1l
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hHbG9iYWxPYmplY3RGcm9t
RnJhbWUoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBET01XaW5kb3dOb3Rp
ZmljYXRpb25zKERPTVdpbmRvdyopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCmluZGV4IGEzZDQwZTcuLmRhMDQyMTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
LmgKQEAgLTEyMiw4ICsxMjIsOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVmQ291bnRlZDxOb3Rp
ZmljYXRpb24+OjpkZXJlZjsKIAogICAgIC8vIEV2ZW50VGFyZ2V0IGludGVyZmFjZQotICAgIHZp
cnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBOb3RpZmljYXRpb25FdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0K
LSAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKTsgfQorICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRU
YXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBOb3RpZmljYXRpb25FdmVu
dFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBBY3Rp
dmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQogCiAgICAgdm9pZCBzdG9w
TG9hZGluZ0ljb24oKTsKIApAQCAtMTQ5LDExICsxNDksMTEgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHNldEJvZHkoY29uc3QgU3RyaW5nJiBib2R5KSB7IG1fYm9keSA9IGJvZHk7IH0KIAogICAgIC8v
IEFjdGl2ZURPTU9iamVjdCBpbnRlcmZhY2UKLSAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ry
b3llZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3Zl
cnJpZGU7CiAKICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKLSAgICB2aXJ0dWFsIHZvaWQg
cmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IHJlZigpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRl
cmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
cmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRl
cmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KIAogICAgIHZvaWQgc3RhcnRM
b2FkaW5nSWNvbigpOwogICAgIHZvaWQgZmluaXNoTG9hZGluZ0ljb24oKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50
ZXIuaAppbmRleCA1NzE1YWU5Li5kMjdiNDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oCkBAIC03NSw3
ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgTm90aWZpY2F0aW9uQ2VudGVyKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBOb3RpZmljYXRpb25DbGllbnQqKTsKIAogICAgIC8vIEFjdGl2ZURPTU9iamVj
dAotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHN0
b3AoKSBvdmVycmlkZTsKIAogICAgIGNsYXNzIE5vdGlmaWNhdGlvblJlcXVlc3RDYWxsYmFjayA6
IHB1YmxpYyBSZWZDb3VudGVkPE5vdGlmaWNhdGlvblJlcXVlc3RDYWxsYmFjaz4gewogICAgIHB1
YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9RdWlja1Rp
bWVQbHVnaW5SZXBsYWNlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1
aWNrVGltZVBsdWdpblJlcGxhY2VtZW50LmgKaW5kZXggY2E5OGYzZC4uMzM5Njk2MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBsdWdpblJlcGxh
Y2VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1F1aWNrVGltZVBs
dWdpblJlcGxhY2VtZW50LmgKQEAgLTQ5LDExICs0OSwxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8UGx1Z2luUmVwbGFjZW1lbnQ+IGNyZWF0ZShIVE1MUGx1Z0luRWxlbWVudCYs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
cGFyYW1WYWx1ZXMpOwogICAgIH5RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudCgpOwogCi0gICAg
dmlydHVhbCBib29sIGluc3RhbGxSZXBsYWNlbWVudChTaGFkb3dSb290KikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBKU0M6OkpTT2JqZWN0KiBzY3JpcHRPYmplY3QoKSBPVkVSUklERSB7IHJldHVy
biBtX3NjcmlwdE9iamVjdDsgfQorICAgIHZpcnR1YWwgYm9vbCBpbnN0YWxsUmVwbGFjZW1lbnQo
U2hhZG93Um9vdCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgSlNDOjpKU09iamVjdCogc2NyaXB0
T2JqZWN0KCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9zY3JpcHRPYmplY3Q7IH0KIAotICAgIHZpcnR1
YWwgYm9vbCB3aWxsQ3JlYXRlUmVuZGVyZXIoKSBPVkVSUklERSB7IHJldHVybiBtX21lZGlhRWxl
bWVudDsgfQotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihIVE1MUGx1Z0luRWxlbWVudCYsIFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIGJvb2wgd2lsbENyZWF0ZVJlbmRlcmVyKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9tZWRpYUVsZW1lbnQ7IH0KKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoSFRNTFBsdWdJbkVsZW1lbnQmLCBQYXNzUmVmPFJl
bmRlclN0eWxlPikgb3ZlcnJpZGU7CiAKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgbW92aWVTaXpl
KCkgY29uc3Q7CiAgICAgdm9pZCBwb3N0RXZlbnQoY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb24uaAppbmRleCAwOWYx
ZDdmLi5iYTVhNGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9T
cGVlY2hSZWNvZ25pdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1Nw
ZWVjaFJlY29nbml0aW9uLmgKQEAgLTgwLDExICs4MCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBk
aWRFbmQoKTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0LgotICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJ
bnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0
SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAv
LyBBY3RpdmVET01PYmplY3QuCi0gICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwogCiAgICAgdXNpbmcgUmVmQ291bnRlZDxT
cGVlY2hSZWNvZ25pdGlvbj46OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkPFNwZWVjaFJlY29n
bml0aW9uPjo6ZGVyZWY7CkBAIC0xMDgsMTAgKzEwOCwxMCBAQCBwcml2YXRlOgogCiAKICAgICAv
LyBFdmVudFRhcmdldAotICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIE9WRVJSSURF
IHsgcmVmKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIE9WRVJSSURF
IHsgZGVyZWYoKTsgfQotICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERh
dGEoKSBPVkVSUklERSB7IHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7IH0KLSAgICB2aXJ0dWFs
IEV2ZW50VGFyZ2V0RGF0YSYgZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgT1ZFUlJJREUgeyByZXR1
cm4gbV9ldmVudFRhcmdldERhdGE7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQo
KSBvdmVycmlkZSB7IHJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQo
KSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZl
bnRUYXJnZXREYXRhKCkgb3ZlcnJpZGUgeyByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOyB9Cisg
ICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEmIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpIG92ZXJy
aWRlIHsgcmV0dXJuIG1fZXZlbnRUYXJnZXREYXRhOyB9CiAKICAgICBSZWZQdHI8U3BlZWNoR3Jh
bW1hckxpc3Q+IG1fZ3JhbW1hcnM7CiAgICAgU3RyaW5nIG1fbGFuZzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXJyb3IuaAppbmRl
eCAwZDhhYTM1Li43NjRmZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkVycm9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25FcnJvci5oCkBAIC02NCw3ICs2NCw3IEBAIHB1Ymxp
YzoKICAgICBjb25zdCBTdHJpbmcmIGVycm9yKCkgeyByZXR1cm4gbV9lcnJvcjsgfQogICAgIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSgpIHsgcmV0dXJuIG1fbWVzc2FnZTsgfQogCi0gICAgdmlydHVh
bCBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKIAog
cHJpdmF0ZToKICAgICBTcGVlY2hSZWNvZ25pdGlvbkVycm9yKGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoUmVjb2duaXRpb25FdmVudC5oCmluZGV4IGY2OWEzYjQuLjYxMGZmNTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uRXZlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkV2ZW50
LmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIERvY3VtZW50KiBlbW1hKCkgeyByZXR1
cm4gMDsgfQogCiAgICAgLy8gRXZlbnQKLSAgICB2aXJ0dWFsIEV2ZW50SW50ZXJmYWNlIGV2ZW50
SW50ZXJmYWNlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBFdmVudEludGVyZmFjZSBl
dmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIFNwZWVjaFJl
Y29nbml0aW9uRXZlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFN5bnRoZXNpcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3Bl
ZWNoU3ludGhlc2lzLmgKaW5kZXggY2UxZTQ3Yy4uZjJmMDMwYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmgKQEAgLTY0LDEzICs2NCwxMyBA
QCBwcml2YXRlOgogICAgIFNwZWVjaFN5bnRoZXNpcygpOwogICAgIAogICAgIC8vIFBsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXJDbGllbnQgb3ZlcnJpZGUgbWV0aG9kcy4KLSAgICB2aXJ0dWFsIHZv
aWQgdm9pY2VzRGlkQ2hhbmdlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0
U3BlYWtpbmcoUGFzc1JlZlB0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4pIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRQYXVzZVNwZWFraW5nKFBhc3NSZWZQdHI8UGxh
dGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVzdW1lU3BlYWtpbmcoUGFzc1JlZlB0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0
dGVyYW5jZT4pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hTcGVha2luZyhQ
YXNzUmVmUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIHNwZWFraW5nRXJyb3JPY2N1cnJlZChQYXNzUmVmUHRyPFBsYXRmb3Jt
U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGJv
dW5kYXJ5RXZlbnRPY2N1cnJlZChQYXNzUmVmUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlPiwgU3BlZWNoQm91bmRhcnksIHVuc2lnbmVkIGNoYXJJbmRleCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHZvaWNlc0RpZENoYW5nZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBkaWRTdGFydFNwZWFraW5nKFBhc3NSZWZQdHI8UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNV
dHRlcmFuY2U+KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUGF1c2VTcGVha2luZyhQ
YXNzUmVmUHRyPFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlPikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZFJlc3VtZVNwZWFraW5nKFBhc3NSZWZQdHI8UGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXNVdHRlcmFuY2U+KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmlu
aXNoU3BlYWtpbmcoUGFzc1JlZlB0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4p
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzcGVha2luZ0Vycm9yT2NjdXJyZWQoUGFzc1Jl
ZlB0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4pIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBib3VuZGFyeUV2ZW50T2NjdXJyZWQoUGFzc1JlZlB0cjxQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpc1V0dGVyYW5jZT4sIFNwZWVjaEJvdW5kYXJ5LCB1bnNpZ25lZCBjaGFySW5kZXgp
IG92ZXJyaWRlOwogCiAgICAgdm9pZCBzdGFydFNwZWFraW5nSW1tZWRpYXRlbHkoU3BlZWNoU3lu
dGhlc2lzVXR0ZXJhbmNlKik7CiAgICAgdm9pZCBoYW5kbGVTcGVha2luZ0NvbXBsZXRlZChTcGVl
Y2hTeW50aGVzaXNVdHRlcmFuY2UqLCBib29sIGVycm9yT2NjdXJyZWQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2Uu
aAppbmRleCBkNTQxNWYyLi5lNmI0N2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaApAQCAtNzUsNyArNzUs
NyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUmVmQ291bnRlZDxTcGVlY2hTeW50aGVzaXNVdHRlcmFu
Y2U+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRlZDxTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U+
OjpkZXJlZjsKIAotICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIENvbnRleHREZXN0cnVjdGlv
bk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKyAgICB2aXJ0dWFsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpOyB9CiAKICAgICBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSogcGxhdGZv
cm1VdHRlcmFuY2UoKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtVXR0ZXJhbmNlLmdldCgpOyB9
CiAKQEAgLTg0LDkgKzg0LDkgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8UGxhdGZvcm1TcGVlY2hT
eW50aGVzaXNVdHRlcmFuY2U+IG1fcGxhdGZvcm1VdHRlcmFuY2U7CiAgICAgUmVmUHRyPFNwZWVj
aFN5bnRoZXNpc1ZvaWNlPiBtX3ZvaWNlOwogCi0gICAgdmlydHVhbCBFdmVudFRhcmdldEludGVy
ZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFNwZWVj
aFN5bnRoZXNpc1V0dGVyYW5jZUV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQotICAgIHZpcnR1
YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsgcmVmKCk7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsgZGVyZWYoKTsgfQorICAgIHZpcnR1
YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VFdmVudFRhcmdldEludGVyZmFj
ZVR5cGU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJl
ZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRl
cmVmKCk7IH0KIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2VyTm9kZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BbmFseXNlck5vZGUuaAppbmRleCBhZmM0ODUwLi4yOTBj
NjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2Vy
Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQW5hbHlzZXJOb2Rl
LmgKQEAgLTQxLDggKzQxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkFuYWx5c2VyTm9kZSgp
OwogICAgIAogICAgIC8vIEF1ZGlvTm9kZQotICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzKHNpemVf
dCBmcmFtZXNUb1Byb2Nlc3MpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXNldCgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3Mp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZXNldCgpIG92ZXJyaWRlOwogCiAgICAgLy8g
SmF2YXNjcmlwdCBiaW5kaW5ncwogICAgIHVuc2lnbmVkIGZmdFNpemUoKSBjb25zdCB7IHJldHVy
biBtX2FuYWx5c2VyLmZmdFNpemUoKTsgfQpAQCAtNjQsOCArNjQsOCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBnZXRCeXRlVGltZURvbWFpbkRhdGEoSlNDOjpVaW50OEFycmF5KiBhcnJheSkgeyBtX2Fu
YWx5c2VyLmdldEJ5dGVUaW1lRG9tYWluRGF0YShhcnJheSk7IH0KIAogcHJpdmF0ZToKLSAgICB2
aXJ0dWFsIGRvdWJsZSB0YWlsVGltZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIDA7IH0KLSAg
ICB2aXJ0dWFsIGRvdWJsZSBsYXRlbmN5VGltZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIDA7
IH0KKyAgICB2aXJ0dWFsIGRvdWJsZSB0YWlsVGltZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IDA7IH0KKyAgICB2aXJ0dWFsIGRvdWJsZSBsYXRlbmN5VGltZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIDA7IH0KIAogICAgIEFuYWx5c2VyTm9kZShBdWRpb0NvbnRleHQqLCBmbG9hdCBzYW1w
bGVSYXRlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0Jhc2ljSW5zcGVjdG9yTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0Jhc2ljSW5zcGVjdG9yTm9kZS5oCmluZGV4IGQzZWNhYjMuLjJmNDI1OGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CYXNpY0luc3BlY3Rv
ck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQmFzaWNJ
bnNwZWN0b3JOb2RlLmgKQEAgLTM3LDEwICszNywxMCBAQCBwdWJsaWM6CiAgICAgQXVkaW9CYXNp
Y0luc3BlY3Rvck5vZGUoQXVkaW9Db250ZXh0KiwgZmxvYXQgc2FtcGxlUmF0ZSwgdW5zaWduZWQg
b3V0cHV0Q2hhbm5lbENvdW50KTsKIAogICAgIC8vIEF1ZGlvTm9kZQotICAgIHZpcnR1YWwgdm9p
ZCBwdWxsSW5wdXRzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBjb25uZWN0KEF1ZGlvTm9kZSosIHVuc2lnbmVkIG91dHB1dEluZGV4LCB1bnNpZ25l
ZCBpbnB1dEluZGV4LCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGRpc2Nvbm5lY3QodW5zaWduZWQgb3V0cHV0SW5kZXgsIEV4Y2VwdGlvbkNvZGUmKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tOdW1iZXJPZkNoYW5uZWxzRm9ySW5wdXQoQXVkaW9O
b2RlSW5wdXQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcHVsbElucHV0cyhzaXplX3Qg
ZnJhbWVzVG9Qcm9jZXNzKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdChBdWRp
b05vZGUqLCB1bnNpZ25lZCBvdXRwdXRJbmRleCwgdW5zaWduZWQgaW5wdXRJbmRleCwgRXhjZXB0
aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0KHVuc2lnbmVk
IG91dHB1dEluZGV4LCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IGNoZWNrTnVtYmVyT2ZDaGFubmVsc0ZvcklucHV0KEF1ZGlvTm9kZUlucHV0Kikgb3ZlcnJpZGU7
CiAKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVQdWxsU3RhdHVzKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQmFzaWNQcm9jZXNzb3JOb2RlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQmFzaWNQcm9jZXNzb3JOb2Rl
LmgKaW5kZXggOWM4MzFlYy4uNzU0OWExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0Jhc2ljUHJvY2Vzc29yTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CYXNpY1Byb2Nlc3Nvck5vZGUuaApAQCAtNDIsMjEg
KzQyLDIxIEBAIHB1YmxpYzoKICAgICBBdWRpb0Jhc2ljUHJvY2Vzc29yTm9kZShBdWRpb0NvbnRl
eHQqLCBmbG9hdCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIEF1ZGlvTm9kZQotICAgIHZpcnR1YWwg
dm9pZCBwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBwdWxsSW5wdXRzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCByZXNldCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBpbml0aWFs
aXplKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVuaW5pdGlhbGl6ZSgpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBwdWxsSW5wdXRzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3Mp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZXNldCgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBpbml0aWFsaXplKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVuaW5pdGlh
bGl6ZSgpIG92ZXJyaWRlOwogCiAgICAgLy8gQ2FsbGVkIGluIHRoZSBtYWluIHRocmVhZCB3aGVu
IHRoZSBudW1iZXIgb2YgY2hhbm5lbHMgZm9yIHRoZSBpbnB1dCBtYXkgaGF2ZSBjaGFuZ2VkLgot
ICAgIHZpcnR1YWwgdm9pZCBjaGVja051bWJlck9mQ2hhbm5lbHNGb3JJbnB1dChBdWRpb05vZGVJ
bnB1dCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjaGVja051bWJlck9mQ2hhbm5lbHNG
b3JJbnB1dChBdWRpb05vZGVJbnB1dCopIG92ZXJyaWRlOwogCiAgICAgLy8gUmV0dXJucyB0aGUg
bnVtYmVyIG9mIGNoYW5uZWxzIGZvciBib3RoIHRoZSBpbnB1dCBhbmQgdGhlIG91dHB1dC4KICAg
ICB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzKCk7CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFs
IGRvdWJsZSB0YWlsVGltZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgZG91YmxlIGxh
dGVuY3lUaW1lKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBkb3VibGUgdGFpbFRpbWUo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGRvdWJsZSBsYXRlbmN5VGltZSgpIGNvbnN0
IG92ZXJyaWRlOwogCiAgICAgQXVkaW9Qcm9jZXNzb3IqIHByb2Nlc3NvcigpIHsgcmV0dXJuIG1f
cHJvY2Vzc29yLmdldCgpOyB9CiAgICAgT3duUHRyPEF1ZGlvUHJvY2Vzc29yPiBtX3Byb2Nlc3Nv
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVm
ZmVyU291cmNlTm9kZS5oCmluZGV4IDFiZWRiNTAuLjBkNmMwMTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaApA
QCAtNTAsOCArNTAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+QXVkaW9CdWZmZXJTb3VyY2VO
b2RlKCk7CiAKICAgICAvLyBBdWRpb05vZGUKLSAgICB2aXJ0dWFsIHZvaWQgcHJvY2VzcyhzaXpl
X3QgZnJhbWVzVG9Qcm9jZXNzKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzZXQoKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNz
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzZXQoKSBvdmVycmlkZTsKIAogICAgIC8v
IHNldEJ1ZmZlcigpIGlzIGNhbGxlZCBvbiB0aGUgbWFpbiB0aHJlYWQuICBUaGlzIGlzIHRoZSBi
dWZmZXIgd2UgdXNlIGZvciBwbGF5YmFjay4KICAgICAvLyByZXR1cm5zIHRydWUgb24gc3VjY2Vz
cy4KQEAgLTk0LDE2ICs5NCwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclBhbm5lck5vZGUo
KTsKIAogICAgIC8vIElmIHdlIGFyZSBubyBsb25nZXIgcGxheWluZywgcHJvcG9nYXRlIHNpbGVu
Y2UgYWhlYWQgdG8gZG93bnN0cmVhbSBub2Rlcy4KLSAgICB2aXJ0dWFsIGJvb2wgcHJvcGFnYXRl
c1NpbGVuY2UoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgcHJvcGFnYXRlc1Np
bGVuY2UoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9k
ZQotICAgIHZpcnR1YWwgdm9pZCBmaW5pc2goKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZmluaXNoKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgQXVkaW9CdWZmZXJTb3VyY2VOb2Rl
KEF1ZGlvQ29udGV4dCosIGZsb2F0IHNhbXBsZVJhdGUpOwogCi0gICAgdmlydHVhbCBkb3VibGUg
dGFpbFRpbWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCBkb3Vi
bGUgbGF0ZW5jeVRpbWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAwOyB9CisgICAgdmlydHVh
bCBkb3VibGUgdGFpbFRpbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CisgICAgdmly
dHVhbCBkb3VibGUgbGF0ZW5jeVRpbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CiAK
ICAgICAvLyBSZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KICAgICBib29sIHJlbmRlckZyb21CdWZm
ZXIoQXVkaW9CdXMqLCB1bnNpZ25lZCBkZXN0aW5hdGlvbkZyYW1lT2Zmc2V0LCBzaXplX3QgbnVt
YmVyT2ZGcmFtZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
b250ZXh0LmgKaW5kZXggODYyNDgwMy4uNmE5NDRhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCkBAIC05Myw3ICs5Myw3IEBAIHB1YmxpYzoK
ICAgICBIUlRGRGF0YWJhc2VMb2FkZXIqIGhydGZEYXRhYmFzZUxvYWRlcigpIGNvbnN0IHsgcmV0
dXJuIG1faHJ0ZkRhdGFiYXNlTG9hZGVyLmdldCgpOyB9CiAKICAgICAvLyBEb2N1bWVudCBub3Rp
ZmljYXRpb24KLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsg
Ly8gQVNTRVJUcyBpZiBkb2N1bWVudCBubyBsb25nZXIgZXhpc3RzLgogCkBAIC0yMzQsOCArMjM0
LDggQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlTWFya2VkU3VtbWluZ0p1bmN0aW9uKEF1ZGlv
U3VtbWluZ0p1bmN0aW9uKik7CiAKICAgICAvLyBFdmVudFRhcmdldAotICAgIHZpcnR1YWwgRXZl
bnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBPVkVSUklERSBG
SU5BTCB7IHJldHVybiBBdWRpb0NvbnRleHRFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KLSAg
ICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNl
IGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUgRklOQUwgeyByZXR1cm4gQXVk
aW9Db250ZXh0RXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgdmlydHVhbCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUg
RklOQUw7CiAKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGNvbXBsZXRlKTsK
IApAQCAtMjgzLDcgKzI4Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzY2hlZHVsZU5vZGVEZWxl
dGlvbigpOwogICAgIHN0YXRpYyB2b2lkIGRlbGV0ZU1hcmtlZE5vZGVzRGlzcGF0Y2godm9pZCog
dXNlckRhdGEpOwogCi0gICAgdmlydHVhbCB2b2lkIG1lZGlhQ2FuU3RhcnQoKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFDYW5TdGFydCgpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBt
X2lzSW5pdGlhbGl6ZWQ7CiAgICAgYm9vbCBtX2lzQXVkaW9UaHJlYWRGaW5pc2hlZDsKQEAgLTM0
OCw4ICszNDgsOCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxIUlRGRGF0YWJhc2VMb2FkZXI+IG1f
aHJ0ZkRhdGFiYXNlTG9hZGVyOwogCiAgICAgLy8gRXZlbnRUYXJnZXQKLSAgICB2aXJ0dWFsIHZv
aWQgcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IHJlZigpOyB9Ci0gICAgdmlydHVhbCB2b2lk
IGRlcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CisgICAgdmlydHVhbCB2b2lk
IGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KIAogICAgIFJlZlB0cjxB
dWRpb0J1ZmZlcj4gbV9yZW5kZXJUYXJnZXQ7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmgKaW5kZXggMjYyYTc1
NS4uZTc0MmM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0Rlc3RpbmF0aW9uTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuaApAQCAtNDIsMTIgKzQyLDEyIEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5BdWRpb0Rlc3RpbmF0aW9uTm9kZSgpOwogICAgIAogICAgIC8vIEF1ZGlvTm9k
ZSAgIAotICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzKHNpemVfdCkgT1ZFUlJJREUgeyB9OyAvLyB3
ZSdyZSBwdWxsZWQgYnkgaGFyZHdhcmUgc28gdGhpcyBpcyBuZXZlciBjYWxsZWQKLSAgICB2aXJ0
dWFsIHZvaWQgcmVzZXQoKSBPVkVSUklERSB7IG1fY3VycmVudFNhbXBsZUZyYW1lID0gMDsgfQor
ICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzKHNpemVfdCkgb3ZlcnJpZGUgeyB9OyAvLyB3ZSdyZSBw
dWxsZWQgYnkgaGFyZHdhcmUgc28gdGhpcyBpcyBuZXZlciBjYWxsZWQKKyAgICB2aXJ0dWFsIHZv
aWQgcmVzZXQoKSBvdmVycmlkZSB7IG1fY3VycmVudFNhbXBsZUZyYW1lID0gMDsgfQogICAgIAog
ICAgIC8vIFRoZSBhdWRpbyBoYXJkd2FyZSBjYWxscyByZW5kZXIoKSB0byBnZXQgdGhlIG5leHQg
cmVuZGVyIHF1YW50dW0gb2YgYXVkaW8gaW50byBkZXN0aW5hdGlvbkJ1cy4KICAgICAvLyBJdCB3
aWxsIG9wdGlvbmFsbHkgZ2l2ZSB1cyBsb2NhbC9saXZlIGF1ZGlvIGlucHV0IGluIHNvdXJjZUJ1
cyAoaWYgaXQncyBub3QgMCkuCi0gICAgdmlydHVhbCB2b2lkIHJlbmRlcihBdWRpb0J1cyogc291
cmNlQnVzLCBBdWRpb0J1cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBudW1iZXJPZkZyYW1lcykg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlbmRlcihBdWRpb0J1cyogc291cmNlQnVzLCBB
dWRpb0J1cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBudW1iZXJPZkZyYW1lcykgb3ZlcnJpZGU7
CiAKICAgICBzaXplX3QgY3VycmVudFNhbXBsZUZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9jdXJy
ZW50U2FtcGxlRnJhbWU7IH0KICAgICBkb3VibGUgY3VycmVudFRpbWUoKSBjb25zdCB7IHJldHVy
biBjdXJyZW50U2FtcGxlRnJhbWUoKSAvIHN0YXRpY19jYXN0PGRvdWJsZT4oc2FtcGxlUmF0ZSgp
KTsgfQpAQCAtNzgsNyArNzgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIH0KIAogICAgICAgICAv
LyBBdWRpb1NvdXJjZVByb3ZpZGVyLgotICAgICAgICB2aXJ0dWFsIHZvaWQgcHJvdmlkZUlucHV0
KEF1ZGlvQnVzKiBkZXN0aW5hdGlvbkJ1cywgc2l6ZV90IG51bWJlck9mRnJhbWVzKSBPVkVSUklE
RQorICAgICAgICB2aXJ0dWFsIHZvaWQgcHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBkZXN0aW5hdGlv
bkJ1cywgc2l6ZV90IG51bWJlck9mRnJhbWVzKSBvdmVycmlkZQogICAgICAgICB7CiAgICAgICAg
ICAgICBib29sIGlzR29vZCA9IGRlc3RpbmF0aW9uQnVzICYmIGRlc3RpbmF0aW9uQnVzLT5sZW5n
dGgoKSA9PSBudW1iZXJPZkZyYW1lcyAmJiBtX3NvdXJjZUJ1cy0+bGVuZ3RoKCkgPT0gbnVtYmVy
T2ZGcmFtZXM7CiAgICAgICAgICAgICBBU1NFUlQoaXNHb29kKTsKQEAgLTkwLDggKzkwLDggQEAg
cHJvdGVjdGVkOgogICAgICAgICBSZWZQdHI8QXVkaW9CdXM+IG1fc291cmNlQnVzOwogICAgIH07
CiAKLSAgICB2aXJ0dWFsIGRvdWJsZSB0YWlsVGltZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IDA7IH0KLSAgICB2aXJ0dWFsIGRvdWJsZSBsYXRlbmN5VGltZSgpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIGRvdWJsZSB0YWlsVGltZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIGRvdWJsZSBsYXRlbmN5VGltZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIDA7IH0KIAogICAgIC8vIENvdW50cyB0aGUgbnVtYmVyIG9mIHNhbXBs
ZS1mcmFtZXMgcHJvY2Vzc2VkIGJ5IHRoZSBkZXN0aW5hdGlvbi4KICAgICBzaXplX3QgbV9jdXJy
ZW50U2FtcGxlRnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05v
ZGUuaAppbmRleCBiYTY2MzQyLi4wYzg4MDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Ob2RlLmgKQEAgLTE4MCw4ICsxODAsOCBAQCBwdWJsaWM6CiAgICAgQXVk
aW9CdXM6OkNoYW5uZWxJbnRlcnByZXRhdGlvbiBpbnRlcm5hbENoYW5uZWxJbnRlcnByZXRhdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fY2hhbm5lbEludGVycHJldGF0aW9uOyB9CiAKICAgICAvLyBF
dmVudFRhcmdldAotICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJ
bnRlcmZhY2UoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAg
ICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgRklOQUw7CiAKIHByb3RlY3RlZDoKICAg
ICAvLyBJbnB1dHMgYW5kIG91dHB1dHMgbXVzdCBiZSBjcmVhdGVkIGJlZm9yZSB0aGUgQXVkaW9O
b2RlIGlzIGluaXRpYWxpemVkLgpAQCAtMjE5LDggKzIxOSw4IEBAIHByaXZhdGU6CiAgICAgc3Rh
dGljIGludCBzX25vZGVDb3VudFtOb2RlVHlwZUVuZF07CiAjZW5kaWYKIAotICAgIHZpcnR1YWwg
dm9pZCByZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsgcmVmKCk7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgZGVyZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsgZGVyZWYoKTsgfQorICAgIHZpcnR1YWwg
dm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsgfQogCiBwcm90ZWN0ZWQ6
CiAgICAgdW5zaWduZWQgbV9jaGFubmVsQ291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZUlucHV0LmgKaW5kZXggYjIzNDEwMy4uNWFmY2RlZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGVJbnB1dC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlSW5wdXQuaApA
QCAtNDUsOCArNDUsOCBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgQXVkaW9Ob2RlSW5wdXQoQXVk
aW9Ob2RlKik7CiAKICAgICAvLyBBdWRpb1N1bW1pbmdKdW5jdGlvbgotICAgIHZpcnR1YWwgYm9v
bCBjYW5VcGRhdGVTdGF0ZSgpIE9WRVJSSURFIHsgcmV0dXJuICFub2RlKCktPmlzTWFya2VkRm9y
RGVsZXRpb24oKTsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRhdGUoKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIGJvb2wgY2FuVXBkYXRlU3RhdGUoKSBvdmVycmlkZSB7IHJldHVybiAhbm9kZSgp
LT5pc01hcmtlZEZvckRlbGV0aW9uKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlKCkg
b3ZlcnJpZGU7CiAKICAgICAvLyBDYW4gYmUgY2FsbGVkIGZyb20gYW55IHRocmVhZC4KICAgICBB
dWRpb05vZGUqIG5vZGUoKSBjb25zdCB7IHJldHVybiBtX25vZGU7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmgKaW5kZXggMWU0MDdiYS4uZjhjNzkzNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmgKQEAgLTUz
LDggKzUzLDggQEAgcHVibGljOgogICAgIH0KIAogICAgIC8vIEF1ZGlvU3VtbWluZ0p1bmN0aW9u
Ci0gICAgdmlydHVhbCBib29sIGNhblVwZGF0ZVN0YXRlKCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1
ZTsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRhdGUoKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgY2FuVXBkYXRlU3RhdGUoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAg
dmlydHVhbCB2b2lkIGRpZFVwZGF0ZSgpIG92ZXJyaWRlIHsgfQogCiAgICAgLy8gSW50cmluc2lj
IHZhbHVlLgogICAgIGZsb2F0IHZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUHJvY2Vzc2luZ0V2ZW50LmgKaW5kZXggMTJkYTk1MS4uNGIx
ZjllYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1By
b2Nlc3NpbmdFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Qcm9jZXNzaW5nRXZlbnQuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgQXVkaW9C
dWZmZXIqIGlucHV0QnVmZmVyKCkgeyByZXR1cm4gbV9pbnB1dEJ1ZmZlci5nZXQoKTsgfQogICAg
IEF1ZGlvQnVmZmVyKiBvdXRwdXRCdWZmZXIoKSB7IHJldHVybiBtX291dHB1dEJ1ZmZlci5nZXQo
KTsgfQogCi0gICAgdmlydHVhbCBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBj
b25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBBdWRpb1Byb2Nlc3NpbmdFdmVudCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWREU1BLZXJu
ZWwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRFNQS2VybmVsLmgK
aW5kZXggOTcxYzc0ZS4uZjNlYjBmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9CaXF1YWREU1BLZXJuZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0JpcXVhZERTUEtlcm5lbC5oCkBAIC00Myw4ICs0Myw4IEBAIHB1YmxpYzoKICAg
ICB9CiAgICAgCiAgICAgLy8gQXVkaW9EU1BLZXJuZWwKLSAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vz
cyhjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdCwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vz
cykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlc2V0KCkgT1ZFUlJJREUgeyBtX2JpcXVh
ZC5yZXNldCgpOyB9CisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3MoY29uc3QgZmxvYXQqIHNvdXJj
ZSwgZmxvYXQqIGRlc3QsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCByZXNldCgpIG92ZXJyaWRlIHsgbV9iaXF1YWQucmVzZXQoKTsgfQogCiAgICAg
Ly8gR2V0IHRoZSBtYWduaXR1ZGUgYW5kIHBoYXNlIHJlc3BvbnNlIG9mIHRoZSBmaWx0ZXIgYXQg
dGhlIGdpdmVuCiAgICAgLy8gc2V0IG9mIGZyZXF1ZW5jaWVzIChpbiBIeikuIFRoZSBwaGFzZSBy
ZXNwb25zZSBpcyBpbiByYWRpYW5zLgpAQCAtNTMsOCArNTMsOCBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCogbWFnUmVzcG9uc2UsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmbG9hdCogcGhhc2VSZXNwb25zZSk7CiAKLSAgICB2aXJ0dWFsIGRv
dWJsZSB0YWlsVGltZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgZG91YmxlIGxhdGVu
Y3lUaW1lKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBkb3VibGUgdGFpbFRpbWUoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGRvdWJsZSBsYXRlbmN5VGltZSgpIGNvbnN0IG92
ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgQmlxdWFkIG1fYmlxdWFkOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRQcm9jZXNzb3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkUHJvY2Vzc29yLmgKaW5kZXggOTBkMWM3
OS4uMGFhNjI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9C
aXF1YWRQcm9jZXNzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jp
cXVhZFByb2Nlc3Nvci5oCkBAIC01Myw5ICs1Myw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
fkJpcXVhZFByb2Nlc3NvcigpOwogICAgIAotICAgIHZpcnR1YWwgUGFzc093blB0cjxBdWRpb0RT
UEtlcm5lbD4gY3JlYXRlS2VybmVsKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzT3duUHRy
PEF1ZGlvRFNQS2VybmVsPiBjcmVhdGVLZXJuZWwoKSBvdmVycmlkZTsKICAgICAgICAgCi0gICAg
dmlydHVhbCB2b2lkIHByb2Nlc3MoY29uc3QgQXVkaW9CdXMqIHNvdXJjZSwgQXVkaW9CdXMqIGRl
c3RpbmF0aW9uLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgcHJvY2Vzcyhjb25zdCBBdWRpb0J1cyogc291cmNlLCBBdWRpb0J1cyogZGVzdGluYXRp
b24sIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJyaWRlOwogCiAgICAgLy8gR2V0IHRoZSBt
YWduaXR1ZGUgYW5kIHBoYXNlIHJlc3BvbnNlIG9mIHRoZSBmaWx0ZXIgYXQgdGhlIGdpdmVuCiAg
ICAgLy8gc2V0IG9mIGZyZXF1ZW5jaWVzIChpbiBIeikuIFRoZSBwaGFzZSByZXNwb25zZSBpcyBp
biByYWRpYW5zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9D
aGFubmVsTWVyZ2VyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9DaGFu
bmVsTWVyZ2VyTm9kZS5oCmluZGV4IDAwOWNhNGMuLjBjYzc4M2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ2hhbm5lbE1lcmdlck5vZGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxNZXJnZXJOb2RlLmgKQEAgLTQxLDE3
ICs0MSwxNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2hhbm5lbE1lcmdlck5v
ZGU+IGNyZWF0ZShBdWRpb0NvbnRleHQqLCBmbG9hdCBzYW1wbGVSYXRlLCB1bnNpZ25lZCBudW1i
ZXJPZklucHV0cyk7CiAKICAgICAvLyBBdWRpb05vZGUKLSAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vz
cyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVz
ZXQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Q
cm9jZXNzKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzZXQoKSBvdmVycmlkZTsKIAog
ICAgIC8vIENhbGxlZCBpbiB0aGUgYXVkaW8gdGhyZWFkIChwcmUtcmVuZGVyaW5nIHRhc2spIHdo
ZW4gdGhlIG51bWJlciBvZiBjaGFubmVscyBmb3IgYW4gaW5wdXQgbWF5IGhhdmUgY2hhbmdlZC4K
LSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tOdW1iZXJPZkNoYW5uZWxzRm9ySW5wdXQoQXVkaW9Ob2Rl
SW5wdXQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY2hlY2tOdW1iZXJPZkNoYW5uZWxz
Rm9ySW5wdXQoQXVkaW9Ob2RlSW5wdXQqKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICB1bnNp
Z25lZCBtX2Rlc2lyZWROdW1iZXJPZk91dHB1dENoYW5uZWxzOwogCi0gICAgdmlydHVhbCBkb3Vi
bGUgdGFpbFRpbWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCBk
b3VibGUgbGF0ZW5jeVRpbWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAwOyB9CisgICAgdmly
dHVhbCBkb3VibGUgdGFpbFRpbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CisgICAg
dmlydHVhbCBkb3VibGUgbGF0ZW5jeVRpbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9
CiAKICAgICBDaGFubmVsTWVyZ2VyTm9kZShBdWRpb0NvbnRleHQqLCBmbG9hdCBzYW1wbGVSYXRl
LCB1bnNpZ25lZCBudW1iZXJPZklucHV0cyk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9DaGFubmVsU3BsaXR0ZXJOb2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5uZWxTcGxpdHRlck5vZGUuaAppbmRleCA4OWY3NzE0Li45
ZDA3Mjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NoYW5u
ZWxTcGxpdHRlck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0No
YW5uZWxTcGxpdHRlck5vZGUuaApAQCAtMzcsMTIgKzM3LDEyIEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxDaGFubmVsU3BsaXR0ZXJOb2RlPiBjcmVhdGUoQXVkaW9Db250ZXh0Kiwg
ZmxvYXQgc2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRzKTsKIAogICAgIC8vIEF1
ZGlvTm9kZQotICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3Mp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXNldCgpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCByZXNldCgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgZG91
YmxlIHRhaWxUaW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwg
ZG91YmxlIGxhdGVuY3lUaW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQorICAgIHZp
cnR1YWwgZG91YmxlIHRhaWxUaW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQorICAg
IHZpcnR1YWwgZG91YmxlIGxhdGVuY3lUaW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsg
fQogCiAgICAgQ2hhbm5lbFNwbGl0dGVyTm9kZShBdWRpb0NvbnRleHQqLCBmbG9hdCBzYW1wbGVS
YXRlLCB1bnNpZ25lZCBudW1iZXJPZk91dHB1dHMpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmgKaW5kZXggNzA4NGM5MS4uMDRjNzU3MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2Rl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmgK
QEAgLTQ1LDEwICs0NSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+Q29udm9sdmVyTm9kZSgp
OwogICAgIAogICAgIC8vIEF1ZGlvTm9kZQotICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzKHNpemVf
dCBmcmFtZXNUb1Byb2Nlc3MpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXNldCgpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHVuaW5pdGlhbGl6ZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwcm9j
ZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBy
ZXNldCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHVuaW5pdGlhbGl6ZSgpIG92ZXJyaWRlOwogCiAgICAgLy8gSW1w
dWxzZSByZXNwb25zZXMKICAgICB2b2lkIHNldEJ1ZmZlcihBdWRpb0J1ZmZlciopOwpAQCAtNjAs
OCArNjAsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIENvbnZvbHZlck5vZGUoQXVkaW9Db250
ZXh0KiwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKLSAgICB2aXJ0dWFsIGRvdWJsZSB0YWlsVGltZSgp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgZG91YmxlIGxhdGVuY3lUaW1lKCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBkb3VibGUgdGFpbFRpbWUoKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGRvdWJsZSBsYXRlbmN5VGltZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
T3duUHRyPFJldmVyYj4gbV9yZXZlcmI7CiAgICAgUmVmUHRyPEF1ZGlvQnVmZmVyPiBtX2J1ZmZl
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1
ZGlvRGVzdGluYXRpb25Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Rl
ZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCmluZGV4IGVmZTU4NjcuLjg3MjkxM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGlu
YXRpb25Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0
QXVkaW9EZXN0aW5hdGlvbk5vZGUuaApAQCAtNDMsMTQgKzQzLDE0IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUoKTsKICAgICAKICAgICAvLyBBdWRp
b05vZGUgICAKLSAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZSgpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCB1bmluaXRpYWxpemUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
Q2hhbm5lbENvdW50KHVuc2lnbmVkIGxvbmcsIEV4Y2VwdGlvbkNvZGUmKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB1
bmluaXRpYWxpemUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2hhbm5lbENvdW50
KHVuc2lnbmVkIGxvbmcsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKIAogICAgIC8vIEF1ZGlv
RGVzdGluYXRpb25Ob2RlCi0gICAgdmlydHVhbCB2b2lkIGVuYWJsZUlucHV0KGNvbnN0IFN0cmlu
ZyYgaW5wdXREZXZpY2VJZCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHN0YXJ0UmVuZGVy
aW5nKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIG1heENoYW5uZWxDb3Vu
dCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBlbmFibGVJbnB1dChjb25zdCBT
dHJpbmcmIGlucHV0RGV2aWNlSWQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdGFydFJl
bmRlcmluZygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBtYXhDaGFubmVs
Q291bnQoKSBjb25zdCBvdmVycmlkZTsKICAgICAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlKEF1ZGlvQ29udGV4dCopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWxheURTUEtlcm5lbC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWxheURTUEtlcm5lbC5oCmluZGV4IGNkNDc5MjMuLmYy
MzFkNDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5
RFNQS2VybmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWxheURT
UEtlcm5lbC5oCkBAIC0zOCwxNSArMzgsMTUgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IERlbGF5
RFNQS2VybmVsKERlbGF5UHJvY2Vzc29yKik7CiAgICAgRGVsYXlEU1BLZXJuZWwoZG91YmxlIG1h
eERlbGF5VGltZSwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHBy
b2Nlc3MoY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCBzaXplX3QgZnJh
bWVzVG9Qcm9jZXNzKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzZXQoKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzcyhjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCog
ZGVzdGluYXRpb24sIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCByZXNldCgpIG92ZXJyaWRlOwogICAgIAogICAgIGRvdWJsZSBtYXhEZWxheVRpbWUo
KSBjb25zdCB7IHJldHVybiBtX21heERlbGF5VGltZTsgfQogICAgIAogICAgIHZvaWQgc2V0RGVs
YXlGcmFtZXMoZG91YmxlIG51bWJlck9mRnJhbWVzKSB7IG1fZGVzaXJlZERlbGF5RnJhbWVzID0g
bnVtYmVyT2ZGcmFtZXM7IH0KIAotICAgIHZpcnR1YWwgZG91YmxlIHRhaWxUaW1lKCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBkb3VibGUgbGF0ZW5jeVRpbWUoKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGRvdWJsZSB0YWlsVGltZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgZG91YmxlIGxhdGVuY3lUaW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAg
ICAgQXVkaW9GbG9hdEFycmF5IG1fYnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9EZWxheVByb2Nlc3Nvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9EZWxheVByb2Nlc3Nvci5oCmluZGV4IGFlZmU0ZDguLjNlMzJjZDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVsYXlQcm9jZXNzb3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vzc29yLmgKQEAg
LTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAgIERlbGF5UHJvY2Vzc29yKEF1ZGlvQ29udGV4dCos
IGZsb2F0IHNhbXBsZVJhdGUsIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIGRvdWJsZSBtYXhE
ZWxheVRpbWUpOwogICAgIHZpcnR1YWwgfkRlbGF5UHJvY2Vzc29yKCk7CiAgICAgCi0gICAgdmly
dHVhbCBQYXNzT3duUHRyPEF1ZGlvRFNQS2VybmVsPiBjcmVhdGVLZXJuZWwoKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8QXVkaW9EU1BLZXJuZWw+IGNyZWF0ZUtlcm5lbCgpIG92
ZXJyaWRlOwogICAgICAgICAKICAgICBBdWRpb1BhcmFtKiBkZWxheVRpbWUoKSBjb25zdCB7IHJl
dHVybiBtX2RlbGF5VGltZS5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vRHluYW1pY3NDb21wcmVzc29yTm9kZS5oCmluZGV4IDFiOGYyM2Eu
LjI3YWViMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRHlu
YW1pY3NDb21wcmVzc29yTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vRHluYW1pY3NDb21wcmVzc29yTm9kZS5oCkBAIC00MywxMCArNDMsMTAgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgfkR5bmFtaWNzQ29tcHJlc3Nvck5vZGUoKTsKIAogICAgIC8vIEF1ZGlvTm9k
ZQotICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCByZXNldCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBpbml0aWFsaXplKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVuaW5pdGlhbGl6ZSgp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nl
c3MpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZXNldCgpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBpbml0aWFsaXplKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVuaW5p
dGlhbGl6ZSgpIG92ZXJyaWRlOwogCiAgICAgLy8gU3RhdGljIGNvbXByZXNzaW9uIGN1cnZlIHBh
cmFtZXRlcnMuCiAgICAgQXVkaW9QYXJhbSogdGhyZXNob2xkKCkgeyByZXR1cm4gbV90aHJlc2hv
bGQuZ2V0KCk7IH0KQEAgLTU5LDggKzU5LDggQEAgcHVibGljOgogICAgIEF1ZGlvUGFyYW0qIHJl
ZHVjdGlvbigpIHsgcmV0dXJuIG1fcmVkdWN0aW9uLmdldCgpOyB9CiAKIHByaXZhdGU6Ci0gICAg
dmlydHVhbCBkb3VibGUgdGFpbFRpbWUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGRv
dWJsZSBsYXRlbmN5VGltZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgZG91YmxlIHRh
aWxUaW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBkb3VibGUgbGF0ZW5jeVRpbWUo
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUoQXVkaW9Db250
ZXh0KiwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vR2Fpbk5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vR2Fpbk5vZGUuaAppbmRleCA3NGIzZDgxLi4zYThjNWRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0dhaW5Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9HYWluTm9kZS5oCkBAIC00NSwxOCArNDUsMTggQEAgcHVibGljOgog
ICAgIH0KIAogICAgIC8vIEF1ZGlvTm9kZQotICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzKHNpemVf
dCBmcmFtZXNUb1Byb2Nlc3MpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXNldCgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3Mp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZXNldCgpIG92ZXJyaWRlOwogCiAgICAgLy8g
Q2FsbGVkIGluIHRoZSBtYWluIHRocmVhZCB3aGVuIHRoZSBudW1iZXIgb2YgY2hhbm5lbHMgZm9y
IHRoZSBpbnB1dCBtYXkgaGF2ZSBjaGFuZ2VkLgotICAgIHZpcnR1YWwgdm9pZCBjaGVja051bWJl
ck9mQ2hhbm5lbHNGb3JJbnB1dChBdWRpb05vZGVJbnB1dCopIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBjaGVja051bWJlck9mQ2hhbm5lbHNGb3JJbnB1dChBdWRpb05vZGVJbnB1dCopIG92
ZXJyaWRlOwogCiAgICAgLy8gSmF2YVNjcmlwdCBpbnRlcmZhY2UKICAgICBBdWRpb1BhcmFtKiBn
YWluKCkgeyByZXR1cm4gbV9nYWluLmdldCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBk
b3VibGUgdGFpbFRpbWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAwOyB9Ci0gICAgdmlydHVh
bCBkb3VibGUgbGF0ZW5jeVRpbWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAwOyB9CisgICAg
dmlydHVhbCBkb3VibGUgdGFpbFRpbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9Cisg
ICAgdmlydHVhbCBkb3VibGUgbGF0ZW5jeVRpbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAw
OyB9CiAKICAgICBHYWluTm9kZShBdWRpb0NvbnRleHQqLCBmbG9hdCBzYW1wbGVSYXRlKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRB
dWRpb1NvdXJjZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFF
bGVtZW50QXVkaW9Tb3VyY2VOb2RlLmgKaW5kZXggOTViNjViNi4uMjBmOGFmMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJj
ZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVu
dEF1ZGlvU291cmNlTm9kZS5oCkBAIC00OCwxMSArNDgsMTEgQEAgcHVibGljOgogICAgIEhUTUxN
ZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCgpIHsgcmV0dXJuIG1fbWVkaWFFbGVtZW50LmdldCgp
OyB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogCiAgICAgLy8gQXVk
aW9Ob2RlCi0gICAgdmlydHVhbCB2b2lkIHByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcykg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlc2V0KCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcykgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHJlc2V0KCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgLy8gQXVkaW9Tb3VyY2VQcm92
aWRlckNsaWVudAotICAgIHZpcnR1YWwgdm9pZCBzZXRGb3JtYXQoc2l6ZV90IG51bWJlck9mQ2hh
bm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRG
b3JtYXQoc2l6ZV90IG51bWJlck9mQ2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpIG92ZXJyaWRl
OwogICAgIAogICAgIHZvaWQgbG9jaygpOwogICAgIHZvaWQgdW5sb2NrKCk7CkBAIC02MCwxMSAr
NjAsMTEgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5v
ZGUoQXVkaW9Db250ZXh0KiwgSFRNTE1lZGlhRWxlbWVudCopOwogCi0gICAgdmlydHVhbCBkb3Vi
bGUgdGFpbFRpbWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCBk
b3VibGUgbGF0ZW5jeVRpbWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAwOyB9CisgICAgdmly
dHVhbCBkb3VibGUgdGFpbFRpbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CisgICAg
dmlydHVhbCBkb3VibGUgbGF0ZW5jeVRpbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9
CiAKICAgICAvLyBBcyBhbiBhdWRpbyBzb3VyY2UsIHdlIHdpbGwgbmV2ZXIgcHJvcGFnYXRlIHNp
bGVuY2UuCi0gICAgdmlydHVhbCBib29sIHByb3BhZ2F0ZXNTaWxlbmNlKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcHJvcGFnYXRlc1NpbGVuY2Uo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgUmVmUHRyPEhUTUxNZWRp
YUVsZW1lbnQ+IG1fbWVkaWFFbGVtZW50OwogICAgIE11dGV4IG1fcHJvY2Vzc0xvY2s7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9E
ZXN0aW5hdGlvbk5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFT
dHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCmluZGV4IGE4ZjU4OTEuLmY3ZmM1NGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb0Rl
c3RpbmF0aW9uTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCkBAIC01NSwxMSArNTUsMTEgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICBNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlKEF1ZGlvQ29u
dGV4dCosIHNpemVfdCBudW1iZXJPZkNoYW5uZWxzKTsKIAotICAgIHZpcnR1YWwgZG91YmxlIHRh
aWxUaW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgZG91Ymxl
IGxhdGVuY3lUaW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwg
ZG91YmxlIHRhaWxUaW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1
YWwgZG91YmxlIGxhdGVuY3lUaW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQogCiAg
ICAgLy8gQXMgYW4gYXVkaW8gc291cmNlLCB3ZSB3aWxsIG5ldmVyIHByb3BhZ2F0ZSBzaWxlbmNl
LgotICAgIHZpcnR1YWwgYm9vbCBwcm9wYWdhdGVzU2lsZW5jZSgpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIHByb3BhZ2F0ZXNTaWxlbmNlKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIFJlZlB0cjxNZWRpYVN0cmVhbT4g
bV9zdHJlYW07CiAgICAgUmVmUHRyPE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U+IG1fc291cmNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1
ZGlvU291cmNlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0
cmVhbUF1ZGlvU291cmNlTm9kZS5oCmluZGV4IDFiMjRmNjcuLmJiMjQ2YWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5v
ZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVk
aW9Tb3VyY2VOb2RlLmgKQEAgLTU5LDExICs1OSwxMSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlKEF1ZGlvQ29udGV4dCosIE1lZGlhU3RyZWFtKiwg
TWVkaWFTdHJlYW1UcmFjayosIEF1ZGlvU291cmNlUHJvdmlkZXIqKTsKIAotICAgIHZpcnR1YWwg
ZG91YmxlIHRhaWxUaW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1
YWwgZG91YmxlIGxhdGVuY3lUaW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQorICAg
IHZpcnR1YWwgZG91YmxlIHRhaWxUaW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQor
ICAgIHZpcnR1YWwgZG91YmxlIGxhdGVuY3lUaW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
MDsgfQogCiAgICAgLy8gQXMgYW4gYXVkaW8gc291cmNlLCB3ZSB3aWxsIG5ldmVyIHByb3BhZ2F0
ZSBzaWxlbmNlLgotICAgIHZpcnR1YWwgYm9vbCBwcm9wYWdhdGVzU2lsZW5jZSgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIHByb3BhZ2F0ZXNTaWxl
bmNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIFJlZlB0cjxNZWRp
YVN0cmVhbT4gbV9tZWRpYVN0cmVhbTsKICAgICBSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4gbV9h
dWRpb1RyYWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9P
ZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmgKaW5kZXggYmY2MWNjZC4uNzJhN2I3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVk
aW9Db21wbGV0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5oCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoK
IAogICAgIEF1ZGlvQnVmZmVyKiByZW5kZXJlZEJ1ZmZlcigpIHsgcmV0dXJuIG1fcmVuZGVyZWRC
dWZmZXIuZ2V0KCk7IH0KIAotICAgIHZpcnR1YWwgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZh
Y2UoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50
ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgT2ZmbGluZUF1ZGlvQ29t
cGxldGlvbkV2ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuaAppbmRleCBmOTRjOTRiLi5l
YjBjYTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxp
bmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKQEAgLTQ2LDE0ICs0NiwxNCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB+T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlKCk7CiAgICAg
CiAgICAgLy8gQXVkaW9Ob2RlICAgCi0gICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemUoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdW5pbml0aWFsaXplKCkgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGluaXRpYWxpemUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pbml0
aWFsaXplKCkgb3ZlcnJpZGU7CiAKICAgICAvLyBBdWRpb0Rlc3RpbmF0aW9uTm9kZQotICAgIHZp
cnR1YWwgdm9pZCBlbmFibGVJbnB1dChjb25zdCBTdHJpbmcmKSBPVkVSUklERSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgc3RhcnRSZW5kZXJpbmcoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZW5hYmxlSW5wdXQoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lk
IHN0YXJ0UmVuZGVyaW5nKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGZsb2F0IHNhbXBsZVJh
dGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3JlbmRlclRhcmdldC0+c2FtcGxlUmF0ZSgp
OyB9CisgICAgdmlydHVhbCBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9yZW5kZXJUYXJnZXQtPnNhbXBsZVJhdGUoKTsgfQogCiBwcml2YXRlOgogICAgIE9mZmxp
bmVBdWRpb0Rlc3RpbmF0aW9uTm9kZShBdWRpb0NvbnRleHQqLCBBdWRpb0J1ZmZlciogcmVuZGVy
VGFyZ2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3Nj
aWxsYXRvck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRv
ck5vZGUuaAppbmRleCAxYmJmNDdjLi40OWNjYTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5oCkBAIC01Niw4ICs1Niw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5Pc2NpbGxhdG9yTm9kZSgpOwogICAgIAogICAgIC8vIEF1ZGlvTm9k
ZQotICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCByZXNldCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCByZXNldCgpIG92ZXJyaWRlOwogCiAgICAgU3RyaW5nIHR5cGUoKSBjb25zdDsKIApAQCAt
NzIsMTMgKzcyLDEzIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgT3NjaWxsYXRvck5vZGUoQXVk
aW9Db250ZXh0KiwgZmxvYXQgc2FtcGxlUmF0ZSk7CiAKLSAgICB2aXJ0dWFsIGRvdWJsZSB0YWls
VGltZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIGRvdWJsZSBs
YXRlbmN5VGltZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIGRv
dWJsZSB0YWlsVGltZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFs
IGRvdWJsZSBsYXRlbmN5VGltZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KIAogICAg
IC8vIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBhcmUgc2FtcGxlLWFjY3VyYXRlIHRpbWVsaW5lIHBh
cmFtZXRlciBjaGFuZ2VzLgogICAgIGJvb2wgY2FsY3VsYXRlU2FtcGxlQWNjdXJhdGVQaGFzZUlu
Y3JlbWVudHMoc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcyk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcHJv
cGFnYXRlc1NpbGVuY2UoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgcHJvcGFn
YXRlc1NpbGVuY2UoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIE9uZSBvZiB0aGUgd2F2ZWZv
cm0gdHlwZXMgZGVmaW5lZCBpbiB0aGUgZW51bS4KICAgICB1bnNpZ25lZCBzaG9ydCBtX3R5cGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5oCmluZGV4IDE2
ZTI1ZjEuLjhmZjJjNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vUGFubmVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFu
bmVyTm9kZS5oCkBAIC02OSwxMSArNjksMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflBhbm5l
ck5vZGUoKTsKIAogICAgIC8vIEF1ZGlvTm9kZQotICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzKHNp
emVfdCBmcmFtZXNUb1Byb2Nlc3MpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBwdWxsSW5w
dXRzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBy
ZXNldCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplKCkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIHVuaW5pdGlhbGl6ZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBwdWxsSW5wdXRzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCByZXNldCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbml0aWFs
aXplKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVuaW5pdGlhbGl6ZSgpIG92ZXJyaWRl
OwogCiAgICAgLy8gTGlzdGVuZXIKICAgICBBdWRpb0xpc3RlbmVyKiBsaXN0ZW5lcigpOwpAQCAt
MTI2LDggKzEyNiw4IEBAIHB1YmxpYzoKICAgICBBdWRpb1BhcmFtKiBkaXN0YW5jZUdhaW4oKSB7
IHJldHVybiBtX2Rpc3RhbmNlR2Fpbi5nZXQoKTsgfQogICAgIEF1ZGlvUGFyYW0qIGNvbmVHYWlu
KCkgeyByZXR1cm4gbV9jb25lR2Fpbi5nZXQoKTsgfQogCi0gICAgdmlydHVhbCBkb3VibGUgdGFp
bFRpbWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3Bhbm5lciA/IG1fcGFubmVyLT50YWls
VGltZSgpIDogMDsgfQotICAgIHZpcnR1YWwgZG91YmxlIGxhdGVuY3lUaW1lKCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gbV9wYW5uZXIgPyBtX3Bhbm5lci0+bGF0ZW5jeVRpbWUoKSA6IDA7IH0K
KyAgICB2aXJ0dWFsIGRvdWJsZSB0YWlsVGltZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
cGFubmVyID8gbV9wYW5uZXItPnRhaWxUaW1lKCkgOiAwOyB9CisgICAgdmlydHVhbCBkb3VibGUg
bGF0ZW5jeVRpbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Bhbm5lciA/IG1fcGFubmVy
LT5sYXRlbmN5VGltZSgpIDogMDsgfQogCiBwcml2YXRlOgogICAgIFBhbm5lck5vZGUoQXVkaW9D
b250ZXh0KiwgZmxvYXQgc2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5oCmluZGV4IDIzZDBhMWIuLjE1YmIy
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJv
Y2Vzc29yTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0
UHJvY2Vzc29yTm9kZS5oCkBAIC01OCwxMCArNTgsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
flNjcmlwdFByb2Nlc3Nvck5vZGUoKTsKIAogICAgIC8vIEF1ZGlvTm9kZQotICAgIHZpcnR1YWwg
dm9pZCBwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCByZXNldCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplKCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVuaW5pdGlhbGl6ZSgpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCByZXNldCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbml0
aWFsaXplKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVuaW5pdGlhbGl6ZSgpIG92ZXJy
aWRlOwogCiAgICAgc2l6ZV90IGJ1ZmZlclNpemUoKSBjb25zdCB7IHJldHVybiBtX2J1ZmZlclNp
emU7IH0KIApAQCAtNjksOCArNjksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPbmF1ZGlvcHJv
Y2VzcyhQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+KTsKICAgICAKIHByaXZhdGU6Ci0gICAgdmly
dHVhbCBkb3VibGUgdGFpbFRpbWUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGRvdWJs
ZSBsYXRlbmN5VGltZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgZG91YmxlIHRhaWxU
aW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBkb3VibGUgbGF0ZW5jeVRpbWUoKSBj
b25zdCBvdmVycmlkZTsKIAogICAgIFNjcmlwdFByb2Nlc3Nvck5vZGUoQXVkaW9Db250ZXh0Kiwg
ZmxvYXQgc2FtcGxlUmF0ZSwgc2l6ZV90IGJ1ZmZlclNpemUsIHVuc2lnbmVkIG51bWJlck9mSW5w
dXRDaGFubmVscywgdW5zaWduZWQgbnVtYmVyT2ZPdXRwdXRDaGFubmVscyk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlckRTUEtlcm5lbC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyRFNQS2VybmVsLmgK
aW5kZXggYzE4OGM1Ny4uYTdkZmVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9XYXZlU2hhcGVyRFNQS2VybmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyRFNQS2VybmVsLmgKQEAgLTQ1LDggKzQ1LDggQEAgcHVi
bGljOgogICAgIC8vIEF1ZGlvRFNQS2VybmVsCiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3MoY29u
c3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3QsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwog
ICAgIHZpcnR1YWwgdm9pZCByZXNldCgpOwotICAgIHZpcnR1YWwgZG91YmxlIHRhaWxUaW1lKCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgZG91YmxlIGxhdGVuY3lU
aW1lKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBkb3VibGUgdGFpbFRpbWUoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBkb3VibGUgbGF0ZW5jeVRpbWUo
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIE92ZXJzYW1wbGluZyByZXF1aXJlcyBtb3JlIHJl
c291cmNlcywgc28gbGV0J3Mgb25seSBhbGxvY2F0ZSB0aGVtIGlmIG5lZWRlZC4KICAgICB2b2lk
IGxhenlJbml0aWFsaXplT3ZlcnNhbXBsaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5oCmluZGV4IGNjZTYzYTUuLjVh
OWE3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNo
YXBlclByb2Nlc3Nvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2
ZVNoYXBlclByb2Nlc3Nvci5oCkBAIC00OCw5ICs0OCw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgfldhdmVTaGFwZXJQcm9jZXNzb3IoKTsKIAotICAgIHZpcnR1YWwgUGFzc093blB0cjxBdWRp
b0RTUEtlcm5lbD4gY3JlYXRlS2VybmVsKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzT3du
UHRyPEF1ZGlvRFNQS2VybmVsPiBjcmVhdGVLZXJuZWwoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1
YWwgdm9pZCBwcm9jZXNzKGNvbnN0IEF1ZGlvQnVzKiBzb3VyY2UsIEF1ZGlvQnVzKiBkZXN0aW5h
dGlvbiwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHByb2Nlc3MoY29uc3QgQXVkaW9CdXMqIHNvdXJjZSwgQXVkaW9CdXMqIGRlc3RpbmF0aW9uLCBz
aXplX3QgZnJhbWVzVG9Qcm9jZXNzKSBvdmVycmlkZTsKIAogICAgIHZvaWQgc2V0Q3VydmUoRmxv
YXQzMkFycmF5Kik7CiAgICAgRmxvYXQzMkFycmF5KiBjdXJ2ZSgpIHsgcmV0dXJuIG1fY3VydmUu
Z2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUYXNrLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlVGFzay5oCmluZGV4IGY2ZmNlZDUuLjFlZGFmODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUYXNrLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRhc2suaApAQCAtMTEwLDcgKzExMCw3IEBA
IHB1YmxpYzoKICAgICB9CiAgICAgCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRQZXJmb3JtV2hpbGVQYXVzZWQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVl
OyB9CisgICAgdmlydHVhbCBib29sIHNob3VsZFBlcmZvcm1XaGlsZVBhdXNlZCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICNlbmRpZgogCiBwcml2YXRlOgpAQCAtMTM1LDcgKzEz
NSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgdmlydHVhbCBi
b29sIHNob3VsZFBlcmZvcm1XaGlsZVBhdXNlZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGVyZm9ybVdoaWxlUGF1c2VkKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogI2VuZGlmCiAKIHByaXZhdGU6CkBAIC0xNTgsNyAr
MTU4LDcgQEAgcHVibGljOgogICAgIH0KIAogI2lmIFBMQVRGT1JNKElPUykKLSAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkUGVyZm9ybVdoaWxlUGF1c2VkKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBib29sIHNob3VsZFBlcmZvcm1XaGlsZVBhdXNlZCgpIGNvbnN0IG92ZXJyaWRlOwogI2Vu
ZGlmCiAKICAgICBTUUxUcmFuc2FjdGlvbkJhY2tlbmQqIHRyYW5zYWN0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV90cmFuc2FjdGlvbi5nZXQoKTsgfQpAQCAtMTgzLDcgKzE4Myw3IEBAIHB1YmxpYzoK
ICAgICB9CiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgdmlydHVhbCBib29sIHNob3VsZFBlcmZv
cm1XaGlsZVBhdXNlZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkUGVyZm9ybVdoaWxlUGF1c2VkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmgKaW5kZXggZTE4YTUzNi4uYzI0YmNj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFu
c2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJh
bnNhY3Rpb24uaApAQCAtNzEsMTQgKzcxLDE0IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjbGVhckNh
bGxiYWNrV3JhcHBlcnMoKTsKIAogICAgIC8vIEFQSXMgY2FsbGVkIGZyb20gdGhlIGJhY2tlbmQg
cHVibGlzaGVkIHZpYSBBYnN0cmFjdFNRTFRyYW5zYWN0aW9uOgotICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0VHJhbnNpdFRvU3RhdGUoU1FMVHJhbnNhY3Rpb25TdGF0ZSkgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIGhhc0NhbGxiYWNrKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIGhhc1N1Y2Nlc3NDYWxsYmFjaygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9v
bCBoYXNFcnJvckNhbGxiYWNrKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNl
dEJhY2tlbmQoQWJzdHJhY3RTUUxUcmFuc2FjdGlvbkJhY2tlbmQqKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdFRyYW5zaXRUb1N0YXRlKFNRTFRyYW5zYWN0aW9uU3RhdGUpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBoYXNDYWxsYmFjaygpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgYm9vbCBoYXNTdWNjZXNzQ2FsbGJhY2soKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGJvb2wgaGFzRXJyb3JDYWxsYmFjaygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBzZXRCYWNrZW5kKEFic3RyYWN0U1FMVHJhbnNhY3Rpb25CYWNrZW5kKikgb3Zl
cnJpZGU7CiAKICAgICAvLyBTdGF0ZSBNYWNoaW5lIGZ1bmN0aW9uczoKLSAgICB2aXJ0dWFsIFN0
YXRlRnVuY3Rpb24gc3RhdGVGdW5jdGlvbkZvcihTUUxUcmFuc2FjdGlvblN0YXRlKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIFN0YXRlRnVuY3Rpb24gc3RhdGVGdW5jdGlvbkZvcihTUUxUcmFuc2Fj
dGlvblN0YXRlKSBvdmVycmlkZTsKICAgICBib29sIGNvbXB1dGVOZXh0U3RhdGVBbmRDbGVhbnVw
SWZOZWVkZWQoKTsKIAogICAgIC8vIFN0YXRlIGZ1bmN0aW9uczoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5o
CmluZGV4IGZlYzM2NjEuLjE3YTRjNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuaApAQCAtODEsMTkg
KzgxLDE5IEBAIHByaXZhdGU6CiAgICAgICAgIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25XcmFw
cGVyPiwgYm9vbCByZWFkT25seSk7CiAKICAgICAvLyBBUElzIGNhbGxlZCBmcm9tIHRoZSBmcm9u
dGVuZCBwdWJsaXNoZWQgdmlhIEFic3RyYWN0U1FMVHJhbnNhY3Rpb25CYWNrZW5kOgotICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0VHJhbnNpdFRvU3RhdGUoU1FMVHJhbnNhY3Rpb25TdGF0ZSkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFNRTEVycm9yPiB0cmFuc2FjdGlvbkVycm9y
KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBBYnN0cmFjdFNRTFN0YXRlbWVudCogY3VycmVudFN0
YXRlbWVudCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRSZXRyeUN1cnJl
bnRTdGF0ZW1lbnQoYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RUcmFu
c2l0VG9TdGF0ZShTUUxUcmFuc2FjdGlvblN0YXRlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8U1FMRXJyb3I+IHRyYW5zYWN0aW9uRXJyb3IoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIEFic3RyYWN0U1FMU3RhdGVtZW50KiBjdXJyZW50U3RhdGVtZW50KCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHNldFNob3VsZFJldHJ5Q3VycmVudFN0YXRlbWVudChib29sKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZXhlY3V0ZVNRTChQYXNzT3duUHRyPEFic3RyYWN0U1FM
U3RhdGVtZW50PiwgY29uc3QgU3RyaW5nJiBzdGF0ZW1lbnQsCi0gICAgICAgIGNvbnN0IFZlY3Rv
cjxTUUxWYWx1ZT4mIGFyZ3VtZW50cywgaW50IHBlcm1pc3Npb25zKSBPVkVSUklERTsKKyAgICAg
ICAgY29uc3QgVmVjdG9yPFNRTFZhbHVlPiYgYXJndW1lbnRzLCBpbnQgcGVybWlzc2lvbnMpIG92
ZXJyaWRlOwogCiAgICAgdm9pZCBkb0NsZWFudXAoKTsKIAogICAgIHZvaWQgZW5xdWV1ZVN0YXRl
bWVudEJhY2tlbmQoUGFzc1JlZlB0cjxTUUxTdGF0ZW1lbnRCYWNrZW5kPik7CiAKICAgICAvLyBT
dGF0ZSBNYWNoaW5lIGZ1bmN0aW9uczoKLSAgICB2aXJ0dWFsIFN0YXRlRnVuY3Rpb24gc3RhdGVG
dW5jdGlvbkZvcihTUUxUcmFuc2FjdGlvblN0YXRlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0
YXRlRnVuY3Rpb24gc3RhdGVGdW5jdGlvbkZvcihTUUxUcmFuc2FjdGlvblN0YXRlKSBvdmVycmlk
ZTsKICAgICB2b2lkIGNvbXB1dGVOZXh0U3RhdGVBbmRDbGVhbnVwSWZOZWVkZWQoKTsKIAogICAg
IC8vIFN0YXRlIGZ1bmN0aW9uczoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9DbG9zZUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvQ2xvc2VFdmVudC5oCmluZGV4IDlmYjhmYjMuLmZkYTUxZDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9DbG9zZUV2ZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL0Nsb3NlRXZlbnQuaApAQCAtNzAsNyArNzAsNyBAQCBw
dWJsaWM6CiAgICAgU3RyaW5nIHJlYXNvbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVhc29uOyB9CiAK
ICAgICAvLyBFdmVudCBmdW5jdGlvbi4KLSAgICB2aXJ0dWFsIEV2ZW50SW50ZXJmYWNlIGV2ZW50
SW50ZXJmYWNlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gQ2xvc2VFdmVudEludGVyZmFjZVR5
cGU7IH0KKyAgICB2aXJ0dWFsIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gQ2xvc2VFdmVudEludGVyZmFjZVR5cGU7IH0KIAogcHJpdmF0ZToK
ICAgICBDbG9zZUV2ZW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9X
ZWJTb2NrZXQuaAppbmRleCA2ODljMmVmLi5hMWFiYmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCkBAIC05NywzMyArOTcsMzMgQEAgcHVibGlj
OgogICAgIERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoY2xvc2UpOwogCiAgICAgLy8g
RXZlbnRUYXJnZXQgZnVuY3Rpb25zLgotICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2Ug
ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNl
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB1c2luZyBSZWZD
b3VudGVkPFdlYlNvY2tldD46OnJlZjsKICAgICB1c2luZyBSZWZDb3VudGVkPFdlYlNvY2tldD46
OmRlcmVmOwogCiAgICAgLy8gV2ViU29ja2V0Q2hhbm5lbENsaWVudCBmdW5jdGlvbnMuCi0gICAg
dmlydHVhbCB2b2lkIGRpZENvbm5lY3QoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZUJpbmFyeURhdGEoUGFzc093blB0cjxWZWN0b3I8Y2hhcj4+KSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRhdGVCdWZmZXJlZEFtb3VudCh1bnNpZ25lZCBs
b25nIGJ1ZmZlcmVkQW1vdW50KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRD
bG9zaW5nSGFuZHNoYWtlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKHVu
c2lnbmVkIGxvbmcgdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQsIENsb3NpbmdIYW5kc2hha2VDb21w
bGV0aW9uU3RhdHVzLCB1bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZENvbm5lY3QoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJpbmFyeURhdGEoUGFzc093blB0cjxW
ZWN0b3I8Y2hhcj4+KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2VFcnJvcigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRhdGVCdWZmZXJlZEFt
b3VudCh1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGRpZENsb3NlKHVuc2lnbmVkIGxvbmcgdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQsIENsb3Np
bmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzLCB1bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25zdCBT
dHJpbmcmIHJlYXNvbikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViU29j
a2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdCBm
dW5jdGlvbnMuCi0gICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCByZXN1bWUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJS
SURFOwotCi0gICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyByZWYo
KTsgfQotICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyBkZXJl
ZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCByZXN1bWUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRl
OworCisgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsg
fQorICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJlZigp
OyB9CiAKICAgICBzaXplX3QgZ2V0RnJhbWluZ092ZXJoZWFkKHNpemVfdCBwYXlsb2FkU2l6ZSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRDaGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
Q2hhbm5lbC5oCmluZGV4IGE2NTNhNGYuLjExMDJmNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaApAQCAtNjgsMjkgKzY4
LDI5IEBAIHB1YmxpYzoKICAgICBib29sIHNlbmQoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0
aCk7CiAKICAgICAvLyBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbCBmdW5jdGlvbnMuCi0gICAg
dmlydHVhbCB2b2lkIGNvbm5lY3QoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgc3VicHJvdG9jb2woKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBleHRlbnNpb25zKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBzZW5kKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6
U2VuZFJlc3VsdCBzZW5kKGNvbnN0IEpTQzo6QXJyYXlCdWZmZXImLCB1bnNpZ25lZCBieXRlT2Zm
c2V0LCB1bnNpZ25lZCBieXRlTGVuZ3RoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kUmVzdWx0IHNlbmQoY29uc3QgQmxvYiYpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBidWZmZXJlZEFtb3VudCgpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBjbG9zZShpbnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFz
b24pIE9WRVJSSURFOyAvLyBTdGFydCBjbG9zaW5nIGhhbmRzaGFrZS4KLSAgICB2aXJ0dWFsIHZv
aWQgZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGRpc2Nvbm5lY3QoKSBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlc3VtZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBjb25uZWN0KGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgU3RyaW5nIHN1YnByb3RvY29sKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBTdHJpbmcgZXh0ZW5zaW9ucygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQgc2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1
bHQgc2VuZChjb25zdCBKU0M6OkFycmF5QnVmZmVyJiwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5z
aWduZWQgYnl0ZUxlbmd0aCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBzZW5kKGNvbnN0IEJsb2ImKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKSBvdmVy
cmlkZTsgLy8gU3RhcnQgY2xvc2luZyBoYW5kc2hha2UuCisgICAgdmlydHVhbCB2b2lkIGZhaWwo
Y29uc3QgU3RyaW5nJiByZWFzb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25u
ZWN0KCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZCgpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKSBvdmVycmlkZTsKIAogICAgIC8vIFNvY2tldFN0cmVh
bUhhbmRsZUNsaWVudCBmdW5jdGlvbnMuCi0gICAgdmlydHVhbCB2b2lkIHdpbGxPcGVuU29ja2V0
U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBk
aWRPcGVuU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSopIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBkaWRDbG9zZVNvY2tldFN0cmVhbShTb2NrZXRTdHJlYW1IYW5kbGUqKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVNvY2tldFN0cmVhbURhdGEoU29ja2V0
U3RyZWFtSGFuZGxlKiwgY29uc3QgY2hhciosIGludCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KFNvY2tldFN0cmVhbUhhbmRsZSosIHNpemVfdCBi
dWZmZXJlZEFtb3VudCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZhaWxTb2NrZXRT
dHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlKiwgY29uc3QgU29ja2V0U3RyZWFtRXJyb3ImKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KFNvY2tldFN0cmVhbUhhbmRsZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KFNvY2tldFN0cmVhbUhhbmRsZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxPcGVuU29ja2V0U3RyZWFtKFNvY2tldFN0cmVh
bUhhbmRsZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRPcGVuU29ja2V0U3RyZWFt
KFNvY2tldFN0cmVhbUhhbmRsZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9z
ZVNvY2tldFN0cmVhbShTb2NrZXRTdHJlYW1IYW5kbGUqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZVNvY2tldFN0cmVhbURhdGEoU29ja2V0U3RyZWFtSGFuZGxlKiwgY29u
c3QgY2hhciosIGludCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZUJ1ZmZl
cmVkQW1vdW50KFNvY2tldFN0cmVhbUhhbmRsZSosIHNpemVfdCBidWZmZXJlZEFtb3VudCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZEZhaWxTb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFt
SGFuZGxlKiwgY29uc3QgU29ja2V0U3RyZWFtRXJyb3ImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFNvY2tldFN0cmVhbUhhbmRs
ZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFNvY2tldFN0cmVhbUhhbmRs
ZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgb3ZlcnJpZGU7CiAKICAgICBlbnVt
IENsb3NlRXZlbnRDb2RlIHsKICAgICAgICAgQ2xvc2VFdmVudENvZGVOb3RTcGVjaWZpZWQgPSAt
MSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXREZWZsYXRlRnJhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9X
ZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcAppbmRleCA1OTAyNDZkLi5mM2FhM2YwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZy
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dERlZmxhdGVGcmFtZXIuY3BwCkBAIC00OSw5ICs0OSw5IEBAIHB1YmxpYzoKICAgICB9CiAgICAg
dmlydHVhbCB+V2ViU29ja2V0RXh0ZW5zaW9uRGVmbGF0ZUZyYW1lKCkgeyB9CiAKLSAgICB2aXJ0
dWFsIFN0cmluZyBoYW5kc2hha2VTdHJpbmcoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
cHJvY2Vzc1Jlc3BvbnNlKGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JikgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBTdHJpbmcgZmFpbHVyZVJlYXNvbigpIE9WRVJSSURFIHsgcmV0dXJuIG1f
ZmFpbHVyZVJlYXNvbjsgfQorICAgIHZpcnR1YWwgU3RyaW5nIGhhbmRzaGFrZVN0cmluZygpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBwcm9jZXNzUmVzcG9uc2UoY29uc3QgSGFzaE1hcDxT
dHJpbmcsIFN0cmluZz4mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBmYWlsdXJlUmVh
c29uKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9mYWlsdXJlUmVhc29uOyB9CiAKIHByaXZhdGU6CiAg
ICAgV2ViU29ja2V0RXh0ZW5zaW9uRGVmbGF0ZUZyYW1lKFdlYlNvY2tldERlZmxhdGVGcmFtZXIq
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDg4NzNj
MTYuLjY1YjhkMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNw
cApAQCAtMzY5LDcgKzM2OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2aXJ0dWFsIH5Xb3Jr
ZXJHbG9iYWxTY29wZURpZEluaXRpYWxpemVUYXNrKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHBl
cmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpIE9WRVJSSURFCisgICAg
dmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQp
IG92ZXJyaWRlCiAgICAgewogICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQt
PmlzV29ya2VyR2xvYmFsU2NvcGUoKSk7CiAgICAgICAgIGlmIChtX3dvcmtlckNsaWVudFdyYXBw
ZXItPmZhaWxlZFdlYlNvY2tldENoYW5uZWxDcmVhdGlvbigpKSB7CkBAIC0zODAsNyArMzgwLDcg
QEAgcHVibGljOgogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIG1fd29ya2VyQ2xpZW50V3Jh
cHBlci0+ZGlkQ3JlYXRlV2ViU29ja2V0Q2hhbm5lbChtX3BlZXIpOwogICAgIH0KLSAgICB2aXJ0
dWFsIGJvb2wgaXNDbGVhbnVwVGFzaygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaXNDbGVhbnVwVGFzaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KIAogcHJpdmF0ZToKICAgICBXb3JrZXJHbG9iYWxTY29wZURpZEluaXRpYWxpemVU
YXNrKFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyKiBwZWVyLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAppbmRleCBjYTUyNmRiLi45MGIwZWEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaApAQCAtNjIsMTggKzYyLDE4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bCgpOwogCiAgICAgLy8gVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwgZnVuY3Rpb25zLgotICAg
IHZpcnR1YWwgdm9pZCBjb25uZWN0KGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIHN1YnByb3RvY29sKCkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgZXh0ZW5zaW9ucygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQgc2VuZChjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6
OlNlbmRSZXN1bHQgc2VuZChjb25zdCBKU0M6OkFycmF5QnVmZmVyJiwgdW5zaWduZWQgYnl0ZU9m
ZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBzZW5kKGNvbnN0IEJsb2ImKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQoKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVh
c29uKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZmFpbChjb25zdCBTdHJpbmcmIHJlYXNv
bikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3QoKSBPVkVSUklERTsgLy8g
V2lsbCBzdXBwcmVzcyBkaWRDbG9zZSgpLgotICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlc3VtZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBjb25uZWN0KGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgU3RyaW5nIHN1YnByb3RvY29sKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBTdHJpbmcgZXh0ZW5zaW9ucygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQgc2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1
bHQgc2VuZChjb25zdCBKU0M6OkFycmF5QnVmZmVyJiwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5z
aWduZWQgYnl0ZUxlbmd0aCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBzZW5kKGNvbnN0IEJsb2ImKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3QoKSBvdmVycmlkZTsgLy8gV2lsbCBzdXBw
cmVzcyBkaWRDbG9zZSgpLgorICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHJlc3VtZSgpIG92ZXJyaWRlOwogCiAgICAgLy8gR2VuZXJhdGVkIGJ5
IHRoZSBicmlkZ2UuICBUaGUgUGVlciBhbmQgaXRzIGJyaWRnZSBzaG91bGQgaGF2ZSBpZGVudGlj
YWwKICAgICAvLyBsaWZldGltZXMuCkBAIC05OCwxMyArOTgsMTMgQEAgcHVibGljOgogICAgICAg
ICB2b2lkIHJlc3VtZSgpOwogCiAgICAgICAgIC8vIFdlYlNvY2tldENoYW5uZWxDbGllbnQgZnVu
Y3Rpb25zLgotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29ubmVjdCgpIE9WRVJSSURFOwotICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdl
KSBPVkVSUklERTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVCaW5hcnlEYXRhKFBh
c3NPd25QdHI8VmVjdG9yPGNoYXI+PikgT1ZFUlJJREU7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBk
aWRVcGRhdGVCdWZmZXJlZEFtb3VudCh1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KSBPVkVS
UklERTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2xvc2luZ0hhbmRzaGFrZSgpIE9W
RVJSSURFOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UodW5zaWduZWQgbG9uZyB1bmhh
bmRsZWRCdWZmZXJlZEFtb3VudCwgQ2xvc2luZ0hhbmRzaGFrZUNvbXBsZXRpb25TdGF0dXMsIHVu
c2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKSBPVkVSUklERTsKLSAgICAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKSBPVkVSUklERTsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIGRpZENvbm5lY3QoKSBvdmVycmlkZTsKKyAgICAgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgb3ZlcnJpZGU7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQmluYXJ5RGF0YShQYXNzT3duUHRyPFZlY3Rv
cjxjaGFyPj4pIG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlQnVmZmVy
ZWRBbW91bnQodW5zaWduZWQgbG9uZyBidWZmZXJlZEFtb3VudCkgb3ZlcnJpZGU7CisgICAgICAg
IHZpcnR1YWwgdm9pZCBkaWRTdGFydENsb3NpbmdIYW5kc2hha2UoKSBvdmVycmlkZTsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKHVuc2lnbmVkIGxvbmcgdW5oYW5kbGVkQnVmZmVyZWRB
bW91bnQsIENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzLCB1bnNpZ25lZCBzaG9ydCBj
b2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKCkgb3ZlcnJpZGU7CiAKICAgICBwcml2YXRlOgogICAg
ICAgICBQZWVyKFBhc3NSZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFw
cGVyPiwgV29ya2VyTG9hZGVyUHJveHkmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3Qg
U3RyaW5nJiB0YXNrTW9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWQuaAppbmRleCA1NGI1ZTZmLi4yYTRmYjliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlk
LmgKQEAgLTQ1LDE1ICs0NSwxNSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8QWNj
ZXNzaWJpbGl0eUFSSUFHcmlkPiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmlydHVhbCB+
QWNjZXNzaWJpbGl0eUFSSUFHcmlkKCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNBcmlhVGFibGUo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzQXJp
YVRhYmxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIAotICAgIHZpcnR1
YWwgdm9pZCBhZGRDaGlsZHJlbigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhZGRDaGls
ZHJlbigpIG92ZXJyaWRlOwogICAgIAogcHJpdmF0ZToKICAgICAvLyBBUklBIHRyZWVncmlkcyBh
bmQgZ3JpZHMgc3VwcG9ydCBzZWxlY3RlZCByb3dzLgotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0
c1NlbGVjdGVkUm93cygpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgaXNNdWx0aVNlbGVjdGFibGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0g
ICAgdmlydHVhbCBib29sIGlzVGFibGVFeHBvc2FibGVUaHJvdWdoQWNjZXNzaWJpbGl0eSgpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNT
ZWxlY3RlZFJvd3MoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29s
IGlzTXVsdGlTZWxlY3RhYmxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAg
IHZpcnR1YWwgYm9vbCBpc1RhYmxlRXhwb3NhYmxlVGhyb3VnaEFjY2Vzc2liaWxpdHkoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgCiAgICAgdm9pZCBhZGRSb3dEZXNjZW5k
YW50KEFjY2Vzc2liaWxpdHlPYmplY3QqLCBIYXNoU2V0PEFjY2Vzc2liaWxpdHlPYmplY3QqPiYg
YXBwZW5kZWRSb3dzLCB1bnNpZ25lZCYgY29sdW1uQ291bnQpOwogICAgIGJvb2wgYWRkVGFibGVD
ZWxsQ2hpbGQoQWNjZXNzaWJpbGl0eU9iamVjdCosIEhhc2hTZXQ8QWNjZXNzaWJpbGl0eU9iamVj
dCo+JiBhcHBlbmRlZFJvd3MsIHVuc2lnbmVkJiBjb2x1bW5Db3VudCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5o
CmluZGV4IDZkMzAwZTEuLjkyNGUzNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5oCkBAIC00MiwxMiArNDIs
MTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGwoKTsK
ICAgICAKICAgICAvLyBmaWxscyBpbiB0aGUgc3RhcnQgbG9jYXRpb24gYW5kIHJvdyBzcGFuIG9m
IGNlbGwKLSAgICB2aXJ0dWFsIHZvaWQgcm93SW5kZXhSYW5nZShzdGQ6OnBhaXI8dW5zaWduZWQs
IHVuc2lnbmVkPiYgcm93UmFuZ2UpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByb3dJbmRl
eFJhbmdlKHN0ZDo6cGFpcjx1bnNpZ25lZCwgdW5zaWduZWQ+JiByb3dSYW5nZSkgb3ZlcnJpZGU7
CiAgICAgLy8gZmlsbHMgaW4gdGhlIHN0YXJ0IGxvY2F0aW9uIGFuZCBjb2x1bW4gc3BhbiBvZiBj
ZWxsCi0gICAgdmlydHVhbCB2b2lkIGNvbHVtbkluZGV4UmFuZ2Uoc3RkOjpwYWlyPHVuc2lnbmVk
LCB1bnNpZ25lZD4mIGNvbHVtblJhbmdlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY29s
dW1uSW5kZXhSYW5nZShzdGQ6OnBhaXI8dW5zaWduZWQsIHVuc2lnbmVkPiYgY29sdW1uUmFuZ2Up
IG92ZXJyaWRlOwogICAgIAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9i
amVjdCogcGFyZW50VGFibGUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2li
aWxpdHlPYmplY3QqIHBhcmVudFRhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OyAKICAgICAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuaAppbmRleCAzYTJmODkwLi5mYmEwMjQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlB
UklBR3JpZFJvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eUFSSUFHcmlkUm93LmgKQEAgLTQ0LDExICs0NCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBk
aXNjbG9zZWRSb3dzKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpOwogICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QqIGRpc2Nsb3NlZEJ5Um93KCkgY29uc3Q7CiAgICAgCi0gICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBoZWFkZXJPYmplY3QoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IEFjY2Vzc2liaWxpdHlPYmplY3QqIGhlYWRlck9iamVjdCgpIG92ZXJyaWRlOwogICAgIAogcHJp
dmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgaXNBUklBVHJlZUdyaWRSb3coKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudFRhYmxlKCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlzQVJJQVRyZWVHcmlkUm93KCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRUYWJsZSgpIGNv
bnN0IG92ZXJyaWRlOwogfTsgCiAKIEFDQ0VTU0lCSUxJVFlfT0JKRUNUX1RZUEVfQ0FTVFMoQWNj
ZXNzaWJpbGl0eUFSSUFHcmlkUm93LCBpc0FSSUFUcmVlR3JpZFJvdygpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5SW1hZ2VNYXBMaW5rLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsu
aAppbmRleCAxZDcyMDRmLi5kMjhmZjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlJbWFnZU1hcExpbmsuaApAQCAtNDksMzYgKzQ5
LDM2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEhUTUxNYXBFbGVtZW50KEhUTUxNYXBFbGVtZW50
KiBlbGVtZW50KSB7IG1fbWFwRWxlbWVudCA9IGVsZW1lbnQ7IH0gICAgCiAgICAgSFRNTE1hcEVs
ZW1lbnQqIG1hcEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX21hcEVsZW1lbnQuZ2V0KCk7IH0K
ICAgICAKLSAgICB2aXJ0dWFsIE5vZGUqIG5vZGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBt
X2FyZWFFbGVtZW50LmdldCgpOyB9CisgICAgdmlydHVhbCBOb2RlKiBub2RlKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbV9hcmVhRWxlbWVudC5nZXQoKTsgfQogICAgICAgICAKLSAgICB2aXJ0
dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgYm9vbCBpc0VuYWJsZWQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Cisg
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQogICAgIAotICAgIHZpcnR1YWwgRWxlbWVudCogYW5jaG9yRWxlbWVudCgpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgRWxlbWVudCogYWN0aW9uRWxlbWVudCgpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgVVJMIHVybCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
Ym9vbCBpc0xpbmsoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVh
bCBib29sIGlzTGlua2VkKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZp
cnR1YWwgU3RyaW5nIHRpdGxlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcg
YWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIEVsZW1lbnQqIGFuY2hvckVsZW1lbnQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIEVsZW1lbnQqIGFjdGlvbkVsZW1lbnQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IFVSTCB1cmwoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNMaW5rKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0xpbmtlZCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIFN0cmluZyB0aXRs
ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIGFjY2Vzc2liaWxpdHlEZXNj
cmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVj
dCogcGFyZW50T2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCBTdHJp
bmcgc3RyaW5nVmFsdWVGb3JNU0FBKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJp
bmcgbmFtZUZvck1TQUEoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBzdHJp
bmdWYWx1ZUZvck1TQUEoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBuYW1l
Rm9yTVNBQSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBMYXlvdXRSZWN0IGVsZW1l
bnRSZWN0KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGVsZW1lbnRS
ZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6ICAgIAogICAgIFJlZlB0cjxIVE1MQXJl
YUVsZW1lbnQ+IG1fYXJlYUVsZW1lbnQ7CiAgICAgUmVmUHRyPEhUTUxNYXBFbGVtZW50PiBtX21h
cEVsZW1lbnQ7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoRnJvbVBhcmVudCgpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hGcm9tUGFyZW50KCkgb3ZlcnJpZGU7CiAKLSAgICB2
aXJ0dWFsIFBhdGggZWxlbWVudFBhdGgoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBh
dGggZWxlbWVudFBhdGgoKSBjb25zdCBvdmVycmlkZTsKICAgICBSZW5kZXJFbGVtZW50KiBpbWFn
ZU1hcExpbmtSZW5kZXJlcigpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NpYmlsaXR5
VGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIGlzSW1hZ2VNYXBMaW5rKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQotICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c1BhdGgoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVl
OyB9CisgICAgdmlydHVhbCB2b2lkIGFjY2Vzc2liaWxpdHlUZXh0KFZlY3RvcjxBY2Nlc3NpYmls
aXR5VGV4dD4mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZU1hcExpbmsoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRz
UGF0aCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CiAKIEFDQ0VTU0lCSUxJ
VFlfT0JKRUNUX1RZUEVfQ0FTVFMoQWNjZXNzaWJpbGl0eUltYWdlTWFwTGluaywgaXNJbWFnZU1h
cExpbmsoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eUxpc3QuaAppbmRleCAzMWU5YjFhLi4xNjFkODQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdC5oCkBAIC00MSwxNCArNDEsMTQgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlMaXN0PiBjcmVhdGUoUmVu
ZGVyT2JqZWN0Kik7CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eUxpc3QoKTsKICAgICAKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNMaXN0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBpc0xpc3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9
CiAgICAgYm9vbCBpc1Vub3JkZXJlZExpc3QoKSBjb25zdDsKICAgICBib29sIGlzT3JkZXJlZExp
c3QoKSBjb25zdDsKICAgICBib29sIGlzRGVzY3JpcHRpb25MaXN0KCkgY29uc3Q7CiAKLSAgICB2
aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFM
OworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3Qgb3ZlcnJp
ZGUgRklOQUw7CiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0
eUlzSWdub3JlZCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogQUNDRVNTSUJJTElU
WV9PQkpFQ1RfVFlQRV9DQVNUUyhBY2Nlc3NpYmlsaXR5TGlzdCwgaXNMaXN0KCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94LmgKaW5k
ZXggZWNhZmFlOS4uMmY1NmJmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guaApAQCAtNDEsMjAgKzQxLDIwIEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5TGlzdEJveD4gY3JlYXRlKFJlbmRl
ck9iamVjdCopOwogICAgIHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlMaXN0Qm94KCk7CiAgICAgCi0g
ICAgdmlydHVhbCBib29sIGlzTGlzdEJveCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNMaXN0Qm94KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQogICAgIAotICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRTZWxlY3RlZENoaWxkcmVuQXR0
cmlidXRlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGNhblNldFNlbGVjdGVk
Q2hpbGRyZW5BdHRyaWJ1dGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNldFNlbGVjdGVk
Q2hpbGRyZW4oY29uc3QgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJik7Ci0gICAgdmlydHVh
bCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBM
aXN0Qm94Um9sZTsgfQorICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gTGlzdEJveFJvbGU7IH0KICAgICAgICAgCi0gICAgdmly
dHVhbCB2b2lkIHNlbGVjdGVkQ2hpbGRyZW4oQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHZpc2libGVDaGlsZHJlbihBY2Nlc3NpYmlsaXR5
Q2hpbGRyZW5WZWN0b3ImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDaGls
ZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgdmlzaWJsZUNoaWxkcmVuKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpIG92ZXJy
aWRlOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZHJlbigpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBhZGRDaGlsZHJlbigpIG92ZXJyaWRlOwogCiBwcml2YXRlOiAgICAKICAg
ICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBsaXN0Qm94T3B0aW9uQWNjZXNzaWJpbGl0eU9iamVjdChI
VE1MRWxlbWVudCopIGNvbnN0OwotICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogZWxl
bWVudEFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBvaW50JikgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBlbGVtZW50QWNjZXNzaWJpbGl0eUhp
dFRlc3QoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZTsKIH07CiAKIEFDQ0VTU0lCSUxJ
VFlfT0JKRUNUX1RZUEVfQ0FTVFMoQWNjZXNzaWJpbGl0eUxpc3RCb3gsIGlzTGlzdEJveCgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlz
dEJveE9wdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TGlzdEJveE9wdGlvbi5oCmluZGV4IGI0ZWQ3YTcuLjg5ODU5NzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3hPcHRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlMaXN0Qm94T3B0aW9u
LmgKQEAgLTUwLDI5ICs1MCwyOSBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBzZXRIVE1MRWxl
bWVudChIVE1MRWxlbWVudCogZWxlbWVudCkgeyBtX29wdGlvbkVsZW1lbnQgPSBlbGVtZW50OyB9
CiAgICAgCi0gICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBMaXN0Qm94T3B0aW9uUm9sZTsgfQotICAgIHZpcnR1YWwgYm9vbCBp
c1NlbGVjdGVkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzRW5hYmxlZCgp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdGVkT3B0aW9uQWN0aXZl
KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgc3RyaW5nVmFsdWUoKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEVsZW1lbnQqIGFjdGlvbkVsZW1lbnQoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIE5vZGUqIG5vZGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biBtX29wdGlvbkVsZW1lbnQ7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWQoYm9vbCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNhblNldFNlbGVjdGVkQXR0cmlidXRlKCkgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBMaXN0Qm94T3B0aW9uUm9sZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBpc1NlbGVjdGVkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzRW5h
YmxlZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdGVkT3B0aW9u
QWN0aXZlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgc3RyaW5nVmFsdWUo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEVsZW1lbnQqIGFjdGlvbkVsZW1lbnQoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIE5vZGUqIG5vZGUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBtX29wdGlvbkVsZW1lbnQ7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWQo
Ym9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGNhblNldFNlbGVjdGVkQXR0cmlidXRl
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIExheW91dFJlY3QgZWxlbWVudFJlY3Qo
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVu
dE9iamVjdCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc0xpc3RCb3hPcHRp
b24oKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBM
YXlvdXRSZWN0IGVsZW1lbnRSZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgaXNMaXN0Qm94T3B0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgRklOQUwgeyByZXR1cm4g
dHJ1ZTsgfQogCiBwcml2YXRlOgogICAgIEhUTUxFbGVtZW50KiBtX29wdGlvbkVsZW1lbnQ7CiAg
ICAgCi0gICAgdmlydHVhbCBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgSFRNTFNlbGVjdEVsZW1lbnQqIGxpc3RC
b3hPcHRpb25QYXJlbnROb2RlKCkgY29uc3Q7CiAgICAgaW50IGxpc3RCb3hPcHRpb25JbmRleCgp
IGNvbnN0OwogICAgIEludFJlY3QgbGlzdEJveE9wdGlvblJlY3QoKSBjb25zdDsKICAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBsaXN0Qm94T3B0aW9uQWNjZXNzaWJpbGl0eU9iamVjdChIVE1MRWxl
bWVudCopIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJp
bGl0eUlzSWdub3JlZCgpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogQUNDRVNTSUJJTElUWV9PQkpF
Q1RfVFlQRV9DQVNUUyhBY2Nlc3NpYmlsaXR5TGlzdEJveE9wdGlvbiwgaXNMaXN0Qm94T3B0aW9u
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlNZWRpYUNvbnRyb2xzLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlNZWRpYUNvbnRyb2xzLmgKaW5kZXggZmNkODY0NC4uYzcyOTYwOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVkaWFDb250cm9scy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lZGlhQ29u
dHJvbHMuaApAQCAtNDMsMjAgKzQzLDIwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmlydHVh
bCB+QWNjZXNzaWJpbGl0eU1lZGlhQ29udHJvbCgpIHsgfQogCi0gICAgdmlydHVhbCBBY2Nlc3Np
YmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEFjY2Vz
c2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBT
dHJpbmcgdGl0bGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBhY2Nlc3Np
YmlsaXR5RGVzY3JpcHRpb24oKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBo
ZWxwVGV4dCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIHRpdGxlKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgYWNjZXNzaWJpbGl0eURlc2NyaXB0aW9u
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgaGVscFRleHQoKSBjb25zdCBv
dmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlNZWRpYUNv
bnRyb2woUmVuZGVyT2JqZWN0Kik7CiAgICAgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgY29udHJv
bFR5cGUoKSBjb25zdDsKICAgICBTdHJpbmcgY29udHJvbFR5cGVOYW1lKCkgY29uc3Q7Ci0gICAg
dmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29u
c3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIGFjY2Vzc2liaWxpdHlU
ZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgYWNjZXNzaWJpbGl0eVRleHQoVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYpIG92ZXJyaWRl
OwogfTsKIAogCkBAIC02NiwxMCArNjYsMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKICAgICB2aXJ0
dWFsIH5BY2Nlc3NpYmlsaXR5TWVkaWFUaW1lbGluZSgpIHsgfQogCi0gICAgdmlydHVhbCBib29s
IGlzTWVkaWFUaW1lbGluZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgaXNNZWRpYVRpbWVsaW5lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQogCi0gICAgdmlydHVhbCBTdHJpbmcgaGVscFRleHQoKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIFN0cmluZyB2YWx1ZURlc2NyaXB0aW9uKCkgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBTdHJpbmcgaGVscFRleHQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0
cmluZyB2YWx1ZURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgY29uc3QgQXRvbWlj
U3RyaW5nJiBnZXRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlKSBjb25z
dDsKIAogcHJpdmF0ZToKQEAgLTgzLDE2ICs4MywxNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gY3JlYXRlKFJlbmRlck9iamVjdCopOwogICAg
IHZpcnR1YWwgfkFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyKCkgeyB9CiAKLSAg
ICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIFRvb2xiYXJSb2xlOyB9CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xl
VmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBUb29sYmFyUm9sZTsgfQogCi0gICAgdmly
dHVhbCBTdHJpbmcgaGVscFRleHQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBhY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb24oKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IFN0cmluZyBoZWxwVGV4dCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIGFj
Y2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlNZWRpYUNvbnRyb2xzQ29udGFpbmVyKFJlbmRlck9iamVj
dCopOwogICAgIGJvb2wgY29udHJvbGxpbmdWaWRlb0VsZW1lbnQoKSBjb25zdDsKICAgICBjb25z
dCBTdHJpbmcgZWxlbWVudFR5cGVOYW1lKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGNvbXB1
dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBi
b29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Qgb3ZlcnJpZGU7CiB9Owog
CiAKQEAgLTEwMiwxNSArMTAyLDE1IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CiAgICAgdmlydHVhbCB+
QWNjZXNzaWJpbGl0eU1lZGlhVGltZURpc3BsYXkoKSB7IH0KIAotICAgIHZpcnR1YWwgQWNjZXNz
aWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gQXBwbGljYXRp
b25UaW1lclJvbGU7IH0KKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFwcGxpY2F0aW9uVGltZXJSb2xlOyB9CiAKLSAgICB2
aXJ0dWFsIFN0cmluZyBzdHJpbmdWYWx1ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
U3RyaW5nIGFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgU3RyaW5nIHN0cmluZ1ZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBT
dHJpbmcgYWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZh
dGU6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eU1lZGlhVGltZURpc3BsYXkoUmVuZGVyT2Jq
ZWN0Kik7Ci0gICAgdmlydHVhbCBib29sIGlzTWVkaWFDb250cm9sTGFiZWwoKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmls
aXR5SXNJZ25vcmVkKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlzTWVkaWFD
b250cm9sTGFiZWwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVh
bCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Qgb3ZlcnJpZGU7CiB9
OwogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU1lbnVMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlNZW51TGlzdC5oCmluZGV4IGU0M2VhMmQuLjAxZDU4ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuaApAQCAtMzksMjAg
KzM5LDIwIEBAIGNsYXNzIEFjY2Vzc2liaWxpdHlNZW51TGlzdCA6IHB1YmxpYyBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3Np
YmlsaXR5TWVudUxpc3Q+IGNyZWF0ZShSZW5kZXJNZW51TGlzdCogcmVuZGVyZXIpOwogCi0gICAg
dmlydHVhbCBib29sIGlzQ29sbGFwc2VkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIHByZXNzKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlzQ29sbGFwc2Vk
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHByZXNzKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICB2b2lkIGRpZFVwZGF0ZUFjdGl2ZU9wdGlvbihpbnQgb3B0aW9uSW5kZXgpOwog
CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEFjY2Vzc2liaWxpdHlNZW51TGlzdChSZW5kZXJNZW51
TGlzdCopOwogCi0gICAgdmlydHVhbCBib29sIGlzTWVudUxpc3QoKSBjb25zdCBPVkVSUklERSB7
IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBQb3BVcEJ1dHRvblJvbGU7IH0KLSAgICB2aXJ0dWFs
IGJvb2wgY2FuU2V0Rm9jdXNBdHRyaWJ1dGUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IGJvb2wgaXNNZW51TGlzdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIFBvcFVwQnV0dG9uUm9sZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRGb2N1c0F0dHJp
YnV0ZSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGFkZENoaWxkcmVuKCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZCgpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZHJlbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBjaGlsZHJlbkNoYW5nZWQoKSBvdmVycmlkZTsKIH07CiAKIEFDQ0VTU0lCSUxJVFlfT0JKRUNU
X1RZUEVfQ0FTVFMoQWNjZXNzaWJpbGl0eU1lbnVMaXN0LCBpc01lbnVMaXN0KCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9w
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxp
c3RPcHRpb24uaAppbmRleCA1M2E0NWEwLi42YmVlNThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uLmgK
QEAgLTQyLDIyICs0MiwyMiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEFjY2Vzc2liaWxpdHlN
ZW51TGlzdE9wdGlvbigpOwogCi0gICAgdmlydHVhbCBib29sIGlzTWVudUxpc3RPcHRpb24oKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzTWVudUxp
c3RPcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFs
IEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIE1l
bnVMaXN0T3B0aW9uUm9sZTsgfQotICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0
eVJvbGUgcm9sZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gTWVudUxpc3RPcHRpb25S
b2xlOyB9CisgICAgdmlydHVhbCBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIEVsZW1lbnQqIGFjdGlvbkVsZW1lbnQo
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkKCkgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzVmlzaWJsZSgpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBpc09mZlNjcmVlbigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
Ym9vbCBpc1NlbGVjdGVkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgbmFt
ZUZvck1TQUEoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWQo
Ym9vbCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNhblNldFNlbGVjdGVkQXR0cmlidXRl
KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBMYXlvdXRSZWN0IGVsZW1lbnRSZWN0KCkg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgc3RyaW5nVmFsdWUoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQo
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEVsZW1lbnQqIGFjdGlvbkVsZW1lbnQoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBib29sIGlzVmlzaWJsZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgYm9vbCBpc09mZlNjcmVlbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9v
bCBpc1NlbGVjdGVkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgbmFtZUZv
ck1TQUEoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWQoYm9v
bCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGNhblNldFNlbGVjdGVkQXR0cmlidXRlKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGVsZW1lbnRSZWN0KCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgc3RyaW5nVmFsdWUoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBj
b25zdCBvdmVycmlkZTsKIAogICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gbV9lbGVtZW50OwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1l
bnVMaXN0UG9wdXAuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lbnVMaXN0UG9wdXAuaAppbmRleCAxNDg2OTA5Li45ZTIwOTMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1
cC5oCkBAIC0zOSw4ICszOSw4IEBAIGNsYXNzIEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwIDog
cHVibGljIEFjY2Vzc2liaWxpdHlNb2NrT2JqZWN0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cD4gY3JlYXRlKCkgeyByZXR1cm4gYWRv
cHRSZWYobmV3IEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwKTsgfQogCi0gICAgdmlydHVhbCBi
b29sIGlzRW5hYmxlZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc09mZlNj
cmVlbigpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc0VuYWJsZWQoKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNPZmZTY3JlZW4oKSBjb25zdCBvdmVycmlk
ZTsKIAogICAgIHZvaWQgZGlkVXBkYXRlQWN0aXZlT3B0aW9uKGludCBvcHRpb25JbmRleCk7CiAK
QEAgLTQ4LDE2ICs0OCwxNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEFjY2Vzc2liaWxpdHlN
ZW51TGlzdFBvcHVwKCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNNZW51TGlzdFBvcHVwKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc01lbnVMaXN0
UG9wdXAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIExh
eW91dFJlY3QgZWxlbWVudFJlY3QoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBMYXlvdXRSZWN0
KCk7IH0KLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIE1lbnVMaXN0UG9wdXBSb2xlOyB9CisgICAgdmlydHVhbCBMYXlvdXRS
ZWN0IGVsZW1lbnRSZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gTGF5b3V0UmVjdCgpOyB9
CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBNZW51TGlzdFBvcHVwUm9sZTsgfQogCi0gICAgdmlydHVhbCBib29sIGlzVmlz
aWJsZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBwcmVzcygpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZHJlbigpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIGJvb2wgaXNWaXNpYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHBy
ZXNzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkcmVuKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZCgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgQWNjZXNzaWJpbGl0eU1lbnVMaXN0T3B0aW9uKiBtZW51TGlzdE9wdGlvbkFj
Y2Vzc2liaWxpdHlPYmplY3QoSFRNTEVsZW1lbnQqKSBjb25zdDsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNb2NrT2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNb2NrT2JqZWN0LmgKaW5k
ZXggNThjMzk2NC4uOTg1YTIxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TW9ja09iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU1vY2tPYmplY3QuaApAQCAtMzcsMjAgKzM3LDIwIEBAIHBy
b3RlY3RlZDoKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5TW9ja09iamVjdCgp
OwogICAgIAotICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0KCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9wYXJlbnQ7IH0KKyAgICB2aXJ0dWFsIEFjY2Vzc2li
aWxpdHlPYmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcGFy
ZW50OyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFBhcmVudChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBw
YXJlbnQpIHsgbV9wYXJlbnQgPSBwYXJlbnQ7IH07Ci0gICAgdmlydHVhbCBib29sIGlzRW5hYmxl
ZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNF
bmFibGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiBwcm90ZWN0ZWQ6CiAg
ICAgQWNjZXNzaWJpbGl0eU9iamVjdCogbV9wYXJlbnQ7CiAKICAgICAvLyBNdXN0IGJlIGNhbGxl
ZCB3aGVuIHRoZSBwYXJlbnQgb2JqZWN0IGNsZWFycyBpdHMgY2hpbGRyZW4uCi0gICAgdmlydHVh
bCB2b2lkIGRldGFjaEZyb21QYXJlbnQoKSBPVkVSUklERSB7IG1fcGFyZW50ID0gMDsgfQorICAg
IHZpcnR1YWwgdm9pZCBkZXRhY2hGcm9tUGFyZW50KCkgb3ZlcnJpZGUgeyBtX3BhcmVudCA9IDA7
IH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgaXNNb2NrT2JqZWN0KCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc01vY2tPYmplY3QoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgY29tcHV0
ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJv
b2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCBvdmVycmlkZTsKIH07IAog
CiBBQ0NFU1NJQklMSVRZX09CSkVDVF9UWVBFX0NBU1RTKEFjY2Vzc2liaWxpdHlNb2NrT2JqZWN0
LCBpc01vY2tPYmplY3QoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAppbmRleCBkZmE3OWZkLi4zNWMyMjkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5oCkBAIC02Miw5NiArNjIsOTYgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0PiBjcmVhdGUoTm9kZSopOwogICAgIHZpcnR1YWwg
fkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgaW5pdCgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBpbml0KCkgb3ZlcnJpZGU7CiAgICAgCi0gICAgdmly
dHVhbCBib29sIGlzQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QoKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiB0cnVlOyB9Ci0KLSAgICB2aXJ0dWFsIGJvb2wgY2FudmFzSGFzRmFsbGJhY2tDb250ZW50
KCkgY29uc3QgT1ZFUlJJREU7Ci0KLSAgICB2aXJ0dWFsIGJvb2wgaXNBbmNob3IoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNDb250cm9sKCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBib29sIGlzRmllbGRzZXQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IGJvb2wgaXNHcm91cCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc0hlYWRp
bmcoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNIb3ZlcmVkKCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzSW1hZ2UoKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNJbWFnZUJ1dHRvbigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgYm9vbCBpc0lucHV0SW1hZ2UoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
aXNMaW5rKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzTWVudSgpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc01lbnVCYXIoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgaXNNZW51QnV0dG9uKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBib29sIGlzTWVudUl0ZW0oKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
aXNNZW51UmVsYXRlZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc011bHRp
U2VsZWN0YWJsZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAg
dmlydHVhbCBib29sIGNhbnZhc0hhc0ZhbGxiYWNrQ29udGVudCgpIGNvbnN0IG92ZXJyaWRlOwor
CisgICAgdmlydHVhbCBib29sIGlzQW5jaG9yKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBib29sIGlzQ29udHJvbCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc0Zp
ZWxkc2V0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzR3JvdXAoKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNIZWFkaW5nKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIGlzSG92ZXJlZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgYm9vbCBpc0ltYWdlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzSW1h
Z2VCdXR0b24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNJbnB1dEltYWdl
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzTGluaygpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgYm9vbCBpc01lbnUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgaXNNZW51QmFyKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlz
TWVudUJ1dHRvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc01lbnVJdGVt
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzTWVudVJlbGF0ZWQoKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNdWx0aVNlbGVjdGFibGUoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVDaGVja2JveE9yUmFkaW8oKSBjb25z
dDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRDb250cm9sKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgYm9vbCBpc1Byb2dyZXNzSW5kaWNhdG9yKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
aXNTbGlkZXIoKSBjb25zdCBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgYm9vbCBpc0NoZWNrZWQo
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkKCkgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzSW5kZXRlcm1pbmF0ZSgpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNzZWQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgaXNSZWFkT25seSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBp
c1JlcXVpcmVkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzUmVx
dWlyZWRBdHRyaWJ1dGUoKSBjb25zdCBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgYm9vbCBjYW5T
ZXRTZWxlY3RlZEF0dHJpYnV0ZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBp
c05hdGl2ZUltYWdlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzTmF0aXZl
VGV4dENvbnRyb2woKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29y
ZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jlc3NJbmRp
Y2F0b3IoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1NsaWRlcigpIGNvbnN0IG92ZXJy
aWRlOworCisgICAgdmlydHVhbCBib29sIGlzQ2hlY2tlZCgpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBpc0VuYWJsZWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJv
b2wgaXNJbmRldGVybWluYXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlz
UHJlc3NlZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWRPbmx5KCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzUmVxdWlyZWQoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNSZXF1aXJlZEF0dHJpYnV0ZSgpIGNvbnN0
IG92ZXJyaWRlOworCisgICAgdmlydHVhbCBib29sIGNhblNldFNlbGVjdGVkQXR0cmlidXRlKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNldE5vZGUoTm9kZSopOwotICAgIHZpcnR1YWwg
Tm9kZSogbm9kZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fbm9kZTsgfQotICAgIHZpcnR1
YWwgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3QgT1ZFUlJJREU7Ci0KLSAgICB2aXJ0dWFsIGJv
b2wgY2FuU2V0Rm9jdXNBdHRyaWJ1dGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGlu
dCBoZWFkaW5nTGV2ZWwoKSBjb25zdCBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgU3RyaW5nIHZh
bHVlRGVzY3JpcHRpb24oKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGZsb2F0IHZhbHVl
Rm9yUmFuZ2UoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGZsb2F0IG1heFZhbHVlRm9y
UmFuZ2UoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGZsb2F0IG1pblZhbHVlRm9yUmFu
Z2UoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGZsb2F0IHN0ZXBWYWx1ZUZvclJhbmdl
KCkgY29uc3QgT1ZFUlJJREU7Ci0KLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHNl
bGVjdGVkUmFkaW9CdXR0b24oKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlP
YmplY3QqIHNlbGVjdGVkVGFiSXRlbSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgQWNjZXNzaWJp
bGl0eUJ1dHRvblN0YXRlIGNoZWNrYm94T3JSYWRpb1ZhbHVlKCkgY29uc3QgT1ZFUlJJREU7Ci0K
LSAgICB2aXJ0dWFsIHVuc2lnbmVkIGhpZXJhcmNoaWNhbExldmVsKCkgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBTdHJpbmcgdGV4dFVuZGVyRWxlbWVudChBY2Nlc3NpYmlsaXR5VGV4dFVu
ZGVyRWxlbWVudE1vZGUgPSBBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVudE1vZGUoKSkgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgYWNjZXNzaWJpbGl0eURlc2NyaXB0aW9u
KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgaGVscFRleHQoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyB0aXRsZSgpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgU3RyaW5nIHRleHQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBzdHJpbmdWYWx1ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjb2xvclZh
bHVlKGludCYgciwgaW50JiBnLCBpbnQmIGIpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
U3RyaW5nIGFyaWFMYWJlbGVkQnlBdHRyaWJ1dGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgaGFzQXR0cmlidXRlc1JlcXVpcmVkRm9ySW5jbHVzaW9uKCkgY29uc3QgT1ZFUlJJ
REUgRklOQUw7Ci0KLSAgICB2aXJ0dWFsIEVsZW1lbnQqIGFjdGlvbkVsZW1lbnQoKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIE5vZGUqIG5vZGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX25vZGU7IH0KKyAgICB2aXJ0dWFsIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0IG92ZXJy
aWRlOworCisgICAgdmlydHVhbCBib29sIGNhblNldEZvY3VzQXR0cmlidXRlKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBpbnQgaGVhZGluZ0xldmVsKCkgY29uc3Qgb3ZlcnJpZGU7CisK
KyAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBmbG9hdCB2YWx1ZUZvclJhbmdlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBmbG9hdCBtYXhWYWx1ZUZvclJhbmdlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBmbG9hdCBtaW5WYWx1ZUZvclJhbmdlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBm
bG9hdCBzdGVwVmFsdWVGb3JSYW5nZSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBzZWxlY3RlZFJhZGlvQnV0dG9uKCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBzZWxlY3RlZFRhYkl0ZW0oKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlCdXR0b25TdGF0ZSBjaGVja2JveE9yUmFkaW9WYWx1
ZSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdmlydHVhbCB1bnNpZ25lZCBoaWVyYXJjaGljYWxM
ZXZlbCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIHRleHRVbmRlckVsZW1l
bnQoQWNjZXNzaWJpbGl0eVRleHRVbmRlckVsZW1lbnRNb2RlID0gQWNjZXNzaWJpbGl0eVRleHRV
bmRlckVsZW1lbnRNb2RlKCkpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIGFj
Y2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3Ry
aW5nIGhlbHBUZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgdGl0bGUo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyB0ZXh0KCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBTdHJpbmcgc3RyaW5nVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgY29sb3JWYWx1ZShpbnQmIHIsIGludCYgZywgaW50JiBiKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBhcmlhTGFiZWxlZEJ5QXR0cmlidXRlKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGhhc0F0dHJpYnV0ZXNSZXF1aXJlZEZvcklu
Y2x1c2lvbigpIGNvbnN0IG92ZXJyaWRlIEZJTkFMOworCisgICAgdmlydHVhbCBFbGVtZW50KiBh
Y3Rpb25FbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgRWxlbWVudCogbW91c2VCdXR0b25M
aXN0ZW5lcigpIGNvbnN0OwotICAgIHZpcnR1YWwgRWxlbWVudCogYW5jaG9yRWxlbWVudCgpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgRWxlbWVudCogYW5jaG9yRWxlbWVudCgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG1lbnVGb3JNZW51QnV0dG9uKCkg
Y29uc3Q7CiAgICAKICAgICB2aXJ0dWFsIHZvaWQgY2hhbmdlVmFsdWVCeVBlcmNlbnQoZmxvYXQg
cGVyY2VudENoYW5nZSk7CiAgCi0gICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmaXJz
dENoaWxkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBsYXN0Q2hpbGQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlP
YmplY3QqIHByZXZpb3VzU2libGluZygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgQWNj
ZXNzaWJpbGl0eU9iamVjdCogbmV4dFNpYmxpbmcoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0SWZFeGlzdHMoKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIGZpcnN0Q2hp
bGQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIGxh
c3RDaGlsZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVj
dCogcHJldmlvdXNTaWJsaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBuZXh0U2libGluZygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
QWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3RJZkV4aXN0cygpIGNvbnN0
IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGRldGFjaChBY2Nlc3NpYmlsaXR5RGV0YWNo
bWVudFR5cGUsIEFYT2JqZWN0Q2FjaGUqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2hp
bGRyZW5DaGFuZ2VkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFjY2Vzc2li
aWxpdHlSb2xlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRldGFjaChBY2Nlc3NpYmls
aXR5RGV0YWNobWVudFR5cGUsIEFYT2JqZWN0Q2FjaGUqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgY2hpbGRyZW5DaGFuZ2VkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUFjY2Vzc2liaWxpdHlSb2xlKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgaW5jcmVt
ZW50KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRlY3JlbWVudCgpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBpbmNyZW1lbnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGVjcmVtZW50KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIExheW91dFJlY3QgZWxlbWVudFJl
Y3QoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgZWxlbWVudFJlY3Qo
KSBjb25zdCBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIEFjY2Vzc2liaWxpdHlSb2xlIG1f
YXJpYVJvbGU7CkBAIC0xNjEsMTkgKzE2MSwxOSBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2lu
aXRpYWxpemVkOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNEZXRhY2hlZCgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuICFtX25vZGU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNEZXRhY2hl
ZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICFtX25vZGU7IH0KIAogICAgIHZpcnR1YWwgQWNj
ZXNzaWJpbGl0eVJvbGUgZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKTsKLSAgICB2aXJ0dWFs
IHZvaWQgYWRkQ2hpbGRyZW4oKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQo
QWNjZXNzaWJpbGl0eU9iamVjdCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRD
aGlsZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgdW5zaWduZWQgaW5kZXgpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBhZGRDaGlsZHJlbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBh
ZGRDaGlsZChBY2Nlc3NpYmlsaXR5T2JqZWN0Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IGluc2VydENoaWxkKEFjY2Vzc2liaWxpdHlPYmplY3QqLCB1bnNpZ25lZCBpbmRleCkgb3ZlcnJp
ZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSBhcmlhUm9sZUF0dHJpYnV0ZSgpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIGFyaWFSb2xlQXR0cmlidXRlKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgZGV0ZXJtaW5lQXJpYVJvbGVB
dHRyaWJ1dGUoKSBjb25zdDsKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByZW1hcEFyaWFSb2xlRHVl
VG9QYXJlbnQoQWNjZXNzaWJpbGl0eVJvbGUpIGNvbnN0OwogICAgIGJvb2wgaGFzQ29udGVudEVk
aXRhYmxlQXR0cmlidXRlU2V0KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGlzRGVzY2VuZGFu
dE9mQmFycmVuUGFyZW50KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlzRGVz
Y2VuZGFudE9mQmFycmVuUGFyZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBhbHRlclNs
aWRlclZhbHVlKGJvb2wgaW5jcmVhc2UpOwogICAgIHZvaWQgY2hhbmdlVmFsdWVCeVN0ZXAoYm9v
bCBpbmNyZWFzZSk7CiAgICAgLy8gVGhpcyByZXR1cm5zIHRydWUgaWYgaXQncyBmb2N1c2FibGUg
YnV0IGl0J3Mgbm90IGNvbnRlbnQgZWRpdGFibGUgYW5kIGl0J3Mgbm90IGEgY29udHJvbCBvciBB
UklBIGNvbnRyb2wuCkBAIC0xODMsOCArMTgzLDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgYXJp
YUxhYmVsZWRCeUVsZW1lbnRzKFZlY3RvcjxFbGVtZW50Kj4mIGVsZW1lbnRzKSBjb25zdDsKICAg
ICBTdHJpbmcgYWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uRm9yRWxlbWVudHMoVmVjdG9yPEVsZW1l
bnQqPiAmZWxlbWVudHMpIGNvbnN0OwogICAgIHZvaWQgZWxlbWVudHNGcm9tQXR0cmlidXRlKFZl
Y3RvcjxFbGVtZW50Kj4mIGVsZW1lbnRzLCBjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Q7Ci0g
ICAgdmlydHVhbCBMYXlvdXRSZWN0IGJvdW5kaW5nQm94UmVjdCgpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGFyaWFEZXNjcmliZWRCeUF0dHJpYnV0ZSgpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBib3VuZGluZ0JveFJlY3QoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBhcmlhRGVzY3JpYmVkQnlBdHRyaWJ1dGUoKSBjb25z
dCBvdmVycmlkZTsKICAgICAKICAgICBFbGVtZW50KiBtZW51RWxlbWVudEZvck1lbnVCdXR0b24o
KSBjb25zdDsKICAgICBFbGVtZW50KiBtZW51SXRlbUVsZW1lbnRGb3JNZW51KCkgY29uc3Q7CkBA
IC0xOTMsMTQgKzE5MywxNCBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIE5vZGUqIG1fbm9k
ZTsKIAotICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NpYmlsaXR5VGV4dChWZWN0b3I8QWNjZXNzaWJp
bGl0eVRleHQ+JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGFjY2Vzc2liaWxpdHlUZXh0
KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
dGl0bGVFbGVtZW50VGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+JikgY29uc3Q7CiAgICAg
dm9pZCBhbHRlcm5hdGl2ZVRleHQoVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYpIGNvbnN0Owog
ICAgIHZvaWQgdmlzaWJsZVRleHQoVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYpIGNvbnN0Owog
ICAgIHZvaWQgaGVscFRleHQoVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYpIGNvbnN0OwogICAg
IFN0cmluZyBhbHRlcm5hdGl2ZVRleHRGb3JXZWJBcmVhKCkgY29uc3Q7CiAgICAgdm9pZCBhcmlh
TGFiZWxlZEJ5VGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRleHQ+JikgY29uc3Q7Ci0gICAgdmly
dHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgYm9vbCB1c2VzQWx0VGFnRm9yVGV4dENvbXB1dGF0aW9uKCkgY29uc3Q7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlQcm9ncmVzc0luZGljYXRvci5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuaAppbmRleCA3ZGEzZjI0Li4xZWRmZThhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlQcm9n
cmVzc0luZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVByb2dyZXNzSW5kaWNhdG9yLmgKQEAgLTQ2LDEzICs0NiwxMyBAQCBwdWJsaWM6CiAj
ZW5kaWYKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1
ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFByb2dyZXNzSW5kaWNhdG9yUm9sZTsgfQorICAg
IHZpcnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gUHJvZ3Jlc3NJbmRpY2F0b3JSb2xlOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNQcm9n
cmVzc0luZGljYXRvcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgaXNQcm9ncmVzc0luZGljYXRvcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KIAotICAgIHZpcnR1YWwgZmxvYXQgdmFsdWVGb3JSYW5nZSgpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgZmxvYXQgbWF4VmFsdWVGb3JSYW5nZSgpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgZmxvYXQgbWluVmFsdWVGb3JSYW5nZSgpIGNvbnN0IE9WRVJSSURFOworICAg
IHZpcnR1YWwgZmxvYXQgdmFsdWVGb3JSYW5nZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgZmxvYXQgbWF4VmFsdWVGb3JSYW5nZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
ZmxvYXQgbWluVmFsdWVGb3JSYW5nZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAjaWYgRU5BQkxFKFBS
T0dSRVNTX0VMRU1FTlQpCiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVByb2dyZXNzSW5kaWNh
dG9yKFJlbmRlclByb2dyZXNzKik7CkBAIC02Myw3ICs2Myw3IEBAIHByaXZhdGU6CiAgICAgSFRN
TE1ldGVyRWxlbWVudCogbWV0ZXJFbGVtZW50KCkgY29uc3Q7CiAjZW5kaWYKICAgICAKLSAgICB2
aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dCBvdmVycmlkZTsKIH07CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAppbmRleCAxMWY5OTc1Li4wYjAyMGZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuaApAQCAtNjMsMTY0ICs2MywxNjQgQEAgcHVibGljOgogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q+IGNyZWF0ZShSZW5kZXJP
YmplY3QqKTsKICAgICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCk7CiAgICAg
Ci0gICAgdmlydHVhbCBib29sIGlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmly
dHVhbCB2b2lkIGluaXQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaW5pdCgpIG92ZXJy
aWRlOwogICAgIAotICAgIHZpcnR1YWwgYm9vbCBpc0F0dGFjaG1lbnQoKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNGaWxlVXBsb2FkQnV0dG9uKCkgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBib29sIGlzQXR0YWNobWVudCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgYm9vbCBpc0ZpbGVVcGxvYWRCdXR0b24oKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZp
cnR1YWwgYm9vbCBpc1NlbGVjdGVkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29s
IGlzRm9jdXNlZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc0xvYWRlZCgp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc09mZlNjcmVlbigpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBib29sIGlzVW52aXNpdGVkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBib29sIGlzVmlzaXRlZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc0xp
bmtlZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBoYXNCb2xkRm9udCgpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBoYXNJdGFsaWNGb250KCkgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBib29sIGhhc1BsYWluVGV4dCgpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgYm9vbCBoYXNTYW1lRm9udChSZW5kZXJPYmplY3QqKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgaGFzU2FtZUZvbnRDb2xvcihSZW5kZXJPYmplY3QqKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaGFzU2FtZVN0eWxlKFJlbmRlck9iamVjdCop
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBoYXNVbmRlcmxpbmUoKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RlZCgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgYm9vbCBpc0ZvY3VzZWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IGJvb2wgaXNMb2FkZWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNPZmZT
Y3JlZW4oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFkT25seSgpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1VudmlzaXRlZCgpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1Zpc2l0ZWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNMaW5rZWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
aGFzQm9sZEZvbnQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzSXRhbGlj
Rm9udCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBoYXNQbGFpblRleHQoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzU2FtZUZvbnQoUmVuZGVyT2JqZWN0
KikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGhhc1NhbWVGb250Q29sb3IoUmVu
ZGVyT2JqZWN0KikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGhhc1NhbWVTdHls
ZShSZW5kZXJPYmplY3QqKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzVW5k
ZXJsaW5lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0VGV4dFJh
bmdlQXR0cmlidXRlcygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRW
YWx1ZUF0dHJpYnV0ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRF
eHBhbmRlZEF0dHJpYnV0ZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjYW5T
ZXRUZXh0UmFuZ2VBdHRyaWJ1dGVzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IGNhblNldFZhbHVlQXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IGNhblNldEV4cGFuZGVkQXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0QWNjZXNzaWJsZU5hbWUoY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHNldEFjY2Vzc2libGVOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYpIG92
ZXJyaWRlOwogICAgIAogICAgIC8vIFByb3ZpZGVzIGNvbW1vbiBsb2dpYyB1c2VkIGJ5IGFsbCBl
bGVtZW50cyB3aGVuIGRldGVybWluaW5nIGlzSWdub3JlZC4KLSAgICB2aXJ0dWFsIEFjY2Vzc2li
aWxpdHlPYmplY3RJbmNsdXNpb24gZGVmYXVsdE9iamVjdEluY2x1c2lvbigpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBkZWZhdWx0T2Jq
ZWN0SW5jbHVzaW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCBpbnQgbGF5
b3V0Q291bnQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGRvdWJsZSBlc3RpbWF0ZWRM
b2FkaW5nUHJvZ3Jlc3MoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGludCBsYXlvdXRD
b3VudCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgZG91YmxlIGVzdGltYXRlZExvYWRp
bmdQcm9ncmVzcygpIGNvbnN0IG92ZXJyaWRlOwogICAgIAotICAgIHZpcnR1YWwgQWNjZXNzaWJp
bGl0eU9iamVjdCogZmlyc3RDaGlsZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgQWNj
ZXNzaWJpbGl0eU9iamVjdCogbGFzdENoaWxkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwcmV2aW91c1NpYmxpbmcoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIG5leHRTaWJsaW5nKCkgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3QoKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9i
amVjdElmRXhpc3RzKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBvYnNlcnZhYmxlT2JqZWN0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIGxpbmtlZFVJRWxlbWVudHMoQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGV4cG9zZXNUaXRsZVVJRWxlbWVudCgpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogdGl0bGVVSUVsZW1l
bnQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIGNv
cnJlc3BvbmRpbmdDb250cm9sRm9yTGFiZWxFbGVtZW50KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JyZXNwb25kaW5nTGFiZWxGb3JDb250cm9s
RWxlbWVudCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVj
dCogZmlyc3RDaGlsZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0
eU9iamVjdCogbGFzdENoaWxkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBwcmV2aW91c1NpYmxpbmcoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIG5leHRTaWJsaW5nKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnRPYmplY3QoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdElmRXhp
c3RzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YnNlcnZhYmxlT2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGxpbmtl
ZFVJRWxlbWVudHMoQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIGV4cG9zZXNUaXRsZVVJRWxlbWVudCgpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogdGl0bGVVSUVsZW1lbnQoKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcnJlc3BvbmRp
bmdDb250cm9sRm9yTGFiZWxFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JyZXNwb25kaW5nTGFiZWxGb3JDb250cm9sRWxlbWVudCgp
IGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGFyaWFPd25zRWxlbWVudHMoQWNj
ZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIHN1cHBvcnRzQVJJQU93bnMoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
aXNQcmVzZW50YXRpb25hbENoaWxkT2ZBcmlhUm9sZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgYm9vbCBhcmlhUm9sZUhhc1ByZXNlbnRhdGlvbmFsQ2hpbGRyZW4oKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYXJpYU93bnNFbGVtZW50cyhBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0b3ImKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNB
UklBT3ducygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlv
bmFsQ2hpbGRPZkFyaWFSb2xlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGFy
aWFSb2xlSGFzUHJlc2VudGF0aW9uYWxDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIAog
ICAgIC8vIFNob3VsZCBiZSBjYWxsZWQgb24gdGhlIHJvb3QgYWNjZXNzaWJpbGl0eSBvYmplY3Qg
dG8ga2ljayBvZmYgYSBoaXQgdGVzdC4KLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IGFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBvaW50JikgY29uc3QgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBhY2Nlc3NpYmlsaXR5SGl0VGVzdChjb25z
dCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBFbGVtZW50KiBhbmNo
b3JFbGVtZW50KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBFbGVtZW50KiBhbmNob3JF
bGVtZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCBMYXlvdXRSZWN0IGJv
dW5kaW5nQm94UmVjdCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBl
bGVtZW50UmVjdCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgSW50UG9pbnQgY2xpY2tQ
b2ludCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBib3VuZGluZ0JveFJlY3Qo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgZWxlbWVudFJlY3QoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEludFBvaW50IGNsaWNrUG9pbnQoKSBvdmVycmlk
ZTsKICAgICAKICAgICB2b2lkIHNldFJlbmRlcmVyKFJlbmRlck9iamVjdCopOwotICAgIHZpcnR1
YWwgUmVuZGVyT2JqZWN0KiByZW5kZXJlcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fcmVu
ZGVyZXI7IH0KKyAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogcmVuZGVyZXIoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX3JlbmRlcmVyOyB9CiAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIHJl
bmRlckJveE1vZGVsT2JqZWN0KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBOb2RlKiBub2RlKCkgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBOb2RlKiBub2RlKCkgY29uc3Qgb3ZlcnJpZGU7CiAK
LSAgICB2aXJ0dWFsIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBSZW5kZXJW
aWV3KiB0b3BSZW5kZXJlcigpIGNvbnN0OwogICAgIFJlbmRlclRleHRDb250cm9sKiB0ZXh0Q29u
dHJvbCgpIGNvbnN0OwogICAgIEhUTUxMYWJlbEVsZW1lbnQqIGxhYmVsRWxlbWVudENvbnRhaW5l
cigpIGNvbnN0OwogICAgIAotICAgIHZpcnR1YWwgVVJMIHVybCgpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgUGxhaW5UZXh0UmFuZ2Ugc2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0aW9uKCkgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgc3RyaW5nVmFsdWUoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBoZWxwVGV4dCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgU3RyaW5nIHRleHRVbmRlckVsZW1lbnQoQWNjZXNzaWJpbGl0eVRleHRVbmRlckVsZW1lbnRN
b2RlID0gQWNjZXNzaWJpbGl0eVRleHRVbmRlckVsZW1lbnRNb2RlKCkpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgU3RyaW5nIHRleHQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IGludCB0ZXh0TGVuZ3RoKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgc2Vs
ZWN0ZWRUZXh0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJp
bmcmIGFjY2Vzc0tleSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgVVJMIHVybCgpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGxhaW5UZXh0UmFuZ2Ugc2VsZWN0ZWRUZXh0UmFu
Z2UoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0
aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgc3RyaW5nVmFsdWUoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBoZWxwVGV4dCgpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgU3RyaW5nIHRleHRVbmRlckVsZW1lbnQoQWNjZXNzaWJpbGl0eVRl
eHRVbmRlckVsZW1lbnRNb2RlID0gQWNjZXNzaWJpbGl0eVRleHRVbmRlckVsZW1lbnRNb2RlKCkp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIHRleHQoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGludCB0ZXh0TGVuZ3RoKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBTdHJpbmcgc2VsZWN0ZWRUZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBj
b25zdCBBdG9taWNTdHJpbmcmIGFjY2Vzc0tleSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgY29uc3QgU3RyaW5nJiBhY3Rpb25WZXJiKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBXaWRnZXQq
IHdpZGdldCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2lkZ2V0KiB3aWRnZXRGb3JB
dHRhY2htZW50VmlldygpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgV2lkZ2V0KiB3aWRn
ZXQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdpZGdldCogd2lkZ2V0Rm9yQXR0YWNo
bWVudFZpZXcoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RG9jdW1lbnRM
aW5rcyhBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKTsKLSAgICB2aXJ0dWFsIEZyYW1lVmll
dyogZG9jdW1lbnRGcmFtZVZpZXcoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEZyYW1l
VmlldyogZG9jdW1lbnRGcmFtZVZpZXcoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwg
dm9pZCBjbGVhckNoaWxkcmVuKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNo
aWxkcmVuSWZOZWNlc3NhcnkoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJDaGls
ZHJlbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDaGlsZHJlbklmTmVjZXNz
YXJ5KCkgb3ZlcnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHNldEZvY3VzZWQoYm9vbCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkVGV4dFJhbmdlKGNvbnN0IFBs
YWluVGV4dFJhbmdlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0
IFN0cmluZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZFJvd3MoQWNj
ZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBBY2Nlc3Np
YmlsaXR5T3JpZW50YXRpb24gb3JpZW50YXRpb24oKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0Rm9jdXNlZChib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
U2VsZWN0ZWRUZXh0UmFuZ2UoY29uc3QgUGxhaW5UZXh0UmFuZ2UmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHNldFNlbGVjdGVkUm93cyhBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPcmllbnRhdGlvbiBvcmllbnRhdGlvbigp
IGNvbnN0IG92ZXJyaWRlOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goQWNjZXNzaWJp
bGl0eURldGFjaG1lbnRUeXBlLCBBWE9iamVjdENhY2hlKikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHRleHRDaGFuZ2VkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGFkZENoaWxk
cmVuKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RlZENoaWxkcmVuKEFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB2aXNpYmxlQ2hp
bGRyZW4oQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHRhYkNoaWxkcmVuKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRGb2N1c0FjdGl2ZURlc2NlbmRhbnQoKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50
VHlwZSwgQVhPYmplY3RDYWNoZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB0ZXh0Q2hh
bmdlZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZHJlbigpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2VsZWN0ZWRDaGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3ImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdmlzaWJsZUNoaWxkcmVuKEFjY2Vzc2li
aWxpdHlDaGlsZHJlblZlY3RvciYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB0YWJDaGls
ZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkRm9jdXNBY3RpdmVEZXNjZW5kYW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
Ym9vbCBzaG91bGROb3RpZnlBY3RpdmVEZXNjZW5kYW50KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBhY3RpdmVEZXNjZW5kYW50KCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGhhbmRsZUFjdGl2ZURlc2NlbmRhbnRDaGFuZ2VkKCkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUFyaWFFeHBhbmRlZENoYW5nZWQoKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIGFjdGl2ZURlc2NlbmRhbnQoKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQWN0aXZlRGVzY2VuZGFudENoYW5n
ZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQXJpYUV4cGFuZGVkQ2hhbmdl
ZCgpIG92ZXJyaWRlOwogICAgIAotICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uUmFuZ2Ugdmlz
aWJsZVBvc2l0aW9uUmFuZ2UoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFZpc2libGVQ
b3NpdGlvblJhbmdlIHZpc2libGVQb3NpdGlvblJhbmdlRm9yTGluZSh1bnNpZ25lZCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJbnRSZWN0IGJvdW5kc0ZvclZpc2libGVQb3NpdGlvblJh
bmdlKGNvbnN0IFZpc2libGVQb3NpdGlvblJhbmdlJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHNldFNlbGVjdGVkVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBv
c2l0aW9uUmFuZ2UmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNB
UklBRmxvd1RvKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGFyaWFGbG93VG9F
bGVtZW50cyhBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgYXJpYUhhc1BvcHVwKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBWaXNpYmxlUG9zaXRpb25SYW5nZSB2aXNpYmxlUG9zaXRpb25SYW5nZSgpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uUmFuZ2UgdmlzaWJsZVBvc2l0aW9uUmFu
Z2VGb3JMaW5lKHVuc2lnbmVkKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEludFJlY3Qg
Ym91bmRzRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZ2Um
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRWaXNpYmxlUG9z
aXRpb25SYW5nZShjb25zdCBWaXNpYmxlUG9zaXRpb25SYW5nZSYpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFGbG93VG8oKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgYXJpYUZsb3dUb0VsZW1lbnRzKEFjY2Vzc2liaWxpdHlDaGlsZHJlblZl
Y3RvciYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBhcmlhSGFzUG9wdXAoKSBj
b25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcm9wcGluZygp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc0FSSUFHcmFiYmVkKCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGRldGVybWluZUFSSUFEcm9wRWZmZWN0cyhWZWN0b3I8U3Ry
aW5nPiYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcm9wcGluZygp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFEcmFnZ2luZygp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc0FSSUFHcmFiYmVkKCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGRldGVybWluZUFSSUFEcm9wRWZmZWN0cyhWZWN0b3I8U3Ry
aW5nPiYpIG92ZXJyaWRlOwogICAgIAotICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uIHZpc2li
bGVQb3NpdGlvbkZvclBvaW50KGNvbnN0IEludFBvaW50JikgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgodW5zaWduZWQg
aW5kZXhWYWx1ZSwgYm9vbCBsYXN0SW5kZXhPSykgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBpbnQgaW5kZXgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9yUG9pbnQoY29uc3QgSW50
UG9pbnQmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiB2aXNp
YmxlUG9zaXRpb25Gb3JJbmRleCh1bnNpZ25lZCBpbmRleFZhbHVlLCBib29sIGxhc3RJbmRleE9L
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGludCBpbmRleChjb25zdCBWaXNpYmxlUG9z
aXRpb24mKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uIHZp
c2libGVQb3NpdGlvbkZvckluZGV4KGludCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBp
bnQgaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJikgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvc2l0aW9uRm9y
SW5kZXgoaW50KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGludCBpbmRleEZvclZpc2li
bGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKSBjb25zdCBvdmVycmlkZTsKIAotICAg
IHZpcnR1YWwgdm9pZCBsaW5lQnJlYWtzKFZlY3RvcjxpbnQ+JikgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBQbGFpblRleHRSYW5nZSBkb0FYUmFuZ2VGb3JMaW5lKHVuc2lnbmVkKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFBsYWluVGV4dFJhbmdlIGRvQVhSYW5nZUZvckluZGV4
KHVuc2lnbmVkKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbGluZUJyZWFrcyhW
ZWN0b3I8aW50PiYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGxhaW5UZXh0UmFuZ2Ug
ZG9BWFJhbmdlRm9yTGluZSh1bnNpZ25lZCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQ
bGFpblRleHRSYW5nZSBkb0FYUmFuZ2VGb3JJbmRleCh1bnNpZ25lZCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgCi0gICAgdmlydHVhbCBTdHJpbmcgZG9BWFN0cmluZ0ZvclJhbmdlKGNvbnN0IFBsYWlu
VGV4dFJhbmdlJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJbnRSZWN0IGRvQVhCb3Vu
ZHNGb3JSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgU3RyaW5nIGRvQVhTdHJpbmdGb3JSYW5nZShjb25zdCBQbGFpblRleHRSYW5nZSYpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW50UmVjdCBkb0FYQm91bmRzRm9yUmFuZ2UoY29u
c3QgUGxhaW5UZXh0UmFuZ2UmKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIFN0
cmluZyBzdHJpbmdWYWx1ZUZvck1TQUEoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0
cmluZyBzdHJpbmdSb2xlRm9yTVNBQSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3Ry
aW5nIG5hbWVGb3JNU0FBKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgZGVz
Y3JpcHRpb25Gb3JNU0FBKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBBY2Nlc3NpYmls
aXR5Um9sZSByb2xlVmFsdWVGb3JNU0FBKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBT
dHJpbmcgc3RyaW5nVmFsdWVGb3JNU0FBKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBT
dHJpbmcgc3RyaW5nUm9sZUZvck1TQUEoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0
cmluZyBuYW1lRm9yTVNBQSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIGRl
c2NyaXB0aW9uRm9yTVNBQSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQWNjZXNzaWJp
bGl0eVJvbGUgcm9sZVZhbHVlRm9yTVNBQSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVh
bCBTdHJpbmcgcGFzc3dvcmRGaWVsZFZhbHVlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBTdHJpbmcgcGFzc3dvcmRGaWVsZFZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByb3RlY3Rl
ZDoKICAgICBSZW5kZXJPYmplY3QqIG1fcmVuZGVyZXI7CiAgICAgCiAgICAgdm9pZCBzZXRSZW5k
ZXJPYmplY3QoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikgeyBtX3JlbmRlcmVyID0gcmVuZGVyZXI7
IH0KICAgICBib29sIG5lZWRzVG9VcGRhdGVDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIG1fY2hp
bGRyZW5EaXJ0eTsgfQotICAgIHZpcnR1YWwgU2Nyb2xsYWJsZUFyZWEqIGdldFNjcm9sbGFibGVB
cmVhSWZTY3JvbGxhYmxlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNjcm9s
bFRvKGNvbnN0IEludFBvaW50JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBTY3JvbGxh
YmxlQXJlYSogZ2V0U2Nyb2xsYWJsZUFyZWFJZlNjcm9sbGFibGUoKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsVG8oY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlk
ZTsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgaXNEZXRhY2hlZCgpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuICFtX3JlbmRlcmVyOyB9CisgICAgdmlydHVhbCBib29sIGlzRGV0YWNoZWQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiAhbV9yZW5kZXJlcjsgfQogCi0gICAgdmlydHVhbCBBY2Nlc3Np
YmlsaXR5Um9sZSBkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSgpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUgZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJv
bGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0ln
bm9yZWQoKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGFyaWFMaXN0Ym94
U2VsZWN0ZWRDaGlsZHJlbihBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKTsKQEAgLTIzMSw4
ICsyMzEsOCBAQCBwcml2YXRlOgogICAgIFBsYWluVGV4dFJhbmdlIGFyaWFTZWxlY3RlZFRleHRS
YW5nZSgpIGNvbnN0OwogICAgIEVsZW1lbnQqIHJvb3RFZGl0YWJsZUVsZW1lbnRGb3JQb3NpdGlv
bihjb25zdCBQb3NpdGlvbiYpIGNvbnN0OwogICAgIGJvb2wgbm9kZUlzVGV4dENvbnRyb2woY29u
c3QgTm9kZSopIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1RvVXBkYXRlQ2hpbGRy
ZW4oKSBPVkVSUklERSB7IG1fY2hpbGRyZW5EaXJ0eSA9IHRydWU7IH0KLSAgICB2aXJ0dWFsIFBh
dGggZWxlbWVudFBhdGgoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVl
ZHNUb1VwZGF0ZUNoaWxkcmVuKCkgb3ZlcnJpZGUgeyBtX2NoaWxkcmVuRGlydHkgPSB0cnVlOyB9
CisgICAgdmlydHVhbCBQYXRoIGVsZW1lbnRQYXRoKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCiAg
ICAgYm9vbCBpc1RhYkl0ZW1TZWxlY3RlZCgpIGNvbnN0OwogICAgIExheW91dFJlY3QgY2hlY2ti
b3hPclJhZGlvUmVjdCgpIGNvbnN0OwpAQCAtMjQwLDcgKzI0MCw3IEBAIHByaXZhdGU6CiAgICAg
QWNjZXNzaWJpbGl0eU9iamVjdCogaW50ZXJuYWxMaW5rRWxlbWVudCgpIGNvbnN0OwogICAgIEFj
Y2Vzc2liaWxpdHlPYmplY3QqIGFjY2Vzc2liaWxpdHlJbWFnZU1hcEhpdFRlc3QoSFRNTEFyZWFF
bGVtZW50KiwgY29uc3QgSW50UG9pbnQmKSBjb25zdDsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBhY2Nlc3NpYmlsaXR5UGFyZW50Rm9ySW1hZ2VNYXAoSFRNTE1hcEVsZW1lbnQqKSBjb25zdDsK
LSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIGVsZW1lbnRBY2Nlc3NpYmlsaXR5SGl0
VGVzdChjb25zdCBJbnRQb2ludCYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgQWNjZXNz
aWJpbGl0eU9iamVjdCogZWxlbWVudEFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBvaW50
JikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBib29sIHJlbmRlck9iamVjdElzT2JzZXJ2YWJsZShS
ZW5kZXJPYmplY3QqKSBjb25zdDsKICAgICBSZW5kZXJPYmplY3QqIHJlbmRlclBhcmVudE9iamVj
dCgpIGNvbnN0OwpAQCAtMjUxLDcgKzI1MSw3IEBAIHByaXZhdGU6CiAgICAgQWNjZXNzaWJpbGl0
eVNWR1Jvb3QqIHJlbW90ZVNWR1Jvb3RFbGVtZW50KCkgY29uc3Q7CiAgICAgQWNjZXNzaWJpbGl0
eU9iamVjdCogcmVtb3RlU1ZHRWxlbWVudEhpdFRlc3QoY29uc3QgSW50UG9pbnQmKSBjb25zdDsK
ICAgICB2b2lkIG9mZnNldEJvdW5kaW5nQm94Rm9yUmVtb3RlU1ZHRWxlbWVudChMYXlvdXRSZWN0
JikgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzUGF0aCgpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1BhdGgoKSBjb25zdCBvdmVycmlkZTsKIAogICAg
IHZvaWQgYWRkSGlkZGVuQ2hpbGRyZW4oKTsKICAgICB2b2lkIGFkZFRleHRGaWVsZENoaWxkcmVu
KCk7CkBAIC0yNjgsNjMgKzI2OCw2MyBAQCBwcml2YXRlOgogICAgIGJvb2wgZWxlbWVudEF0dHJp
YnV0ZVZhbHVlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdDsKICAgICB2b2lkIHNldEVsZW1l
bnRBdHRyaWJ1dGVWYWx1ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgYm9vbCk7CiAgICAgCi0gICAg
dmlydHVhbCBFU3BlYWsgc3BlYWtQcm9wZXJ0eSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgRVNwZWFrIHNwZWFrUHJvcGVydHkoKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgYXJpYUxpdmVSZWdpb25TdGF0dXMoKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgYXJpYUxpdmVSZWdpb25SZWxl
dmFudCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBhcmlhTGl2ZVJlZ2lvbkF0
b21pYygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBhcmlhTGl2ZVJlZ2lvbkJ1
c3koKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgYXJp
YUxpdmVSZWdpb25TdGF0dXMoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0
b21pY1N0cmluZyYgYXJpYUxpdmVSZWdpb25SZWxldmFudCgpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBhcmlhTGl2ZVJlZ2lvbkF0b21pYygpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBhcmlhTGl2ZVJlZ2lvbkJ1c3koKSBjb25zdCBvdmVycmlkZTsKIAogICAg
IGJvb2wgaW5oZXJpdHNQcmVzZW50YXRpb25hbFJvbGUoKSBjb25zdDsKIAogI2lmIEVOQUJMRShN
QVRITUwpCiAgICAgLy8gQWxsIG1hdGggZWxlbWVudHMgcmV0dXJuIHRydWUgZm9yIGlzTWF0aEVs
ZW1lbnQoKS4KLSAgICB2aXJ0dWFsIGJvb2wgaXNNYXRoRWxlbWVudCgpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgYm9vbCBpc01hdGhGcmFjdGlvbigpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBpc01hdGhGZW5jZWQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IGJvb2wgaXNNYXRoU3Vic2NyaXB0U3VwZXJzY3JpcHQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGJvb2wgaXNNYXRoUm93KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29s
IGlzTWF0aFVuZGVyT3ZlcigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc01h
dGhSb290KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzTWF0aFNxdWFyZVJv
b3QoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNNYXRoVGV4dCgpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc01hdGhOdW1iZXIoKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNNYXRoT3BlcmF0b3IoKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNNYXRoRmVuY2VPcGVyYXRvcigpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBpc01hdGhTZXBhcmF0b3JPcGVyYXRvcigpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgYm9vbCBpc01hdGhJZGVudGlmaWVyKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIGlzTWF0aFRhYmxlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIGlzTWF0aFRhYmxlUm93KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlz
TWF0aFRhYmxlQ2VsbCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc01hdGhN
dWx0aXNjcmlwdCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc01hdGhFbGVt
ZW50KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzTWF0aEZyYWN0aW9uKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzTWF0aEZlbmNlZCgpIGNvbnN0IG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc01hdGhTdWJzY3JpcHRTdXBlcnNjcmlwdCgpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc01hdGhSb3coKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNYXRoVW5kZXJPdmVyKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBib29sIGlzTWF0aFJvb3QoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IGJvb2wgaXNNYXRoU3F1YXJlUm9vdCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9v
bCBpc01hdGhUZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzTWF0aE51
bWJlcigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc01hdGhPcGVyYXRvcigp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc01hdGhGZW5jZU9wZXJhdG9yKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzTWF0aFNlcGFyYXRvck9wZXJhdG9y
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzTWF0aElkZW50aWZpZXIoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNYXRoVGFibGUoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNYXRoVGFibGVSb3coKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGJvb2wgaXNNYXRoVGFibGVDZWxsKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBib29sIGlzTWF0aE11bHRpc2NyaXB0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCiAg
ICAgLy8gR2VuZXJpYyBjb21wb25lbnRzLgotICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVj
dCogbWF0aEJhc2VPYmplY3QoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlP
YmplY3QqIG1hdGhCYXNlT2JqZWN0KCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgLy8gUm9vdCBjb21w
b25lbnRzLgotICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogbWF0aFJhZGljYW5kT2Jq
ZWN0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBtYXRoUm9v
dEluZGV4T2JqZWN0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBtYXRoUmFkaWNhbmRPYmplY3QoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxp
dHlPYmplY3QqIG1hdGhSb290SW5kZXhPYmplY3QoKSBvdmVycmlkZTsKICAgICAKICAgICAvLyBG
cmFjdGlvbiBjb21wb25lbnRzLgotICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogbWF0
aE51bWVyYXRvck9iamVjdCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9i
amVjdCogbWF0aERlbm9taW5hdG9yT2JqZWN0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBtYXRoTnVtZXJhdG9yT2JqZWN0KCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBtYXRoRGVub21pbmF0b3JPYmplY3QoKSBvdmVycmlk
ZTsKIAogICAgIC8vIFVuZGVyIG92ZXIgY29tcG9uZW50cy4KLSAgICB2aXJ0dWFsIEFjY2Vzc2li
aWxpdHlPYmplY3QqIG1hdGhVbmRlck9iamVjdCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgQWNj
ZXNzaWJpbGl0eU9iamVjdCogbWF0aE92ZXJPYmplY3QoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IEFjY2Vzc2liaWxpdHlPYmplY3QqIG1hdGhVbmRlck9iamVjdCgpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogbWF0aE92ZXJPYmplY3QoKSBvdmVycmlkZTsKICAg
ICAKICAgICAvLyBTdWJzY3JpcHQvc3VwZXJzY3JpcHQgY29tcG9uZW50cy4KLSAgICB2aXJ0dWFs
IEFjY2Vzc2liaWxpdHlPYmplY3QqIG1hdGhTdWJzY3JpcHRPYmplY3QoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIG1hdGhTdXBlcnNjcmlwdE9iamVjdCgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogbWF0aFN1YnNjcmlwdE9i
amVjdCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogbWF0aFN1
cGVyc2NyaXB0T2JqZWN0KCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgLy8gRmVuY2VkIGNvbXBvbmVu
dHMuCi0gICAgdmlydHVhbCBTdHJpbmcgbWF0aEZlbmNlZE9wZW5TdHJpbmcoKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBtYXRoRmVuY2VkQ2xvc2VTdHJpbmcoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGludCBtYXRoTGluZVRoaWNrbmVzcygpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgU3RyaW5nIG1hdGhGZW5jZWRPcGVuU3RyaW5nKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgbWF0aEZlbmNlZENsb3NlU3RyaW5nKCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBpbnQgbWF0aExpbmVUaGlja25lc3MoKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIC8vIE11bHRpc2NyaXB0cyBjb21wb25lbnRzLgotICAgIHZpcnR1YWwgdm9p
ZCBtYXRoUHJlc2NyaXB0cyhBY2Nlc3NpYmlsaXR5TWF0aE11bHRpc2NyaXB0UGFpcnMmKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbWF0aFBvc3RzY3JpcHRzKEFjY2Vzc2liaWxpdHlNYXRo
TXVsdGlzY3JpcHRQYWlycyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXRoUHJlc2Ny
aXB0cyhBY2Nlc3NpYmlsaXR5TWF0aE11bHRpc2NyaXB0UGFpcnMmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgbWF0aFBvc3RzY3JpcHRzKEFjY2Vzc2liaWxpdHlNYXRoTXVsdGlzY3JpcHRQ
YWlycyYpIG92ZXJyaWRlOwogICAgIAogICAgIGJvb2wgaXNJZ25vcmVkRWxlbWVudFdpdGhpbk1h
dGhUcmVlKCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVNWR1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVNWR1Jvb3QuaAppbmRleCBjM2JjMGZlLi5mNGQwOTI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTVkdSb290
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U1ZHUm9v
dC5oCkBAIC00Niw4ICs0Niw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgQWNjZXNzaWJpbGl0
eU9iamVjdCogbV9wYXJlbnQ7CiAgICAgCi0gICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0
KiBwYXJlbnRPYmplY3QoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNBY2Nl
c3NpYmlsaXR5U1ZHUm9vdCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgYm9vbCBpc0FjY2Vzc2liaWxpdHlTVkdSb290KCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogQUNDRVNTSUJJTElUWV9PQkpFQ1RfVFlQRV9DQVNU
UyhBY2Nlc3NpYmlsaXR5U1ZHUm9vdCwgaXNBY2Nlc3NpYmlsaXR5U1ZHUm9vdCgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmll
dy5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmll
dy5oCmluZGV4IDU5YjNkZTMuLjU2YmUxYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmgKQEAgLTM3LDQ0ICszNyw0
NCBAQCBjbGFzcyBTY3JvbGxWaWV3OwogY2xhc3MgQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcgOiBw
dWJsaWMgQWNjZXNzaWJpbGl0eU9iamVjdCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXc+IGNyZWF0ZShTY3JvbGxWaWV3Kik7ICAgIAotICAg
IHZpcnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3QgT1ZFUlJJREUgeyBy
ZXR1cm4gU2Nyb2xsQXJlYVJvbGU7IH0KKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJv
bGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFNjcm9sbEFyZWFSb2xlOyB9CiAgICAg
U2Nyb2xsVmlldyogc2Nyb2xsVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsVmlldzsgfQog
CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoKTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGV0YWNoKEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZSwgQVhPYmplY3RDYWNoZSopIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goQWNjZXNzaWJpbGl0eURldGFjaG1lbnRU
eXBlLCBBWE9iamVjdENhY2hlKikgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFs
IFNjcm9sbGFibGVBcmVhKiBnZXRTY3JvbGxhYmxlQXJlYUlmU2Nyb2xsYWJsZSgpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxUbyhjb25zdCBJbnRQb2ludCYpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgU2Nyb2xsYWJsZUFyZWEqIGdldFNjcm9sbGFibGVBcmVh
SWZTY3JvbGxhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbFRv
KGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCiBwcml2YXRlOgogICAgIGV4
cGxpY2l0IEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KFNjcm9sbFZpZXcqKTsKICAgICAKLSAgICB2
aXJ0dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldygpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNj
ZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBp
c0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQorICAgIHZpcnR1YWwgYm9vbCBpc0VuYWJsZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CiAgICAgCi0gICAgdmlydHVhbCBib29sIGlzQXR0YWNobWVudCgpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgV2lkZ2V0KiB3aWRnZXRGb3JBdHRhY2htZW50VmlldygpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc0F0dGFjaG1lbnQoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIFdpZGdldCogd2lkZ2V0Rm9yQXR0YWNobWVudFZpZXcoKSBjb25zdCBv
dmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHNjcm9sbEJh
cihBY2Nlc3NpYmlsaXR5T3JpZW50YXRpb24pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBh
ZGRDaGlsZHJlbigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjbGVhckNoaWxkcmVuKCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBhY2Nlc3NpYmlsaXR5
SGl0VGVzdChjb25zdCBJbnRQb2ludCYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVDaGlsZHJlbklmTmVjZXNzYXJ5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IHNldE5lZWRzVG9VcGRhdGVDaGlsZHJlbigpIE9WRVJSSURFIHsgbV9jaGlsZHJlbkRpcnR5ID0g
dHJ1ZTsgfQorICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogc2Nyb2xsQmFyKEFjY2Vz
c2liaWxpdHlPcmllbnRhdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFkZENoaWxk
cmVuKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyQ2hpbGRyZW4oKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIGFjY2Vzc2liaWxpdHlIaXRUZXN0
KGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUNoaWxkcmVuSWZOZWNlc3NhcnkoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVl
ZHNUb1VwZGF0ZUNoaWxkcmVuKCkgb3ZlcnJpZGUgeyBtX2NoaWxkcmVuRGlydHkgPSB0cnVlOyB9
CiAgICAgdm9pZCB1cGRhdGVTY3JvbGxiYXJzKCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldEZvY3Vz
ZWQoYm9vbCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNhblNldEZvY3VzQXR0cmlidXRl
KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzRm9jdXNlZCgpIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1c2VkKGJvb2wpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBjYW5TZXRGb2N1c0F0dHJpYnV0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBpc0ZvY3VzZWQoKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0
dWFsIEZyYW1lVmlldyogZG9jdW1lbnRGcmFtZVZpZXcoKSBjb25zdCBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIExheW91dFJlY3QgZWxlbWVudFJlY3QoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogcGFyZW50T2JqZWN0SWZFeGlzdHMoKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEZyYW1lVmlldyogZG9jdW1lbnRGcmFtZVZpZXco
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgZWxlbWVudFJlY3QoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlPYmplY3QqIHBhcmVudE9i
amVjdCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCog
cGFyZW50T2JqZWN0SWZFeGlzdHMoKSBjb25zdCBvdmVycmlkZTsKICAgICAKICAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBmaXJzdENoaWxkKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gd2ViQXJl
YU9iamVjdCgpOyB9CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBmaXJzdENoaWxk
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gd2ViQXJlYU9iamVjdCgpOyB9CiAgICAgQWNjZXNz
aWJpbGl0eVNjcm9sbGJhciogYWRkQ2hpbGRTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdm9p
ZCByZW1vdmVDaGlsZFNjcm9sbGJhcihBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxi
YXIuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJh
ci5oCmluZGV4IDRmZDkzM2MuLmMwODZhNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5oCkBAIC00NCwyMCArNDQsMjAg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFy
KFNjcm9sbGJhciopOwogCi0gICAgdmlydHVhbCBib29sIGNhblNldFZhbHVlQXR0cmlidXRlKCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRO
dW1lcmljVmFsdWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVh
bCBib29sIGNhblNldFZhbHVlQXR0cmlidXRlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5TZXROdW1lcmljVmFsdWUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U2Ny
b2xsYmFyKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgTGF5
b3V0UmVjdCBlbGVtZW50UmVjdCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBp
c0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9
CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGVsZW1lbnRSZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgCi0gICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiBTY3JvbGxCYXJSb2xlOyB9Ci0gICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5
T3JpZW50YXRpb24gb3JpZW50YXRpb24oKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIERv
Y3VtZW50KiBkb2N1bWVudCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc0Vu
YWJsZWQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJv
bGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFNjcm9sbEJhclJvbGU7IH0KKyAgICB2
aXJ0dWFsIEFjY2Vzc2liaWxpdHlPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBib29sIGlzRW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIAogICAgIC8v
IEFzc3VtZXMgZmxvYXQgWzAuLjFdCi0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGZsb2F0KSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGZsb2F0IHZhbHVlRm9yUmFuZ2UoKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoZmxvYXQpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgZmxvYXQgdmFsdWVGb3JSYW5nZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgUmVmUHRyPFNj
cm9sbGJhcj4gbV9zY3JvbGxiYXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRCdXR0b25zLmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZEJ1dHRvbnMuaAppbmRl
eCBlMmRjOGZlLi40ZWEyMDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZEJ1dHRvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZEJ1dHRvbnMuaApAQCAtMzQs
MTMgKzM0LDEzIEBAIGNsYXNzIEFjY2Vzc2liaWxpdHlTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbiBG
SU5BTCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqCiBwdWJsaWM6CiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uPiBjcmVhdGUo
UmVuZGVyT2JqZWN0Kik7CiAgICAgCi0gICAgdmlydHVhbCBTdHJpbmcgYWNjZXNzaWJpbGl0eURl
c2NyaXB0aW9uKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGFjY2Vzc2liaWxp
dHlUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IGJvb2wgcHJlc3MoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlS
b2xlIHJvbGVWYWx1ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIEJ1dHRvblJvbGU7IH0KKyAg
ICB2aXJ0dWFsIFN0cmluZyBhY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzaWJpbGl0eVRleHQoVmVjdG9yPEFjY2Vzc2liaWxp
dHlUZXh0PiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBwcmVzcygpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gQnV0dG9uUm9sZTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCBi
b29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQWNjZXNzaWJpbGl0eVNlYXJjaEZpZWxkQ2Fu
Y2VsQnV0dG9uKFJlbmRlck9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIuaAppbmRleCBhNGM3YTkzLi5hZWYzODM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTbGlkZXIu
aApAQCAtNDcsMjMgKzQ3LDIzIEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICBIVE1MSW5w
dXRFbGVtZW50KiBpbnB1dEVsZW1lbnQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxp
dHlPYmplY3QqIGVsZW1lbnRBY2Nlc3NpYmlsaXR5SGl0VGVzdChjb25zdCBJbnRQb2ludCYpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eU9iamVjdCogZWxlbWVudEFj
Y2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAg
ICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIFNsaWRlclJvbGU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXIoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzSW5wdXRTbGlkZXIo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzQ29u
dHJvbCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIEFjY2Vz
c2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFNsaWRlclJv
bGU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzSW5wdXRTbGlkZXIoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzQ29udHJvbCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGRy
ZW4oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGRyZW4oKSBvdmVycmlkZTsK
ICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0VmFsdWVBdHRyaWJ1dGUoKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGNhblNldFZhbHVlQXR0cmli
dXRlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGNvbnN0IEF0b21pY1N0
cmluZyYgZ2V0QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZSkgY29uc3Q7
CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgZmxvYXQgdmFsdWVGb3JSYW5nZSgpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgZmxvYXQgbWF4VmFsdWVGb3JSYW5nZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgZmxvYXQgbWluVmFsdWVGb3JSYW5nZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgQWNjZXNzaWJpbGl0eU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgZmxvYXQgdmFsdWVGb3JSYW5nZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgZmxvYXQgbWF4VmFsdWVGb3JSYW5nZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
ZmxvYXQgbWluVmFsdWVGb3JSYW5nZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQWNj
ZXNzaWJpbGl0eU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiB9Owog
CiBjbGFzcyBBY2Nlc3NpYmlsaXR5U2xpZGVyVGh1bWIgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eU1v
Y2tPYmplY3QgewpAQCAtNzIsMTYgKzcyLDE2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxBY2Nlc3NpYmlsaXR5U2xpZGVyVGh1bWI+IGNyZWF0ZSgpOwogICAgIHZpcnR1YWwgfkFj
Y2Vzc2liaWxpdHlTbGlkZXJUaHVtYigpIHsgfQogCi0gICAgdmlydHVhbCBib29sIGlzU2xpZGVy
VGh1bWIoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVh
bCBib29sIGlzU2xpZGVyVGh1bWIoKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiB0cnVl
OyB9CiAKLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIFNsaWRlclRodW1iUm9sZTsgfQorICAgIHZpcnR1YWwgQWNjZXNzaWJp
bGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gU2xpZGVyVGh1bWJS
b2xlOyB9CiAKLSAgICB2aXJ0dWFsIExheW91dFJlY3QgZWxlbWVudFJlY3QoKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgZWxlbWVudFJlY3QoKSBjb25zdCBvdmVycmlk
ZTsKIAogcHJpdmF0ZToKICAgICBBY2Nlc3NpYmlsaXR5U2xpZGVyVGh1bWIoKTsKIAotICAgIHZp
cnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgYm9vbCBjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0
IG92ZXJyaWRlOwogfTsKIAogQUNDRVNTSUJJTElUWV9PQkpFQ1RfVFlQRV9DQVNUUyhBY2Nlc3Np
YmlsaXR5U2xpZGVyVGh1bWIsIGlzU2xpZGVyVGh1bWIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24uaAppbmRleCBlNDk0
ZGIyLi5jMzk1Njk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlTcGluQnV0dG9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbi5oCkBAIC00NywxMSArNDcsMTEgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvbigpOwogCi0gICAgdmlydHVhbCBB
Y2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBTcGlu
QnV0dG9uUm9sZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1NwaW5CdXR0b24oKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzTmF0aXZlU3BpbkJ1dHRv
bigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYWRk
Q2hpbGRyZW4oKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIExheW91dFJlY3QgZWxlbWVudFJlY3Qo
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFNwaW5CdXR0b25Sb2xlOyB9CisgICAgdmlydHVh
bCBib29sIGlzU3BpbkJ1dHRvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVTcGluQnV0dG9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZHJlbigpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgTGF5b3V0UmVjdCBlbGVtZW50UmVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIAog
ICAgIFNwaW5CdXR0b25FbGVtZW50KiBtX3NwaW5CdXR0b25FbGVtZW50OwogfTsgCkBAIC02OCwx
MCArNjgsMTAgQEAgcHJpdmF0ZToKICAgICBBY2Nlc3NpYmlsaXR5U3BpbkJ1dHRvblBhcnQoKTsK
ICAgICBib29sIG1faXNJbmNyZW1lbnRvciA6IDE7CiAgICAgCi0gICAgdmlydHVhbCBib29sIHBy
ZXNzKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xl
VmFsdWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBCdXR0b25Sb2xlOyB9Ci0gICAgdmlydHVh
bCBib29sIGlzU3BpbkJ1dHRvblBhcnQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9
Ci0gICAgdmlydHVhbCBMYXlvdXRSZWN0IGVsZW1lbnRSZWN0KCkgY29uc3QgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBib29sIHByZXNzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBY2Nl
c3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBCdXR0b25S
b2xlOyB9CisgICAgdmlydHVhbCBib29sIGlzU3BpbkJ1dHRvblBhcnQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGVsZW1lbnRSZWN0KCkg
Y29uc3Qgb3ZlcnJpZGU7CiB9OwogCiBBQ0NFU1NJQklMSVRZX09CSkVDVF9UWVBFX0NBU1RTKEFj
Y2Vzc2liaWxpdHlTcGluQnV0dG9uLCBpc05hdGl2ZVNwaW5CdXR0b24oKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5oCmluZGV4IGRkMzU2
YzcuLmJiMGQ4ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVRhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5VGFibGUuaApAQCAtNDUsMTMgKzQ1LDEzIEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGFibGU+IGNyZWF0ZShSZW5kZXJPYmplY3QqKTsKICAg
ICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5VGFibGUoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBpbml0
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGluaXQoKSBvdmVycmlkZTsKIAotICAgIHZp
cnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVlKCkgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNBcmlhVGFibGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IAotICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZHJlbigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBjbGVhckNoaWxkcmVuKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGFkZENoaWxk
cmVuKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyQ2hpbGRyZW4oKSBvdmVycmlk
ZTsKICAgICAKICAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIGNvbHVtbnMoKTsKICAg
ICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIHJvd3MoKTsKQEAgLTU5LDkgKzU5LDkgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1NlbGVjdGVkUm93cygpIHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdW5zaWduZWQgY29sdW1uQ291bnQoKTsKICAgICB1bnNpZ25lZCByb3dD
b3VudCgpOwotICAgIHZpcnR1YWwgaW50IHRhYmxlTGV2ZWwoKSBjb25zdCBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIGludCB0YWJsZUxldmVsKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCi0gICAgdmly
dHVhbCBTdHJpbmcgdGl0bGUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyB0
aXRsZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIAogICAgIC8vIGFsbCB0aGUgY2VsbHMgaW4gdGhl
IHRhYmxlCiAgICAgdm9pZCBjZWxscyhBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKTsKQEAg
LTg0LDE4ICs4NCwxOCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBoYXNBUklBUm9sZSgpIGNvbnN0
OwogCiAgICAgLy8gaXNUYWJsZSBpcyB3aGV0aGVyIGl0J3MgYW4gQWNjZXNzaWJpbGl0eVRhYmxl
IG9iamVjdC4KLSAgICB2aXJ0dWFsIGJvb2wgaXNUYWJsZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNUYWJsZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KICAgICAvLyBpc0FjY2Vzc2liaWxpdHlUYWJsZSBpcyB3aGV0aGVyIGl0
IGlzIGV4cG9zZWQgYXMgYW4gQWNjZXNzaWJpbGl0eVRhYmxlIHRvIHRoZSBwbGF0Zm9ybS4KLSAg
ICB2aXJ0dWFsIGJvb2wgaXNBY2Nlc3NpYmlsaXR5VGFibGUoKSBjb25zdCBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNBY2Nlc3NpYmlsaXR5VGFibGUoKSBjb25zdCBvdmVycmlkZTsKICAg
ICAvLyBpc0RhdGFUYWJsZSBpcyB3aGV0aGVyIGl0IGlzIGV4cG9zZWQgYXMgYW4gQWNjZXNzaWJp
bGl0eVRhYmxlIGJlY2F1c2UgdGhlIGhldXJpc3RpYwogICAgIC8vIHRoaW5rIHRoaXMgImxvb2tz
IiBsaWtlIGEgZGF0YS1iYXNlZCB0YWJsZSAoaW5zdGVhZCBvZiBhIHRhYmxlIHVzZWQgZm9yIGxh
eW91dCkuCi0gICAgdmlydHVhbCBib29sIGlzRGF0YVRhYmxlKCkgY29uc3QgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBib29sIGlzRGF0YVRhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0
dWFsIGJvb2wgaXNUYWJsZUV4cG9zYWJsZVRocm91Z2hBY2Nlc3NpYmlsaXR5KCkgY29uc3Q7Ci0g
ICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHRpdGxlRWxlbWVu
dFRleHQoVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCB0aXRsZUVsZW1lbnRUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mKSBj
b25zdCBvdmVycmlkZTsKIH07CiAKIEFDQ0VTU0lCSUxJVFlfT0JKRUNUX1RZUEVfQ0FTVFMoQWNj
ZXNzaWJpbGl0eVRhYmxlLCBpc1RhYmxlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuaCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5oCmluZGV4IDNhYjFjMzIuLjg5MWE4
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVRhYmxlQ2VsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRhYmxlQ2VsbC5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGFibGVDZWxsPiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7CiAg
ICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVRhYmxlQ2VsbCgpOwogICAgIAotICAgIHZpcnR1YWwg
Ym9vbCBpc1RhYmxlQ2VsbCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc1Rh
YmxlQ2VsbCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIAogICAgIC8vIGZpbGxzIGluIHRoZSBzdGFy
dCBsb2NhdGlvbiBhbmQgcm93IHNwYW4gb2YgY2VsbAogICAgIHZpcnR1YWwgdm9pZCByb3dJbmRl
eFJhbmdlKHN0ZDo6cGFpcjx1bnNpZ25lZCwgdW5zaWduZWQ+JiByb3dSYW5nZSk7CkBAIC01MSwx
MyArNTEsMTMgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0
eU9iamVjdCogcGFyZW50VGFibGUoKSBjb25zdDsKICAgICBpbnQgbV9yb3dJbmRleDsKLSAgICB2
aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIGRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSBkZXRlcm1pbmVBY2Nlc3NpYmls
aXR5Um9sZSgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIC8vIElmIGEgdGFibGUgY2VsbCBp
cyBub3QgZXhwb3NlZCBhcyBhIHRhYmxlIGNlbGwsIGEgVEggZWxlbWVudCBjYW4gc2VydmUgYXMg
aXRzIHRpdGxlIFVJIGVsZW1lbnQuCi0gICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB0
aXRsZVVJRWxlbWVudCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBleHBvc2Vz
VGl0bGVVSUVsZW1lbnQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmly
dHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiB0aXRsZVVJRWxlbWVudCgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBleHBvc2VzVGl0bGVVSUVsZW1lbnQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OyAKIAogQUNDRVNTSUJJTElU
WV9PQkpFQ1RfVFlQRV9DQVNUUyhBY2Nlc3NpYmlsaXR5VGFibGVDZWxsLCBpc1RhYmxlQ2VsbCgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
VGFibGVDb2x1bW4uaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVRhYmxlQ29sdW1uLmgKaW5kZXggM2YxOWNmOS4uNjVlZDAyMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDb2x1bW4uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbi5oCkBA
IC00NywyMyArNDcsMjMgQEAgcHVibGljOgogICAgIAogICAgIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IGhlYWRlck9iamVjdCgpOwogICAgICAgICAKLSAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xl
IHJvbGVWYWx1ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIENvbHVtblJvbGU7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgaXNUYWJsZUNvbHVtbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7
IH0KKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIENvbHVtblJvbGU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNUYWJsZUNvbHVt
bigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICAKICAgICB2b2lkIHNldENv
bHVtbkluZGV4KGludCBjb2x1bW5JbmRleCkgeyBtX2NvbHVtbkluZGV4ID0gY29sdW1uSW5kZXg7
IH0KICAgICBpbnQgY29sdW1uSW5kZXgoKSBjb25zdCB7IHJldHVybiBtX2NvbHVtbkluZGV4OyB9
ICAgIAogICAgIAotICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZHJlbigpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBzZXRQYXJlbnQoQWNjZXNzaWJpbGl0eU9iamVjdCopIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZHJlbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRQYXJlbnQoQWNjZXNzaWJpbGl0eU9iamVjdCopIG92ZXJyaWRlOwogICAgIAotICAgIHZp
cnR1YWwgTGF5b3V0UmVjdCBlbGVtZW50UmVjdCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgTGF5b3V0UmVjdCBlbGVtZW50UmVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIAogcHJpdmF0
ZTogICAgCiAgICAgdW5zaWduZWQgbV9jb2x1bW5JbmRleDsKICAgICBMYXlvdXRSZWN0IG1fY29s
dW1uUmVjdDsKICAgICAKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBoZWFkZXJPYmplY3RGb3JT
ZWN0aW9uKFJlbmRlclRhYmxlU2VjdGlvbiosIGJvb2wgdGhUYWdSZXF1aXJlZCk7Ci0gICAgdmly
dHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Qg
b3ZlcnJpZGU7CiB9OwogCiBBQ0NFU1NJQklMSVRZX09CSkVDVF9UWVBFX0NBU1RTKEFjY2Vzc2li
aWxpdHlUYWJsZUNvbHVtbiwgaXNUYWJsZUNvbHVtbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29u
dGFpbmVyLmgKaW5kZXggMTYzNDY0Mi4uOTk4OTBkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVIZWFkZXJDb250YWluZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNv
bnRhaW5lci5oCkBAIC00MywxNiArNDMsMTYgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEFjY2Vzc2liaWxpdHlUYWJsZUhlYWRlckNvbnRhaW5lcj4gY3JlYXRlKCk7CiAgICAgdmly
dHVhbCB+QWNjZXNzaWJpbGl0eVRhYmxlSGVhZGVyQ29udGFpbmVyKCk7CiAgICAgCi0gICAgdmly
dHVhbCBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlVmFsdWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biBUYWJsZUhlYWRlckNvbnRhaW5lclJvbGU7IH0KKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlS
b2xlIHJvbGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFRhYmxlSGVhZGVyQ29udGFp
bmVyUm9sZTsgfQogICAgIAotICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZHJlbigpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZHJlbigpIG92ZXJyaWRlOwogICAgIAotICAgIHZp
cnR1YWwgTGF5b3V0UmVjdCBlbGVtZW50UmVjdCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgTGF5b3V0UmVjdCBlbGVtZW50UmVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIAogcHJpdmF0
ZToKICAgICBMYXlvdXRSZWN0IG1faGVhZGVyUmVjdDsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wg
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIGJvb2wgY29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCBvdmVycmlkZTsK
IH07IAogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmggYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5oCmluZGV4IGIwM2MzZDYu
LmRjZDM5MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVRhYmxlUm93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5VGFibGVSb3cuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVRhYmxlUm93PiBjcmVhdGUoUmVuZGVyT2JqZWN0Kik7
CiAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eVRhYmxlUm93KCk7CiAgICAgCi0gICAgdmlydHVh
bCBib29sIGlzVGFibGVSb3coKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNU
YWJsZVJvdygpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gcmV0cmlldmVzIHRoZSAicm93IiBo
ZWFkZXIgKGEgdGggdGFnIGluIHRoZSByaWdodG1vc3QgY29sdW1uKQogICAgIHZpcnR1YWwgQWNj
ZXNzaWJpbGl0eU9iamVjdCogaGVhZGVyT2JqZWN0KCk7CkBAIC01NSwxMyArNTUsMTMgQEAgcHVi
bGljOgogICAgIHZvaWQgYXBwZW5kQ2hpbGQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwogICAgIAog
cHJvdGVjdGVkOgotICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUgZGV0ZXJtaW5lQWNjZXNz
aWJpbGl0eVJvbGUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIGRl
dGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgaW50
IG1fcm93SW5kZXg7CiAgICAgCi0gICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYnNl
cnZhYmxlT2JqZWN0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNvbXB1dGVB
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBvYnNlcnZhYmxlT2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBib29sIGNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3Qgb3ZlcnJp
ZGU7CiB9OyAKIAogQUNDRVNTSUJJTElUWV9PQkpFQ1RfVFlQRV9DQVNUUyhBY2Nlc3NpYmlsaXR5
VGFibGVSb3csIGlzVGFibGVSb3coKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtQnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDcnlwdG9BbGdvcml0aG1CdWlsZGVyLmgKaW5kZXggZTA4YzhmZS4uMTI5Y2JkNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1C
dWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0
aG1CdWlsZGVyLmgKQEAgLTQ0LDEyICs0NCwxMiBAQCBwdWJsaWM6CiAKICAgICBKU0M6OkpTT2Jq
ZWN0KiByZXN1bHQoKSBjb25zdCB7IHJldHVybiBtX2RpY3Rpb25hcnk7IH0KIAotICAgIHZpcnR1
YWwgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobURlc2NyaXB0aW9uQnVpbGRlcj4gY3Jl
YXRlRW1wdHlDbG9uZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVf
cHRyPENyeXB0b0FsZ29yaXRobURlc2NyaXB0aW9uQnVpbGRlcj4gY3JlYXRlRW1wdHlDbG9uZSgp
IGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGFkZChjb25zdCBjaGFyKiwgdW5z
aWduZWQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBhZGQoY29uc3QgY2hhciosIGNvbnN0
IFN0cmluZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBhZGQoY29uc3QgY2hhciosIGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBhZGQoY29u
c3QgY2hhciosIGNvbnN0IENyeXB0b0FsZ29yaXRobURlc2NyaXB0aW9uQnVpbGRlciYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBhZGQoY29uc3QgY2hhciosIHVuc2lnbmVkKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkKGNvbnN0IGNoYXIqLCBjb25zdCBTdHJpbmcmKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkKGNvbnN0IGNoYXIqLCBjb25zdCBWZWN0b3I8dWlu
dDhfdD4mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkKGNvbnN0IGNoYXIqLCBjb25z
dCBDcnlwdG9BbGdvcml0aG1EZXNjcmlwdGlvbkJ1aWxkZXImKSBvdmVycmlkZTsKIAogcHJpdmF0
ZToKICAgICBKU0M6OkV4ZWNTdGF0ZSogbV9leGVjOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suaAppbmRleCBiYzE4
ZjNjLi4yYzE4NTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Ny
eXB0b0tleVNlcmlhbGl6YXRpb25KV0suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suaApAQCAtNTksMTIgKzU5LDEyIEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLKEpTQzo6RXhlY1N0
YXRlKiwgY29uc3QgU3RyaW5nJik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcmVjb25jaWxlQWxnb3Jp
dGhtKHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG0+Jiwgc3RkOjp1bmlxdWVfcHRyPENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBi
b29sIHJlY29uY2lsZUFsZ29yaXRobShzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtPiYs
IHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiYpIGNvbnN0IG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHJlY29uY2lsZVVzYWdlcyhDcnlwdG9LZXlVc2FnZSYp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZWNvbmNpbGVFeHRyYWN0YWJsZShi
b29sJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlY29uY2lsZVVzYWdlcyhD
cnlwdG9LZXlVc2FnZSYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZWNvbmNp
bGVFeHRyYWN0YWJsZShib29sJikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHN0ZDo6
dW5pcXVlX3B0cjxDcnlwdG9LZXlEYXRhPiBrZXlEYXRhKCkgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5RGF0YT4ga2V5RGF0YSgpIGNvbnN0IG92
ZXJyaWRlOwogCiAgICAgc3RhdGljIHZvaWQgYnVpbGRKU09ORm9yT2N0ZXRTZXF1ZW5jZShKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYsIEpTQzo6SlNPYmplY3QqIHJlc3Vs
dCk7CiAgICAgc3RhdGljIHZvaWQgYnVpbGRKU09ORm9yUlNBQ29tcG9uZW50cyhKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzJiwgSlNDOjpKU09iamVjdCog
cmVzdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xv
YmFsT2JqZWN0VGFzay5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxP
YmplY3RUYXNrLmgKaW5kZXggMDY5MzhjMi4uMzc3YWI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3RUYXNrLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3RUYXNrLmgKQEAgLTQ1LDcgKzQ1LDcg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICBKU0dsb2JhbE9iamVjdFRhc2soSlNET01HbG9iYWxP
YmplY3QqLCBQYXNzUmVmUHRyPEpTQzo6TWljcm90YXNrPik7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
cGVyZm9ybVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0Kikgb3ZlcnJpZGU7CiAK
ICAgICBSZWZQdHI8SlNHbG9iYWxPYmplY3RDYWxsYmFjaz4gbV9jYWxsYmFjazsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5oCmluZGV4IGI1ZDliMWEu
LjMwM2ZmNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRM
aXN0ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5l
ci5oCkBAIC00Nyw3ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0
dWFsIH5KU0V2ZW50TGlzdGVuZXIoKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBFdmVudExpc3RlbmVyJiBvdGhlcikgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IEV2ZW50TGlzdGVuZXImIG90aGVyKSBvdmVycmlkZTsKIAog
ICAgICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhpcyBldmVudCBsaXN0ZW5lciB3YXMgY3JlYXRl
ZCBmb3IgYW4gZXZlbnQgaGFuZGxlciBhdHRyaWJ1dGUsIGxpa2UgIm9ubG9hZCIgb3IgIm9uY2xp
Y2siLgogICAgICAgICBib29sIGlzQXR0cmlidXRlKCkgY29uc3QgeyByZXR1cm4gbV9pc0F0dHJp
YnV0ZTsgfQpAQCAtNjAsMTIgKzYwLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIHBy
aXZhdGU6CiAgICAgICAgIHZpcnR1YWwgSlNDOjpKU09iamVjdCogaW5pdGlhbGl6ZUpTRnVuY3Rp
b24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIHZvaWQg
dmlzaXRKU0Z1bmN0aW9uKEpTQzo6U2xvdFZpc2l0b3ImKSBPVkVSUklERTsKLSAgICAgICAgdmly
dHVhbCBib29sIHZpcnR1YWxpc0F0dHJpYnV0ZSgpIGNvbnN0IE9WRVJSSURFOworICAgICAgICB2
aXJ0dWFsIHZvaWQgdmlzaXRKU0Z1bmN0aW9uKEpTQzo6U2xvdFZpc2l0b3ImKSBvdmVycmlkZTsK
KyAgICAgICAgdmlydHVhbCBib29sIHZpcnR1YWxpc0F0dHJpYnV0ZSgpIGNvbnN0IG92ZXJyaWRl
OwogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBKU0V2ZW50TGlzdGVuZXIoSlNDOjpKU09iamVj
dCogZnVuY3Rpb24sIEpTQzo6SlNPYmplY3QqIHdyYXBwZXIsIGJvb2wgaXNBdHRyaWJ1dGUsIERP
TVdyYXBwZXJXb3JsZCYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIEV2ZW50KikgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgdm9p
ZCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXZlbnQqKSBvdmVycmlkZTsK
IAogICAgIHByaXZhdGU6CiAgICAgICAgIG11dGFibGUgSlNDOjpXZWFrPEpTQzo6SlNPYmplY3Q+
IG1fanNGdW5jdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TGF6eUV2ZW50TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTGF6eUV2
ZW50TGlzdGVuZXIuaAppbmRleCBiNDgzZTM3Li4xNjU0YjE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNMYXp5RXZlbnRMaXN0ZW5lci5oCkBAIC00MCw4ICs0MCw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBwcml2YXRlOgogICAgICAgICBKU0xhenlFdmVudExp
c3RlbmVyKGNvbnN0IFN0cmluZyYgZnVuY3Rpb25OYW1lLCBjb25zdCBTdHJpbmcmIGV2ZW50UGFy
YW1ldGVyTmFtZSwgY29uc3QgU3RyaW5nJiBjb2RlLCBDb250YWluZXJOb2RlKiwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VVUkwsIGNvbnN0IFRleHRQb3NpdGlvbiYsIEpTQzo6SlNPYmplY3QqIHdyYXBw
ZXIsIERPTVdyYXBwZXJXb3JsZCYgaXNvbGF0ZWRXb3JsZCk7CiAKLSAgICAgICAgdmlydHVhbCBK
U0M6OkpTT2JqZWN0KiBpbml0aWFsaXplSlNGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KikgY29uc3QgT1ZFUlJJREU7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCB3YXNDcmVhdGVkRnJvbU1h
cmt1cCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgdmlydHVhbCBK
U0M6OkpTT2JqZWN0KiBpbml0aWFsaXplSlNGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KikgY29uc3Qgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwgYm9vbCB3YXNDcmVhdGVkRnJvbU1h
cmt1cCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgICAgICBzdGF0aWMg
dm9pZCBjcmVhdGUoKSBXVEZfREVMRVRFRF9GVU5DVElPTjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2suaAppbmRleCBjMjIzNmRiLi5kN2JkODQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJh
Y2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2su
aApAQCAtNDYsOSArNDYsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5KU011dGF0aW9uQ2Fs
bGJhY2soKTsKIAotICAgIHZpcnR1YWwgdm9pZCBjYWxsKGNvbnN0IFZlY3RvcjxSZWZQdHI8TXV0
YXRpb25SZWNvcmQ+PiYsIE11dGF0aW9uT2JzZXJ2ZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgY2FsbChjb25zdCBWZWN0b3I8UmVmUHRyPE11dGF0aW9uUmVjb3JkPj4mLCBNdXRhdGlv
bk9ic2VydmVyKikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBDb250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisgICAg
dmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKTsgfQogCiBwcml2YXRlOgogICAgIEpTTXV0YXRpb25DYWxsYmFj
ayhKU0M6OkpTT2JqZWN0KiBjYWxsYmFjaywgSlNET01HbG9iYWxPYmplY3QqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmgKaW5kZXgg
ZThiZjY3Mi4uZWQ3ZjI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
UGFnZVNjcmlwdERlYnVnU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
UGFnZVNjcmlwdERlYnVnU2VydmVyLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHZv
aWQgYWRkTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciosIFBhZ2UqKTsKICAgICB2b2lkIHJl
bW92ZUxpc3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqLCBQYWdlKik7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICB0
eXBlZGVmIEhhc2hNYXA8UGFnZSosIE93blB0cjxMaXN0ZW5lclNldD4+IFBhZ2VMaXN0ZW5lcnNN
YXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1Nl
cnZlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaApp
bmRleCA1NWFlNjg0Li5jZTE0ZGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdERlYnVnU2VydmVyLmgKQEAgLTEwMiwxMiArMTAyLDEyIEBAIHByaXZhdGU6CiAgICAg
dHlwZWRlZiBWZWN0b3I8U2NyaXB0QnJlYWtwb2ludEFjdGlvbj4gQnJlYWtwb2ludEFjdGlvbnM7
CiAgICAgdHlwZWRlZiBIYXNoTWFwPEpTQzo6QnJlYWtwb2ludElELCBCcmVha3BvaW50QWN0aW9u
cz4gQnJlYWtwb2ludElEVG9BY3Rpb25zTWFwOwogCi0gICAgdmlydHVhbCB2b2lkIHNvdXJjZVBh
cnNlZChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6U291cmNlUHJvdmlkZXIqLCBpbnQgZXJyb3JMaW5l
LCBjb25zdCBTdHJpbmcmIGVycm9yTXNnKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIGJv
b2wgbmVlZFBhdXNlSGFuZGxpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCopIE9WRVJSSURFIEZJTkFM
OwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVCcmVha3BvaW50SGl0KGNvbnN0IEpTQzo6QnJlYWtw
b2ludCYpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFeGNlcHRpb25J
bkJyZWFrcG9pbnRDb25kaXRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUgZXhjZXB0
aW9uKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlUGF1c2Uo
SlNDOjpEZWJ1Z2dlcjo6UmVhc29uRm9yUGF1c2UsIEpTQzo6SlNHbG9iYWxPYmplY3QqKSBPVkVS
UklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RG9uZVByb2Nlc3NpbmdEZWJ1Z2dl
ckV2ZW50cygpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VQYXJzZWQo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OlNvdXJjZVByb3ZpZGVyKiwgaW50IGVycm9yTGluZSwgY29u
c3QgU3RyaW5nJiBlcnJvck1zZykgb3ZlcnJpZGUgRklOQUw7CisgICAgdmlydHVhbCBib29sIG5l
ZWRQYXVzZUhhbmRsaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqKSBvdmVycmlkZSBGSU5BTDsKKyAg
ICB2aXJ0dWFsIHZvaWQgaGFuZGxlQnJlYWtwb2ludEhpdChjb25zdCBKU0M6OkJyZWFrcG9pbnQm
KSBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXhjZXB0aW9uSW5CcmVh
a3BvaW50Q29uZGl0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlIGV4Y2VwdGlvbikg
Y29uc3Qgb3ZlcnJpZGUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZVBhdXNlKEpTQzo6
RGVidWdnZXI6OlJlYXNvbkZvclBhdXNlLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kikgb3ZlcnJpZGUg
RklOQUw7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeURvbmVQcm9jZXNzaW5nRGVidWdnZXJFdmVu
dHMoKSBvdmVycmlkZSBGSU5BTDsKIAogICAgIHZvaWQgcmVjb21waWxlQWxsSlNGdW5jdGlvbnNU
aW1lckZpcmVkKFRpbWVyPFNjcmlwdERlYnVnU2VydmVyPiYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oCmlu
ZGV4IDk0ZDFjNWMuLjIzZjNlYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oCkBAIC0zNywxNSArMzcsMTUg
QEAgcHVibGljOgogICAgIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlcigpOwogICAgIHZpcnR1
YWwgfldlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlcigpOwogICAgIAotICAgIHZpcnR1YWwgSlND
OjpKU0FycmF5QnVmZmVyKiB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6QXJyYXlCdWZmZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEpTQzo6SlNBcnJh
eUJ1ZmZlciogdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkFycmF5QnVmZmVyKikgb3ZlcnJpZGU7CiAgICAgCiAgICAgSlNDOjpXZWFrSGFuZGxlT3duZXIq
IHdyYXBwZXJPd25lcigpIHsgcmV0dXJuICZtX293bmVyOyB9CiAKIHByaXZhdGU6CiAgICAgY2xh
c3MgSlNBcnJheUJ1ZmZlck93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKICAg
ICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290
cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNp
dG9yJikgT1ZFUlJJREU7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRs
ZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KSBPVkVSUklERTsKKyAgICAgICAgdmlydHVh
bCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKSBvdmVycmlkZTsKKyAgICAgICAg
dmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNv
bnRleHQpIG92ZXJyaWRlOwogICAgIH07CiAKICAgICBKU0FycmF5QnVmZmVyT3duZXIgbV9vd25l
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdERl
YnVnU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1
Z1NlcnZlci5oCmluZGV4IGZiMDJkMjAuLjdmZTllNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaApAQCAtNTAsMTYgKzUw
LDE2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgaW50ZXJydXB0QW5kUnVuVGFzayhQYXNzT3duUHRy
PFNjcmlwdERlYnVnU2VydmVyOjpUYXNrPik7CiAKLSAgICB2b2lkIHJlY29tcGlsZUFsbEpTRnVu
Y3Rpb25zKCkgT1ZFUlJJREU7CisgICAgdm9pZCByZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpIG92
ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgTGlzdGVuZXJTZXQqIGdldExpc3RlbmVy
c0Zvckdsb2JhbE9iamVjdChKU0M6OkpTR2xvYmFsT2JqZWN0KikgT1ZFUlJJREUgeyByZXR1cm4g
Jm1fbGlzdGVuZXJzOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZFBhdXNlKEpTQzo6SlNHbG9iYWxP
YmplY3QqKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ29udGludWUoSlNDOjpK
U0dsb2JhbE9iamVjdCopIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgTGlzdGVuZXJTZXQqIGdl
dExpc3RlbmVyc0Zvckdsb2JhbE9iamVjdChKU0M6OkpTR2xvYmFsT2JqZWN0Kikgb3ZlcnJpZGUg
eyByZXR1cm4gJm1fbGlzdGVuZXJzOyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFBhdXNlKEpTQzo6
SlNHbG9iYWxPYmplY3QqKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29udGlu
dWUoSlNDOjpKU0dsb2JhbE9iamVjdCopIG92ZXJyaWRlIHsgfQogCi0gICAgdmlydHVhbCBib29s
IGlzQ29udGVudFNjcmlwdChKU0M6OkV4ZWNTdGF0ZSopIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIGlzQ29udGVudFNjcmlwdChKU0M6OkV4ZWNTdGF0ZSopIG92
ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcnVuRXZlbnRMb29w
V2hpbGVQYXVzZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcnVuRXZlbnRMb29wV2hp
bGVQYXVzZWQoKSBvdmVycmlkZTsKIAogICAgIFdvcmtlckdsb2JhbFNjb3BlKiBtX3dvcmtlckds
b2JhbFNjb3BlOwogICAgIExpc3RlbmVyU2V0IG1fbGlzdGVuZXJzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19jbGFzcy5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2Mv
Y19jbGFzcy5oCmluZGV4IGE2N2RlNmUuLjMyNzRmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9jL2NfY2xhc3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2Ns
YXNzLmgKQEAgLTQzLDggKzQzLDggQEAgcHVibGljOgogICAgIHN0YXRpYyBDQ2xhc3MqIGNsYXNz
Rm9ySXNBKE5QQ2xhc3MqKTsKICAgICB2aXJ0dWFsIH5DQ2xhc3MoKTsKIAotICAgIHZpcnR1YWwg
TWV0aG9kKiBtZXRob2ROYW1lZChQcm9wZXJ0eU5hbWUsIEluc3RhbmNlKikgY29uc3QgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBGaWVsZCogZmllbGROYW1lZChQcm9wZXJ0eU5hbWUsIEluc3RhbmNl
KikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBNZXRob2QqIG1ldGhvZE5hbWVkKFByb3Bl
cnR5TmFtZSwgSW5zdGFuY2UqKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEZpZWxkKiBm
aWVsZE5hbWVkKFByb3BlcnR5TmFtZSwgSW5zdGFuY2UqKSBjb25zdCBvdmVycmlkZTsKIAogcHJp
dmF0ZToKICAgICBOUENsYXNzKiBtX2lzYTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9jL2NfaW5zdGFuY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2Uu
aAppbmRleCBkZDNjZjIyLi5kYjYzMzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvYy9jX2luc3RhbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5j
ZS5oCkBAIC01MywyMCArNTMsMjAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+Q0luc3RhbmNl
KCk7CiAKLSAgICB2aXJ0dWFsIENsYXNzICpnZXRDbGFzcygpIGNvbnN0IE9WRVJSSURFOworICAg
IHZpcnR1YWwgQ2xhc3MgKmdldENsYXNzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFs
IEpTVmFsdWUgdmFsdWVPZihFeGVjU3RhdGUqKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IEpTVmFsdWUgZGVmYXVsdFZhbHVlKEV4ZWNTdGF0ZSosIFByZWZlcnJlZFByaW1pdGl2ZVR5cGUp
IGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgSlNWYWx1ZSB2YWx1ZU9mKEV4ZWNTdGF0ZSop
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgSlNWYWx1ZSBkZWZhdWx0VmFsdWUoRXhlY1N0
YXRlKiwgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0
dWFsIEpTVmFsdWUgZ2V0TWV0aG9kKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBKU1ZhbHVlIGludm9rZU1ldGhvZChFeGVjU3RhdGUqLCBSdW50aW1lTWV0
aG9kKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzSW52b2tlRGVmYXVsdE1l
dGhvZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgSlNWYWx1ZSBpbnZva2VEZWZhdWx0
TWV0aG9kKEV4ZWNTdGF0ZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgSlNWYWx1ZSBnZXRNZXRo
b2QoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEpTVmFs
dWUgaW52b2tlTWV0aG9kKEV4ZWNTdGF0ZSosIFJ1bnRpbWVNZXRob2QqKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNJbnZva2VEZWZhdWx0TWV0aG9kKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBKU1ZhbHVlIGludm9rZURlZmF1bHRNZXRob2QoRXhlY1N0YXRlKikg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNDb25zdHJ1Y3QoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIEpTVmFsdWUgaW52b2tlQ29uc3RydWN0KEV4ZWNTdGF0ZSos
IGNvbnN0IEFyZ0xpc3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNDb25z
dHJ1Y3QoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEpTVmFsdWUgaW52b2tlQ29uc3Ry
dWN0KEV4ZWNTdGF0ZSosIGNvbnN0IEFyZ0xpc3QmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwg
dm9pZCBnZXRQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJv
cGVydHlOYW1lQXJyYXkmKSBvdmVycmlkZTsKIAogICAgIEpTVmFsdWUgc3RyaW5nVmFsdWUoRXhl
Y1N0YXRlKikgY29uc3Q7CiAgICAgSlNWYWx1ZSBudW1iZXJWYWx1ZShFeGVjU3RhdGUqKSBjb25z
dDsKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBDSW5zdGFuY2UoTlBP
YmplY3QqLCBQYXNzUmVmUHRyPFJvb3RPYmplY3Q+KTsKIAotICAgIHZpcnR1YWwgUnVudGltZU9i
amVjdCogbmV3UnVudGltZU9iamVjdChFeGVjU3RhdGUqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IFJ1bnRpbWVPYmplY3QqIG5ld1J1bnRpbWVPYmplY3QoRXhlY1N0YXRlKikgb3ZlcnJpZGU7CiAg
ICAgYm9vbCB0b0pTUHJpbWl0aXZlKEV4ZWNTdGF0ZSosIGNvbnN0IGNoYXIqLCBKU1ZhbHVlJikg
Y29uc3Q7CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19ydW50aW1l
LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX3J1bnRpbWUuaAppbmRleCBlNzBkYTQ1Li5j
N2Y3YjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX3J1bnRpbWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX3J1bnRpbWUuaApAQCAtMzgsOCArMzgsOCBA
QCBjbGFzcyBDRmllbGQgOiBwdWJsaWMgRmllbGQgewogcHVibGljOgogICAgIENGaWVsZChOUElk
ZW50aWZpZXIgaWRlbnQpIDogX2ZpZWxkSWRlbnRpZmllcihpZGVudCkgeyB9CiAKLSAgICB2aXJ0
dWFsIEpTVmFsdWUgdmFsdWVGcm9tSW5zdGFuY2UoRXhlY1N0YXRlKiwgY29uc3QgSW5zdGFuY2Uq
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVUb0luc3RhbmNlKEV4
ZWNTdGF0ZSosIGNvbnN0IEluc3RhbmNlKiwgSlNWYWx1ZSkgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBKU1ZhbHVlIHZhbHVlRnJvbUluc3RhbmNlKEV4ZWNTdGF0ZSosIGNvbnN0IEluc3Rh
bmNlKikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlVG9JbnN0YW5j
ZShFeGVjU3RhdGUqLCBjb25zdCBJbnN0YW5jZSosIEpTVmFsdWUpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgTlBJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBfZmllbGRJZGVu
dGlmaWVyOyB9CiAKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIENNZXRob2QoTlBJZGVu
dGlmaWVyIGlkZW50KSA6IF9tZXRob2RJZGVudGlmaWVyKGlkZW50KSB7IH0KIAogICAgIE5QSWRl
bnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gX21ldGhvZElkZW50aWZpZXI7IH0K
LSAgICB2aXJ0dWFsIGludCBudW1QYXJhbWV0ZXJzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
MDsgfQorICAgIHZpcnR1YWwgaW50IG51bVBhcmFtZXRlcnMoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiAwOyB9CiAKIHByaXZhdGU6CiAgICAgTlBJZGVudGlmaWVyIF9tZXRob2RJZGVudGlmaWVy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfcm9vdC5oIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfcm9vdC5oCmluZGV4IDU3YmI1NzcuLjM3YjAxOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX3Jvb3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9yb290LmgKQEAgLTgzLDcgKzgzLDcgQEAgcHJp
dmF0ZToKICAgICBSb290T2JqZWN0KGNvbnN0IHZvaWQqIG5hdGl2ZUhhbmRsZSwgSlNHbG9iYWxP
YmplY3QqKTsKIAogICAgIC8vIFdlYWtIYW5kbGVPd25lcgotICAgIHZpcnR1YWwgdm9pZCBmaW5h
bGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9p
ZCogY29udGV4dCkgb3ZlcnJpZGU7CiAKICAgICBib29sIG1faXNWYWxpZDsKICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFF
U19DQkMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bUFFU19DQkMuaAppbmRleCA4YTk0ZjNmLi5mNTM0MTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oCkBA
IC00MiwxMiArNDIsMTIgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxD
cnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCi0gICAgdmlydHVhbCBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAg
dmlydHVhbCB2b2lkIGVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNv
bnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFj
aywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBkZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnMmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9y
Q2FsbGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycyYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlPcktl
eVBhaXJDYWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29k
ZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBpbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleURhdGEmLCBib29sIGV4dHJhY3RhYmxl
LCBDcnlwdG9LZXlVc2FnZSwgS2V5Q2FsbGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJh
Y2ssIEV4Y2VwdGlvbkNvZGUmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5jcnlwdChj
b25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3Qg
Q3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVy
ZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRl
Y3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYs
IGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjaywgVm9pZENhbGxiYWNr
IGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgYm9vbCBl
eHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleU9yS2V5UGFpckNhbGxiYWNrLCBWb2lkQ2Fs
bGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29u
c3QgQ3J5cHRvS2V5RGF0YSYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlD
YWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92
ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIENyeXB0b0FsZ29yaXRobUFFU19DQkMoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFF
U19LVy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
QUVTX0tXLmgKaW5kZXggM2E0OTY1OS4uZWZhY2ZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmgKQEAgLTQx
LDEyICs0MSwxMiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0
b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKLSAgICB2aXJ0dWFsIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgZW5jcnlwdEZvcldyYXBLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JD
YWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkZWNyeXB0Rm9yVW53cmFwS2V5KGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVy
YXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ss
IEV4Y2VwdGlvbkNvZGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2VuZXJhdGVLZXko
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0
b0tleVVzYWdlLCBLZXlPcktleVBhaXJDYWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxs
YmFjaywgRXhjZXB0aW9uQ29kZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBpbXBvcnRL
ZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleURhdGEm
LCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5Q2FsbGJhY2ssIFZvaWRDYWxs
YmFjayBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgZW5jcnlwdEZvcldyYXBLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JD
YWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkZWNyeXB0Rm9yVW53cmFwS2V5KGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVy
YXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ss
IEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2VuZXJhdGVLZXko
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0
b0tleVVzYWdlLCBLZXlPcktleVBhaXJDYWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxs
YmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbXBvcnRL
ZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleURhdGEm
LCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5Q2FsbGJhY2ssIFZvaWRDYWxs
YmFjayBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKIAogcHJpdmF0
ZToKICAgICBDcnlwdG9BbGdvcml0aG1BRVNfS1coKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuaCBiL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuaAppbmRleCAyZDE1YjU3
Li5lN2VlZGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1ITUFDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5oCkBAIC00MiwxMiArNDIsMTIgQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCi0g
ICAgdmlydHVhbCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmll
cigpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHNpZ24oY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJh
dGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywg
RXhjZXB0aW9uQ29kZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB2ZXJpZnkoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0
b09wZXJhdGlvbkRhdGEmIHNpZ25hdHVyZSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0
YSwgQm9vbENhbGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25D
b2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGdlbmVyYXRlS2V5KGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwg
S2V5T3JLZXlQYWlyQ2FsbGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2Vw
dGlvbkNvZGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgaW1wb3J0S2V5KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRy
YWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVy
ZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNp
Z24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNv
bnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjaywgVm9pZENhbGxiYWNrIGZh
aWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCB2ZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tl
eSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIHNpZ25hdHVyZSwgY29uc3QgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSYgZGF0YSwgQm9vbENhbGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxi
YWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGdlbmVyYXRl
S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBib29sIGV4dHJhY3RhYmxlLCBD
cnlwdG9LZXlVc2FnZSwgS2V5T3JLZXlQYWlyQ2FsbGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJl
Q2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW1w
b3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXlE
YXRhJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNrLCBWb2lk
Q2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CiAKIHBy
aXZhdGU6CiAgICAgQ3J5cHRvQWxnb3JpdGhtSE1BQygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5o
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNf
UEtDUzFfdjFfNS5oCmluZGV4IDVhMGU5MGMuLmQwZjY4NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1S
U0FFU19QS0NTMV92MV81LmgKQEAgLTQyLDEyICs0MiwxMiBAQCBwdWJsaWM6CiAKICAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKLSAgICB2aXJ0
dWFsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29u
c3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZW5jcnlwdChjb25zdCBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9u
RGF0YSYsIFZlY3RvckNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNl
cHRpb25Db2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRlY3J5cHQoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09w
ZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFj
aywgRXhjZXB0aW9uQ29kZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBnZW5lcmF0ZUtl
eShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5
cHRvS2V5VXNhZ2UsIEtleU9yS2V5UGFpckNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNh
bGxiYWNrLCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGltcG9y
dEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5RGF0
YSYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlDYWxsYmFjaywgVm9pZENh
bGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBlbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25z
dCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2ss
IFZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
JiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNh
bGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnMmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5T3JLZXlQ
YWlyQ2FsbGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJsZSwg
Q3J5cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNr
LCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgQ3J5cHRvQWxnb3Jp
dGhtUlNBRVNfUEtDUzFfdjFfNSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81
LmgKaW5kZXggMjUxMjBmMC4uYWI4NzJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtD
UzFfdjFfNS5oCkBAIC00MiwxMiArNDIsMTIgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCi0gICAgdmlydHVhbCBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0
b3JDYWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB2ZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEm
IHNpZ25hdHVyZSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgQm9vbENhbGxiYWNr
LCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIGdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnMmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5T3JLZXlQYWlyQ2Fs
bGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgaW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRv
S2V5VXNhZ2UsIEtleUNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNl
cHRpb25Db2RlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNpZ24oY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJh
dGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywg
RXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB2ZXJpZnkoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0
b09wZXJhdGlvbkRhdGEmIHNpZ25hdHVyZSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0
YSwgQm9vbENhbGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25D
b2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGdlbmVyYXRlS2V5KGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwg
S2V5T3JLZXlQYWlyQ2FsbGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2Vw
dGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW1wb3J0S2V5KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRy
YWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVy
ZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgQ3J5
cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5oCmluZGV4
IDk4NWZjMWQuLjJiZDA4ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuaApAQCAtNDIsMTIgKzQyLDEy
IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGht
PiBjcmVhdGUoKTsKIAotICAgIHZpcnR1YWwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVu
dGlmaWVyKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBl
bmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkm
LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2ssIFZvaWRDYWxsYmFj
ayBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgZGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5
cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrLCBWb2lk
Q2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIGdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMm
LCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5T3JLZXlQYWlyQ2FsbGJhY2ss
IFZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgaW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnMmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNh
Z2UsIEtleUNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25D
b2RlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGVuY3J5cHQoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlv
bkRhdGEmLCBWZWN0b3JDYWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhj
ZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkZWNyeXB0KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9P
cGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJh
Y2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2VuZXJhdGVL
ZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGJvb2wgZXh0cmFjdGFibGUsIENy
eXB0b0tleVVzYWdlLCBLZXlPcktleVBhaXJDYWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVD
YWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbXBv
cnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleURh
dGEmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5Q2FsbGJhY2ssIFZvaWRD
YWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKIAogcHJp
dmF0ZToKICAgICBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5oIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5oCmluZGV4IDFj
YzdlNDcuLjA5NzdmMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmgKQEAgLTM5LDkgKzM5LDkgQEAgcHVibGljOgog
CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwog
Ci0gICAgdmlydHVhbCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRp
ZmllcigpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGRpZ2VzdChjb25zdCBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZl
Y3RvckNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2Rl
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNr
LCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7
CiAKIHByaXZhdGU6CiAgICAgQ3J5cHRvQWxnb3JpdGhtU0hBMSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmggYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuaApp
bmRleCAwYzZlZGM1Li43YzMxOTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuaApAQCAtMzksOSArMzksOSBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobT4g
Y3JlYXRlKCk7CiAKLSAgICB2aXJ0dWFsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRp
ZmllcigpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
ZmllciBpZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGln
ZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9PcGVyYXRp
b25EYXRhJiwgVmVjdG9yQ2FsbGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ssIEV4
Y2VwdGlvbkNvZGUmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlnZXN0KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVj
dG9yQ2FsbGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUm
KSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBDcnlwdG9BbGdvcml0aG1TSEEyMjQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVNIQTI1Ni5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtU0hBMjU2LmgKaW5kZXggNTgyNjFiNC4uNmZjZGQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmgKQEAg
LTM5LDkgKzM5LDkgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlw
dG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCi0gICAgdmlydHVhbCBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmly
dHVhbCB2b2lkIGRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3Qg
Q3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVy
ZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRp
Z2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvT3BlcmF0
aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBF
eGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgQ3J5cHRvQWxnb3JpdGht
U0hBMjU2KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1TSEEzODQuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobVNIQTM4NC5oCmluZGV4IDVhODgxOWUuLjRhNWI1NGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4
NC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVNIQTM4NC5oCkBAIC0zOSw5ICszOSw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIAotICAgIHZpcnR1YWwgQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBvdmVycmlk
ZTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVycyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjaywgVm9pZENh
bGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0
IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1
cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIENy
eXB0b0FsZ29yaXRobVNIQTM4NCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuaAppbmRleCBiYTQ0NzRhLi42NGJl
MDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1TSEE1MTIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1TSEE1MTIuaApAQCAtMzksOSArMzksOSBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKLSAgICB2
aXJ0dWFsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlnZXN0KGNvbnN0IENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2Fs
bGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2ssIFZvaWRD
YWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKIAogcHJp
dmF0ZToKICAgICBDcnlwdG9BbGdvcml0aG1TSEE1MTIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2tleXMvQ3J5cHRvS2V5QUVTLmgKaW5kZXggZGE1NTI4Yi4uNGU2NmEyZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmgKQEAgLTQ2LDE1ICs0NiwxNSBAQCBwdWJs
aWM6CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDcnlwdG9LZXlBRVM+IGdlbmVyYXRlKENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIsIHNpemVfdCBsZW5ndGhCaXRzLCBib29sIGV4dHJhY3RhYmxl
LCBDcnlwdG9LZXlVc2FnZSk7CiAKLSAgICB2aXJ0dWFsIENyeXB0b0tleUNsYXNzIGtleUNsYXNz
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gQ3J5cHRvS2V5Q2xhc3M6OkFFUzsgfQorICAgIHZp
cnR1YWwgQ3J5cHRvS2V5Q2xhc3Mga2V5Q2xhc3MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBD
cnlwdG9LZXlDbGFzczo6QUVTOyB9CiAKICAgICBjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleSgp
IGNvbnN0IHsgcmV0dXJuIG1fa2V5OyB9CiAKIHByaXZhdGU6CiAgICAgQ3J5cHRvS2V5QUVTKENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5LCBib29s
IGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYnVpbGRB
bGdvcml0aG1EZXNjcmlwdGlvbihDcnlwdG9BbGdvcml0aG1EZXNjcmlwdGlvbkJ1aWxkZXImKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9LZXlEYXRh
PiBleHBvcnREYXRhKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGJ1aWxkQWxn
b3JpdGhtRGVzY3JpcHRpb24oQ3J5cHRvQWxnb3JpdGhtRGVzY3JpcHRpb25CdWlsZGVyJikgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5RGF0YT4g
ZXhwb3J0RGF0YSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IG1fa2V5
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhN
QUMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuaAppbmRleCBi
ZGZjMTM3Li40YzU4MTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9D
cnlwdG9LZXlITUFDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5
SE1BQy5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICAvLyBJZiBsZW5ndGhCeXRlcyBp
cyAwLCBhIHJlY29tbWVuZGVkIGxlbmd0aCBpcyB1c2VkLCB3aGljaCBpcyB0aGUgc2l6ZSBvZiB0
aGUgYXNzb2NpYXRlZCBoYXNoIGZ1bmN0aW9uJ3MgYmxvY2sgc2l6ZS4KICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxDcnlwdG9LZXlITUFDPiBnZW5lcmF0ZShzaXplX3QgbGVuZ3RoQnl0ZXMsIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaCwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNh
Z2UpOwogCi0gICAgdmlydHVhbCBDcnlwdG9LZXlDbGFzcyBrZXlDbGFzcygpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIENyeXB0b0tleUNsYXNzOjpITUFDOyB9CisgICAgdmlydHVhbCBDcnlwdG9L
ZXlDbGFzcyBrZXlDbGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENyeXB0b0tleUNsYXNz
OjpITUFDOyB9CiAKICAgICBjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleSgpIGNvbnN0IHsgcmV0
dXJuIG1fa2V5OyB9CiAKQEAgLTUzLDggKzUzLDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBD
cnlwdG9LZXlITUFDKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5LCBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyIGhhc2gsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlKTsKIAotICAg
IHZpcnR1YWwgdm9pZCBidWlsZEFsZ29yaXRobURlc2NyaXB0aW9uKENyeXB0b0FsZ29yaXRobURl
c2NyaXB0aW9uQnVpbGRlciYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgc3RkOjp1bmlx
dWVfcHRyPENyeXB0b0tleURhdGE+IGV4cG9ydERhdGEoKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgYnVpbGRBbGdvcml0aG1EZXNjcmlwdGlvbihDcnlwdG9BbGdvcml0aG1EZXNj
cmlwdGlvbkJ1aWxkZXImKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVl
X3B0cjxDcnlwdG9LZXlEYXRhPiBleHBvcnREYXRhKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIG1faGFzaDsKICAgICBWZWN0b3I8dWludDhfdD4gbV9r
ZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0Eu
aCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5oCmluZGV4IDc2OGRj
MjUuLjQ4OTYzZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0
b0tleVJTQS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5o
CkBAIC02NSwxMCArNjUsMTAgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBDcnlwdG9LZXlSU0Eo
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgQ3J5cHRvS2V5VHlwZSwgUGxhdGZvcm1SU0FLZXks
IGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlKTsKIAotICAgIHZpcnR1YWwgQ3J5cHRv
S2V5Q2xhc3Mga2V5Q2xhc3MoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBDcnlwdG9LZXlDbGFz
czo6UlNBOyB9CisgICAgdmlydHVhbCBDcnlwdG9LZXlDbGFzcyBrZXlDbGFzcygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIENyeXB0b0tleUNsYXNzOjpSU0E7IH0KIAotICAgIHZpcnR1YWwgdm9p
ZCBidWlsZEFsZ29yaXRobURlc2NyaXB0aW9uKENyeXB0b0FsZ29yaXRobURlc2NyaXB0aW9uQnVp
bGRlciYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPENyeXB0
b0tleURhdGE+IGV4cG9ydERhdGEoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
YnVpbGRBbGdvcml0aG1EZXNjcmlwdGlvbihDcnlwdG9BbGdvcml0aG1EZXNjcmlwdGlvbkJ1aWxk
ZXImKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9L
ZXlEYXRhPiBleHBvcnREYXRhKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBQbGF0Zm9ybVJTQUtl
eSBtX3BsYXRmb3JtS2V5OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5
cy9DcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5
cy9DcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3LmgKaW5kZXggYTU3NjRjNy4uMDIyZTg2NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXphdGlv
blJhdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVNlcmlhbGl6
YXRpb25SYXcuaApAQCAtNTEsMTIgKzUxLDEyIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgQ3J5
cHRvS2V5U2VyaWFsaXphdGlvblJhdyhjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJik7CiAKLSAg
ICB2aXJ0dWFsIGJvb2wgcmVjb25jaWxlQWxnb3JpdGhtKHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9B
bGdvcml0aG0+Jiwgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+Jikg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHJlY29uY2lsZUFsZ29yaXRobShzdGQ6
OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtPiYsIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzPiYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHJl
Y29uY2lsZVVzYWdlcyhDcnlwdG9LZXlVc2FnZSYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCByZWNvbmNpbGVFeHRyYWN0YWJsZShib29sJikgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHJlY29uY2lsZVVzYWdlcyhDcnlwdG9LZXlVc2FnZSYpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCByZWNvbmNpbGVFeHRyYWN0YWJsZShib29sJikgY29uc3Qg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9LZXlEYXRhPiBr
ZXlEYXRhKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8Q3J5
cHRvS2V5RGF0YT4ga2V5RGF0YSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgVmVjdG9yPHVpbnQ4
X3Q+IG1fZGF0YTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1l
dGVycy9DcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtcy5oCmluZGV4IDcwNWQ4Mjku
LmVlMDRhODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0Ny
eXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9w
YXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtcy5oCkBAIC0zOCw3ICszOCw3IEBA
IHB1YmxpYzoKICAgICAvLyBUaGUgaW5pdGlhbGl6YXRpb24gdmVjdG9yLiBNVVNUIGJlIDE2IGJ5
dGVzLgogICAgIHN0ZDo6YXJyYXk8Y2hhciwgMTY+IGl2OwogCi0gICAgdmlydHVhbCBDbGFzcyBw
YXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBDbGFzczo6QWVzQ2JjUGFy
YW1zOyB9CisgICAgdmlydHVhbCBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBDbGFzczo6QWVzQ2JjUGFyYW1zOyB9CiB9OwogCiBDUllQVE9fQUxHT1JJVEhN
X1BBUkFNRVRFUlNfQ0FTVFMoQWVzQ2JjUGFyYW1zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zLmggYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5Q
YXJhbXMuaAppbmRleCAyMTk3MmQ3Li5mNzI2NzY5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVzS2V5
R2VuUGFyYW1zLmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAgIC8vIFRoZSBsZW5ndGgs
IGluIGJpdHMsIG9mIHRoZSBrZXkuCiAgICAgdW5zaWduZWQgbGVuZ3RoOwogCi0gICAgdmlydHVh
bCBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBDbGFzczo6
QWVzS2V5R2VuUGFyYW1zOyB9CisgICAgdmlydHVhbCBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBDbGFzczo6QWVzS2V5R2VuUGFyYW1zOyB9CiB9OwogCiBD
UllQVE9fQUxHT1JJVEhNX1BBUkFNRVRFUlNfQ0FTVFMoQWVzS2V5R2VuUGFyYW1zKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSG1h
Y0tleVBhcmFtcy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxn
b3JpdGhtSG1hY0tleVBhcmFtcy5oCmluZGV4IDA4NmUxMWUuLmZiZmNhNGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNLZXlQ
YXJhbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdv
cml0aG1IbWFjS2V5UGFyYW1zLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIGJvb2wg
aGFzTGVuZ3RoOwogICAgIHVuc2lnbmVkIGxlbmd0aDsKIAotICAgIHZpcnR1YWwgQ2xhc3MgcGFy
YW1ldGVyc0NsYXNzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gQ2xhc3M6OkhtYWNLZXlQYXJh
bXM7IH0KKyAgICB2aXJ0dWFsIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIENsYXNzOjpIbWFjS2V5UGFyYW1zOyB9CiB9OwogCiBDUllQVE9fQUxHT1JJVEhN
X1BBUkFNRVRFUlNfQ0FTVFMoSG1hY0tleVBhcmFtcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMuaApp
bmRleCA0Y2U4MWMyLi5hNmIyYjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
cGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcy5oCkBAIC0zOCw3
ICszOCw3IEBAIHB1YmxpYzoKICAgICAvLyBUaGUgaW5uZXIgaGFzaCBmdW5jdGlvbiB0byB1c2Uu
CiAgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoOwogCi0gICAgdmlydHVhbCBDbGFz
cyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBDbGFzczo6SG1hY1Bh
cmFtczsgfQorICAgIHZpcnR1YWwgQ2xhc3MgcGFyYW1ldGVyc0NsYXNzKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gQ2xhc3M6OkhtYWNQYXJhbXM7IH0KIH07CiAKIENSWVBUT19BTEdPUklUSE1f
UEFSQU1FVEVSU19DQVNUUyhIbWFjUGFyYW1zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJh
bXMuaAppbmRleCA3MDZmZWM4Li5iNWFkYTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5Q
YXJhbXMuaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgLy8gVGhlIFJTQSBwdWJsaWMg
ZXhwb25lbnQsIGVuY29kZWQgYXMgQmlnSW50ZWdlci4KICAgICBWZWN0b3I8dWludDhfdD4gcHVi
bGljRXhwb25lbnQ7CiAKLSAgICB2aXJ0dWFsIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIENsYXNzOjpSc2FLZXlHZW5QYXJhbXM7IH0KKyAgICB2aXJ0dWFs
IENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENsYXNzOjpS
c2FLZXlHZW5QYXJhbXM7IH0KIH07CiAKIENSWVBUT19BTEdPUklUSE1fUEFSQU1FVEVSU19DQVNU
UyhSc2FLZXlHZW5QYXJhbXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFy
YW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaC5oIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhh
c2guaAppbmRleCAwNzRhYjcwLi5hZjU2N2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUtl
eVBhcmFtc1dpdGhIYXNoLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFz
SGFzaDsKICAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2g7CiAKLSAgICB2aXJ0dWFs
IENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIENsYXNzOjpS
c2FLZXlQYXJhbXNXaXRoSGFzaDsgfQorICAgIHZpcnR1YWwgQ2xhc3MgcGFyYW1ldGVyc0NsYXNz
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ2xhc3M6OlJzYUtleVBhcmFtc1dpdGhIYXNoOyB9
CiB9OwogCiBDUllQVE9fQUxHT1JJVEhNX1BBUkFNRVRFUlNfQ0FTVFMoUnNhS2V5UGFyYW1zV2l0
aEhhc2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9Dcnlw
dG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1l
dGVycy9DcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmgKaW5kZXggZmRhZGVmYS4uZDQzNjI0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxn
b3JpdGhtUnNhT2FlcFBhcmFtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0
ZXJzL0NyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJs
aWM6CiAgICAgYm9vbCBoYXNMYWJlbDsKICAgICBWZWN0b3I8dWludDhfdD4gbGFiZWw7CiAKLSAg
ICB2aXJ0dWFsIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IENsYXNzOjpSc2FPYWVwUGFyYW1zOyB9CisgICAgdmlydHVhbCBDbGFzcyBwYXJhbWV0ZXJzQ2xh
c3MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDbGFzczo6UnNhT2FlcFBhcmFtczsgfQogfTsK
IAogQ1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTX0NBU1RTKFJzYU9hZXBQYXJhbXMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1S
c2FTc2FQYXJhbXMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0Fs
Z29yaXRobVJzYVNzYVBhcmFtcy5oCmluZGV4IDNiMmEyN2YuLmQyZjI5MjMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FTc2FQ
YXJhbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdv
cml0aG1Sc2FTc2FQYXJhbXMuaApAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAgLy8gVGhl
IGhhc2ggYWxnb3JpdGhtIHRvIHVzZS4KICAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhh
c2g7CiAKLSAgICB2aXJ0dWFsIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIENsYXNzOjpSc2FTc2FQYXJhbXM7IH0KKyAgICB2aXJ0dWFsIENsYXNzIHBhcmFt
ZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENsYXNzOjpSc2FTc2FQYXJhbXM7
IH0KIH07CiAKIENSWVBUT19BTEdPUklUSE1fUEFSQU1FVEVSU19DQVNUUyhSc2FTc2FQYXJhbXMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFwZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5oCmluZGV4IDQ0MWE1YjQuLjRkODViZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5oCkBAIC04NCw5ICs4NCw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFJhZGl1c1goUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcmFkaXVz
WCkgeyBtX3JhZGl1c1ggPSByYWRpdXNYOyB9CiAgICAgdm9pZCBzZXRSYWRpdXNZKFBhc3NSZWZQ
dHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHJhZGl1c1kpIHsgbV9yYWRpdXNZID0gcmFkaXVzWTsgfQog
Ci0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBDU1NCYXNp
Y1NoYXBlUmVjdGFuZ2xlVHlwZTsgfQotICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0IENTU0Jhc2ljU2hhcGUm
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIENTU0Jhc2ljU2hhcGVSZWN0YW5nbGVUeXBlOyB9CisgICAgdmlydHVhbCBTdHJp
bmcgY3NzVGV4dCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBlcXVhbHMoY29u
c3QgQ1NTQmFzaWNTaGFwZSYpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIENTU0Jh
c2ljU2hhcGVSZWN0YW5nbGUoKSB7IH0KQEAgLTExNyw5ICsxMTcsOSBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRSYWRpdXNYKFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHJhZGl1c1gpIHsg
bV9yYWRpdXNYID0gcmFkaXVzWDsgfQogICAgIHZvaWQgc2V0UmFkaXVzWShQYXNzUmVmUHRyPENT
U1ByaW1pdGl2ZVZhbHVlPiByYWRpdXNZKSB7IG1fcmFkaXVzWSA9IHJhZGl1c1k7IH0KIAotICAg
IHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gQ1NTQmFzaWNTaGFw
ZUluc2V0UmVjdGFuZ2xlVHlwZTsgfQotICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0IENTU0Jhc2ljU2hhcGUm
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIENTU0Jhc2ljU2hhcGVJbnNldFJlY3RhbmdsZVR5cGU7IH0KKyAgICB2aXJ0dWFs
IFN0cmluZyBjc3NUZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGVxdWFs
cyhjb25zdCBDU1NCYXNpY1NoYXBlJikgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAg
Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKCkgeyB9CkBAIC0xNTcsOSArMTU3LDkgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0Qm90dG9tUmlnaHRSYWRpdXMoUGFzc1JlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gcmFkaXVzKSB7IG1fYm90dG9tUmlnaHRSYWRpdXMgPSByYWRpdXM7IH0KICAgICB2
b2lkIHNldEJvdHRvbUxlZnRSYWRpdXMoUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcmFk
aXVzKSB7IG1fYm90dG9tTGVmdFJhZGl1cyA9IHJhZGl1czsgfQogCi0gICAgdmlydHVhbCBUeXBl
IHR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBDU1NCYXNpY1NoYXBlSW5zZXRUeXBlOyB9
Ci0gICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgYm9vbCBlcXVhbHMoY29uc3QgQ1NTQmFzaWNTaGFwZSYpIGNvbnN0IE9WRVJSSURFOworICAg
IHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ1NTQmFzaWNTaGFw
ZUluc2V0VHlwZTsgfQorICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0IENTU0Jhc2ljU2hhcGUmKSBjb25zdCBv
dmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBDU1NCYXNpY1NoYXBlSW5zZXQoKSB7IH0KQEAgLTE3
OSw5ICsxNzksOSBAQCBjbGFzcyBDU1NCYXNpY1NoYXBlQ2lyY2xlIDogcHVibGljIENTU0Jhc2lj
U2hhcGUgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0Jhc2ljU2hhcGVDaXJj
bGU+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NCYXNpY1NoYXBlQ2lyY2xlKTsg
fQogCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBDU1NC
YXNpY1NoYXBlQ2lyY2xlVHlwZTsgfQotICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0IENTU0Jhc2ljU2hhcGUm
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIENTU0Jhc2ljU2hhcGVDaXJjbGVUeXBlOyB9CisgICAgdmlydHVhbCBTdHJpbmcg
Y3NzVGV4dCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBlcXVhbHMoY29uc3Qg
Q1NTQmFzaWNTaGFwZSYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgQ1NTUHJpbWl0aXZlVmFsdWUq
IGNlbnRlclgoKSBjb25zdCB7IHJldHVybiBtX2NlbnRlclguZ2V0KCk7IH0KICAgICBDU1NQcmlt
aXRpdmVWYWx1ZSogY2VudGVyWSgpIGNvbnN0IHsgcmV0dXJuIG1fY2VudGVyWS5nZXQoKTsgfQpA
QCAtMjExLDkgKzIxMSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENlbnRlclkoUGFzc1JlZlB0
cjxDU1NQcmltaXRpdmVWYWx1ZT4gY2VudGVyWSkgeyBtX2NlbnRlclkgPSBjZW50ZXJZOyB9CiAg
ICAgdm9pZCBzZXRSYWRpdXMoUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcmFkaXVzKSB7
IG1fcmFkaXVzID0gcmFkaXVzOyB9CiAKLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIENTU0RlcHJlY2F0ZWRCYXNpY1NoYXBlQ2lyY2xlVHlwZTsgfQotICAg
IHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJv
b2wgZXF1YWxzKGNvbnN0IENTU0Jhc2ljU2hhcGUmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENTU0RlcHJlY2F0ZWRCYXNp
Y1NoYXBlQ2lyY2xlVHlwZTsgfQorICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0IENTU0Jhc2ljU2hhcGUmKSBj
b25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBDU1NEZXByZWNhdGVkQmFzaWNTaGFwZUNp
cmNsZSgpIHsgfQpAQCAtMjM3LDkgKzIzNyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJhZGl1
c1goUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcmFkaXVzWCkgeyBtX3JhZGl1c1ggPSBy
YWRpdXNYOyB9CiAgICAgdm9pZCBzZXRSYWRpdXNZKFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFs
dWU+IHJhZGl1c1kpIHsgbV9yYWRpdXNZID0gcmFkaXVzWTsgfQogCi0gICAgdmlydHVhbCBUeXBl
IHR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBDU1NEZXByZWNhdGVkQmFzaWNTaGFwZUVs
bGlwc2VUeXBlOyB9Ci0gICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgYm9vbCBlcXVhbHMoY29uc3QgQ1NTQmFzaWNTaGFwZSYpIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
Q1NTRGVwcmVjYXRlZEJhc2ljU2hhcGVFbGxpcHNlVHlwZTsgfQorICAgIHZpcnR1YWwgU3RyaW5n
IGNzc1RleHQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0
IENTU0Jhc2ljU2hhcGUmKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBDU1NEZXBy
ZWNhdGVkQmFzaWNTaGFwZUVsbGlwc2UoKSB7IH0KQEAgLTI2NCw5ICsyNjQsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRSYWRpdXNYKFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHJhZGl1
c1gpIHsgbV9yYWRpdXNYID0gcmFkaXVzWDsgfQogICAgIHZvaWQgc2V0UmFkaXVzWShQYXNzUmVm
UHRyPENTU1ByaW1pdGl2ZVZhbHVlPiByYWRpdXNZKSB7IG1fcmFkaXVzWSA9IHJhZGl1c1k7IH0K
IAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gQ1NTQmFz
aWNTaGFwZUVsbGlwc2VUeXBlOyB9Ci0gICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBlcXVhbHMoY29uc3QgQ1NTQmFzaWNTaGFwZSYp
IGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gQ1NTQmFzaWNTaGFwZUVsbGlwc2VUeXBlOyB9CisgICAgdmlydHVhbCBTdHJpbmcg
Y3NzVGV4dCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBlcXVhbHMoY29uc3Qg
Q1NTQmFzaWNTaGFwZSYpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIENTU0Jhc2lj
U2hhcGVFbGxpcHNlKCkgeyB9CkBAIC0yOTQsOSArMjk0LDkgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0V2luZFJ1bGUoV2luZFJ1bGUgdykgeyBtX3dpbmRSdWxlID0gdzsgfQogICAgIFdpbmRSdWxl
IHdpbmRSdWxlKCkgY29uc3QgeyByZXR1cm4gbV93aW5kUnVsZTsgfQogCi0gICAgdmlydHVhbCBU
eXBlIHR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBDU1NCYXNpY1NoYXBlUG9seWdvblR5
cGU7IH0KLSAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIGVxdWFscyhjb25zdCBDU1NCYXNpY1NoYXBlJikgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDU1NCYXNp
Y1NoYXBlUG9seWdvblR5cGU7IH0KKyAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGVxdWFscyhjb25zdCBDU1NCYXNpY1NoYXBlJikg
Y29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgQ1NTQmFzaWNTaGFwZVBvbHlnb24oKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbnZhc1ZhbHVlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ2FudmFzVmFsdWUuaAppbmRleCA2N2VmNmNlLi5kY2FiNmIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FudmFzVmFsdWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ2FudmFzVmFsdWUuaApAQCAtNzIsMTUgKzcyLDE1IEBAIHByaXZhdGU6
CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjYW52YXND
aGFuZ2VkKEhUTUxDYW52YXNFbGVtZW50JiBjYW52YXMsIGNvbnN0IEZsb2F0UmVjdCYgY2hhbmdl
ZFJlY3QpIE9WRVJSSURFCisgICAgICAgIHZpcnR1YWwgdm9pZCBjYW52YXNDaGFuZ2VkKEhUTUxD
YW52YXNFbGVtZW50JiBjYW52YXMsIGNvbnN0IEZsb2F0UmVjdCYgY2hhbmdlZFJlY3QpIG92ZXJy
aWRlCiAgICAgICAgIHsKICAgICAgICAgICAgIG1fb3duZXJWYWx1ZS5jYW52YXNDaGFuZ2VkKGNh
bnZhcywgY2hhbmdlZFJlY3QpOwogICAgICAgICB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjYW52
YXNSZXNpemVkKEhUTUxDYW52YXNFbGVtZW50JiBjYW52YXMpIE9WRVJSSURFCisgICAgICAgIHZp
cnR1YWwgdm9pZCBjYW52YXNSZXNpemVkKEhUTUxDYW52YXNFbGVtZW50JiBjYW52YXMpIG92ZXJy
aWRlCiAgICAgICAgIHsKICAgICAgICAgICAgIG1fb3duZXJWYWx1ZS5jYW52YXNSZXNpemVkKGNh
bnZhcyk7CiAgICAgICAgIH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGNhbnZhc0Rlc3Ryb3llZChI
VE1MQ2FudmFzRWxlbWVudCYgY2FudmFzKSBPVkVSUklERQorICAgICAgICB2aXJ0dWFsIHZvaWQg
Y2FudmFzRGVzdHJveWVkKEhUTUxDYW52YXNFbGVtZW50JiBjYW52YXMpIG92ZXJyaWRlCiAgICAg
ICAgIHsKICAgICAgICAgICAgIG1fb3duZXJWYWx1ZS5jYW52YXNEZXN0cm95ZWQoY2FudmFzKTsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NoYXJzZXRSdWxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2hhcnNldFJ1bGUuaAppbmRleCA4NmQzNDJiLi44
NmVhM2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2hhcnNldFJ1bGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2hhcnNldFJ1bGUuaApAQCAtMzUsOSArMzUsOSBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5DU1NDaGFyc2V0UnVsZSgpIHsgfQogCi0gICAgdmly
dHVhbCBDU1NSdWxlOjpUeXBlIHR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBDSEFSU0VU
X1JVTEU7IH0KLSAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIHJlYXR0YWNoKFN0eWxlUnVsZUJhc2UqIHJ1bGUpIE9WRVJSSURFIHsg
QVNTRVJUX1VOVVNFRChydWxlLCAhcnVsZSk7IH0KKyAgICB2aXJ0dWFsIENTU1J1bGU6OlR5cGUg
dHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENIQVJTRVRfUlVMRTsgfQorICAgIHZpcnR1
YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVh
dHRhY2goU3R5bGVSdWxlQmFzZSogcnVsZSkgb3ZlcnJpZGUgeyBBU1NFUlRfVU5VU0VEKHJ1bGUs
ICFydWxlKTsgfQogCiAgICAgY29uc3QgU3RyaW5nJiBlbmNvZGluZygpIGNvbnN0IHsgcmV0dXJu
IG1fZW5jb2Rpbmc7IH0KICAgICB2b2lkIHNldEVuY29kaW5nKGNvbnN0IFN0cmluZyYgZW5jb2Rp
bmcsIEV4Y2VwdGlvbkNvZGUmKSB7IG1fZW5jb2RpbmcgPSBlbmNvZGluZzsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oCmluZGV4IDE2NzZh
YTcuLmVmZmEwMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmgKQEAgLTEwMCw4ICsxMDAsOCBAQCBwdWJsaWM6CiAgICAgfQogICAgIHZp
cnR1YWwgfkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbigpOwogCi0gICAgdmlydHVhbCB2b2lk
IHJlZigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkZXJlZigpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCByZWYoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSBv
dmVycmlkZTsKIAogICAgIFN0cmluZyBnZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQpIGNv
bnN0OwogCkBAIC0xMDksMjIgKzEwOSwyMiBAQCBwcml2YXRlOgogICAgIENTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbihQYXNzUmVmUHRyPE5vZGU+LCBib29sIGFsbG93VmlzaXRlZFN0eWxlLCBj
b25zdCBTdHJpbmcmKTsKIAogICAgIC8vIENTU09NIGZ1bmN0aW9ucy4gRG9uJ3QgbWFrZSB0aGVz
ZSBwdWJsaWMuCi0gICAgdmlydHVhbCBDU1NSdWxlKiBwYXJlbnRSdWxlKCkgY29uc3QgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIFN0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGdldFByb3BlcnR5Q1NTVmFsdWUoY29uc3QgU3Ry
aW5nJiBwcm9wZXJ0eU5hbWUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIGdldFByb3Bl
cnR5VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgU3RyaW5nIGdldFByb3BlcnR5UHJpb3JpdHkoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIGdldFByb3BlcnR5U2hvcnRoYW5kKGNvbnN0
IFN0cmluZyYgcHJvcGVydHlOYW1lKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNQcm9w
ZXJ0eUltcGxpY2l0KGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0UHJvcGVydHkoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGNvbnN0
IFN0cmluZyYgdmFsdWUsIGNvbnN0IFN0cmluZyYgcHJpb3JpdHksIEV4Y2VwdGlvbkNvZGUmKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyByZW1vdmVQcm9wZXJ0eShjb25zdCBTdHJpbmcm
IHByb3BlcnR5TmFtZSwgRXhjZXB0aW9uQ29kZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNzc1RleHQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q3NzVGV4
dChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQ
YXNzUmVmUHRyPENTU1ZhbHVlPiBnZXRQcm9wZXJ0eUNTU1ZhbHVlSW50ZXJuYWwoQ1NTUHJvcGVy
dHlJRCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZUludGVy
bmFsKENTU1Byb3BlcnR5SUQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRQcm9wZXJ0
eUludGVybmFsKENTU1Byb3BlcnR5SUQsIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgaW1wb3J0
YW50LCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQYXNzUmVmPE11dGFi
bGVTdHlsZVByb3BlcnRpZXM+IGNvcHlQcm9wZXJ0aWVzKCkgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBDU1NSdWxlKiBwYXJlbnRSdWxlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBp
dGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8Q1NTVmFsdWU+IGdldFByb3BlcnR5Q1NTVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5h
bWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIGdldFByb3BlcnR5VmFsdWUoY29uc3Qg
U3RyaW5nJiBwcm9wZXJ0eU5hbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIGdldFBy
b3BlcnR5UHJpb3JpdHkoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgU3RyaW5nIGdldFByb3BlcnR5U2hvcnRoYW5kKGNvbnN0IFN0cmluZyYgcHJvcGVy
dHlOYW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNQcm9wZXJ0eUltcGxpY2l0KGNv
bnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
UHJvcGVydHkoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUs
IGNvbnN0IFN0cmluZyYgcHJpb3JpdHksIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIFN0cmluZyByZW1vdmVQcm9wZXJ0eShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwg
RXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q3NzVGV4dChjb25zdCBTdHJpbmcm
LCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPENTU1Zh
bHVlPiBnZXRQcm9wZXJ0eUNTU1ZhbHVlSW50ZXJuYWwoQ1NTUHJvcGVydHlJRCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZUludGVybmFsKENTU1Byb3BlcnR5
SUQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRQcm9wZXJ0eUludGVybmFsKENTU1By
b3BlcnR5SUQsIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgaW1wb3J0YW50LCBFeGNlcHRpb25D
b2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQYXNzUmVmPE11dGFibGVTdHlsZVByb3BlcnRp
ZXM+IGNvcHlQcm9wZXJ0aWVzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBQYXNzUmVmUHRyPENT
U1ZhbHVlPiBnZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5SUQsIEVVcGRhdGVMYXlvdXQg
PSBVcGRhdGVMYXlvdXQpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQ3Jvc3NmYWRlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2ZhZGVWYWx1
ZS5oCmluZGV4IDkwNjRhYzcuLjUzYmQwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NDcm9zc2ZhZGVWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDcm9zc2Zh
ZGVWYWx1ZS5oCkBAIC04OSw3ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgICAgIH0KIAogICAgICAg
ICB2aXJ0dWFsIH5Dcm9zc2ZhZGVTdWJpbWFnZU9ic2VydmVyUHJveHkoKSB7IH0KLSAgICAgICAg
dmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChDYWNoZWRJbWFnZSosIGNvbnN0IEludFJlY3QqID0g
MCkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQoQ2FjaGVkSW1h
Z2UqLCBjb25zdCBJbnRSZWN0KiA9IDApIG92ZXJyaWRlOwogICAgICAgICB2b2lkIHNldFJlYWR5
KGJvb2wgcmVhZHkpIHsgbV9yZWFkeSA9IHJlYWR5OyB9CiAgICAgcHJpdmF0ZToKICAgICAgICAg
Q1NTQ3Jvc3NmYWRlVmFsdWUqIG1fb3duZXJWYWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmls
dGVySW1hZ2VWYWx1ZS5oCmluZGV4IDk5YWZhY2YuLmYyMTJmNTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGaWx0ZXJJbWFnZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZpbHRlckltYWdlVmFsdWUuaApAQCAtOTksNyArOTksNyBAQCBwcml2YXRlOgogICAg
ICAgICB9CiAKICAgICAgICAgdmlydHVhbCB+RmlsdGVyU3ViaW1hZ2VPYnNlcnZlclByb3h5KCkg
eyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqLCBjb25z
dCBJbnRSZWN0KiA9IDApIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFu
Z2VkKENhY2hlZEltYWdlKiwgY29uc3QgSW50UmVjdCogPSAwKSBvdmVycmlkZTsKICAgICAgICAg
dm9pZCBzZXRSZWFkeShib29sIHJlYWR5KSB7IG1fcmVhZHkgPSByZWFkeTsgfQogICAgIHByaXZh
dGU6CiAgICAgICAgIENTU0ZpbHRlckltYWdlVmFsdWUqIG1fb3duZXJWYWx1ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250RmFjZVJ1bGUuaAppbmRleCBjYzY1YzNlLi4zMmM4ZGE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5oCkBAIC0zNiw5ICszNiw5IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgfkNTU0ZvbnRGYWNlUnVsZSgpOwogCi0gICAgdmlydHVhbCBDU1NSdWxlOjpUeXBl
IHR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBGT05UX0ZBQ0VfUlVMRTsgfQotICAgIHZp
cnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
cmVhdHRhY2goU3R5bGVSdWxlQmFzZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgQ1NTUnVsZTo6
VHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gRk9OVF9GQUNFX1JVTEU7IH0KKyAg
ICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHJlYXR0YWNoKFN0eWxlUnVsZUJhc2UqKSBvdmVycmlkZTsKIAogICAgIENTU1N0eWxlRGVj
bGFyYXRpb24qIHN0eWxlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250U2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuaAppbmRl
eCBhYzMyMzE4Li5jZDVjM2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dFNlbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRTZWxlY3Rvci5oCkBA
IC01NCwyNyArNTQsMjcgQEAgcHVibGljOgogICAgIH0KICAgICB2aXJ0dWFsIH5DU1NGb250U2Vs
ZWN0b3IoKTsKICAgICAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHZlcnNpb24oKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiBtX3ZlcnNpb247IH0KLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHVuaXF1ZUlk
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV91bmlxdWVJZDsgfQorICAgIHZpcnR1YWwgdW5z
aWduZWQgdmVyc2lvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fdmVyc2lvbjsgfQorICAg
IHZpcnR1YWwgdW5zaWduZWQgdW5pcXVlSWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Vu
aXF1ZUlkOyB9CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Rm9udERhdGE+IGdldEZvbnREYXRh
KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgc2l6ZV90IGZhbGxiYWNrRm9udERhdGFDb3VudCgpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxGb250RGF0YT4gZ2V0RmFsbGJhY2tGb250RGF0YShjb25zdCBG
b250RGVzY3JpcHRpb24mLCBzaXplX3QpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxGb250RGF0YT4gZ2V0Rm9udERhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRv
bWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBzaXplX3QgZmFsbGJhY2tGb250RGF0
YUNvdW50KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZvbnREYXRhPiBnZXRG
YWxsYmFja0ZvbnREYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIHNpemVfdCkgb3ZlcnJpZGU7
CiAgICAgQ1NTU2VnbWVudGVkRm9udEZhY2UqIGdldEZvbnRGYWNlKGNvbnN0IEZvbnREZXNjcmlw
dGlvbiYsIGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5KTsKIAotICAgIHZpcnR1YWwgYm9vbCBy
ZXNvbHZlc0ZhbWlseUZvcihjb25zdCBGb250RGVzY3JpcHRpb24mKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIGJvb2wgcmVzb2x2ZXNGYW1pbHlGb3IoY29uc3QgRm9udERlc2NyaXB0aW9u
JikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGNsZWFyRG9jdW1lbnQoKTsKIAogICAgIHZv
aWQgYWRkRm9udEZhY2VSdWxlKGNvbnN0IFN0eWxlUnVsZUZvbnRGYWNlKik7CiAKICAgICB2b2lk
IGZvbnRMb2FkZWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZm9udENhY2hlSW52YWxpZGF0ZWQoKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZm9udENhY2hlSW52YWxpZGF0ZWQoKSBvdmVycmlk
ZTsKIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIHJlZ2lz
dGVyRm9ySW52YWxpZGF0aW9uQ2FsbGJhY2tzKEZvbnRTZWxlY3RvckNsaWVudCopIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyRm9ySW52YWxpZGF0aW9uQ2FsbGJhY2tzKEZv
bnRTZWxlY3RvckNsaWVudCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckZv
ckludmFsaWRhdGlvbkNhbGxiYWNrcyhGb250U2VsZWN0b3JDbGllbnQqKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlckZvckludmFsaWRhdGlvbkNhbGxiYWNrcyhGb250U2Vs
ZWN0b3JDbGllbnQqKSBvdmVycmlkZTsKIAogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0dyb3VwaW5nUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyb3VwaW5nUnVsZS5o
CmluZGV4IDUwN2NkYTcuLjI3NDg2NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NHcm91cGluZ1J1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JvdXBpbmdSdWxl
LmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgQ1NTR3JvdXBpbmdSdWxlIDogcHVibGljIENTU1J1
bGUgewogcHVibGljOgogICAgIHZpcnR1YWwgfkNTU0dyb3VwaW5nUnVsZSgpOwogCi0gICAgdmly
dHVhbCB2b2lkIHJlYXR0YWNoKFN0eWxlUnVsZUJhc2UqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgcmVhdHRhY2goU3R5bGVSdWxlQmFzZSopIG92ZXJyaWRlOwogCiAgICAgQ1NTUnVsZUxp
c3QqIGNzc1J1bGVzKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NIb3N0UnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0hvc3RSdWxlLmgKaW5kZXggODYz
YzkzZC4uZjNlN2RjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0hvc3RSdWxl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0hvc3RSdWxlLmgKQEAgLTMzLDggKzMzLDgg
QEAgY2xhc3MgQ1NTSG9zdFJ1bGUgOiBwdWJsaWMgQ1NTR3JvdXBpbmdSdWxlIHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NIb3N0UnVsZT4gY3JlYXRlKFN0eWxlUnVsZUhvc3Qq
IHJ1bGUsIENTU1N0eWxlU2hlZXQqIHNoZWV0KSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ1NTSG9z
dFJ1bGUocnVsZSwgc2hlZXQpKTsgfQogCi0gICAgdmlydHVhbCBDU1NSdWxlOjpUeXBlIHR5cGUo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBDU1NSdWxlOjpIT1NUX1JVTEU7IH0KLSAgICB2aXJ0
dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBDU1NSdWxl
OjpUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDU1NSdWxlOjpIT1NUX1JVTEU7
IH0KKyAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZh
dGU6CiAgICAgQ1NTSG9zdFJ1bGUoU3R5bGVSdWxlSG9zdCosIENTU1N0eWxlU2hlZXQqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5oCmluZGV4IDk5MjRjOTAuLjgzMTIyYjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltcG9ydFJ1bGUuaApAQCAtMzcsOSArMzcsOSBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgdmlydHVhbCB+Q1NTSW1wb3J0UnVsZSgpOwogCi0gICAgdmlydHVhbCBDU1NSdWxlOjpUeXBl
IHR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBJTVBPUlRfUlVMRTsgfQotICAgIHZpcnR1
YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVh
dHRhY2goU3R5bGVSdWxlQmFzZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgQ1NTUnVsZTo6VHlw
ZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gSU1QT1JUX1JVTEU7IH0KKyAgICB2aXJ0
dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJl
YXR0YWNoKFN0eWxlUnVsZUJhc2UqKSBvdmVycmlkZTsKIAogICAgIFN0cmluZyBocmVmKCkgY29u
c3Q7CiAgICAgTWVkaWFMaXN0KiBtZWRpYSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU01lZGlhUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVs
ZS5oCmluZGV4IDc3MzViMTIuLmFlZWE5ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NNZWRpYVJ1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmgK
QEAgLTM2LDkgKzM2LDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+Q1NTTWVkaWFSdWxlKCk7
CiAKLSAgICB2aXJ0dWFsIENTU1J1bGU6OlR5cGUgdHlwZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIE1FRElBX1JVTEU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVhdHRhY2goU3R5bGVSdWxlQmFz
ZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIENTU1J1bGU6OlR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIE1FRElBX1JVTEU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVhdHRhY2goU3R5bGVSdWxlQmFz
ZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBvdmVycmlk
ZTsKIAogICAgIE1lZGlhTGlzdCogbWVkaWEoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhZ2VSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1
bGUuaAppbmRleCA4ZjYxOTU4Li5hNDQzOWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFnZVJ1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuaApA
QCAtMzcsOSArMzcsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5DU1NQYWdlUnVsZSgpOwog
Ci0gICAgdmlydHVhbCBDU1NSdWxlOjpUeXBlIHR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biBQQUdFX1JVTEU7IH0KLSAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3QgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIHJlYXR0YWNoKFN0eWxlUnVsZUJhc2UqKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIENTU1J1bGU6OlR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IFBBR0VfUlVMRTsgfQorICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVhdHRhY2goU3R5bGVSdWxlQmFzZSopIG92ZXJyaWRlOwog
CiAgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
UnVsZS5oCmluZGV4IDM3YzY0MGQuLmZmZDEwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVJ1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxl
LmgKQEAgLTM3LDggKzM3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkNTU1N0eWxlUnVsZSgp
OwogCiAgICAgdmlydHVhbCBDU1NSdWxlOjpUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBTVFlM
RV9SVUxFOyB9Ci0gICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCByZWF0dGFjaChTdHlsZVJ1bGVCYXNlKikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCByZWF0dGFjaChTdHlsZVJ1bGVCYXNlKikgb3ZlcnJpZGU7CiAKICAgICBTdHJpbmcgc2VsZWN0
b3JUZXh0KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTZWxlY3RvclRleHQoY29uc3QgU3RyaW5nJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuaAppbmRleCBlNzAwOWZhLi41ODJkZTA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmgKQEAgLTUzLDEzICs1MywxMyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIH5DU1NTdHlsZVNoZWV0KCk7CiAKLSAgICB2aXJ0dWFsIENTU1N0eWxlU2hl
ZXQqIHBhcmVudFN0eWxlU2hlZXQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIE5vZGUq
IG93bmVyTm9kZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fb3duZXJOb2RlOyB9Ci0gICAg
dmlydHVhbCBNZWRpYUxpc3QqIG1lZGlhKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBT
dHJpbmcgaHJlZigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIHRpdGxlKCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV90aXRsZTsgfQotICAgIHZpcnR1YWwgYm9vbCBkaXNh
YmxlZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1faXNEaXNhYmxlZDsgfQotICAgIHZpcnR1
YWwgdm9pZCBzZXREaXNhYmxlZChib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIENTU1N0eWxl
U2hlZXQqIHBhcmVudFN0eWxlU2hlZXQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIE5v
ZGUqIG93bmVyTm9kZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fb3duZXJOb2RlOyB9Cisg
ICAgdmlydHVhbCBNZWRpYUxpc3QqIG1lZGlhKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBTdHJpbmcgaHJlZigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIHRpdGxl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV90aXRsZTsgfQorICAgIHZpcnR1YWwgYm9vbCBk
aXNhYmxlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faXNEaXNhYmxlZDsgfQorICAgIHZp
cnR1YWwgdm9pZCBzZXREaXNhYmxlZChib29sKSBvdmVycmlkZTsKICAgICAKICAgICBQYXNzUmVm
UHRyPENTU1J1bGVMaXN0PiBjc3NSdWxlcygpOwogICAgIHVuc2lnbmVkIGluc2VydFJ1bGUoY29u
c3QgU3RyaW5nJiBydWxlLCB1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtNzUs
MTAgKzc1LDEwIEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKICAgICBD
U1NSdWxlKiBpdGVtKHVuc2lnbmVkIGluZGV4KTsKIAotICAgIHZpcnR1YWwgdm9pZCBjbGVhck93
bmVyTm9kZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgQ1NTSW1wb3J0UnVsZSogb3duZXJSdWxl
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9vd25lclJ1bGU7IH0KLSAgICB2aXJ0dWFsIFVS
TCBiYXNlVVJMKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzTG9hZGluZygp
IGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjbGVhck93bmVyTm9kZSgpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgQ1NTSW1wb3J0UnVsZSogb3duZXJSdWxlKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9vd25lclJ1bGU7IH0KKyAgICB2aXJ0dWFsIFVSTCBiYXNlVVJMKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzTG9hZGluZygpIGNvbnN0IG92ZXJyaWRl
OwogICAgIAogICAgIHZvaWQgY2xlYXJPd25lclJ1bGUoKSB7IG1fb3duZXJSdWxlID0gMDsgfQog
ICAgIERvY3VtZW50KiBvd25lckRvY3VtZW50KCkgY29uc3Q7CkBAIC0xMTksOCArMTE5LDggQEAg
cHJpdmF0ZToKICAgICBDU1NTdHlsZVNoZWV0KFBhc3NSZWY8U3R5bGVTaGVldENvbnRlbnRzPiwg
Q1NTSW1wb3J0UnVsZSogb3duZXJSdWxlKTsKICAgICBDU1NTdHlsZVNoZWV0KFBhc3NSZWY8U3R5
bGVTaGVldENvbnRlbnRzPiwgTm9kZSogb3duZXJOb2RlLCBib29sIGlzSW5saW5lU3R5bGVzaGVl
dCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNDU1NTdHlsZVNoZWV0KCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgU3RyaW5nIHR5cGUoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBBU0NJSUxpdGVyYWwoInRleHQvY3NzIik7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
aXNDU1NTdHlsZVNoZWV0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZp
cnR1YWwgU3RyaW5nIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBBU0NJSUxpdGVyYWwo
InRleHQvY3NzIik7IH0KIAogICAgIGJvb2wgY2FuQWNjZXNzUnVsZXMoKSBjb25zdDsKICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdXBwb3J0c1J1bGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdXBwb3J0c1J1bGUuaAppbmRleCA3YzVlMjQ0Li44Mzg2ODUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3VwcG9ydHNSdWxlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N1cHBvcnRzUnVsZS5oCkBAIC00Nyw4ICs0Nyw4IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgfkNTU1N1cHBvcnRzUnVsZSgpIHsgfQogCi0gICAgdmlydHVhbCBD
U1NSdWxlOjpUeXBlIHR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBTVVBQT1JUU19SVUxF
OyB9Ci0gICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgQ1NTUnVsZTo6VHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gU1VQUE9S
VFNfUlVMRTsgfQorICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBvdmVycmlkZTsK
IAogICAgIFN0cmluZyBjb25kaXRpb25UZXh0KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NVbmtub3duUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Vu
a25vd25SdWxlLmgKaW5kZXggOTJlNDRiYS4uYTc0MTQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1Vua25vd25SdWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Vu
a25vd25SdWxlLmgKQEAgLTMxLDkgKzMxLDkgQEAgcHVibGljOgogICAgIENTU1Vua25vd25SdWxl
KCkgOiBDU1NSdWxlKDApIHsgfQogICAgIHZpcnR1YWwgfkNTU1Vua25vd25SdWxlKCkgeyB9CiAK
LSAgICB2aXJ0dWFsIENTU1J1bGU6OlR5cGUgdHlwZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IFVOS05PV05fUlVMRTsgfQotICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiBTdHJpbmcoKTsgfQotICAgIHZpcnR1YWwgdm9pZCByZWF0dGFjaChTdHls
ZVJ1bGVCYXNlKikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCBDU1NSdWxlOjpUeXBlIHR5cGUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBVTktOT1dOX1JVTEU7IH0KKyAgICB2aXJ0dWFsIFN0
cmluZyBjc3NUZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gU3RyaW5nKCk7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgcmVhdHRhY2goU3R5bGVSdWxlQmFzZSopIG92ZXJyaWRlIHsgfQogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0Zv
bnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRMb2FkZXIuY3BwCmluZGV4IDk2
YmQwNTAuLmU3NjZmN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5jcHAKQEAgLTY1LDggKzY1
LDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gTG9hZEZvbnRDYWxsYmFjazo6Y3JlYXRlKG51
bUZhbWlsaWVzLCBvbnN1Y2Nlc3MsIG9uZXJyb3IpOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlMb2FkZWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RXJyb3Io
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5TG9hZGVkKCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIG5vdGlmeUVycm9yKCkgb3ZlcnJpZGU7CiBwcml2YXRlOgogICAgIExv
YWRGb250Q2FsbGJhY2soaW50IG51bUxvYWRpbmcsIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBs
b2FkQ2FsbGJhY2ssIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQogICAg
ICAgICA6IG1fbnVtTG9hZGluZyhudW1Mb2FkaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0ZvbnRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250TG9hZGVyLmgKaW5k
ZXggZDgyZGYzMS4uOTQ1ZGQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRM
b2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udExvYWRlci5oCkBAIC04NSwxMCAr
ODUsMTAgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBGb250TG9hZGVyKERvY3VtZW50Kik7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IHJlZigpOyB9Ci0g
ICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0K
LSAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEmIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVm
KCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVy
ZWYoKTsgfQorICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSYgZW5zdXJlRXZlbnRUYXJnZXRE
YXRhKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNjaGVkdWxlRXZlbnQoUGFzc1JlZlB0cjxFdmVu
dD4pOwogICAgIHZvaWQgZmlyZVBlbmRpbmdFdmVudHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uaAppbmRleCAxN2JhMjRhLi4x
OTMzYTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHls
ZURlY2xhcmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5
bGVEZWNsYXJhdGlvbi5oCkBAIC00OCwyNyArNDgsMjcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBjbGVhclBhcmVudEVsZW1lbnQoKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAg
U3R5bGVTaGVldENvbnRlbnRzKiBjb250ZXh0U3R5bGVTaGVldCgpIGNvbnN0OwogICAgIAotICAg
IHZpcnR1YWwgdm9pZCByZWYoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGRlcmVmKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBDU1NSdWxlKiBw
YXJlbnRSdWxlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gMDsgfTsKLSAgICB2aXJ0dWFsIHVu
c2lnbmVkIGxlbmd0aCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW0o
dW5zaWduZWQgaW5kZXgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gZ2V0UHJvcGVydHlDU1NWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZShjb25zdCBTdHJp
bmcmIHByb3BlcnR5TmFtZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgZ2V0UHJvcGVy
dHlQcmlvcml0eShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBTdHJpbmcgZ2V0UHJvcGVydHlTaG9ydGhhbmQoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5h
bWUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc1Byb3BlcnR5SW1wbGljaXQoY29uc3Qg
U3RyaW5nJiBwcm9wZXJ0eU5hbWUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRQcm9w
ZXJ0eShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgY29u
c3QgU3RyaW5nJiBwcmlvcml0eSwgRXhjZXB0aW9uQ29kZSYpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgU3RyaW5nIHJlbW92ZVByb3BlcnR5KGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBFeGNl
cHRpb25Db2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDc3NUZXh0KGNvbnN0IFN0cmluZyYsIEV4
Y2VwdGlvbkNvZGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+
IGdldFByb3BlcnR5Q1NTVmFsdWVJbnRlcm5hbChDU1NQcm9wZXJ0eUlEKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBnZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWwoQ1NTUHJvcGVydHlJRCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFByb3BlcnR5SW50ZXJuYWwoQ1NTUHJvcGVy
dHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQsIEV4Y2VwdGlvbkNvZGUm
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIENTU1J1bGUqIHBhcmVudFJ1bGUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiAwOyB9OworICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBnZXRQcm9wZXJ0eUNT
U1ZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IFN0cmluZyBnZXRQcm9wZXJ0eVZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRQcm9wZXJ0eVByaW9yaXR5KGNvbnN0IFN0cmlu
ZyYgcHJvcGVydHlOYW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRQcm9wZXJ0
eVNob3J0aGFuZChjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIGlzUHJvcGVydHlJbXBsaWNpdChjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFByb3BlcnR5KGNvbnN0IFN0cmluZyYgcHJv
cGVydHlOYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBjb25zdCBTdHJpbmcmIHByaW9yaXR5LCBF
eGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgcmVtb3ZlUHJvcGVy
dHkoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHNldENzc1RleHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gZ2V0UHJvcGVydHlDU1NWYWx1ZUlu
dGVybmFsKENTU1Byb3BlcnR5SUQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIGdldFBy
b3BlcnR5VmFsdWVJbnRlcm5hbChDU1NQcm9wZXJ0eUlEKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0UHJvcGVydHlJbnRlcm5hbChDU1NQcm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmIHZh
bHVlLCBib29sIGltcG9ydGFudCwgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwogICAgIAotICAg
IHZpcnR1YWwgUGFzc1JlZjxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPiBjb3B5UHJvcGVydGllcygp
IGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZjxNdXRhYmxlU3R5bGVQcm9wZXJ0
aWVzPiBjb3B5UHJvcGVydGllcygpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgQ1NTVmFsdWUqIGNs
b25lQW5kQ2FjaGVGb3JDU1NPTShDU1NWYWx1ZSopOwogICAgIApAQCAtOTIsMjAgKzkyLDIwIEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgY2xlYXJQYXJlbnRSdWxlKCkgeyBtX3BhcmVudFJ1bGUgPSAw
OyB9CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHJlZigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBkZXJlZigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZWYoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgcmVhdHRhY2go
TXV0YWJsZVN0eWxlUHJvcGVydGllcyYpOwogCiBwcml2YXRlOgogICAgIFN0eWxlUnVsZUNTU1N0
eWxlRGVjbGFyYXRpb24oTXV0YWJsZVN0eWxlUHJvcGVydGllcyYsIENTU1J1bGUmKTsKIAotICAg
IHZpcnR1YWwgQ1NTU3R5bGVTaGVldCogcGFyZW50U3R5bGVTaGVldCgpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgQ1NTU3R5bGVTaGVldCogcGFyZW50U3R5bGVTaGVldCgpIGNvbnN0IG92
ZXJyaWRlOwogCi0gICAgdmlydHVhbCBDU1NSdWxlKiBwYXJlbnRSdWxlKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gbV9wYXJlbnRSdWxlOyAgfQorICAgIHZpcnR1YWwgQ1NTUnVsZSogcGFyZW50
UnVsZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcGFyZW50UnVsZTsgIH0KIAotICAgIHZp
cnR1YWwgdm9pZCB3aWxsTXV0YXRlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZE11
dGF0ZShNdXRhdGlvblR5cGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB3aWxsTXV0YXRl
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZE11dGF0ZShNdXRhdGlvblR5cGUpIG92
ZXJyaWRlOwogCiAgICAgdW5zaWduZWQgbV9yZWZDb3VudDsKICAgICBDU1NSdWxlKiBtX3BhcmVu
dFJ1bGU7CkBAIC0xMjEsMTEgKzEyMSwxMSBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogcHJpdmF0
ZToKLSAgICB2aXJ0dWFsIENTU1N0eWxlU2hlZXQqIHBhcmVudFN0eWxlU2hlZXQoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIFN0eWxlZEVsZW1lbnQqIHBhcmVudEVsZW1lbnQoKSBjb25z
dCBPVkVSUklERSB7IHJldHVybiBtX3BhcmVudEVsZW1lbnQ7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
Y2xlYXJQYXJlbnRFbGVtZW50KCkgT1ZFUlJJREUgeyBtX3BhcmVudEVsZW1lbnQgPSAwOyB9Cisg
ICAgdmlydHVhbCBDU1NTdHlsZVNoZWV0KiBwYXJlbnRTdHlsZVNoZWV0KCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBTdHlsZWRFbGVtZW50KiBwYXJlbnRFbGVtZW50KCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbV9wYXJlbnRFbGVtZW50OyB9CisgICAgdmlydHVhbCB2b2lkIGNsZWFy
UGFyZW50RWxlbWVudCgpIG92ZXJyaWRlIHsgbV9wYXJlbnRFbGVtZW50ID0gMDsgfQogCi0gICAg
dmlydHVhbCB2b2lkIGRpZE11dGF0ZShNdXRhdGlvblR5cGUpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBkaWRNdXRhdGUoTXV0YXRpb25UeXBlKSBvdmVycmlkZTsKIAogICAgIFN0eWxlZEVs
ZW1lbnQqIG1fcGFyZW50RWxlbWVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvV2ViS2l0Q1NTRmlsdGVyUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0Zp
bHRlclJ1bGUuaAppbmRleCA2YzU1NWMzLi4zNTVjNTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvV2ViS2l0Q1NTRmlsdGVyUnVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9X
ZWJLaXRDU1NGaWx0ZXJSdWxlLmgKQEAgLTQ2LDkgKzQ2LDkgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB+V2ViS2l0Q1NTRmlsdGVyUnVsZSgpOwogCi0gICAgdmlydHVhbCBDU1NSdWxlOjpUeXBl
IHR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBXRUJLSVRfRklMVEVSX1JVTEU7IH0KLSAg
ICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHJlYXR0YWNoKFN0eWxlUnVsZUJhc2UqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIENTU1J1
bGU6OlR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdFQktJVF9GSUxURVJfUlVM
RTsgfQorICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVhdHRhY2goU3R5bGVSdWxlQmFzZSopIG92ZXJyaWRlOwogCiAgICAgQ1NT
U3R5bGVEZWNsYXJhdGlvbiogc3R5bGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENT
U0tleWZyYW1lUnVsZS5oCmluZGV4IDE3ZDQ4N2EuLjU3YTIwYWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgKQEAgLTY5LDkgKzY5LDkgQEAgY2xhc3MgV2Vi
S2l0Q1NTS2V5ZnJhbWVSdWxlIDogcHVibGljIENTU1J1bGUgewogcHVibGljOgogICAgIHZpcnR1
YWwgfldlYktpdENTU0tleWZyYW1lUnVsZSgpOwogCi0gICAgdmlydHVhbCBDU1NSdWxlOjpUeXBl
IHR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBXRUJLSVRfS0VZRlJBTUVfUlVMRTsgfQot
ICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2tl
eWZyYW1lLT5jc3NUZXh0KCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVhdHRhY2goU3R5bGVSdWxl
QmFzZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgQ1NTUnVsZTo6VHlwZSB0eXBlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gV0VCS0lUX0tFWUZSQU1FX1JVTEU7IH0KKyAgICB2aXJ0dWFsIFN0
cmluZyBjc3NUZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9rZXlmcmFtZS0+Y3NzVGV4
dCgpOyB9CisgICAgdmlydHVhbCB2b2lkIHJlYXR0YWNoKFN0eWxlUnVsZUJhc2UqKSBvdmVycmlk
ZTsKIAogICAgIFN0cmluZyBrZXlUZXh0KCkgY29uc3QgeyByZXR1cm4gbV9rZXlmcmFtZS0+a2V5
VGV4dCgpOyB9CiAgICAgdm9pZCBzZXRLZXlUZXh0KGNvbnN0IFN0cmluZyYgcykgeyBtX2tleWZy
YW1lLT5zZXRLZXlUZXh0KHMpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2Vi
S2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZy
YW1lc1J1bGUuaAppbmRleCBlNmJhYTBjLi45ODk5YWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgKQEAgLTcwLDkgKzcwLDkgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB+V2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZSgpOwogCi0gICAgdmlydHVhbCBDU1NS
dWxlOjpUeXBlIHR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBXRUJLSVRfS0VZRlJBTUVT
X1JVTEU7IH0KLSAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIHJlYXR0YWNoKFN0eWxlUnVsZUJhc2UqKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIENTU1J1bGU6OlR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdFQktJ
VF9LRVlGUkFNRVNfUlVMRTsgfQorICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVhdHRhY2goU3R5bGVSdWxlQmFzZSopIG92ZXJy
aWRlOwogCiAgICAgU3RyaW5nIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX2tleWZyYW1lc1J1bGUt
Pm5hbWUoKTsgfQogICAgIHZvaWQgc2V0TmFtZShjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NSZWdpb25SdWxlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvV2ViS2l0Q1NTUmVnaW9uUnVsZS5oCmluZGV4IDY4OTJmNWIuLmZmMzU0NDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NSZWdpb25SdWxlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1JlZ2lvblJ1bGUuaApAQCAtNDMsOCArNDMsOCBAQCBj
bGFzcyBXZWJLaXRDU1NSZWdpb25SdWxlIDogcHVibGljIENTU0dyb3VwaW5nUnVsZSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0Q1NTUmVnaW9uUnVsZT4gY3JlYXRlKFN0
eWxlUnVsZVJlZ2lvbiogcnVsZSwgQ1NTU3R5bGVTaGVldCogc2hlZXQpIHsgcmV0dXJuIGFkb3B0
UmVmKG5ldyBXZWJLaXRDU1NSZWdpb25SdWxlKHJ1bGUsIHNoZWV0KSk7IH0KIAotICAgIHZpcnR1
YWwgQ1NTUnVsZTo6VHlwZSB0eXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gV0VCS0lUX1JF
R0lPTl9SVUxFOyB9Ci0gICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgQ1NTUnVsZTo6VHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gV0VCS0lUX1JFR0lPTl9SVUxFOyB9CisgICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNv
bnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIFdlYktpdENTU1JlZ2lvblJ1bGUoU3R5bGVS
dWxlUmVnaW9uKiwgQ1NTU3R5bGVTaGVldCogcGFyZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9XZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9X
ZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaAppbmRleCAwYjFlZDE4Li42NjE0YzgwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5oCkBAIC00OSw5ICs0OSw5IEBAIHB1
YmxpYzoKICAgICB9CiAgICAgfldlYktpdENTU1ZpZXdwb3J0UnVsZSgpOwogCi0gICAgdmlydHVh
bCBDU1NSdWxlOjpUeXBlIHR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBXRUJLSVRfVklF
V1BPUlRfUlVMRTsgfQotICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVhdHRhY2goU3R5bGVSdWxlQmFzZSopIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgQ1NTUnVsZTo6VHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
V0VCS0lUX1ZJRVdQT1JUX1JVTEU7IH0KKyAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlYXR0YWNoKFN0eWxlUnVsZUJhc2UqKSBv
dmVycmlkZTsKIAogICAgIENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5o
CmluZGV4IDdhNTkwZmIuLjVkZmY4YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9B
dHRyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuaApAQCAtNjIsNyArNjIsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBhdHRhY2hUb0VsZW1lbnQoRWxlbWVudCopOwogICAgIHZvaWQgZGV0
YWNoRnJvbUVsZW1lbnRXaXRoVmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJik7CiAKLSAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJKCkgY29uc3QgT1ZFUlJJREUgeyBy
ZXR1cm4gbV9uYW1lLm5hbWVzcGFjZVVSSSgpOyB9CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWVzcGFjZVVSSSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbmFtZS5uYW1l
c3BhY2VVUkkoKTsgfQogCiBwcml2YXRlOgogICAgIEF0dHIoRWxlbWVudCosIGNvbnN0IFF1YWxp
ZmllZE5hbWUmKTsKQEAgLTcwLDIyICs3MCwyMiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjcmVh
dGVUZXh0Q2hpbGQoKTsKIAotICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gbmFtZSgpOyB9Ci0gICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIEFUVFJJQlVURV9OT0RFOyB9CisgICAgdmlydHVhbCBT
dHJpbmcgbm9kZU5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBuYW1lKCk7IH0KKyAgICB2
aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQVRUUklC
VVRFX05PREU7IH0KIAotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX25hbWUubG9jYWxOYW1lKCk7IH0KLSAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHJlZml4KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
bV9uYW1lLnByZWZpeCgpOyB9CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2Fs
TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbmFtZS5sb2NhbE5hbWUoKTsgfQorICAg
IHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBwcmVmaXgoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX25hbWUucHJlZml4KCk7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXRQcmVmaXgoY29u
c3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBzZXRQcmVmaXgoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCBTdHJpbmcgbm9kZVZhbHVlKCkgY29uc3QgT1ZFUlJJREUgeyBy
ZXR1cm4gdmFsdWUoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXROb2RlVmFsdWUoY29uc3QgU3Ry
aW5nJiwgRXhjZXB0aW9uQ29kZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxO
b2RlPiBjbG9uZU5vZGUoYm9vbCBkZWVwKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBu
b2RlVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB2YWx1ZSgpOyB9CisgICAgdmlydHVh
bCB2b2lkIHNldE5vZGVWYWx1ZShjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPE5vZGU+IGNsb25lTm9kZShib29sIGRlZXApIG92
ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGlzQXR0cmlidXRlTm9kZSgpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dlZChO
b2RlVHlwZSkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlzQXR0cmlidXRlTm9k
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2hp
bGRUeXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIG92ZXJyaWRlOwog
CiAgICAgQXR0cmlidXRlJiBlbGVtZW50QXR0cmlidXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9CZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmgKaW5kZXggYjU2NjFiZi4uNmU1ZjRlYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmgKQEAgLTM5LDgg
KzM5LDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJlZm9yZVRleHRJ
bnNlcnRlZEV2ZW50KHRleHQpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIEV2ZW50SW50ZXJmYWNl
IGV2ZW50SW50ZXJmYWNlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzQmVm
b3JlVGV4dEluc2VydGVkRXZlbnQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Cisg
ICAgdmlydHVhbCBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgYm9vbCBpc0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50KCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgY29uc3QgU3RyaW5nJiB0ZXh0KCkgY29uc3Qg
eyByZXR1cm4gbV90ZXh0OyB9CiAgICAgdm9pZCBzZXRUZXh0KGNvbnN0IFN0cmluZyYgcykgeyBt
X3RleHQgPSBzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQmVmb3JlVW5sb2Fk
RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9CZWZvcmVVbmxvYWRFdmVudC5oCmluZGV4IGE0
YWY2NTEuLjFhMmI2NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9CZWZvcmVVbmxv
YWRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9CZWZvcmVVbmxvYWRFdmVudC5oCkBA
IC00MSwxMiArNDEsMTIgQEAgcHVibGljOgogICAgIFN0cmluZyByZXR1cm5WYWx1ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcmV0dXJuVmFsdWU7IH0KICAgICB2b2lkIHNldFJldHVyblZhbHVlKGNvbnN0
IFN0cmluZyYgcmV0dXJuVmFsdWUpIHsgbV9yZXR1cm5WYWx1ZSA9IHJldHVyblZhbHVlOyB9CiAK
LSAgICB2aXJ0dWFsIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gQmVmb3JlVW5sb2FkRXZlbnRJbnRlcmZhY2VUeXBlOyB9CisgICAgdmlydHVh
bCBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IEJlZm9yZVVubG9hZEV2ZW50SW50ZXJmYWNlVHlwZTsgfQogCiBwcml2YXRlOgogICAgIEJlZm9y
ZVVubG9hZEV2ZW50KCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNCZWZvcmVVbmxvYWRFdmVudCgp
IGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc0JlZm9yZVVubG9hZEV2ZW50KCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICBTdHJpbmcgbV9yZXR1cm5WYWx1ZTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ0RBVEFTZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vQ0RBVEFTZWN0aW9uLmgKaW5kZXggYjRjNzYyYi4uMjE1MDUwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0NEQVRBU2VjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
REFUQVNlY3Rpb24uaApAQCAtMzQsMTEgKzM0LDExIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
Q0RBVEFTZWN0aW9uKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJik7CiAKLSAgICB2aXJ0dWFsIFN0
cmluZyBub2RlTmFtZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9k
ZVR5cGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Tm9kZT4gY2xv
bmVOb2RlKGJvb2wgZGVlcCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFs
bG93ZWQoTm9kZVR5cGUpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxU
ZXh0PiB2aXJ0dWFsQ3JlYXRlKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
U3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBOb2RlVHlwZSBu
b2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxOb2RlPiBj
bG9uZU5vZGUoYm9vbCBkZWVwKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBl
QWxsb3dlZChOb2RlVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFRleHQ+IHZpcnR1YWxDcmVhdGUoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiB9OwogCiBpbmxp
bmUgYm9vbCBpc0NEQVRBU2VjdGlvbihjb25zdCBOb2RlJiBub2RlKSB7IHJldHVybiBub2RlLm5v
ZGVUeXBlKCkgPT0gTm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJh
Y3RlckRhdGEuaAppbmRleCBkYjE4ZDQwLi44Mzc1NWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ2hhcmFjdGVyRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DaGFyYWN0
ZXJEYXRhLmgKQEAgLTYzLDExICs2MywxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBkaXNwYXRj
aE1vZGlmaWVkRXZlbnQoY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSk7CiAKIHByaXZhdGU6Ci0gICAg
dmlydHVhbCBTdHJpbmcgbm9kZVZhbHVlKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmly
dHVhbCB2b2lkIHNldE5vZGVWYWx1ZShjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJikgT1ZF
UlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCBib29sIGlzQ2hhcmFjdGVyRGF0YU5vZGUoKSBjb25z
dCBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBpbnQgbWF4Q2hh
cmFjdGVyT2Zmc2V0KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCBib29sIG9m
ZnNldEluQ2hhcmFjdGVycygpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgU3Ry
aW5nIG5vZGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBz
ZXROb2RlVmFsdWUoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlIEZJTkFM
OworICAgIHZpcnR1YWwgYm9vbCBpc0NoYXJhY3RlckRhdGFOb2RlKCkgY29uc3Qgb3ZlcnJpZGUg
RklOQUwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgaW50IG1heENoYXJhY3Rlck9mZnNl
dCgpIGNvbnN0IG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBvZmZzZXRJbkNoYXJh
Y3RlcnMoKSBjb25zdCBvdmVycmlkZSBGSU5BTDsKICAgICB2b2lkIHNldERhdGFBbmRVcGRhdGUo
Y29uc3QgU3RyaW5nJiwgdW5zaWduZWQgb2Zmc2V0T2ZSZXBsYWNlZERhdGEsIHVuc2lnbmVkIG9s
ZExlbmd0aCwgdW5zaWduZWQgbmV3TGVuZ3RoKTsKICAgICB2b2lkIGNoZWNrQ2hhckRhdGFPcGVy
YXRpb24odW5zaWduZWQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9DaGlsZE5vZGVMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hp
bGROb2RlTGlzdC5oCmluZGV4IDg5ODhhYTcuLjUwNzExMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9DaGlsZE5vZGVMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NoaWxk
Tm9kZUxpc3QuaApAQCAtNDYsMTEgKzQ2LDExIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhw
bGljaXQgRW1wdHlOb2RlTGlzdChOb2RlJiBvd25lcikgOiBtX293bmVyKG93bmVyKSB7IH0KIAot
ICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gMDsg
fQotICAgIHZpcnR1YWwgTm9kZSogaXRlbSh1bnNpZ25lZCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gbnVsbHB0cjsgfQotICAgIHZpcnR1YWwgTm9kZSogbmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0
cmluZyYpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIHVu
c2lnbmVkIGxlbmd0aCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFs
IE5vZGUqIGl0ZW0odW5zaWduZWQpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0K
KyAgICB2aXJ0dWFsIE5vZGUqIG5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eU5v
ZGVMaXN0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9v
bCBpc0VtcHR5Tm9kZUxpc3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAg
ICBSZWY8Tm9kZT4gbV9vd25lcjsKIH07CkBAIC03OCwxMSArNzgsMTEgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBleHBsaWNpdCBDaGlsZE5vZGVMaXN0KENvbnRhaW5lck5vZGUmIHBhcmVudCk7
CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgTm9kZSogaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBOb2RlKiBuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIE5vZGUqIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgTm9kZSogbmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwog
Ci0gICAgdmlydHVhbCBib29sIGlzQ2hpbGROb2RlTGlzdCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNDaGlsZE5vZGVMaXN0KCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgUmVmPENvbnRhaW5lck5vZGU+IG1fcGFyZW50
OwogICAgIG11dGFibGUgQ29sbGVjdGlvbkluZGV4Q2FjaGU8Q2hpbGROb2RlTGlzdCwgTm9kZT4g
bV9pbmRleENhY2hlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmNwcAppbmRleCAzMDdmY2MxLi5iYmE0
ZWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmNwcApAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgRHJhZ0ltYWdlTG9hZGVyKENsaXBib2FyZCopOwotICAgIHZpcnR1
YWwgdm9pZCBpbWFnZUNoYW5nZWQoQ2FjaGVkSW1hZ2UqLCBjb25zdCBJbnRSZWN0KikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChDYWNoZWRJbWFnZSosIGNvbnN0IElu
dFJlY3QqKSBvdmVycmlkZTsKICAgICBDbGlwYm9hcmQqIG1fY2xpcGJvYXJkOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZEV2ZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ2xpcGJvYXJkRXZlbnQuaAppbmRleCA1M2Y2YzFhLi5iODQ3NDMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ2xpcGJvYXJkRXZlbnQuaApAQCAtNDksOCArNDksOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIENsaXBib2FyZEV2ZW50KCk7CiAgICAgICAgIENsaXBib2FyZEV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGVBcmcsIGJvb2wgY2FuY2Vs
YWJsZUFyZywgUGFzc1JlZlB0cjxDbGlwYm9hcmQ+KTsKIAotICAgICAgICB2aXJ0dWFsIEV2ZW50
SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgICAgIHZpcnR1
YWwgYm9vbCBpc0NsaXBib2FyZEV2ZW50KCkgY29uc3QgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1
YWwgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKKyAgICAg
ICAgdmlydHVhbCBib29sIGlzQ2xpcGJvYXJkRXZlbnQoKSBjb25zdCBvdmVycmlkZTsKIAogICAg
ICAgICBSZWZQdHI8Q2xpcGJvYXJkPiBtX2NsaXBib2FyZDsKICAgICB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
b250YWluZXJOb2RlLmgKaW5kZXggMmQ2M2MzOC4uM2Q1MWQ4YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29u
dGFpbmVyTm9kZS5oCkBAIC0xMDcsNyArMTA3LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjbG9u
ZUNoaWxkTm9kZXMoQ29udGFpbmVyTm9kZSogY2xvbmUpOwogCi0gICAgdmlydHVhbCBMYXlvdXRS
ZWN0IGJvdW5kaW5nQm94KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0
IGJvdW5kaW5nQm94KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBlbnVtIENoaWxkQ2hhbmdlVHlw
ZSB7IEVsZW1lbnRJbnNlcnRlZCwgRWxlbWVudFJlbW92ZWQsIFRleHRJbnNlcnRlZCwgVGV4dFJl
bW92ZWQsIFRleHRDaGFuZ2VkLCBBbGxDaGlsZHJlblJlbW92ZWQsIE5vbkNvbnRlbnRzQ2hpbGRD
aGFuZ2VkIH07CiAgICAgZW51bSBDaGlsZENoYW5nZVNvdXJjZSB7IENoaWxkQ2hhbmdlU291cmNl
UGFyc2VyLCBDaGlsZENoYW5nZVNvdXJjZUFQSSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBs
ZW1lbnRhdGlvbi5jcHAKaW5kZXggZDU0OTY2Yi4uMDgxYzg1NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSW1wbGVtZW50YXRpb24uY3BwCkBAIC03OCw4ICs3OCw4IEBAIHB1YmxpYzoKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIG1lZGlhUGxheWVyTmVlZHNTaXRlU3BlY2lm
aWNIYWNrcygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fbmVlZHNIYWNrczsgfQotICAgIHZp
cnR1YWwgU3RyaW5nIG1lZGlhUGxheWVyRG9jdW1lbnRIb3N0KCkgY29uc3QgT1ZFUlJJREUgeyBy
ZXR1cm4gbV9ob3N0OyB9CisgICAgdmlydHVhbCBib29sIG1lZGlhUGxheWVyTmVlZHNTaXRlU3Bl
Y2lmaWNIYWNrcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbmVlZHNIYWNrczsgfQorICAg
IHZpcnR1YWwgU3RyaW5nIG1lZGlhUGxheWVyRG9jdW1lbnRIb3N0KCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV9ob3N0OyB9CiAKICAgICBib29sIG1fbmVlZHNIYWNrczsKICAgICBTdHJpbmcg
bV9ob3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdN
YXAuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmgKaW5kZXggMzBj
NGZkZS4uODQxYTVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFzZXRET01T
dHJpbmdNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5o
CkBAIC0zOSwxNiArMzksMTYgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFs
IHZvaWQgcmVmKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIHJlZigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkZXJl
ZigpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGdldE5hbWVzKFZlY3RvcjxTdHJpbmc+
JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgaXRlbShjb25zdCBTdHJpbmcmIG5hbWUp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBjb250YWlucyhjb25zdCBTdHJpbmcmIG5hbWUp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtKGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBkZWxldGVJdGVtKGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBnZXROYW1lcyhWZWN0b3I8U3RyaW5nPiYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnMoY29uc3QgU3RyaW5nJiBuYW1lKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0
cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGVsZXRlSXRlbShjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsK
IAotICAgIHZpcnR1YWwgRWxlbWVudCogZWxlbWVudCgpIE9WRVJSSURFIHsgcmV0dXJuICZtX2Vs
ZW1lbnQ7IH0KKyAgICB2aXJ0dWFsIEVsZW1lbnQqIGVsZW1lbnQoKSBvdmVycmlkZSB7IHJldHVy
biAmbV9lbGVtZW50OyB9CiAKIHByaXZhdGU6CiAgICAgRWxlbWVudCYgbV9lbGVtZW50OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmgKaW5kZXggNjZkMjIwYi4u
ZGViMDYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRy
b2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5o
CkBAIC01Miw4ICs1Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZENoYW5nZURldmljZU1vdGlv
bihEZXZpY2VNb3Rpb25EYXRhKik7CiAgICAgRGV2aWNlTW90aW9uQ2xpZW50KiBkZXZpY2VNb3Rp
b25DbGllbnQoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBoYXNMYXN0RGF0YSgpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxFdmVudD4gZ2V0TGFzdEV2ZW50KCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBib29sIGhhc0xhc3REYXRhKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQYXNz
UmVmUHRyPEV2ZW50PiBnZXRMYXN0RXZlbnQoKSBvdmVycmlkZTsKIAogICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOwogICAgIHN0YXRpYyBEZXZpY2VNb3Rpb25Db250cm9s
bGVyKiBmcm9tKFBhZ2UqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIuaAppbmRleCA4YTIyMGZhLi41NmJhZTJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oCkBAIC01Myw4ICs1Myw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIHN1c3BlbmRVcGRhdGVzKCk7CiAgICAgdm9pZCByZXN1bWVV
cGRhdGVzKCk7CiAjZWxzZQotICAgIHZpcnR1YWwgYm9vbCBoYXNMYXN0RGF0YSgpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxFdmVudD4gZ2V0TGFzdEV2ZW50KCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBib29sIGhhc0xhc3REYXRhKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPEV2ZW50PiBnZXRMYXN0RXZlbnQoKSBvdmVycmlkZTsKICNlbmRpZgogCiAgICAg
c3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmlu
ZGV4IDkwOGJkMzEuLjJhNThlZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0yNjMsNyArMjYz
LDcgQEAgcHVibGljOgogICAgIHVzaW5nIENvbnRhaW5lck5vZGU6OnJlZjsKICAgICB1c2luZyBD
b250YWluZXJOb2RlOjpkZXJlZjsKIAotICAgIHZpcnR1YWwgYm9vbCBjYW5Db250YWluUmFuZ2VF
bmRQb2ludCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgY2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9CiAKICAgICBFbGVtZW50KiBnZXRFbGVtZW50QnlBY2Nlc3NLZXkoY29uc3QgU3RyaW5nJiBr
ZXkpOwogICAgIHZvaWQgaW52YWxpZGF0ZUFjY2Vzc0tleU1hcCgpOwpAQCAtNDMzLDcgKzQzMyw3
IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgZG9jdW1lbnRVUkkoKSBjb25zdCB7IHJldHVybiBtX2Rv
Y3VtZW50VVJJOyB9CiAgICAgdm9pZCBzZXREb2N1bWVudFVSSShjb25zdCBTdHJpbmcmKTsKIAot
ICAgIHZpcnR1YWwgVVJMIGJhc2VVUkkoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFVS
TCBiYXNlVVJJKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZ
X0FQSSkKICAgICB2b2lkIHZpc2liaWxpdHlTdGF0ZUNoYW5nZWQoKTsKQEAgLTU2Niw5ICs1NjYs
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKTsKIAogICAgIC8v
IE92ZXJyaWRlIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgbWV0aG9kcyB0byBkbyBhZGRpdGlvbmFs
IHdvcmsKLSAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZEFjdGl2ZURPTU9iamVjdHMoQWN0aXZlRE9N
T2JqZWN0OjpSZWFzb25Gb3JTdXNwZW5zaW9uKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
cmVzdW1lQWN0aXZlRE9NT2JqZWN0cyhBY3RpdmVET01PYmplY3Q6OlJlYXNvbkZvclN1c3BlbnNp
b24pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wQWN0aXZlRE9NT2JqZWN0cygpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kQWN0aXZlRE9NT2JqZWN0cyhBY3RpdmVE
T01PYmplY3Q6OlJlYXNvbkZvclN1c3BlbnNpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCByZXN1bWVBY3RpdmVET01PYmplY3RzKEFjdGl2ZURPTU9iamVjdDo6UmVhc29uRm9yU3VzcGVu
c2lvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHN0b3BBY3RpdmVET01PYmplY3RzKCkg
b3ZlcnJpZGU7CiAKICAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3KCkgY29uc3QgeyByZXR1cm4g
bV9yZW5kZXJWaWV3LmdldCgpOyB9CiAKQEAgLTYwNSw3ICs2MDUsNyBAQCBwdWJsaWM6CiAKICAg
ICBib29sIHdlbGxGb3JtZWQoKSBjb25zdCB7IHJldHVybiBtX3dlbGxGb3JtZWQ7IH0KIAotICAg
IHZpcnR1YWwgY29uc3QgVVJMJiB1cmwoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBt
X3VybDsgfQorICAgIHZpcnR1YWwgY29uc3QgVVJMJiB1cmwoKSBjb25zdCBvdmVycmlkZSBGSU5B
TCB7IHJldHVybiBtX3VybDsgfQogICAgIHZvaWQgc2V0VVJMKGNvbnN0IFVSTCYpOwogCiAgICAg
Ly8gVG8gdW5kZXJzdGFuZCBob3cgdGhlc2UgY29uY2VwdHMgcmVsYXRlIHRvIG9uZSBhbm90aGVy
LCBwbGVhc2Ugc2VlIHRoZQpAQCAtNjE3LDEyICs2MTcsMTIgQEAgcHVibGljOgogICAgIGNvbnN0
IFN0cmluZyYgYmFzZVRhcmdldCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZVRhcmdldDsgfQogICAg
IHZvaWQgcHJvY2Vzc0Jhc2VFbGVtZW50KCk7CiAKLSAgICB2aXJ0dWFsIFVSTCBjb21wbGV0ZVVS
TChjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIFVSTCBj
b21wbGV0ZVVSTChjb25zdCBTdHJpbmcmKSBjb25zdCBvdmVycmlkZSBGSU5BTDsKICAgICBVUkwg
Y29tcGxldGVVUkwoY29uc3QgU3RyaW5nJiwgY29uc3QgVVJMJiBiYXNlVVJMT3ZlcnJpZGUpIGNv
bnN0OwogCi0gICAgdmlydHVhbCBTdHJpbmcgdXNlckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdCBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlRXZhbChjb25zdCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpc2FibGVFdmFsKGNvbnN0
IFN0cmluZyYgZXJyb3JNZXNzYWdlKSBvdmVycmlkZTsKIAogICAgIGJvb2wgY2FuTmF2aWdhdGUo
RnJhbWUqIHRhcmdldEZyYW1lKTsKICAgICBGcmFtZSogZmluZFVuc2FmZVBhcmVudFNjcm9sbFBy
b3BhZ2F0aW9uQm91bmRhcnkoKTsKQEAgLTk1OSw3ICs5NTksNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc0ROU1ByZWZldGNoRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNETlNQcmVmZXRjaEVu
YWJsZWQ7IH0KICAgICB2b2lkIHBhcnNlRE5TUHJlZmV0Y2hDb250cm9sSGVhZGVyKGNvbnN0IFN0
cmluZyYpOwogCi0gICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrKFBhc3NPd25QdHI8VGFzaz4pIE9W
RVJSSURFOyAvLyBFeGVjdXRlcyB0aGUgdGFzayBvbiBjb250ZXh0J3MgdGhyZWFkIGFzeW5jaHJv
bm91c2x5LgorICAgIHZpcnR1YWwgdm9pZCBwb3N0VGFzayhQYXNzT3duUHRyPFRhc2s+KSBvdmVy
cmlkZTsgLy8gRXhlY3V0ZXMgdGhlIHRhc2sgb24gY29udGV4dCdzIHRocmVhZCBhc3luY2hyb25v
dXNseS4KIAogICAgIHZvaWQgc3VzcGVuZFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlckNhbGxi
YWNrcygpOwogICAgIHZvaWQgcmVzdW1lU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyQ2FsbGJh
Y2tzKCk7CkBAIC0xMDMxLDcgKzEwMzEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBbm5vdGF0
ZWRSZWdpb25zKGNvbnN0IFZlY3RvcjxBbm5vdGF0ZWRSZWdpb25WYWx1ZT4mKTsKICNlbmRpZgog
Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkgb3ZlcnJpZGU7CiAKICNp
ZiBFTkFCTEUoU1ZHKQogICAgIGNvbnN0IFNWR0RvY3VtZW50RXh0ZW5zaW9ucyogc3ZnRXh0ZW5z
aW9ucygpOwpAQCAtMTA0Nyw4ICsxMDQ3LDggQEAgcHVibGljOgogICAgIGJvb2wgcHJvY2Vzc2lu
Z0xvYWRFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc2luZ0xvYWRFdmVudDsgfQogICAg
IGJvb2wgbG9hZEV2ZW50RmluaXNoZWQoKSBjb25zdCB7IHJldHVybiBtX2xvYWRFdmVudEZpbmlz
aGVkOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNDb250ZXh0VGhyZWFkKCkgY29uc3QgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBib29sIGlzSlNFeGVjdXRpb25Gb3JiaWRkZW4oKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRleHRUaHJlYWQo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNKU0V4ZWN1dGlvbkZvcmJpZGRl
bigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBib29sIGNvbnRhaW5z
VmFsaWRpdHlTdHlsZVJ1bGVzKCkgY29uc3QgeyByZXR1cm4gbV9jb250YWluc1ZhbGlkaXR5U3R5
bGVSdWxlczsgfQogICAgIHZvaWQgc2V0Q29udGFpbnNWYWxpZGl0eVN0eWxlUnVsZXMoKSB7IG1f
Y29udGFpbnNWYWxpZGl0eVN0eWxlUnVsZXMgPSB0cnVlOyB9CkBAIC0xMDU5LDcgKzEwNTksNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBlbnF1ZXVlUGFnZXNob3dFdmVudChQYWdlc2hvd0V2ZW50UGVy
c2lzdGVuY2UpOwogICAgIHZvaWQgZW5xdWV1ZUhhc2hjaGFuZ2VFdmVudChjb25zdCBTdHJpbmcm
IG9sZFVSTCwgY29uc3QgU3RyaW5nJiBuZXdVUkwpOwogICAgIHZvaWQgZW5xdWV1ZVBvcHN0YXRl
RXZlbnQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHN0YXRlT2JqZWN0KTsKLSAg
ICB2aXJ0dWFsIERvY3VtZW50RXZlbnRRdWV1ZSYgZXZlbnRRdWV1ZSgpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIG1fZXZlbnRRdWV1ZTsgfQorICAgIHZpcnR1YWwgRG9jdW1lbnRFdmVudFF1ZXVl
JiBldmVudFF1ZXVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9ldmVudFF1ZXVlOyB9CiAK
ICAgICB2b2lkIGFkZE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcihNZWRpYUNhblN0YXJ0TGlzdGVuZXIq
KTsKICAgICB2b2lkIHJlbW92ZU1lZGlhQ2FuU3RhcnRMaXN0ZW5lcihNZWRpYUNhblN0YXJ0TGlz
dGVuZXIqKTsKQEAgLTExMzUsOCArMTEzNSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlcnZpY2VT
Y3JpcHRlZEFuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY0FuaW1hdGlvblN0YXJ0VGltZSk7CiAj
ZW5kaWYKIAotICAgIHZpcnR1YWwgRXZlbnRUYXJnZXQqIGVycm9yRXZlbnRUYXJnZXQoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmlu
ZyYgZXJyb3JNZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgaW50IGxpbmVOdW1iZXIs
IGludCBjb2x1bW5OdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBFdmVudFRhcmdldCogZXJyb3JFdmVudFRhcmdldCgpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBlcnJv
ck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBpbnQgbGluZU51bWJlciwgaW50IGNv
bHVtbk51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KSBvdmVycmlkZTsKIAogICAg
IHZvaWQgaW5pdEROU1ByZWZldGNoKCk7CiAKQEAgLTEyMDksOSArMTIwOSw5IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2woRWxlbWVudCopOwogCi0gICAgdmly
dHVhbCB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0g
MCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsb25n
IHJlcXVlc3RJZGVudGlmaWVyID0gMCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFNlY3VyaXR5
T3JpZ2luKiB0b3BPcmlnaW4oKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFNlY3VyaXR5
T3JpZ2luKiB0b3BPcmlnaW4oKSBjb25zdCBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShGT05UX0xP
QURfRVZFTlRTKQogICAgIFBhc3NSZWZQdHI8Rm9udExvYWRlcj4gZm9udGxvYWRlcigpOwpAQCAt
MTI0MSwyOSArMTI0MSwyOSBAQCBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlUmVuZGVyVHJlZSgp
OwogICAgIHZvaWQgZGV0YWNoUGFyc2VyKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZHJvcENoaWxk
cmVuKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRyb3BDaGlsZHJlbigpIG92ZXJyaWRl
OwogCiAgICAgdHlwZWRlZiB2b2lkICgqQXJndW1lbnRzQ2FsbGJhY2spKGNvbnN0IFN0cmluZyYg
a2V5U3RyaW5nLCBjb25zdCBTdHJpbmcmIHZhbHVlU3RyaW5nLCBEb2N1bWVudCosIHZvaWQqIGRh
dGEpOwogICAgIHZvaWQgcHJvY2Vzc0FyZ3VtZW50cyhjb25zdCBTdHJpbmcmIGZlYXR1cmVzLCB2
b2lkKiBkYXRhLCBBcmd1bWVudHNDYWxsYmFjayk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNEb2N1
bWVudCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
aXNEb2N1bWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1
YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJp
ZGU7CiAKLSAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IGJvb2wgY2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBQYXNzUmVmUHRyPE5vZGU+IGNsb25lTm9kZShib29sIGRlZXApIE9WRVJSSURFOworICAg
IHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBO
b2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjaGls
ZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8Tm9kZT4gY2xvbmVOb2RlKGJvb2wgZGVlcCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjbG9u
ZURhdGFGcm9tRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgdm9pZCBy
ZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgT1ZFUlJJREUgeyByZWYoKTsgfQotICAgIHZpcnR1
YWwgdm9pZCBkZXJlZlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBPVkVSUklERSB7IGRlcmVmKCk7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVmU2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIG92ZXJyaWRl
IHsgcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZTY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZShN
ZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51
bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+LCBKU0M6OkV4ZWNTdGF0ZSogPSAwLCB1
bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVy
LCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiwgSlND
OjpFeGVjU3RhdGUqID0gMCwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApIG92
ZXJyaWRlOwogCi0gICAgdmlydHVhbCBkb3VibGUgbWluaW11bVRpbWVySW50ZXJ2YWwoKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGRvdWJsZSBtaW5pbXVtVGltZXJJbnRlcnZhbCgpIGNv
bnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBkb3VibGUgdGltZXJBbGlnbm1lbnRJbnRlcnZh
bCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgZG91YmxlIHRpbWVyQWxpZ25tZW50SW50
ZXJ2YWwoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgdXBkYXRlVGl0bGUoY29uc3QgU3Ry
aW5nV2l0aERpcmVjdGlvbiYpOwogICAgIHZvaWQgdXBkYXRlRm9jdXNBcHBlYXJhbmNlVGltZXJG
aXJlZChUaW1lcjxEb2N1bWVudD4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudEV2ZW50UXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRR
dWV1ZS5jcHAKaW5kZXggZmM3ZTQ4NS4uNGRiYmEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50RXZlbnRRdWV1ZS5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToKICAgICB7CiAg
ICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIHZv
aWQgZmlyZWQoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgQVNTRVJUKCFpc1N1c3BlbmRlZCgp
KTsKICAgICAgICAgbV9ldmVudFF1ZXVlLnBlbmRpbmdFdmVudFRpbWVyRmlyZWQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuaAppbmRleCA2NjFiZTFkLi5kZDM5ZjJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5oCkBAIC00NCw5ICs0NCw5IEBA
IHB1YmxpYzoKICAgICBleHBsaWNpdCBEb2N1bWVudEV2ZW50UXVldWUoRG9jdW1lbnQmKTsKICAg
ICB2aXJ0dWFsIH5Eb2N1bWVudEV2ZW50UXVldWUoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBlbnF1
ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBj
YW5jZWxFdmVudChFdmVudCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBlbnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4p
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjYW5jZWxFdmVudChFdmVudCYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBlbnF1ZXVl
T3JEaXNwYXRjaFNjcm9sbEV2ZW50KE5vZGUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZy
YWdtZW50LmgKaW5kZXggMGM2MDZiZC4uOWYxYjFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnRGcmFnbWVudC5oCkBAIC0zOSwxNyArMzksMTcgQEAgcHVibGljOgogICAgIHZvaWQgcGFyc2VI
VE1MKGNvbnN0IFN0cmluZyYsIEVsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBQYXJzZXJDb250ZW50
UG9saWN5ID0gQWxsb3dTY3JpcHRpbmdDb250ZW50KTsKICAgICBib29sIHBhcnNlWE1MKGNvbnN0
IFN0cmluZyYsIEVsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBQYXJzZXJDb250ZW50UG9saWN5ID0g
QWxsb3dTY3JpcHRpbmdDb250ZW50KTsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuQ29udGFp
blJhbmdlRW5kUG9pbnQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmly
dHVhbCBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1RlbXBsYXRlQ29udGVudCgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAKIHByb3RlY3RlZDoKICAgICBEb2N1bWVudEZyYWdtZW50KERvY3Vt
ZW50KiwgQ29uc3RydWN0aW9uVHlwZSA9IENyZWF0ZUNvbnRhaW5lcik7Ci0gICAgdmlydHVhbCBT
dHJpbmcgbm9kZU5hbWUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBub2Rl
TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgTm9kZVR5cGUg
bm9kZVR5cGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Tm9kZT4g
Y2xvbmVOb2RlKGJvb2wgZGVlcCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNoaWxkVHlw
ZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgTm9kZVR5cGUg
bm9kZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Tm9kZT4g
Y2xvbmVOb2RlKGJvb2wgZGVlcCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGNoaWxkVHlw
ZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogaW5saW5lIGJvb2wgaXNE
b2N1bWVudEZyYWdtZW50KGNvbnN0IE5vZGUmIG5vZGUpIHsgcmV0dXJuIG5vZGUuaXNEb2N1bWVu
dEZyYWdtZW50KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDExZWRlYTMuLjJiODMwMjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuaApAQCAtMjU4LDEzICsyNTgsMTMgQEAgcHVibGljOgogICAgIGJvb2wg
aGFzTG9jYWxOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1f
dGFnTmFtZS5sb2NhbE5hbWUoKSA9PSBvdGhlcjsgfQogICAgIGJvb2wgaGFzTG9jYWxOYW1lKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX3RhZ05hbWUubG9jYWxO
YW1lKCkgPT0gb3RoZXIubG9jYWxOYW1lKCk7IH0KIAotICAgIHZpcnR1YWwgY29uc3QgQXRvbWlj
U3RyaW5nJiBsb2NhbE5hbWUoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBtX3RhZ05h
bWUubG9jYWxOYW1lKCk7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgcHJlZml4
KCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gbV90YWdOYW1lLnByZWZpeCgpOyB9Ci0g
ICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSgpIGNvbnN0IE9WRVJS
SURFIEZJTkFMIHsgcmV0dXJuIG1fdGFnTmFtZS5uYW1lc3BhY2VVUkkoKTsgfQorICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUoKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7
IHJldHVybiBtX3RhZ05hbWUubG9jYWxOYW1lKCk7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21p
Y1N0cmluZyYgcHJlZml4KCkgY29uc3Qgb3ZlcnJpZGUgRklOQUwgeyByZXR1cm4gbV90YWdOYW1l
LnByZWZpeCgpOyB9CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVS
SSgpIGNvbnN0IG92ZXJyaWRlIEZJTkFMIHsgcmV0dXJuIG1fdGFnTmFtZS5uYW1lc3BhY2VVUkko
KTsgfQogCi0gICAgdmlydHVhbCBVUkwgYmFzZVVSSSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwor
ICAgIHZpcnR1YWwgVVJMIGJhc2VVUkkoKSBjb25zdCBvdmVycmlkZSBGSU5BTDsKIAotICAgIHZp
cnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBTdHJp
bmcgbm9kZU5hbWUoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFBhc3NSZWZQdHI8RWxlbWVudD4g
Y2xvbmVFbGVtZW50V2l0aENoaWxkcmVuKCk7CiAgICAgUGFzc1JlZlB0cjxFbGVtZW50PiBjbG9u
ZUVsZW1lbnRXaXRob3V0Q2hpbGRyZW4oKTsKQEAgLTM0NCw3ICszNDQsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBzaG9ydCB0YWJJbmRleCgpIGNvbnN0OwogICAgIHZpcnR1YWwgRWxlbWVudCog
Zm9jdXNEZWxlZ2F0ZSgpOwogCi0gICAgdmlydHVhbCBSZW5kZXJTdHlsZSogY29tcHV0ZWRTdHls
ZShQc2V1ZG9JZCA9IE5PUFNFVURPKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJlbmRlclN0eWxl
KiBjb21wdXRlZFN0eWxlKFBzZXVkb0lkID0gTk9QU0VVRE8pIG92ZXJyaWRlOwogCiAgICAgLy8g
TWV0aG9kcyBmb3IgaW5kaWNhdGluZyB0aGUgc3R5bGUgaXMgYWZmZWN0ZWQgYnkgZHluYW1pYyB1
cGRhdGVzIChlLmcuLCBjaGlsZHJlbiBjaGFuZ2luZywgb3VyIHBvc2l0aW9uIGNoYW5naW5nIGlu
IG91ciBzaWJsaW5nIGxpc3QsIGV0Yy4pCiAgICAgYm9vbCBzdHlsZUFmZmVjdGVkQnlFbXB0eSgp
IGNvbnN0IHsgcmV0dXJuIGhhc1JhcmVEYXRhKCkgJiYgcmFyZURhdGFTdHlsZUFmZmVjdGVkQnlF
bXB0eSgpOyB9CkBAIC00MzYsOCArNDM2LDggQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBib29s
IGlzRmluaXNoZWRQYXJzaW5nQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBpc1BhcnNpbmdDaGls
ZHJlbkZpbmlzaGVkKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVu
KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGJlZ2luUGFyc2luZ0NoaWxkcmVuKCkgT1ZF
UlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGZpbmlzaFBhcnNpbmdDaGlsZHJlbigpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBiZWdpblBhcnNpbmdDaGlsZHJlbigpIG92ZXJyaWRl
IEZJTkFMOwogCiAgICAgUHNldWRvRWxlbWVudCogYmVmb3JlUHNldWRvRWxlbWVudCgpIGNvbnN0
OwogICAgIFBzZXVkb0VsZW1lbnQqIGFmdGVyUHNldWRvRWxlbWVudCgpIGNvbnN0OwpAQCAtNDgx
LDEzICs0ODEsMTMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0ZyYW1lRWxlbWVudEJh
c2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NlYXJjaEZp
ZWxkQ2FuY2VsQnV0dG9uRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2
aXJ0dWFsIGJvb2wgY2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgLy8gVXNlZCBmb3IgZGlzYWJs
ZWQgZm9ybSBlbGVtZW50czsgaWYgdHJ1ZSwgcHJldmVudHMgbW91c2UgZXZlbnRzIGZyb20gYmVp
bmcgZGlzcGF0Y2hlZAogICAgIC8vIHRvIGV2ZW50IGxpc3RlbmVycywgYW5kIHByZXZlbnRzIERP
TUFjdGl2YXRlIGV2ZW50cyBmcm9tIGJlaW5nIHNlbnQgYXQgYWxsLgogICAgIHZpcnR1YWwgYm9v
bCBpc0Rpc2FibGVkRm9ybUNvbnRyb2woKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAg
dmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNv
bnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShTVkcpCiAgICAgYm9vbCBo
YXNQZW5kaW5nUmVzb3VyY2VzKCkgY29uc3Q7CkBAIC01NzIsMTAgKzU3MiwxMCBAQCBwcm90ZWN0
ZWQ6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVx
dWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCByZW1vdmVBbGxFdmVudExpc3RlbmVycygpIE9WRVJSSURFIEZJTkFMOworICAg
IHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFp
bmVyTm9kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWlu
ZXJOb2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25z
dCBDaGlsZENoYW5nZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbGxFdmVu
dExpc3RlbmVycygpIG92ZXJyaWRlIEZJTkFMOwogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPiBjdXN0b21TdHlsZUZvclJlbmRlcmVyKCk7CiAKQEAgLTYyOCwyMyArNjI4LDIz
IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNjcm9sbEJ5VW5pdHMoaW50IHVuaXRzLCBTY3JvbGxH
cmFudWxhcml0eSk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlZml4KGNvbnN0IEF0b21pY1N0
cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIE5vZGVU
eXBlIG5vZGVUeXBlKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCBib29sIGNo
aWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1
YWwgdm9pZCBzZXRQcmVmaXgoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIG92
ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5cGUoKSBjb25zdCBvdmVy
cmlkZSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSkg
Y29uc3Qgb3ZlcnJpZGUgRklOQUw7CiAKICAgICB2b2lkIHNldEF0dHJpYnV0ZUludGVybmFsKHVu
c2lnbmVkIGluZGV4LCBjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiB2
YWx1ZSwgU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKTsKICAgICB2b2lkIGFkZEF0dHJp
YnV0ZUludGVybmFsKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmIHZh
bHVlLCBTeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpOwogICAgIHZvaWQgcmVtb3ZlQXR0
cmlidXRlSW50ZXJuYWwodW5zaWduZWQgaW5kZXgsIFN5bmNocm9uaXphdGlvbk9mTGF6eUF0dHJp
YnV0ZSk7CiAKICNpZm5kZWYgTkRFQlVHCi0gICAgdmlydHVhbCB2b2lkIGZvcm1hdEZvckRlYnVn
Z2VyKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5n
dGgpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICB2b2lkIGNhbmNlbEZvY3VzQXBwZWFy
YW5jZVVwZGF0ZSgpOwogCiAgICAgLy8gY2xvbmVOb2RlIGlzIHByaXZhdGUgc28gdGhhdCBub24t
dmlydHVhbCBjbG9uZUVsZW1lbnRXaXRoQ2hpbGRyZW4gYW5kIGNsb25lRWxlbWVudFdpdGhvdXRD
aGlsZHJlbgogICAgIC8vIGFyZSB1c2VkIGluc3RlYWQuCi0gICAgdmlydHVhbCBQYXNzUmVmUHRy
PE5vZGU+IGNsb25lTm9kZShib29sIGRlZXApIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxOb2RlPiBjbG9uZU5vZGUoYm9vbCBkZWVwKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJl
bigpOwogCiAgICAgdm9pZCBhZGRTaGFkb3dSb290KFBhc3NSZWZQdHI8U2hhZG93Um9vdD4pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FcnJvckV2ZW50LmgKaW5kZXggZDAwZTdmNC4uZDU4ZWVkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXJyb3JFdmVudC5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBsaW5l
bm8oKSBjb25zdCB7IHJldHVybiBtX2xpbmVOdW1iZXI7IH0KICAgICB1bnNpZ25lZCBjb2xubygp
IGNvbnN0IHsgcmV0dXJuIG1fY29sdW1uTnVtYmVyOyB9CiAKLSAgICB2aXJ0dWFsIEV2ZW50SW50
ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBFdmVu
dEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgog
ICAgIEVycm9yRXZlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudENv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudENvbnRleHQuaAppbmRleCAzZWNhMDQ2
Li5jZWZjYTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRDb250ZXh0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50Q29udGV4dC5oCkBAIC02OCw4ICs2OCw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Nb3VzZU9yRm9jdXNFdmVudENvbnRleHQoKTsKICAgICBF
dmVudFRhcmdldCogcmVsYXRlZFRhcmdldCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVsYXRlZFRhcmdl
dC5nZXQoKTsgfQogICAgIHZvaWQgc2V0UmVsYXRlZFRhcmdldChQYXNzUmVmUHRyPEV2ZW50VGFy
Z2V0Pik7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUxvY2FsRXZlbnRzKEV2ZW50JikgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzTW91c2VPckZvY3VzRXZlbnRDb250ZXh0KCkg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUxvY2FsRXZlbnRzKEV2ZW50
JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzTW91c2VPckZvY3VzRXZlbnRD
b250ZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgUmVmUHRyPEV2ZW50VGFy
Z2V0PiBtX3JlbGF0ZWRUYXJnZXQ7CkBAIC04OCw4ICs4OCw4IEBAIHB1YmxpYzoKICAgICBUb3Vj
aEV2ZW50Q29udGV4dChQYXNzUmVmUHRyPE5vZGU+LCBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiBj
dXJyZW50VGFyZ2V0LCBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiB0YXJnZXQpOwogICAgIHZpcnR1
YWwgflRvdWNoRXZlbnRDb250ZXh0KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlTG9jYWxF
dmVudHMoRXZlbnQmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNUb3VjaEV2
ZW50Q29udGV4dCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVMb2Nh
bEV2ZW50cyhFdmVudCYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1RvdWNo
RXZlbnRDb250ZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBlbnVtIFRvdWNoTGlzdFR5cGUg
eyBUb3VjaGVzLCBUYXJnZXRUb3VjaGVzLCBDaGFuZ2VkVG91Y2hlcywgTm90VG91Y2hMaXN0IH07
CiAgICAgVG91Y2hMaXN0KiB0b3VjaExpc3QoVG91Y2hMaXN0VHlwZSB0eXBlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnRUYXJnZXQuaAppbmRleCBiMWRhYzMxLi4zYzJmNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRU
YXJnZXQuaApAQCAtMTYxLDggKzE2MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNs
YXNzIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgOiBwdWJsaWMgRXZlbnRUYXJnZXQgewogICAg
IHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFyZ2V0
RGF0YSgpIE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsgfQotICAg
ICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSYgZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgT1ZF
UlJJREUgRklOQUwgeyByZXR1cm4gbV9ldmVudFRhcmdldERhdGE7IH0KKyAgICAgICAgdmlydHVh
bCBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YSgpIG92ZXJyaWRlIEZJTkFMIHsgcmV0
dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsgfQorICAgICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0
YSYgZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgb3ZlcnJpZGUgRklOQUwgeyByZXR1cm4gbV9ldmVu
dFRhcmdldERhdGE7IH0KICAgICBwcml2YXRlOgogICAgICAgICBFdmVudFRhcmdldERhdGEgbV9l
dmVudFRhcmdldERhdGE7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9G
b2N1c0V2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRm9jdXNFdmVudC5oCmluZGV4IGYyODgx
ZTYuLjk4MDY0N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Gb2N1c0V2ZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0ZvY3VzRXZlbnQuaApAQCAtNTYsNyArNTYsNyBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRm9jdXNFdmVudCh0eXBlLCBpbml0
aWFsaXplcikpOwogICAgIH0KIAotICAgIHZpcnR1YWwgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJn
ZXQoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBtX3JlbGF0ZWRUYXJnZXQuZ2V0KCk7
IH0KKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0KCkgY29uc3Qgb3ZlcnJp
ZGUgRklOQUwgeyByZXR1cm4gbV9yZWxhdGVkVGFyZ2V0LmdldCgpOyB9CiAgICAgdm9pZCBzZXRS
ZWxhdGVkVGFyZ2V0KFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IHJlbGF0ZWRUYXJnZXQpIHsgbV9y
ZWxhdGVkVGFyZ2V0ID0gcmVsYXRlZFRhcmdldDsgfQogCiAgICAgdmlydHVhbCBFdmVudEludGVy
ZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0tleWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9LZXlib2FyZEV2ZW50LmgK
aW5kZXggZDIyNjk0Yi4uYjgyYTAxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0tl
eWJvYXJkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5oCkBA
IC05NiwxMiArOTYsMTIgQEAgcHVibGljOgogICAgIAogICAgIGNvbnN0IFBsYXRmb3JtS2V5Ym9h
cmRFdmVudCoga2V5RXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2tleUV2ZW50LmdldCgpOyB9CiAK
LSAgICB2aXJ0dWFsIGludCBrZXlDb2RlKCkgY29uc3QgT1ZFUlJJREU7IC8vIGtleSBjb2RlIGZv
ciBrZXlkb3duIGFuZCBrZXl1cCwgY2hhcmFjdGVyIGZvciBrZXlwcmVzcwotICAgIHZpcnR1YWwg
aW50IGNoYXJDb2RlKCkgY29uc3QgT1ZFUlJJREU7IC8vIGNoYXJhY3RlciBjb2RlIGZvciBrZXlw
cmVzcywgMCBmb3Iga2V5ZG93biBhbmQga2V5dXAKKyAgICB2aXJ0dWFsIGludCBrZXlDb2RlKCkg
Y29uc3Qgb3ZlcnJpZGU7IC8vIGtleSBjb2RlIGZvciBrZXlkb3duIGFuZCBrZXl1cCwgY2hhcmFj
dGVyIGZvciBrZXlwcmVzcworICAgIHZpcnR1YWwgaW50IGNoYXJDb2RlKCkgY29uc3Qgb3ZlcnJp
ZGU7IC8vIGNoYXJhY3RlciBjb2RlIGZvciBrZXlwcmVzcywgMCBmb3Iga2V5ZG93biBhbmQga2V5
dXAKIAotICAgIHZpcnR1YWwgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNLZXlib2FyZEV2ZW50KCkgY29uc3QgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBpbnQgd2hpY2goKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIGlzS2V5Ym9hcmRFdmVudCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
aW50IHdoaWNoKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgLy8g
V2Ugb25seSBoYXZlIHRoaXMgbmVlZCB0byBzdG9yZSBrZXlwcmVzcyBjb21tYW5kIGluZm8gb24g
dGhlIE1hYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9MaXZlTm9kZUxpc3QuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9MaXZlTm9kZUxpc3QuaAppbmRleCBiM2MwODE0Li4yOGFhNzA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTGl2ZU5vZGVMaXN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0xpdmVOb2RlTGlzdC5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoK
IAogICAgICAgICBkb2N1bWVudCgpLnJlZ2lzdGVyTm9kZUxpc3QoKnRoaXMpOwogICAgIH0KLSAg
ICB2aXJ0dWFsIE5vZGUqIG5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBPVkVS
UklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIE5vZGUqIG5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJp
bmcmKSBjb25zdCBvdmVycmlkZSBGSU5BTDsKICAgICB2aXJ0dWFsIGJvb2wgbm9kZU1hdGNoZXMo
RWxlbWVudCopIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgfkxpdmVOb2RlTGlzdCgpCkBAIC03
NSw4ICs3NSw4IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBET00gQVBJCi0gICAgdmlydHVh
bCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIE5v
ZGUqIGl0ZW0odW5zaWduZWQgb2Zmc2V0KSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0
dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwg
Tm9kZSogaXRlbSh1bnNpZ25lZCBvZmZzZXQpIGNvbnN0IG92ZXJyaWRlIEZJTkFMOwogCiAgICAg
QUxXQVlTX0lOTElORSBib29sIGlzUm9vdGVkQXREb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
cm9vdFR5cGUgPT0gTm9kZUxpc3RJc1Jvb3RlZEF0RG9jdW1lbnQ7IH0KICAgICBBTFdBWVNfSU5M
SU5FIE5vZGVMaXN0SW52YWxpZGF0aW9uVHlwZSBpbnZhbGlkYXRpb25UeXBlKCkgY29uc3QgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Tm9kZUxpc3RJbnZhbGlkYXRpb25UeXBlPihtX2ludmFsaWRhdGlv
blR5cGUpOyB9CkBAIC0xMDMsNyArMTAzLDcgQEAgcHJvdGVjdGVkOgogICAgIEFMV0FZU19JTkxJ
TkUgTm9kZUxpc3RSb290VHlwZSByb290VHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0
PE5vZGVMaXN0Um9vdFR5cGU+KG1fcm9vdFR5cGUpOyB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVh
bCBib29sIGlzTGl2ZU5vZGVMaXN0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBpc0xpdmVOb2RlTGlzdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KIAogICAgIEVsZW1lbnQqIGl0ZXJhdGVGb3JQcmV2aW91c0VsZW1lbnQoRWxlbWVu
dCogY3VycmVudCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNz
YWdlUG9ydC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmgKaW5kZXggNDEwMmFh
ZC4uM2FkMGM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmgKQEAgLTczLDkgKzczLDkgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQgY29udGV4dERlc3Ryb3llZCgpOwog
Ci0gICAgICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZh
Y2UoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBNZXNzYWdlUG9ydEV2ZW50VGFyZ2V0SW50ZXJm
YWNlVHlwZTsgfQotICAgICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGlzTWVzc2FnZVBvcnQoKSBjb25z
dCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJ
bnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBN
ZXNzYWdlUG9ydEV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAgICAgICB2aXJ0dWFsIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7IH0KKyAgICAgICAgdmlydHVh
bCBib29sIGlzTWVzc2FnZVBvcnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAK
ICAgICAgICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VzKCk7CiAKQEAgLTEwNSw4ICsxMDUsOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgZXhwbGljaXQgTWVzc2Fn
ZVBvcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBy
ZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIHsgcmVmKCk7IH0KLSAgICAgICAgdmlydHVhbCB2b2lk
IGRlcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0KKyAgICAgICAgdmlydHVh
bCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQorICAgICAgICB2aXJ0
dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsgfQogCiAgICAg
ICAgIE93blB0cjxNZXNzYWdlUG9ydENoYW5uZWw+IG1fZW50YW5nbGVkQ2hhbm5lbDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Nb3VzZUV2ZW50LmgKaW5kZXggYmMwYmUyZS4uMzA0ZGViMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL01vdXNlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91
c2VFdmVudC5oCkBAIC04NCw3ICs4NCw3IEBAIHB1YmxpYzoKICAgICAvLyBidXQgd2Ugd2lsbCBt
YXRjaCB0aGUgc3RhbmRhcmQgRE9NLgogICAgIHVuc2lnbmVkIHNob3J0IGJ1dHRvbigpIGNvbnN0
IHsgcmV0dXJuIG1fYnV0dG9uOyB9CiAgICAgYm9vbCBidXR0b25Eb3duKCkgY29uc3QgeyByZXR1
cm4gbV9idXR0b25Eb3duOyB9Ci0gICAgdmlydHVhbCBFdmVudFRhcmdldCogcmVsYXRlZFRhcmdl
dCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIG1fcmVsYXRlZFRhcmdldC5nZXQoKTsg
fQorICAgIHZpcnR1YWwgRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQoKSBjb25zdCBvdmVycmlk
ZSBGSU5BTCB7IHJldHVybiBtX3JlbGF0ZWRUYXJnZXQuZ2V0KCk7IH0KICAgICB2b2lkIHNldFJl
bGF0ZWRUYXJnZXQoUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcmVsYXRlZFRhcmdldCkgeyBtX3Jl
bGF0ZWRUYXJnZXQgPSByZWxhdGVkVGFyZ2V0OyB9CiAKICAgICBDbGlwYm9hcmQqIGNsaXBib2Fy
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpcGJvYXJkLmdldCgpOyB9CkBAIC0xMDAsNyArMTAwLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0RyYWdFdmVudCgpIGNvbnN0OwogICAgIHZp
cnR1YWwgaW50IHdoaWNoKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RXZlbnQ+
IGNsb25lRm9yKEhUTUxJRnJhbWVFbGVtZW50KikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBQYXNzUmVmUHRyPEV2ZW50PiBjbG9uZUZvcihIVE1MSUZyYW1lRWxlbWVudCopIGNvbnN0IG92
ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
IHR5cGUsIGJvb2wgY2FuQnViYmxlLCBib29sIGNhbmNlbGFibGUsIGRvdWJsZSB0aW1lc3RhbXAs
IFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9NdXRhdGlvblJlY29yZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTXV0YXRpb25SZWNvcmQu
Y3BwCmluZGV4IDljYzk0MTIuLmFkYmYwYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9NdXRhdGlvblJlY29yZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL011dGF0aW9uUmVj
b3JkLmNwcApAQCAtNTEsMTIgKzUxLDEyIEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0g
ICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUoKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIE5vZGUqIHRhcmdldCgpIE9WRVJSSURFIHsgcmV0dXJuICZtX3RhcmdldC5nZXQoKTsgfQot
ICAgIHZpcnR1YWwgTm9kZUxpc3QqIGFkZGVkTm9kZXMoKSBPVkVSUklERSB7IHJldHVybiBtX2Fk
ZGVkTm9kZXMuZ2V0KCk7IH0KLSAgICB2aXJ0dWFsIE5vZGVMaXN0KiByZW1vdmVkTm9kZXMoKSBP
VkVSUklERSB7IHJldHVybiBtX3JlbW92ZWROb2Rlcy5nZXQoKTsgfQotICAgIHZpcnR1YWwgTm9k
ZSogcHJldmlvdXNTaWJsaW5nKCkgT1ZFUlJJREUgeyByZXR1cm4gbV9wcmV2aW91c1NpYmxpbmcu
Z2V0KCk7IH0KLSAgICB2aXJ0dWFsIE5vZGUqIG5leHRTaWJsaW5nKCkgT1ZFUlJJREUgeyByZXR1
cm4gbV9uZXh0U2libGluZy5nZXQoKTsgfQorICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5n
JiB0eXBlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBOb2RlKiB0YXJnZXQoKSBvdmVycmlkZSB7
IHJldHVybiAmbV90YXJnZXQuZ2V0KCk7IH0KKyAgICB2aXJ0dWFsIE5vZGVMaXN0KiBhZGRlZE5v
ZGVzKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9hZGRlZE5vZGVzLmdldCgpOyB9CisgICAgdmlydHVh
bCBOb2RlTGlzdCogcmVtb3ZlZE5vZGVzKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9yZW1vdmVkTm9k
ZXMuZ2V0KCk7IH0KKyAgICB2aXJ0dWFsIE5vZGUqIHByZXZpb3VzU2libGluZygpIG92ZXJyaWRl
IHsgcmV0dXJuIG1fcHJldmlvdXNTaWJsaW5nLmdldCgpOyB9CisgICAgdmlydHVhbCBOb2RlKiBu
ZXh0U2libGluZygpIG92ZXJyaWRlIHsgcmV0dXJuIG1fbmV4dFNpYmxpbmcuZ2V0KCk7IH0KIAog
ICAgIFJlZjxDb250YWluZXJOb2RlPiBtX3RhcmdldDsKICAgICBSZWZQdHI8Tm9kZUxpc3Q+IG1f
YWRkZWROb2RlczsKQEAgLTc0LDEwICs3NCwxMCBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRl
OgotICAgIHZpcnR1YWwgTm9kZSogdGFyZ2V0KCkgT1ZFUlJJREUgeyByZXR1cm4gJm1fdGFyZ2V0
LmdldCgpOyB9Ci0gICAgdmlydHVhbCBTdHJpbmcgb2xkVmFsdWUoKSBPVkVSUklERSB7IHJldHVy
biBtX29sZFZhbHVlOyB9Ci0gICAgdmlydHVhbCBOb2RlTGlzdCogYWRkZWROb2RlcygpIE9WRVJS
SURFIHsgcmV0dXJuIGxhemlseUluaXRpYWxpemVFbXB0eU5vZGVMaXN0KG1fYWRkZWROb2Rlcyk7
IH0KLSAgICB2aXJ0dWFsIE5vZGVMaXN0KiByZW1vdmVkTm9kZXMoKSBPVkVSUklERSB7IHJldHVy
biBsYXppbHlJbml0aWFsaXplRW1wdHlOb2RlTGlzdChtX3JlbW92ZWROb2Rlcyk7IH0KKyAgICB2
aXJ0dWFsIE5vZGUqIHRhcmdldCgpIG92ZXJyaWRlIHsgcmV0dXJuICZtX3RhcmdldC5nZXQoKTsg
fQorICAgIHZpcnR1YWwgU3RyaW5nIG9sZFZhbHVlKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9vbGRW
YWx1ZTsgfQorICAgIHZpcnR1YWwgTm9kZUxpc3QqIGFkZGVkTm9kZXMoKSBvdmVycmlkZSB7IHJl
dHVybiBsYXppbHlJbml0aWFsaXplRW1wdHlOb2RlTGlzdChtX2FkZGVkTm9kZXMpOyB9CisgICAg
dmlydHVhbCBOb2RlTGlzdCogcmVtb3ZlZE5vZGVzKCkgb3ZlcnJpZGUgeyByZXR1cm4gbGF6aWx5
SW5pdGlhbGl6ZUVtcHR5Tm9kZUxpc3QobV9yZW1vdmVkTm9kZXMpOyB9CiAKICAgICBzdGF0aWMg
Tm9kZUxpc3QqIGxhemlseUluaXRpYWxpemVFbXB0eU5vZGVMaXN0KFJlZlB0cjxOb2RlTGlzdD4m
IG5vZGVMaXN0KQogICAgIHsKQEAgLTEwMiw5ICsxMDIsOSBAQCBwdWJsaWM6CiAgICAgfQogCiBw
cml2YXRlOgotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKCkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGF0dHJpYnV0ZU5hbWUoKSBPVkVSUklE
RSB7IHJldHVybiBtX2F0dHJpYnV0ZU5hbWU7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgYXR0cmlidXRlTmFtZXNwYWNlKCkgT1ZFUlJJREUgeyByZXR1cm4gbV9hdHRyaWJ1dGVO
YW1lc3BhY2U7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSgpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1dGVOYW1lKCkgb3Zl
cnJpZGUgeyByZXR1cm4gbV9hdHRyaWJ1dGVOYW1lOyB9CisgICAgdmlydHVhbCBjb25zdCBBdG9t
aWNTdHJpbmcmIGF0dHJpYnV0ZU5hbWVzcGFjZSgpIG92ZXJyaWRlIHsgcmV0dXJuIG1fYXR0cmli
dXRlTmFtZXNwYWNlOyB9CiAKICAgICBBdG9taWNTdHJpbmcgbV9hdHRyaWJ1dGVOYW1lOwogICAg
IEF0b21pY1N0cmluZyBtX2F0dHJpYnV0ZU5hbWVzcGFjZTsKQEAgLTExOCw3ICsxMTgsNyBAQCBw
dWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5n
JiB0eXBlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUo
KSBvdmVycmlkZTsKIH07CiAKIGNsYXNzIE11dGF0aW9uUmVjb3JkV2l0aE51bGxPbGRWYWx1ZSA6
IHB1YmxpYyBNdXRhdGlvblJlY29yZCB7CkBAIC0xMjksMTYgKzEyOSwxNiBAQCBwdWJsaWM6CiAg
ICAgfQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKCkg
T1ZFUlJJREUgeyByZXR1cm4gbV9yZWNvcmQtPnR5cGUoKTsgfQotICAgIHZpcnR1YWwgTm9kZSog
dGFyZ2V0KCkgT1ZFUlJJREUgeyByZXR1cm4gbV9yZWNvcmQtPnRhcmdldCgpOyB9Ci0gICAgdmly
dHVhbCBOb2RlTGlzdCogYWRkZWROb2RlcygpIE9WRVJSSURFIHsgcmV0dXJuIG1fcmVjb3JkLT5h
ZGRlZE5vZGVzKCk7IH0KLSAgICB2aXJ0dWFsIE5vZGVMaXN0KiByZW1vdmVkTm9kZXMoKSBPVkVS
UklERSB7IHJldHVybiBtX3JlY29yZC0+cmVtb3ZlZE5vZGVzKCk7IH0KLSAgICB2aXJ0dWFsIE5v
ZGUqIHByZXZpb3VzU2libGluZygpIE9WRVJSSURFIHsgcmV0dXJuIG1fcmVjb3JkLT5wcmV2aW91
c1NpYmxpbmcoKTsgfQotICAgIHZpcnR1YWwgTm9kZSogbmV4dFNpYmxpbmcoKSBPVkVSUklERSB7
IHJldHVybiBtX3JlY29yZC0+bmV4dFNpYmxpbmcoKTsgfQotICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBhdHRyaWJ1dGVOYW1lKCkgT1ZFUlJJREUgeyByZXR1cm4gbV9yZWNvcmQtPmF0
dHJpYnV0ZU5hbWUoKTsgfQotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyaWJ1
dGVOYW1lc3BhY2UoKSBPVkVSUklERSB7IHJldHVybiBtX3JlY29yZC0+YXR0cmlidXRlTmFtZXNw
YWNlKCk7IH0KLQotICAgIHZpcnR1YWwgU3RyaW5nIG9sZFZhbHVlKCkgT1ZFUlJJREUgeyByZXR1
cm4gU3RyaW5nKCk7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSgpIG92
ZXJyaWRlIHsgcmV0dXJuIG1fcmVjb3JkLT50eXBlKCk7IH0KKyAgICB2aXJ0dWFsIE5vZGUqIHRh
cmdldCgpIG92ZXJyaWRlIHsgcmV0dXJuIG1fcmVjb3JkLT50YXJnZXQoKTsgfQorICAgIHZpcnR1
YWwgTm9kZUxpc3QqIGFkZGVkTm9kZXMoKSBvdmVycmlkZSB7IHJldHVybiBtX3JlY29yZC0+YWRk
ZWROb2RlcygpOyB9CisgICAgdmlydHVhbCBOb2RlTGlzdCogcmVtb3ZlZE5vZGVzKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9yZWNvcmQtPnJlbW92ZWROb2RlcygpOyB9CisgICAgdmlydHVhbCBOb2Rl
KiBwcmV2aW91c1NpYmxpbmcoKSBvdmVycmlkZSB7IHJldHVybiBtX3JlY29yZC0+cHJldmlvdXNT
aWJsaW5nKCk7IH0KKyAgICB2aXJ0dWFsIE5vZGUqIG5leHRTaWJsaW5nKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9yZWNvcmQtPm5leHRTaWJsaW5nKCk7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21p
Y1N0cmluZyYgYXR0cmlidXRlTmFtZSgpIG92ZXJyaWRlIHsgcmV0dXJuIG1fcmVjb3JkLT5hdHRy
aWJ1dGVOYW1lKCk7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgYXR0cmlidXRl
TmFtZXNwYWNlKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9yZWNvcmQtPmF0dHJpYnV0ZU5hbWVzcGFj
ZSgpOyB9CisKKyAgICB2aXJ0dWFsIFN0cmluZyBvbGRWYWx1ZSgpIG92ZXJyaWRlIHsgcmV0dXJu
IFN0cmluZygpOyB9CiAKICAgICBSZWZQdHI8TXV0YXRpb25SZWNvcmQ+IG1fcmVjb3JkOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5oCmluZGV4IDMzYTM1NGIuLjFkMTIxYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtNTAzLDE3
ICs1MDMsMTcgQEAgcHVibGljOgogCiAgICAgdW5zaWduZWQgc2hvcnQgY29tcGFyZURvY3VtZW50
UG9zaXRpb24oTm9kZSopOwogCi0gICAgdmlydHVhbCBOb2RlKiB0b05vZGUoKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIE5vZGUqIHRvTm9kZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgSFRNTElu
cHV0RWxlbWVudCogdG9JbnB1dEVsZW1lbnQoKTsKIAotICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJ
bnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25z
dCBPVkVSUklERSBGSU5BTDsgLy8gSW1wbGVtZW50ZWQgaW4gRG9jdW1lbnQuaAorICAgIHZpcnR1
YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSBGSU5BTDsgLy8gSW1wbGVtZW50ZWQgaW4gRG9jdW1l
bnQuaAogCi0gICAgdmlydHVhbCBib29sIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUsIFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4sIGJvb2wgdXNlQ2FwdHVy
ZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXIqLCBib29sIHVzZUNhcHR1cmUp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBhZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+LCBib29sIHVzZUNh
cHR1cmUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCByZW1vdmVFdmVudExpc3RlbmVyKGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyKiwgYm9vbCB1c2VDYXB0
dXJlKSBvdmVycmlkZTsKIAogICAgIHVzaW5nIEV2ZW50VGFyZ2V0OjpkaXNwYXRjaEV2ZW50Owot
ICAgIHZpcnR1YWwgYm9vbCBkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGJvb2wgZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50Pikgb3Zl
cnJpZGU7CiAKICAgICB2b2lkIGRpc3BhdGNoU2NvcGVkRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4p
OwogCkBAIC01MzksOCArNTM5LDggQEAgcHVibGljOgogICAgIHVzaW5nIFRyZWVTaGFyZWQ8Tm9k
ZT46OnJlZjsKICAgICB1c2luZyBUcmVlU2hhcmVkPE5vZGU+OjpkZXJlZjsKIAotICAgIHZpcnR1
YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKSBPVkVSUklERSBGSU5BTDsKLSAg
ICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSYgZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgT1ZFUlJJ
REUgRklOQUw7CisgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YSgp
IG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhJiBlbnN1cmVFdmVu
dFRhcmdldERhdGEoKSBvdmVycmlkZSBGSU5BTDsKIAogICAgIHZvaWQgZ2V0UmVnaXN0ZXJlZE11
dGF0aW9uT2JzZXJ2ZXJzT2ZUeXBlKEhhc2hNYXA8TXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9u
UmVjb3JkRGVsaXZlcnlPcHRpb25zPiYsIE11dGF0aW9uT2JzZXJ2ZXI6Ok11dGF0aW9uVHlwZSwg
Y29uc3QgUXVhbGlmaWVkTmFtZSogYXR0cmlidXRlTmFtZSk7CiAgICAgdm9pZCByZWdpc3Rlck11
dGF0aW9uT2JzZXJ2ZXIoTXV0YXRpb25PYnNlcnZlciosIE11dGF0aW9uT2JzZXJ2ZXJPcHRpb25z
LCBjb25zdCBIYXNoU2V0PEF0b21pY1N0cmluZz4mIGF0dHJpYnV0ZUZpbHRlcik7CkBAIC02NjQs
OCArNjY0LDggQEAgcHJpdmF0ZToKICAgICBib29sIGhhc0VkaXRhYmxlU3R5bGUoRWRpdGFibGVM
ZXZlbCwgVXNlclNlbGVjdEFsbFRyZWF0bWVudCA9IFVzZXJTZWxlY3RBbGxJc0Fsd2F5c05vbkVk
aXRhYmxlKSBjb25zdDsKICAgICBib29sIGlzRWRpdGFibGVUb0FjY2Vzc2liaWxpdHkoRWRpdGFi
bGVMZXZlbCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIFJlbmRlclN0eWxl
KiBub25SZW5kZXJlclN0eWxlKCkgY29uc3QgeyByZXR1cm4gMDsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vUGFnZVRyYW5zaXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1BhZ2VUcmFuc2l0aW9uRXZlbnQuaAppbmRleCA5YTFhNWIxLi4wNTFhMTJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUGFnZVRyYW5zaXRpb25FdmVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9QYWdlVHJhbnNpdGlvbkV2ZW50LmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB+UGFnZVRyYW5zaXRpb25FdmVudCgpOwogCi0gICAgdmlydHVh
bCBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKIAog
ICAgIGJvb2wgcGVyc2lzdGVkKCkgY29uc3QgeyByZXR1cm4gbV9wZXJzaXN0ZWQ7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oCmluZGV4IGI3ZTcxZTEuLmQw
YWEwYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgKQEAg
LTYwLDggKzYwLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPE5vZGU+IGNsb25lTm9kZShib29sIGRlZXAp
OwogCi0gICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50
byhDb250YWluZXJOb2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9t
KENvbnRhaW5lck5vZGUmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNh
dGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOwogCiAgICAg
dm9pZCBjaGVja1N0eWxlU2hlZXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q1NTU3R5bGVTaGVl
dChjb25zdCBTdHJpbmcmIGhyZWYsIGNvbnN0IFVSTCYgYmFzZVVSTCwgY29uc3QgU3RyaW5nJiBj
aGFyc2V0LCBjb25zdCBDYWNoZWRDU1NTdHlsZVNoZWV0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vUHJvZ3Jlc3NFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2dyZXNz
RXZlbnQuaAppbmRleCAwZjllODI3Li44ZDIzNTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vUHJvZ3Jlc3NFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9ncmVzc0V2
ZW50LmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBs
b2FkZWQoKSBjb25zdCB7IHJldHVybiBtX2xvYWRlZDsgfQogICAgIHVuc2lnbmVkIGxvbmcgbG9u
ZyB0b3RhbCgpIGNvbnN0IHsgcmV0dXJuIG1fdG90YWw7IH0KIAotICAgIHZpcnR1YWwgRXZlbnRJ
bnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEV2
ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByb3RlY3Rl
ZDoKICAgICBQcm9ncmVzc0V2ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
UHNldWRvRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuaAppbmRl
eCAyNWVhZmIyLi5iNThhZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHNldWRv
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmgKQEAgLTQ1
LDI2ICs0NSwyNiBAQCBwdWJsaWM6CiAgICAgRWxlbWVudCogaG9zdEVsZW1lbnQoKSBjb25zdCB7
IHJldHVybiBtX2hvc3RFbGVtZW50OyB9CiAgICAgdm9pZCBjbGVhckhvc3RFbGVtZW50KCkgeyBt
X2hvc3RFbGVtZW50ID0gbnVsbHB0cjsgfQogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFJlbmRl
clN0eWxlPiBjdXN0b21TdHlsZUZvclJlbmRlcmVyKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCByZW5k
ZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjdXN0b21TdHlsZUZvclJlbmRlcmVyKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGU7
CiAKICAgICAvLyBBcyBwZXIgaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzMy1yZWdpb25zLyNm
bG93LWludG8sIHBzZXVkby1lbGVtZW50cyBzdWNoIGFzIDo6Zmlyc3QtbGluZSwgOjpmaXJzdC1s
ZXR0ZXIsIDo6YmVmb3JlIG9yIDo6YWZ0ZXIKICAgICAvLyBjYW5ub3QgYmUgZGlyZWN0bHkgY29s
bGVjdGVkIGludG8gYSBuYW1lZCBmbG93LgogI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKLSAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkTW92ZVRvRmxvd1RocmVhZChjb25zdCBSZW5kZXJTdHlsZSYpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIHNob3VsZE1v
dmVUb0Zsb3dUaHJlYWQoY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBmYWxzZTsgfQogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuU3RhcnRTZWxlY3Rpb24o
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBjYW5D
b250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgdmlydHVhbCBib29sIGNhblN0YXJ0U2VsZWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgc3RhdGljIFN0cmluZyBwc2V1
ZG9FbGVtZW50TmFtZUZvckV2ZW50cyhQc2V1ZG9JZCk7CiAKIHByaXZhdGU6CiAgICAgUHNldWRv
RWxlbWVudChFbGVtZW50JiwgUHNldWRvSWQpOwogCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2Fs
Y1N0eWxlKFN0eWxlOjpDaGFuZ2UpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgUHNldWRvSWQgY3Vz
dG9tUHNldWRvSWQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3BzZXVkb0lkOyB9CisgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2FsY1N0eWxlKFN0eWxlOjpDaGFuZ2UpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgUHNldWRvSWQgY3VzdG9tUHNldWRvSWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX3BzZXVkb0lkOyB9CiAKICAgICBFbGVtZW50KiBtX2hvc3RFbGVtZW50OwogICAgIFBzZXVk
b0lkIG1fcHNldWRvSWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaAppbmRleCA4N2IyN2RkLi4xYzdmMGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTE2MSw3ICsxNjEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIHsKICAgICAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQWRkQ29uc29sZU1lc3NhZ2VU
YXNrKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UpKTsKICAgICAgICAgfQotICAgICAgICB2aXJ0dWFs
IHZvaWQgcGVyZm9ybVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIE9WRVJSSURFOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIG92
ZXJyaWRlOwogICAgIHByaXZhdGU6CiAgICAgICAgIEFkZENvbnNvbGVNZXNzYWdlVGFzayhNZXNz
YWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpCiAgICAgICAgICAgICA6IG1fc291cmNlKHNvdXJjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5o
CmluZGV4IDJmMThkZWQuLjc4YzVkN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaApAQCAtNTUs
NyArNTUsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5TaGFkb3dSb290KCk7CiAKLSAgICB2
aXJ0dWFsIGJvb2wgYXBwbHlBdXRob3JTdHlsZXMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBt
X2FwcGx5QXV0aG9yU3R5bGVzOyB9CisgICAgdmlydHVhbCBib29sIGFwcGx5QXV0aG9yU3R5bGVz
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9hcHBseUF1dGhvclN0eWxlczsgfQogICAgIHZv
aWQgc2V0QXBwbHlBdXRob3JTdHlsZXMoYm9vbCk7CiAgICAgYm9vbCByZXNldFN0eWxlSW5oZXJp
dGFuY2UoKSBjb25zdCB7IHJldHVybiBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZTsgfQogICAgIHZv
aWQgc2V0UmVzZXRTdHlsZUluaGVyaXRhbmNlKGJvb2wpOwpAQCAtNzUsMTcgKzc1LDE3IEBAIHB1
YmxpYzoKICAgICBDb250ZW50RGlzdHJpYnV0b3ImIGRpc3RyaWJ1dG9yKCkgeyByZXR1cm4gbV9k
aXN0cmlidXRvcjsgfQogICAgIHZvaWQgaW52YWxpZGF0ZURpc3RyaWJ1dGlvbigpIHsgbV9kaXN0
cmlidXRvci5pbnZhbGlkYXRlRGlzdHJpYnV0aW9uKGhvc3RFbGVtZW50KCkpOyB9CiAKLSAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToK
ICAgICBTaGFkb3dSb290KERvY3VtZW50JiwgU2hhZG93Um9vdFR5cGUpOwogCi0gICAgdmlydHVh
bCB2b2lkIGRyb3BDaGlsZHJlbigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5
cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2hp
bGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGRyb3BDaGlsZHJlbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVB
bGxvd2VkKE5vZGVUeXBlKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2hpbGRy
ZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7CiAKICAgICAvLyBTaGFkb3dS
b290cyBzaG91bGQgbmV2ZXIgYmUgY2xvbmVkLgotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxOb2Rl
PiBjbG9uZU5vZGUoYm9vbCkgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxOb2RlPiBjbG9uZU5vZGUoYm9vbCkgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQogCiAg
ICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkbid0IGhhcHBlbi4gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg4ODM0CiAgICAgYm9vbCBpc09ycGhhbigpIGNvbnN0IHsgcmV0
dXJuICFob3N0RWxlbWVudCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3Rh
dGljTm9kZUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNOb2RlTGlzdC5oCmluZGV4
IDEzZDI0YzEuLjlkODQwMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNO
b2RlTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNOb2RlTGlzdC5oCkBAIC01
MSw5ICs1MSw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdGF0aWNO
b2RlTGlzdCk7CiAgICAgfQogCi0gICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIE5vZGUqIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgTm9kZSogbmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYp
IGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBOb2RlKiBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIE5vZGUqIG5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmKSBj
b25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBTdGF0aWNOb2RlTGlzdCgpIHsgfQpAQCAt
NzUsOSArNzUsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RhdGlj
RWxlbWVudExpc3QpOwogICAgIH0KIAotICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBOb2RlKiBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIE5vZGUqIG5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJp
bmcmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgTm9kZSogaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBOb2RlKiBuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5n
JikgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgU3RhdGljRWxlbWVudExpc3QoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmgKaW5kZXggYTBmMDIwNS4uOWQwYWM0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU3R5bGVkRWxlbWVudC5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgc3luY2hyb25pemVTdHlsZUF0dHJpYnV0ZUludGVybmFsKCkgY29uc3Q7CiAgICAgCi0g
ICAgdmlydHVhbCBDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSgpIE9WRVJSSURFIEZJTkFMOwor
ICAgIHZpcnR1YWwgQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUoKSBvdmVycmlkZSBGSU5BTDsK
IAogICAgIGNvbnN0IFN0eWxlUHJvcGVydGllcyogcHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUo
KTsKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQ
cm9wZXJ0aWVzJikgeyB9CkBAIC02OCw3ICs2OCw3IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAg
fQogCi0gICAgdmlydHVhbCB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiA9IE1v
ZGlmaWVkRGlyZWN0bHkpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24gPSBNb2RpZmllZERpcmVjdGx5KSBvdmVycmlkZTsKIAogICAgIHZp
cnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIApAQCAtNzYsNyArNzYsNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdm9pZCBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoTXV0YWJsZVN0
eWxlUHJvcGVydGllcyYsIENTU1Byb3BlcnR5SUQsIGRvdWJsZSB2YWx1ZSwgQ1NTUHJpbWl0aXZl
VmFsdWU6OlVuaXRUeXBlcyk7CiAgICAgdm9pZCBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0
cmlidXRlU3R5bGUoTXV0YWJsZVN0eWxlUHJvcGVydGllcyYsIENTU1Byb3BlcnR5SUQsIGNvbnN0
IFN0cmluZyYgdmFsdWUpOwogCi0gICAgdmlydHVhbCB2b2lkIGFkZFN1YnJlc291cmNlQXR0cmli
dXRlVVJMcyhMaXN0SGFzaFNldDxVUkw+JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxVUkw+JikgY29uc3Qg
b3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBzdHlsZUF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgQXRvbWljU3RyaW5nJiBuZXdTdHlsZVN0cmluZywgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UYWdOb2RlTGlzdC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL1RhZ05vZGVMaXN0LmgKaW5kZXggNTA5OGQwOC4uYmQwOThiZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RhZ05vZGVMaXN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RhZ05vZGVMaXN0LmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogcHJvdGVj
dGVkOgogICAgIFRhZ05vZGVMaXN0KENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBUeXBlLCBjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5h
bWUpOwogCi0gICAgdmlydHVhbCBib29sIG5vZGVNYXRjaGVzKEVsZW1lbnQqKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIGJvb2wgbm9kZU1hdGNoZXMoRWxlbWVudCopIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgQXRvbWljU3RyaW5nIG1fbmFtZXNwYWNlVVJJOwogICAgIEF0b21pY1N0cmlu
ZyBtX2xvY2FsTmFtZTsKQEAgLTY5LDcgKzY5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBI
VE1MVGFnTm9kZUxpc3QoQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbG9jYWxOYW1lKTsKIAotICAgIHZpcnR1YWwgYm9vbCBub2RlTWF0Y2hlcyhFbGVtZW50Kikg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIG5vZGVNYXRjaGVzKEVsZW1lbnQqKSBj
b25zdCBvdmVycmlkZTsKIAogICAgIEF0b21pY1N0cmluZyBtX2xvd2VyZWRMb2NhbE5hbWU7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RlbXBsYXRlQ29udGVudERvY3VtZW50
RnJhZ21lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZW1wbGF0ZUNvbnRlbnREb2N1bWVudEZy
YWdtZW50LmgKaW5kZXggYzJmNzQ0ZDQuLjcxYTYzZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9UZW1wbGF0ZUNvbnRlbnREb2N1bWVudEZyYWdtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RlbXBsYXRlQ29udGVudERvY3VtZW50RnJhZ21lbnQuaApAQCAtNTAsNyArNTAs
NyBAQCBwcml2YXRlOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNUZW1wbGF0
ZUNvbnRlbnQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBi
b29sIGlzVGVtcGxhdGVDb250ZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQog
CiAgICAgY29uc3QgRWxlbWVudCogbV9ob3N0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9UZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5oCmluZGV4IDVlNzk1Y2Iu
LmY5MmNkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1RleHQuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgUmVuZGVyUHRyPFJlbmRlclRleHQ+IGNyZWF0ZVRleHRSZW5kZXJlcihjb25zdCBSZW5kZXJT
dHlsZSYpOwogICAgIAotICAgIHZpcnR1YWwgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgp
IGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
Y2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiB0
cnVlOyB9CiAKICAgICBSZW5kZXJUZXh0KiByZW5kZXJlcigpIGNvbnN0OwogCkBAIC02MiwxNSAr
NjIsMTUgQEAgcHJvdGVjdGVkOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBub2RlTmFtZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgTm9kZVR5cGUgbm9kZVR5
cGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Tm9kZT4gY2xvbmVO
b2RlKGJvb2wgZGVlcCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93
ZWQoTm9kZVR5cGUpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1l
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxOb2RlPiBjbG9uZU5vZGUoYm9vbCBk
ZWVwKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dlZChOb2RlVHlw
ZSkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGV4dD4gdmlydHVh
bENyZWF0ZShjb25zdCBTdHJpbmcmKTsKIAogI2lmbmRlZiBOREVCVUcKLSAgICB2aXJ0dWFsIHZv
aWQgZm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBmb3JtYXRGb3JEZWJ1Z2dlcihjaGFyKiBidWZm
ZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UZXh0RXZlbnQuaAppbmRleCA3ZWI5YzY3Li42Y2MyY2IwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVGV4dEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHRFdmVu
dC5oCkBAIC01MSw3ICs1MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKICAgICAgICAg
U3RyaW5nIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KIAotICAgICAgICB2aXJ0dWFs
IEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgICAg
IHZpcnR1YWwgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsK
IAogICAgICAgICBib29sIGlzTGluZUJyZWFrKCkgY29uc3QgeyByZXR1cm4gbV9pbnB1dFR5cGUg
PT0gVGV4dEV2ZW50SW5wdXRMaW5lQnJlYWs7IH0KICAgICAgICAgYm9vbCBpc0NvbXBvc2l0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9pbnB1dFR5cGUgPT0gVGV4dEV2ZW50SW5wdXRDb21wb3NpdGlv
bjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RvdWNoRXZlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmgKaW5kZXggNDJkNTE3NS4uMWE3M2NjYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RvdWNoRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVG91Y2hFdmVudC5oCkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dFRhcmdldFRvdWNoZXMoUGFzc1JlZlB0cjxUb3VjaExpc3Q+IHRhcmdldFRvdWNoZXMpIHsgbV90
YXJnZXRUb3VjaGVzID0gdGFyZ2V0VG91Y2hlczsgfQogICAgIHZvaWQgc2V0Q2hhbmdlZFRvdWNo
ZXMoUGFzc1JlZlB0cjxUb3VjaExpc3Q+IGNoYW5nZWRUb3VjaGVzKSB7IG1fY2hhbmdlZFRvdWNo
ZXMgPSBjaGFuZ2VkVG91Y2hlczsgfQogCi0gICAgdmlydHVhbCBib29sIGlzVG91Y2hFdmVudCgp
IGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc1RvdWNoRXZlbnQoKSBjb25zdCBv
dmVycmlkZTsKIAogICAgIHZpcnR1YWwgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBj
b25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyYW5zaXRpb25FdmVudC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL1RyYW5zaXRpb25FdmVudC5oCmluZGV4IDA4MjFlYjAuLjc0
OGJiYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmFuc2l0aW9uRXZlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJhbnNpdGlvbkV2ZW50LmgKQEAgLTYwLDcgKzYwLDcg
QEAgcHVibGljOgogICAgIGRvdWJsZSBlbGFwc2VkVGltZSgpIGNvbnN0OwogICAgIGNvbnN0IFN0
cmluZyYgcHNldWRvRWxlbWVudCgpIGNvbnN0OwogCi0gICAgdmlydHVhbCBFdmVudEludGVyZmFj
ZSBldmVudEludGVyZmFjZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgRXZlbnRJbnRl
cmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBU
cmFuc2l0aW9uRXZlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVUlFdmVudC5oCmluZGV4IGU5ZGYxMzcuLjA3N2JlZTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9VSUV2ZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1VJRXZlbnQuaApAQCAtNjAsOCArNjAsOCBAQCBwdWJsaWM6CiAgICAgQWJzdHJh
Y3RWaWV3KiB2aWV3KCkgY29uc3QgeyByZXR1cm4gbV92aWV3LmdldCgpOyB9CiAgICAgaW50IGRl
dGFpbCgpIGNvbnN0IHsgcmV0dXJuIG1fZGV0YWlsOyB9CiAKLSAgICB2aXJ0dWFsIEV2ZW50SW50
ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29s
IGlzVUlFdmVudCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgRXZlbnRJbnRlcmZhY2Ug
ZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNVSUV2
ZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGludCBrZXlDb2RlKCkgY29uc3Q7
CiAgICAgdmlydHVhbCBpbnQgY2hhckNvZGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9XZWJLaXRBbmltYXRpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1dl
YktpdEFuaW1hdGlvbkV2ZW50LmgKaW5kZXggMmY4NTM4Ni4uOWYzYzViMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGlj
OgogICAgIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSgpIGNvbnN0OwogICAgIGRvdWJsZSBl
bGFwc2VkVGltZSgpIGNvbnN0OwogCi0gICAgdmlydHVhbCBFdmVudEludGVyZmFjZSBldmVudElu
dGVyZmFjZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgRXZlbnRJbnRlcmZhY2UgZXZl
bnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBXZWJLaXRBbmlt
YXRpb25FdmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVk
Rmxvdy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5oCmluZGV4IGYxMmVi
MWEuLjYzZDNhYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZs
b3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmgKQEAgLTYyLDgg
KzYyLDggQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViS2l0TmFtZWRGbG93Pjo6
cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViS2l0TmFtZWRGbG93Pjo6ZGVyZWY7CiAKLSAg
ICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gV2ViS2l0TmFtZWRGbG93RXZlbnRUYXJnZXRJbnRlcmZhY2VU
eXBlOyB9Ci0gICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBFdmVudFRhcmdldEludGVy
ZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdlYktp
dE5hbWVkRmxvd0V2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAgIHZpcnR1YWwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRl
OwogCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSB0aGUgSlMgYmluZGluZyBj
b2RlIHRvIGRldGVybWluZSBpZiB0aGUgTmFtZWRGbG93IG9iamVjdCBpcyByZWFjaGFibGUgb3Ig
bm90LgogICAgIC8vIElmIHRoZSBvYmplY3QgaGFzIGxpc3RlbmVycywgdGhlIG9iamVjdCBzaG91
bGQgb25seSBiZSBkaXNjYXJkZWQgaWYgdGhlIHBhcmVudCBEb2N1bWVudCBpcyBub3QgcmVhY2hh
YmxlLgpAQCAtODUsOCArODUsOCBAQCBwcml2YXRlOgogICAgIFdlYktpdE5hbWVkRmxvdyhQYXNz
UmVmUHRyPE5hbWVkRmxvd0NvbGxlY3Rpb24+LCBjb25zdCBBdG9taWNTdHJpbmcmKTsKIAogICAg
IC8vIEV2ZW50VGFyZ2V0IGltcGxlbWVudGF0aW9uLgotICAgIHZpcnR1YWwgdm9pZCByZWZFdmVu
dFRhcmdldCgpIE9WRVJSSURFIHsgcmVmKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVu
dFRhcmdldCgpIE9WRVJSSURFIHsgZGVyZWYoKTsgfQorICAgIHZpcnR1YWwgdm9pZCByZWZFdmVu
dFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVu
dFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsgfQogCiAgICAgLy8gVGhlIG5hbWUgb2YgdGhl
IGZsb3cgdGhyZWFkIGFzIHNwZWNpZmllZCBpbiBDU1MuCiAgICAgQXRvbWljU3RyaW5nIG1fZmxv
d1RocmVhZE5hbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0VHJhbnNp
dGlvbkV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgK
aW5kZXggZWFmZjFlYS4uNGY2NTczYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dl
YktpdFRyYW5zaXRpb25FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXRUcmFu
c2l0aW9uRXZlbnQuaApAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAgICAgZG91YmxlIGVsYXBz
ZWRUaW1lKCkgY29uc3Q7CiAgICAgY29uc3QgU3RyaW5nJiBwc2V1ZG9FbGVtZW50KCkgY29uc3Q7
CiAKLSAgICB2aXJ0dWFsIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3QgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0
IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIFdlYktpdFRyYW5zaXRpb25FdmVudCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5oCmluZGV4IDMyNDhhNGQuLjM5
N2FlMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1h
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgKQEAg
LTQwLDExICs0MCwxMSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEFwcGVuZE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gcGFyZW50LCBQYXNzUmVmUHRyPE5vZGU+KTsKIAot
ICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRv
VW5hcHBseSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwogCiAjaWZuZGVmIE5ERUJV
RwotICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUq
PiYpIG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9wYXJl
bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50
Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseUJsb2NrRWxlbWVudENvbW1h
bmQuaAppbmRleCA1M2MzMzkyLi5jZDk5ODZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHJvdGVj
dGVkOgogICAgIGNvbnN0IFF1YWxpZmllZE5hbWUgdGFnTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dGFnTmFtZTsgfQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgZm9ybWF0UmFuZ2UoY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQb3NpdGlvbiYgZW5k
LCBjb25zdCBQb3NpdGlvbiYgZW5kT2ZTZWxlY3Rpb24sIFJlZlB0cjxFbGVtZW50PiYpID0gMDsK
ICAgICBSZW5kZXJTdHlsZSogcmVuZGVyU3R5bGVPZkVuY2xvc2luZ1RleHROb2RlKGNvbnN0IFBv
c2l0aW9uJik7CiAgICAgdm9pZCByYW5nZUZvclBhcmFncmFwaFNwbGl0dGluZ1RleHROb2Rlc0lm
TmVlZGVkKGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIFBvc2l0aW9uJiwgUG9zaXRpb24mKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaAppbmRleCA2NjYzN2M4Li5j
ZGE4OGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21t
YW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oCkBA
IC03MSw4ICs3MSw4IEBAIHByaXZhdGU6CiAgICAgQXBwbHlTdHlsZUNvbW1hbmQoUGFzc1JlZlB0
cjxFbGVtZW50PiwgYm9vbCByZW1vdmVPbmx5LCBFZGl0QWN0aW9uKTsKICAgICBBcHBseVN0eWxl
Q29tbWFuZChEb2N1bWVudCYsIGNvbnN0IEVkaXRpbmdTdHlsZSosIGJvb2wgKCppc0lubGluZUVs
ZW1lbnRUb1JlbW92ZSkoY29uc3QgRWxlbWVudCopLCBFZGl0QWN0aW9uKTsKIAotICAgIHZpcnR1
YWwgdm9pZCBkb0FwcGx5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBFZGl0QWN0aW9uIGVkaXRp
bmdBY3Rpb24oKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9uKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKICAgICAvLyBzdHlsZS1yZW1vdmFsIGhlbHBlcnMKICAgICBib29sIGlzU3R5bGVk
SW5saW5lRWxlbWVudFRvUmVtb3ZlKEVsZW1lbnQqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9CcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgKaW5kZXggMWQ1YzEyMy4uOTBjMmM2
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9CcmVha0Jsb2NrcXVvdGVDb21t
YW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9CcmVha0Jsb2NrcXVvdGVDb21tYW5k
LmgKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEJy
ZWFrQmxvY2txdW90ZUNvbW1hbmQoRG9jdW1lbnQmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZG9BcHBs
eSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBv
c2l0ZUVkaXRDb21tYW5kLmgKaW5kZXggMjhmNzAyZC4uNTA4NzkxNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaApAQCAtNDIsOSArNDIsOSBAQCBj
bGFzcyBFZGl0Q29tbWFuZENvbXBvc2l0aW9uIDogcHVibGljIFVuZG9TdGVwIHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxFZGl0Q29tbWFuZENvbXBvc2l0aW9uPiBjcmVhdGUoRG9j
dW1lbnQmLCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYs
IEVkaXRBY3Rpb24pOwogCi0gICAgdmlydHVhbCB2b2lkIHVuYXBwbHkoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgcmVhcHBseSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9lZGl0QWN0aW9uOyB9
CisgICAgdmlydHVhbCB2b2lkIHVuYXBwbHkoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVhcHBseSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9u
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9lZGl0QWN0aW9uOyB9CiAgICAgdm9pZCBhcHBl
bmQoU2ltcGxlRWRpdENvbW1hbmQqKTsKICAgICBib29sIHdhc0NyZWF0ZUxpbmtDb21tYW5kKCkg
Y29uc3QgeyByZXR1cm4gbV9lZGl0QWN0aW9uID09IEVkaXRBY3Rpb25DcmVhdGVMaW5rOyB9CiAK
QEAgLTE3Myw3ICsxNzMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgVmVjdG9yPFJlZlB0cjxFZGl0Q29t
bWFuZD4+IG1fY29tbWFuZHM7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGlzQ29tcG9z
aXRlRWRpdENvbW1hbmQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmly
dHVhbCBib29sIGlzQ29tcG9zaXRlRWRpdENvbW1hbmQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biB0cnVlOyB9CiAKICAgICBSZWZQdHI8RWRpdENvbW1hbmRDb21wb3NpdGlvbj4gbV9jb21wb3Np
dGlvbjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUJ1dHRv
bi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVCdXR0b24uaAppbmRleCAzNGU0Y2Mw
Li5iOThiYTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUJ1dHRv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlQnV0dG9uLmgKQEAgLTM1LDcg
KzM1LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERlbGV0ZUJ1dHRvbj4gY3Jl
YXRlKERvY3VtZW50Jik7CiAKICNpZiAhUExBVEZPUk0oSU9TKQotICAgIHZpcnR1YWwgYm9vbCB3
aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKIAogcHJpdmF0ZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlRnJvbVRleHROb2RlQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5k
LmgKaW5kZXggNThiOGRkNS4uMDViMjNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmgKQEAgLTQyLDExICs0MiwxMSBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIERlbGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQoUGFzc1JlZlB0cjxU
ZXh0PiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3VudCk7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgZG9BcHBseSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICAgICAKICNpZm5kZWYgTkRFQlVHCi0gICAgdmly
dHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJp
ZGU7CiAjZW5kaWYKICAgICAKICAgICBSZWZQdHI8VGV4dD4gbV9ub2RlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0Q29tbWFuZC5oCmluZGV4IDI0YzQxMDQuLmM1NjNlMjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRDb21tYW5kLmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwcm90ZWN0ZWQ6CiAjZW5k
aWYKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgaXNTaW1wbGVFZGl0Q29tbWFuZCgpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTaW1wbGVF
ZGl0Q29tbWFuZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIH07CiAKIGlubGlu
ZSBTaW1wbGVFZGl0Q29tbWFuZCogdG9TaW1wbGVFZGl0Q29tbWFuZChFZGl0Q29tbWFuZCogY29t
bWFuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0SW50b1RleHRO
b2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVD
b21tYW5kLmgKaW5kZXggNjlkMWM0Yy4uZjU2MTMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmgKQEAgLTQyLDE0ICs0MiwxNCBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEluc2VydEludG9UZXh0Tm9kZUNvbW1hbmQoUGFzc1Jl
ZlB0cjxUZXh0PiBub2RlLCB1bnNpZ25lZCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBk
b1VuYXBwbHkoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShJ
T1MpCi0gICAgdmlydHVhbCB2b2lkIGRvUmVhcHBseSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBkb1JlYXBwbHkoKSBvdmVycmlkZTsKICNlbmRpZgogICAgIAogI2lmbmRlZiBOREVCVUcK
LSAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4m
KSBvdmVycmlkZTsKICNlbmRpZgogICAgIAogICAgIFJlZlB0cjxUZXh0PiBtX25vZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydE5vZGVCZWZvcmVDb21tYW5kLmgKaW5kZXgg
NTkwMjY4Yi4uMWFkNmY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNl
cnROb2RlQmVmb3JlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQuaApAQCAtNDEsMTEgKzQxLDExIEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgSW5zZXJ0Tm9kZUJlZm9yZUNvbW1hbmQoUGFzc1JlZlB0cjxOb2RlPiBjaGlsZFRvSW5z
ZXJ0LCBQYXNzUmVmUHRyPE5vZGU+IGNoaWxkVG9JbnNlcnRCZWZvcmUsIFNob3VsZEFzc3VtZUNv
bnRlbnRJc0Fsd2F5c0VkaXRhYmxlKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgp
IG92ZXJyaWRlOwogICAgIAogI2lmbmRlZiBOREVCVUcKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9k
ZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
Z2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgogICAg
IAogICAgIFJlZlB0cjxOb2RlPiBtX2luc2VydENoaWxkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9JbnNlcnRUZXh0Q29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9JbnNlcnRUZXh0Q29tbWFuZC5oCmluZGV4IDY2NmZlOTUuLjljYmZmODUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmgKQEAgLTY5LDcgKzY5LDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpOwogCiAjaWYgUExBVEZPUk0oSU9TKQot
ICAgIHZpcnR1YWwgYm9vbCBpc0luc2VydFRleHRDb21tYW5kKCkgY29uc3QgT1ZFUlJJREUgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0luc2VydFRleHRDb21tYW5kKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogI2VuZGlmCiAKICAgICBQb3NpdGlvbiBwb3Np
dGlvbkluc2lkZVRleHROb2RlKGNvbnN0IFBvc2l0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmgKaW5kZXggNjE4
MjQwNC4uY2M5ZGRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NZXJnZUlk
ZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWVy
Z2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQuaApAQCAtNDAsMTEgKzQwLDExIEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgTWVyZ2VJZGVudGljYWxFbGVtZW50c0NvbW1hbmQoUGFzc1JlZlB0cjxF
bGVtZW50PiwgUGFzc1JlZlB0cjxFbGVtZW50Pik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZG9BcHBs
eSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkb1Vu
YXBwbHkoKSBvdmVycmlkZTsKICAgICAKICNpZm5kZWYgTkRFQlVHCi0gICAgdmlydHVhbCB2b2lk
IGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5k
aWYKICAgICAKICAgICBSZWZQdHI8RWxlbWVudD4gbV9lbGVtZW50MTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5oCmluZGV4IDIwNjgyZjMu
LmFiZGFiMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlQ1NTUHJv
cGVydHlDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVDU1NQcm9w
ZXJ0eUNvbW1hbmQuaApAQCAtNDQsMTEgKzQ0LDExIEBAIHByaXZhdGU6CiAgICAgUmVtb3ZlQ1NT
UHJvcGVydHlDb21tYW5kKERvY3VtZW50JiwgUGFzc1JlZlB0cjxTdHlsZWRFbGVtZW50PiwgQ1NT
UHJvcGVydHlJRCk7CiAgICAgflJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZCgpOwogCi0gICAgdmly
dHVhbCB2b2lkIGRvQXBwbHkoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7CiAgICAgCiAjaWZuZGVmIE5ERUJVRwot
ICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYp
IG92ZXJyaWRlOwogI2VuZGlmCiAgICAgCiAgICAgUmVmUHRyPFN0eWxlZEVsZW1lbnQ+IG1fZWxl
bWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNvbW1h
bmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuaAppbmRleCA2
MzZhOGFkLi5jNzkwYzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92
ZU5vZGVDb21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29t
bWFuZC5oCkBAIC00MCwxMSArNDAsMTEgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNp
dCBSZW1vdmVOb2RlQ29tbWFuZChQYXNzUmVmUHRyPE5vZGU+LCBTaG91bGRBc3N1bWVDb250ZW50
SXNBbHdheXNFZGl0YWJsZSk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgZG9BcHBseSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVy
cmlkZTsKIAogI2lmbmRlZiBOREVCVUcKLSAgICB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hT
ZXQ8Tm9kZSo+JikgT1ZFUlJJREU7CisgICAgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0
PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICBSZWZQdHI8Tm9kZT4gbV9ub2RlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29t
bWFuZC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZXBsYWNlTm9kZVdpdGhTcGFuQ29tbWFu
ZC5oCmluZGV4IGIwNTQyMmEuLmZhYTJkYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgKQEAgLTUwLDExICs1MCwxMSBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5k
KFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+KTsKIAotICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBs
eSgpIG92ZXJyaWRlOwogICAgIAogI2lmbmRlZiBOREVCVUcKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0
Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0Tm9kZXNJbkNvbW1hbmQoSGFzaFNldDxOb2RlKj4mKSBvdmVycmlkZTsKICNlbmRpZgog
CiAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBtX2VsZW1lbnRUb1JlcGxhY2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmgKaW5kZXggN2Q2ZDMz
ZS4uYWNkYTdjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZXROb2RlQXR0
cmlidXRlQ29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2V0Tm9kZUF0dHJp
YnV0ZUNvbW1hbmQuaApAQCAtNDEsMTEgKzQxLDExIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
U2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQoUGFzc1JlZlB0cjxFbGVtZW50PiwgY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0cmlidXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKTsKIAotICAgIHZp
cnR1YWwgdm9pZCBkb0FwcGx5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRvVW5hcHBs
eSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOwogCiAjaWZuZGVmIE5ERUJVRwotICAg
IHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92
ZXJyaWRlOwogI2VuZGlmCiAKICAgICBSZWZQdHI8RWxlbWVudD4gbV9lbGVtZW50OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZXRTZWxlY3Rpb25Db21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1NldFNlbGVjdGlvbkNvbW1hbmQuaAppbmRleCA4ZDE2YzFmLi4y
MjllYjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NldFNlbGVjdGlvbkNv
bW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NldFNlbGVjdGlvbkNvbW1hbmQu
aApAQCAtNDEsMTEgKzQxLDExIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU2V0U2VsZWN0aW9u
Q29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiwgRnJhbWVTZWxlY3Rpb246OlNldFNlbGVj
dGlvbk9wdGlvbnMpOwogCi0gICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRv
QXBwbHkoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgb3ZlcnJpZGU7
CiAKICNpZm5kZWYgTkRFQlVHCi0gICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhh
c2hTZXQ8Tm9kZSo+JikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIGdldE5vZGVzSW5D
b21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGUgeyB9CiAjZW5kaWYKIAogICAgIEZyYW1l
U2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25PcHRpb25zIG1fb3B0aW9uczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1NwZWxsQ2hlY2tlci5oCmluZGV4IGE2NGI5NTcuLmEwYzNhMjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9TcGVsbENoZWNrZXIuaApAQCAtNTYsOSArNTYsOSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCByZXF1ZXN0ZXJEZXN0cm95ZWQoKTsKICAgICBib29sIGlzU3RhcnRlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fY2hlY2tlcjsgfQogCi0gICAgdmlydHVhbCBjb25zdCBUZXh0Q2hlY2tpbmdSZXF1ZXN0
RGF0YSYgZGF0YSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRTdWNjZWVk
KGNvbnN0IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZENhbmNlbCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgY29uc3QgVGV4dENoZWNr
aW5nUmVxdWVzdERhdGEmIGRhdGEoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkU3VjY2VlZChjb25zdCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWwoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBT
cGVsbENoZWNrUmVxdWVzdChQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVm
UHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSwgY29uc3QgU3RyaW5nJiwgVGV4dENoZWNraW5nVHlw
ZU1hc2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1NwZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IDA1YmQxODMuLmMw
YmE5NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxpbmdDb3JyZWN0
aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbGluZ0NvcnJl
Y3Rpb25Db21tYW5kLmNwcApAQCAtNTUsMTEgKzU1LDExIEBAIHByaXZhdGU6CiAgICAgewogICAg
IH0KIAotICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIHZv
aWQgZG9BcHBseSgpIG92ZXJyaWRlCiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBk
b1VuYXBwbHkoKSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBvdmVycmlk
ZQogICAgIHsKICAgICAgICAgaWYgKCFtX2hhc0JlZW5VbmRvbmUpIHsKICAgICAgICAgICAgIGZy
YW1lKCkuZWRpdG9yKCkudW5hcHBsaWVkU3BlbGxDb3JyZWN0aW9uKHN0YXJ0aW5nU2VsZWN0aW9u
KCksIG1fY29ycmVjdGVkLCBtX2NvcnJlY3Rpb24pOwpAQCAtNjksNyArNjksNyBAQCBwcml2YXRl
OgogICAgIH0KIAogI2lmbmRlZiBOREVCVUcKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0Tm9kZXNJbkNv
bW1hbmQoSGFzaFNldDxOb2RlKj4mKSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rl
c0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlCiAgICAgewogICAgIH0KICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbGluZ0NvcnJlY3Rpb25D
b21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsaW5nQ29ycmVjdGlvbkNvbW1h
bmQuaAppbmRleCA2MDBlMWMyLi41ZDE3MGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1NwZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1NwZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQuaApAQCAtMzksOCArMzksOCBAQCBwdWJs
aWM6CiAgICAgfQogcHJpdmF0ZToKICAgICBTcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kKFBhc3NS
ZWZQdHI8UmFuZ2U+IHJhbmdlVG9CZUNvcnJlY3RlZCwgY29uc3QgU3RyaW5nJiBjb3JyZWN0aW9u
KTsKLSAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRSZXRhaW5BdXRvY29ycmVjdGlvbkluZGljYXRvcigpIGNvbnN0IE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHNo
b3VsZFJldGFpbkF1dG9jb3JyZWN0aW9uSW5kaWNhdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAg
ICBSZWZQdHI8UmFuZ2U+IG1fcmFuZ2VUb0JlQ29ycmVjdGVkOwogICAgIFZpc2libGVTZWxlY3Rp
b24gbV9zZWxlY3Rpb25Ub0JlQ29ycmVjdGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Nw
bGl0RWxlbWVudENvbW1hbmQuaAppbmRleCA1NzlmMzUzLi40Zjg2M2ZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuaApAQCAtNDAsMTMgKzQwLDEzIEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU3BsaXRFbGVtZW50Q29tbWFuZChQYXNzUmVmUHRyPEVs
ZW1lbnQ+LCBQYXNzUmVmUHRyPE5vZGU+IHNwbGl0UG9pbnRDaGlsZCk7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgZG9BcHBseSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkb1VuYXBwbHkoKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZG9SZWFwcGx5KCkgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGRvQXBwbHkoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRvUmVhcHBseSgpIG92ZXJyaWRlOwogICAg
IHZvaWQgZXhlY3V0ZUFwcGx5KCk7CiAKICNpZm5kZWYgTkRFQlVHCi0gICAgdmlydHVhbCB2b2lk
IGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+JikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGdldE5vZGVzSW5Db21tYW5kKEhhc2hTZXQ8Tm9kZSo+Jikgb3ZlcnJpZGU7CiAjZW5k
aWYKIAogICAgIFJlZlB0cjxFbGVtZW50PiBtX2VsZW1lbnQxOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5oCmluZGV4IGQ0NmU1Y2MuLjI4Mjk0NTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5kLmgKQEAgLTQy
LDEzICs0MiwxMyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNwbGl0VGV4dE5vZGVDb21tYW5k
KFBhc3NSZWZQdHI8VGV4dD4sIGludCBvZmZzZXQpOwogCi0gICAgdmlydHVhbCB2b2lkIGRvQXBw
bHkoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGRvUmVhcHBseSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBk
b0FwcGx5KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBkb1JlYXBwbHkoKSBvdmVycmlkZTsKICAgICB2b2lkIGluc2Vy
dFRleHQxQW5kVHJpbVRleHQyKCk7CiAgICAgCiAjaWZuZGVmIE5ERUJVRwotICAgIHZpcnR1YWwg
dm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwog
I2VuZGlmCiAKICAgICBSZWZQdHI8VGV4dD4gbV90ZXh0MTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1dyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5oCmluZGV4IGY0
ZDZiZWYuLjVhOWY5MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvV3JhcENv
bnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9X
cmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuaApAQCAtNDIsMTMgKzQyLDEzIEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5k
KFBhc3NSZWZQdHI8RWxlbWVudD4pOwogCi0gICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGRvUmVhcHBseSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkb0FwcGx5KCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBkb1JlYXBwbHkoKSBvdmVycmlkZTsKICAgICB2b2lkIGV4ZWN1dGVBcHBseSgp
OwogCiAjaWZuZGVmIE5ERUJVRwotICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29tbWFuZChI
YXNoU2V0PE5vZGUqPiYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBnZXROb2Rlc0luQ29t
bWFuZChIYXNoU2V0PE5vZGUqPiYpIG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICBSZWZQdHI8RWxl
bWVudD4gbV9lbGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3Mv
RWRpdG9ySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCmlu
ZGV4IDY3Mjc5MDkuLjc1N2Y5NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
aW9zL0VkaXRvcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJ
T1MubW0KQEAgLTM5NiwxNCArMzk2LDE0IEBAIHB1YmxpYzoKICAgICBib29sIG1hZGVGcmFnbWVu
dEZyb21QbGFpblRleHQ7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIHJlYWRXZWJBcmNo
aXZlKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29s
IHJlYWRGaWxlbmFtZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgcmVhZEhUTUwoY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIHJlYWRSVEZEKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBib29sIHJlYWRSVEYoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+KSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgcmVhZEltYWdlKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgY29uc3Qg
U3RyaW5nJiB0eXBlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcmVhZFVSTChjb25zdCBV
UkwmLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcmVh
ZFBsYWluVGV4dChjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVh
ZFdlYkFyY2hpdmUoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+KSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgcmVhZEZpbGVuYW1lcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgYm9vbCByZWFkSFRNTChjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgcmVhZFJURkQoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+KSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGJvb2wgcmVhZFJURihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4pIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgYm9vbCByZWFkSW1hZ2UoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+
LCBjb25zdCBTdHJpbmcmIHR5cGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCByZWFkVVJM
KGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
Ym9vbCByZWFkUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogICAgIHZvaWQgYWRk
RnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50Pik7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL21hcmt1cC5jcHAKaW5kZXggOWZkMDM0OC4uMmZlZmFlNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFya3VwLmNwcApAQCAtMTM3LDggKzEzNyw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGFwcGVu
ZEVsZW1lbnQoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBFbGVtZW50JiwgYm9vbCBhZGREaXNw
bGF5SW5saW5lLCBSYW5nZUZ1bGx5U2VsZWN0c05vZGUpOwogCi0gICAgdmlydHVhbCB2b2lkIGFw
cGVuZFRleHQoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBUZXh0JikgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIGFwcGVuZEVsZW1lbnQoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBFbGVt
ZW50JiBlbGVtZW50LCBOYW1lc3BhY2VzKikgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIHZvaWQgYXBw
ZW5kVGV4dChTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0IFRleHQmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgYXBwZW5kRWxlbWVudChTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0IEVsZW1l
bnQmIGVsZW1lbnQsIE5hbWVzcGFjZXMqKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgYXBwZW5k
RWxlbWVudChvdXQsIGVsZW1lbnQsIGZhbHNlLCBEb2VzRnVsbHlTZWxlY3ROb2RlKTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwIGIvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9CbG9iLmNwcAppbmRleCA3YWFhZTgxLi4zMGFjNGZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvQmxvYi5jcHAKQEAgLTU0LDggKzU0LDggQEAgZW51bSBTbGljZUhpc3RvZ3JhbUVudW0g
ewogCiBjbGFzcyBCbG9iVVJMUmVnaXN0cnkgRklOQUwgOiBwdWJsaWMgVVJMUmVnaXN0cnkgewog
cHVibGljOgotICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclVSTChTZWN1cml0eU9yaWdpbiosIGNv
bnN0IFVSTCYsIFVSTFJlZ2lzdHJhYmxlKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVu
cmVnaXN0ZXJVUkwoY29uc3QgVVJMJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lz
dGVyVVJMKFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgVVJMJiwgVVJMUmVnaXN0cmFibGUqKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlclVSTChjb25zdCBVUkwmKSBvdmVycmlk
ZTsKIAogICAgIHN0YXRpYyBVUkxSZWdpc3RyeSYgcmVnaXN0cnkoKTsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2IuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
QmxvYi5oCmluZGV4IDJmNDU2MzMuLjNlMWUyYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvQmxvYi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYi5oCkBAIC03
OSw3ICs3OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc05vcm1hbGl6ZWRDb250ZW50
VHlwZShjb25zdCBDU3RyaW5nJik7CiAKICAgICAvLyBVUkxSZWdpc3RyYWJsZQotICAgIHZpcnR1
YWwgVVJMUmVnaXN0cnkmIHJlZ2lzdHJ5KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBV
UkxSZWdpc3RyeSYgcmVnaXN0cnkoKSBjb25zdCBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShCTE9C
KQogICAgIFBhc3NSZWZQdHI8QmxvYj4gc2xpY2UobG9uZyBsb25nIHN0YXJ0ID0gMCwgbG9uZyBs
b25nIGVuZCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8bG9uZyBsb25nPjo6bWF4KCksIGNvbnN0IFN0
cmluZyYgY29udGVudFR5cGUgPSBTdHJpbmcoKSkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0ZpbGUuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5oCmlu
ZGV4IDk1MzA0NWQuLmVkZjQ4NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
RmlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5oCkBAIC02Nyw4ICs2Nyw4
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGaWxlKHBhdGgsIG5hbWUs
IHBvbGljeSkpOwogICAgIH0KIAotICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUo
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNGaWxlKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNGaWxlKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgY29uc3QgU3RyaW5nJiBwYXRoKCkgY29uc3QgeyBy
ZXR1cm4gbV9wYXRoOyB9CiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4g
bV9uYW1lOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5oCmluZGV4IDhhMWNhYWEuLjZi
MjBlMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5oCkBAIC04MSwxNCArODEsMTQg
QEAgcHVibGljOgogICAgIFN0cmluZyBzdHJpbmdSZXN1bHQoKTsKIAogICAgIC8vIEV2ZW50VGFy
Z2V0Ci0gICAgdmlydHVhbCBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFj
ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIEZpbGVSZWFkZXJFdmVudFRhcmdldEludGVyZmFj
ZVR5cGU7IH0KLSAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZh
Y2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBGaWxlUmVh
ZGVyRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAogICAgIC8v
IEZpbGVSZWFkZXJMb2FkZXJDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRMb2FkaW5n
KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKCkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkRmFpbChpbnQgZXJyb3JDb2RlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkU3RhcnRMb2FkaW5nKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVEYXRhKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChpbnQgZXJyb3JDb2RlKSBvdmVycmlk
ZTsKIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ8RmlsZVJlYWRlcj46OnJlZjsKICAgICB1c2luZyBS
ZWZDb3VudGVkPEZpbGVSZWFkZXI+OjpkZXJlZjsKQEAgLTEwNCwxMiArMTA0LDEyIEBAIHByaXZh
dGU6CiAgICAgZXhwbGljaXQgRmlsZVJlYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAK
ICAgICAvLyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
c3RvcCgpIG92ZXJyaWRlOwogCiAgICAgLy8gRXZlbnRUYXJnZXQKLSAgICB2aXJ0dWFsIHZvaWQg
cmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IHJlZigpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRl
cmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
cmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRl
cmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KIAogICAgIHZvaWQgdGVybWlu
YXRlKCk7CiAgICAgdm9pZCByZWFkSW50ZXJuYWwoQmxvYiosIEZpbGVSZWFkZXJMb2FkZXI6OlJl
YWRUeXBlLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0ZpbGVUaHJlYWRUYXNrLmggYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVUaHJlYWRU
YXNrLmgKaW5kZXggMDYxYzZkMC4uYTA1NDFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZmlsZWFwaS9GaWxlVGhyZWFkVGFzay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmls
ZVRocmVhZFRhc2suaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRl
OgotICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzaygpIE9WRVJSSURFCisgICAgdmlydHVhbCB2
b2lkIHBlcmZvcm1UYXNrKCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgICgqc3RhdGljX2Nhc3Q8
VCo+KGluc3RhbmNlKCkpLiptX21ldGhvZCkoKTsKICAgICB9CkBAIC03NSw3ICs3NSw3IEBAIHB1
YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKCkg
T1ZFUlJJREUKKyAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRhc2soKSBvdmVycmlkZQogICAgIHsK
ICAgICAgICAgKCpzdGF0aWNfY2FzdDxUKj4oaW5zdGFuY2UoKSkuKm1fbWV0aG9kKShtX3BhcmFt
ZXRlcjEpOwogICAgIH0KQEAgLTEwMiw3ICsxMDIsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2
YXRlOgotICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzaygpIE9WRVJSSURFCisgICAgdmlydHVh
bCB2b2lkIHBlcmZvcm1UYXNrKCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgICgqc3RhdGljX2Nh
c3Q8VCo+KGluc3RhbmNlKCkpLiptX21ldGhvZCkobV9wYXJhbWV0ZXIxLCBtX3BhcmFtZXRlcjIp
OwogICAgIH0KQEAgLTEzMiw3ICsxMzIsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgot
ICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzaygpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lk
IHBlcmZvcm1UYXNrKCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgICgqc3RhdGljX2Nhc3Q8VCo+
KGluc3RhbmNlKCkpLiptX21ldGhvZCkobV9wYXJhbWV0ZXIxLCBtX3BhcmFtZXRlcjIsIG1fcGFy
YW1ldGVyMyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNr
Rm9yd2FyZExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRMaXN0LmgK
aW5kZXggMzU5Mzg5NC4uZTFiM2QzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9y
eS9CYWNrRm9yd2FyZExpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3
YXJkTGlzdC5oCkBAIC00NiwxNSArNDYsMTUgQEAgcHVibGljOgogCiAgICAgUGFnZSogcGFnZSgp
IHsgcmV0dXJuIG1fcGFnZTsgfQogICAgIAotICAgIHZpcnR1YWwgdm9pZCBhZGRJdGVtKFBhc3NS
ZWZQdHI8SGlzdG9yeUl0ZW0+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkSXRlbShQ
YXNzUmVmUHRyPEhpc3RvcnlJdGVtPikgb3ZlcnJpZGU7CiAgICAgdm9pZCBnb0JhY2soKTsKICAg
ICB2b2lkIGdvRm9yd2FyZCgpOwotICAgIHZpcnR1YWwgdm9pZCBnb1RvSXRlbShIaXN0b3J5SXRl
bSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBnb1RvSXRlbShIaXN0b3J5SXRlbSopIG92
ZXJyaWRlOwogICAgICAgICAKICAgICBIaXN0b3J5SXRlbSogYmFja0l0ZW0oKTsKICAgICBIaXN0
b3J5SXRlbSogY3VycmVudEl0ZW0oKTsKICAgICBIaXN0b3J5SXRlbSogZm9yd2FyZEl0ZW0oKTsK
LSAgICB2aXJ0dWFsIEhpc3RvcnlJdGVtKiBpdGVtQXRJbmRleChpbnQpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgSGlzdG9yeUl0ZW0qIGl0ZW1BdEluZGV4KGludCkgb3ZlcnJpZGU7CiAKICAgICB2
b2lkIGJhY2tMaXN0V2l0aExpbWl0KGludCwgSGlzdG9yeUl0ZW1WZWN0b3ImKTsKICAgICB2b2lk
IGZvcndhcmRMaXN0V2l0aExpbWl0KGludCwgSGlzdG9yeUl0ZW1WZWN0b3ImKTsKQEAgLTYzLDI3
ICs2MywyNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDYXBhY2l0eShpbnQpOwogICAgIGJvb2wg
ZW5hYmxlZCgpOwogICAgIHZvaWQgc2V0RW5hYmxlZChib29sKTsKLSAgICB2aXJ0dWFsIGludCBi
YWNrTGlzdENvdW50KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBpbnQgZm9yd2FyZExpc3RDb3Vu
dCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgaW50IGJhY2tMaXN0Q291bnQoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGludCBmb3J3YXJkTGlzdENvdW50KCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBj
b250YWluc0l0ZW0oSGlzdG9yeUl0ZW0qKTsKIAotICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpIG92ZXJyaWRlOwogICAgIGJvb2wgY2xv
c2VkKCk7CiAKICAgICB2b2lkIHJlbW92ZUl0ZW0oSGlzdG9yeUl0ZW0qKTsKICAgICBIaXN0b3J5
SXRlbVZlY3RvciYgZW50cmllcygpOwogCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIHZpcnR1YWwg
dW5zaWduZWQgY3VycmVudCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJyZW50
KHVuc2lnbmVkIG5ld0N1cnJlbnQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdW5zaWduZWQgY3Vy
cmVudCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJyZW50KHVuc2lnbmVkIG5l
d0N1cnJlbnQpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGNsZWFyQWxsUGFnZUNhY2hl
cygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjbGVhckFsbFBhZ2VDYWNoZXMoKSBvdmVy
cmlkZTsKICNlbmRpZgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEJhY2tGb3J3YXJkTGlzdChQ
YWdlKik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNBY3RpdmUoKSBPVkVSUklERSB7IHJldHVybiBl
bmFibGVkKCkgJiYgY2FwYWNpdHkoKTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2ZSgpIG92
ZXJyaWRlIHsgcmV0dXJuIGVuYWJsZWQoKSAmJiBjYXBhY2l0eSgpOyB9CiAKICAgICBQYWdlKiBt
X3BhZ2U7CiAgICAgSGlzdG9yeUl0ZW1WZWN0b3IgbV9lbnRyaWVzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuaAppbmRleCAwMWNiMjMyLi40NjU3MWMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VCdXR0b25JbnB1dFR5cGUuaApAQCAtNDEsMTEgKzQxLDExIEBA
IHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBCYXNlQnV0dG9uSW5wdXRUeXBlKEhUTUxJbnB1dEVs
ZW1lbnQmIGVsZW1lbnQpIDogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoZWxlbWVudCkg
eyB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIHNob3VsZFNhdmVBbmRSZXN0b3JlRm9y
bUNvbnRyb2xTdGF0ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRG
b3JtRGF0YShGb3JtRGF0YUxpc3QmLCBib29sKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVJbnB1dFJlbmRlcmVyKFBhc3NSZWY8UmVu
ZGVyU3R5bGU+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc3RvcmVzVmFsdWVTZXBhcmF0
ZUZyb21BdHRyaWJ1dGUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29u
c3QgU3RyaW5nJiwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBib29sIHNob3VsZFNhdmVBbmRSZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3Qm
LCBib29sKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVJbnB1dFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGJvb2wgc3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgVGV4
dEZpZWxkRXZlbnRCZWhhdmlvcikgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oCmluZGV4
IGExOWViMDIuLmZjNjBlYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNo
ZWNrYWJsZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJs
ZUlucHV0VHlwZS5oCkBAIC0zOSwxOSArMzksMTkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgQmFzZUNoZWNrYWJsZUlucHV0VHlwZSA6IHB1YmxpYyBJbnB1dFR5cGUgewogcHJvdGVjdGVk
OgogICAgIGV4cGxpY2l0IEJhc2VDaGVja2FibGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYg
ZWxlbWVudCkgOiBJbnB1dFR5cGUoZWxlbWVudCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRs
ZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50Kikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6
Ci0gICAgdmlydHVhbCBGb3JtQ29udHJvbFN0YXRlIHNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNv
bnN0IEZvcm1Db250cm9sU3RhdGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgYXBwZW5k
Rm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGhhbmRsZUtleXByZXNzRXZlbnQoS2V5Ym9hcmRFdmVudCopIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBjYW5TZXRTdHJpbmdWYWx1ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgU3RyaW5nIGZhbGxiYWNrVmFsdWUoKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgc3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgVGV4dEZp
ZWxkRXZlbnRCZWhhdmlvcikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzQ2hlY2thYmxl
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBGb3JtQ29udHJvbFN0YXRlIHNhdmVGb3JtQ29udHJv
bFN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29u
dHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleXByZXNzRXZlbnQoS2V5Ym9hcmRFdmVudCopIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRTdHJpbmdWYWx1ZSgpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVu
dHMpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIGZhbGxiYWNrVmFsdWUoKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1
dGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwg
Ym9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IGlzQ2hlY2thYmxlKCkgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1l
SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlLmgKaW5kZXggMmVhY2NjOC4uNjI2YzEyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUu
aApAQCAtNDQsMTkgKzQ0LDE5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjbG9zZURhdGVUaW1lQ2hv
b3NlcigpOwogCiAgICAgLy8gSW5wdXRUeXBlIGZ1bmN0aW9uczoKLSAgICB2aXJ0dWFsIHZvaWQg
Y3JlYXRlU2hhZG93U3VidHJlZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkZXRhY2go
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9v
bCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50KikgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIGhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleXByZXNzRXZlbnQoS2V5Ym9hcmRFdmVudCopIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVLZXl1cEV2ZW50KEtleWJvYXJkRXZlbnQq
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1v
dXNlRXZlbnRzKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgp
IGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRldGFjaCgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZp
ZWxkRXZlbnRCZWhhdmlvcikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZURPTUFj
dGl2YXRlRXZlbnQoRXZlbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlS2V5
ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFu
ZGxlS2V5cHJlc3NFdmVudChLZXlib2FyZEV2ZW50Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGhhbmRsZUtleXVwRXZlbnQoS2V5Ym9hcmRFdmVudCopIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgYm9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAg
ICAvLyBEYXRlVGltZUNob29zZXJDbGllbnQgZnVuY3Rpb25zOgotICAgIHZpcnR1YWwgdm9pZCBk
aWRDaG9vc2VWYWx1ZShjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkRW5kQ2hvb3NlcigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDaG9vc2VWYWx1
ZShjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kQ2hvb3Nl
cigpIG92ZXJyaWRlOwogCiAgICAgUmVmUHRyPERhdGVUaW1lQ2hvb3Nlcj4gbV9kYXRlVGltZUNo
b29zZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2xpY2thYmxl
V2l0aEtleUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2xpY2thYmxlV2l0
aEtleUlucHV0VHlwZS5oCmluZGV4IDllZGU1OGMuLjliZjFkNDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmgKQEAgLTQ3LDEw
ICs0NywxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQmFzZUNsaWNrYWJsZVdpdGhLZXlJ
bnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBJbnB1dFR5cGUoZWxlbWVudCkg
eyB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWRvd25FdmVudChLZXli
b2FyZEV2ZW50KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleXByZXNzRXZl
bnQoS2V5Ym9hcmRFdmVudCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVLZXl1
cEV2ZW50KEtleWJvYXJkRXZlbnQqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYWNjZXNz
S2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgaGFuZGxlS2V5cHJlc3NFdmVudChLZXlib2FyZEV2ZW50Kikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleXVwRXZlbnQoS2V5Ym9hcmRFdmVudCopIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMp
IG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKaW5kZXggZTkxOTA1ZS4uYTNiY2Qz
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5o
CkBAIC00MiwxNSArNDIsMTUgQEAgY2xhc3MgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlIDogcHVi
bGljIElucHV0VHlwZSB7CiBwcm90ZWN0ZWQ6CiAgICAgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
KEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCi0g
ICAgdmlydHVhbCBEZWNpbWFsIHBhcnNlVG9OdW1iZXIoY29uc3QgU3RyaW5nJiwgY29uc3QgRGVj
aW1hbCYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBwYXJzZVRvRGF0ZUNvbXBv
bmVudHMoY29uc3QgU3RyaW5nJiwgRGF0ZUNvbXBvbmVudHMqKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgU3RyaW5nIHNlcmlhbGl6ZShjb25zdCBEZWNpbWFsJikgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBEZWNpbWFsIHBhcnNlVG9OdW1iZXIoY29uc3QgU3RyaW5n
JiwgY29uc3QgRGVjaW1hbCYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBwYXJz
ZVRvRGF0ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nJiwgRGF0ZUNvbXBvbmVudHMqKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIHNlcmlhbGl6ZShjb25zdCBEZWNp
bWFsJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgU3RyaW5nIHNlcmlhbGl6ZVdpdGhDb21wb25lbnRz
KGNvbnN0IERhdGVDb21wb25lbnRzJikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHNldE1pbGxp
c2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUsIERhdGVDb21wb25lbnRzKikgY29uc3QgPSAw
OwotICAgIHZpcnR1YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0IE9WRVJSSURFOworICAg
IHZpcnR1YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogI2lmIFBMQVRG
T1JNKElPUykKLSAgICB2aXJ0dWFsIGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2
ZW50KikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRGb2N1c2Fi
bGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKIHByaXZhdGU6CkBA
IC01OCwxOSArNTgsMTkgQEAgcHJpdmF0ZToKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIHZpcnR1
YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCA9IDA7CiAjZW5kaWYKLSAg
ICB2aXJ0dWFsIGRvdWJsZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBzZXRWYWx1ZUFzRGF0ZShkb3VibGUsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGRvdWJsZSB2YWx1ZUFzRG91YmxlKCkgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEZWNpbWFsKGNvbnN0IERlY2ltYWwmLCBUZXh0
RmllbGRFdmVudEJlaGF2aW9yLCBFeGNlcHRpb25Db2RlJikgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIHR5cGVNaXNtYXRjaEZvcihjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIHZhbHVlTWlzc2luZyhjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIERlY2ltYWwgZGVmYXVsdFZhbHVlRm9yU3RlcFVwKCkgY29uc3QgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBib29sIGlzU3RlcHBhYmxlKCkgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBkb3VibGUgdmFsdWVBc0RhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0VmFsdWVBc0RhdGUoZG91YmxlLCBFeGNlcHRpb25Db2RlJikgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBkb3VibGUgdmFsdWVBc0RvdWJsZSgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzRGVjaW1hbChjb25zdCBEZWNpbWFsJiwgVGV4dEZp
ZWxkRXZlbnRCZWhhdmlvciwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgYm9vbCB0eXBlTWlzbWF0Y2hGb3IoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIHR5cGVNaXNtYXRjaCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgYm9vbCB2YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBEZWNpbWFsIGRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgYm9vbCBpc1N0ZXBwYWJsZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgU3RyaW5nIHNlcmlhbGl6ZVdpdGhNaWxsaXNlY29uZHMoZG91YmxlKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBsb2NhbGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1JlYWRPbmx5KCkgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RMaXN0QXR0cmlidXRlKCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBTdHJpbmcgbG9jYWxpemVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNSZWFkT25seSgpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0ZSgpIG92ZXJy
aWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlVGV4dElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
VGV4dElucHV0VHlwZS5oCmluZGV4IDE2M2I2YzcuLmVlNTUwZDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZVRleHRJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VUZXh0SW5wdXRUeXBlLmgKQEAgLTQyLDEwICs0MiwxMCBAQCBwcm90ZWN0ZWQ6CiAg
ICAgZXhwbGljaXQgQmFzZVRleHRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkg
OiBUZXh0RmllbGRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVh
bCBib29sIGlzVGV4dFR5cGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcGF0
dGVybk1pc21hdGNoKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c1BsYWNlaG9sZGVyKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIHN1cHBvcnRzU2VsZWN0aW9uQVBJKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBi
b29sIGlzVGV4dFR5cGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcGF0dGVy
bk1pc21hdGNoKGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c1BsYWNlaG9sZGVyKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IHN1cHBvcnRzU2VsZWN0aW9uQVBJKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0
VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CdXR0b25JbnB1dFR5cGUuaAppbmRleCBiMTgw
ZGM2Li5iZDQwNWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0J1dHRvbklucHV0
VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQnV0dG9uSW5wdXRUeXBlLmgKQEAgLTQw
LDkgKzQwLDkgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IEJ1dHRvbklucHV0VHlwZShIVE1MSW5w
dXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAK
IHByaXZhdGU6Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlw
ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1ZhbGlkYXRpb24o
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0QnV0dG9uKCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlw
ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1ZhbGlkYXRpb24o
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0QnV0dG9uKCkgY29uc3Qg
b3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0NoZWNrYm94SW5wdXRUeXBlLmgKaW5kZXggOTc3ZmM5Yy4uNWE5YTIwNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaApAQCAtNDAsMTQgKzQwLDE0IEBAIHB1YmxpYzoK
ICAgICBleHBsaWNpdCBDaGVja2JveElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50
KSA6IEJhc2VDaGVja2FibGVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCB2YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5nJikgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFsdWVNaXNzaW5nVGV4dCgpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVLZXl1cEV2ZW50KEtleWJvYXJkRXZlbnQq
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERpc3BhdGNoQ2xpY2soSW5wdXRFbGVt
ZW50Q2xpY2tTdGF0ZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWREaXNwYXRjaENs
aWNrKEV2ZW50KiwgY29uc3QgSW5wdXRFbGVtZW50Q2xpY2tTdGF0ZSYpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBpc0NoZWNrYm94KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIHN1cHBvcnRzSW5kZXRlcm1pbmF0ZUFwcGVhcmFuY2UoKSBjb25zdCBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBib29sIHZhbHVlTWlzc2luZyhjb25zdCBTdHJpbmcmKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZU1pc3NpbmdUZXh0KCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleXVwRXZlbnQoS2V5Ym9hcmRFdmVu
dCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGlzcGF0Y2hDbGljayhJbnB1dEVs
ZW1lbnRDbGlja1N0YXRlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZERpc3BhdGNo
Q2xpY2soRXZlbnQqLCBjb25zdCBJbnB1dEVsZW1lbnRDbGlja1N0YXRlJikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBib29sIGlzQ2hlY2tib3goKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IGJvb2wgc3VwcG9ydHNJbmRldGVybWluYXRlQXBwZWFyYW5jZSgpIGNvbnN0IG92ZXJyaWRlOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9DbGFzc0xpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ2xhc3NMaXN0LmgKaW5kZXgg
YmYyMjM0Ni4uMzcxNWRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9DbGFzc0xp
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5oCkBAIC00MCwyMCArNDAs
MjAgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIHJlZigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkZXJlZigpIG92ZXJyaWRlOwog
Ci0gICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgY29uc3QgQXRvbWljU3RyaW5nIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0IG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCBFbGVtZW50KiBlbGVtZW50KCkgY29uc3QgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBFbGVtZW50KiBlbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lk
IGNsZWFyVmFsdWVGb3JRdWlya3NNb2RlKCkgeyBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlLmNs
ZWFyKCk7IH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnNJbnRlcm5hbChj
b25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEF0b21pY1N0
cmluZyB2YWx1ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShj
b25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnNJ
bnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IEF0b21pY1N0cmluZyB2YWx1ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRWYWx1ZShjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKIAogICAgIGNvbnN0IFNwYWNl
U3BsaXRTdHJpbmcmIGNsYXNzTmFtZXMoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklu
cHV0VHlwZS5oCmluZGV4IDcwMDg1ZmYuLjM2MGUzMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9y
SW5wdXRUeXBlLmgKQEAgLTQzLDI3ICs0MywyNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+Q29s
b3JJbnB1dFR5cGUoKTsKIAogICAgIC8vIENvbG9yQ2hvb3NlckNsaWVudCBpbXBsZW1lbnRhdGlv
bi4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hvb3NlQ29sb3IoY29uc3QgQ29sb3ImKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kQ2hvb3NlcigpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgSW50UmVjdCBlbGVtZW50UmVjdFJlbGF0aXZlVG9Sb290VmlldygpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgQ29sb3IgY3VycmVudENvbG9yKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBib29sIHNob3VsZFNob3dTdWdnZXN0aW9ucygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgVmVjdG9yPENvbG9yPiBzdWdnZXN0aW9ucygpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBkaWRDaG9vc2VDb2xvcihjb25zdCBDb2xvciYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBkaWRFbmRDaG9vc2VyKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBJbnRSZWN0IGVs
ZW1lbnRSZWN0UmVsYXRpdmVUb1Jvb3RWaWV3KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBDb2xvciBjdXJyZW50Q29sb3IoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
U2hvd1N1Z2dlc3Rpb25zKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBWZWN0b3I8Q29s
b3I+IHN1Z2dlc3Rpb25zKCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVh
bCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc0NvbG9yQ29udHJv
bCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3Jt
Q29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNS
ZXF1aXJlZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIGZhbGxiYWNrVmFs
dWUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNv
bnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVTaGFk
b3dTdWJ0cmVlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0
cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCopIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJv
b2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRSZXNldE9uRG9jdW1lbnRBY3RpdmF0aW9uKCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc0Nv
bG9yQ29udHJvbCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3Ry
aW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
c3VwcG9ydHNSZXF1aXJlZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIGZh
bGxiYWNrVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBzYW5pdGl6
ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBj
cmVhdGVTaGFkb3dTdWJ0cmVlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVl
KGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9y
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVu
dCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNldE9uRG9jdW1lbnRBY3RpdmF0aW9uKCkgb3Zl
cnJpZGU7CiAKICAgICBDb2xvciB2YWx1ZUFzQ29sb3IoKSBjb25zdDsKICAgICB2b2lkIGVuZENv
bG9yQ2hvb3NlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJs
ZVRva2VuTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5o
CmluZGV4IDAwNTdlZmIuLjFhYzQ4MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RE9NU2V0dGFibGVUb2tlbkxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVNldHRh
YmxlVG9rZW5MaXN0LmgKQEAgLTQwLDE3ICs0MCwxNyBAQCBjbGFzcyBET01TZXR0YWJsZVRva2Vu
TGlzdCA6IHB1YmxpYyBET01Ub2tlbkxpc3QsIHB1YmxpYyBSZWZDb3VudGVkPERPTVNldHRhYmxl
VAogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBj
cmVhdGUoKTsKIAotICAgIHZpcnR1YWwgdm9pZCByZWYoKSBPVkVSUklERSBGSU5BTDsKLSAgICB2
aXJ0dWFsIHZvaWQgZGVyZWYoKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVm
KCkgb3ZlcnJpZGUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgb3ZlcnJpZGUgRklO
QUw7CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IE9WRVJSSURFIEZJTkFM
OwotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNv
bnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Qg
b3ZlcnJpZGUgRklOQUw7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcgaXRlbSh1bnNp
Z25lZCBpbmRleCkgY29uc3Qgb3ZlcnJpZGUgRklOQUw7CiAKLSAgICB2aXJ0dWFsIEF0b21pY1N0
cmluZyB2YWx1ZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBzZXRW
YWx1ZShjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIEF0
b21pY1N0cmluZyB2YWx1ZSgpIGNvbnN0IG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRWYWx1ZShjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZSBGSU5BTDsKIAogcHJpdmF0
ZToKLSAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnNJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcm
KSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnNJbnRlcm5h
bChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBvdmVycmlkZSBGSU5BTDsKIAogICAgIEF0b21p
Y1N0cmluZyBtX3ZhbHVlOwogICAgIFNwYWNlU3BsaXRTdHJpbmcgbV90b2tlbnM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRGF0ZUlucHV0VHlwZS5oCmluZGV4IDQ3MDMxZTIuLmYxNGEyOWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRGF0ZUlucHV0VHlwZS5oCkBAIC00MSwxMyArNDEsMTMgQEAgcHVibGljOgogICAgIGV4
cGxpY2l0IERhdGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYpOwogCiBwcml2YXRlOgotICAg
IHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21p
Y1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBE
YXRlQ29tcG9uZW50czo6VHlwZSBkYXRlVHlwZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgU3RlcFJhbmdlIGNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBwYXJzZVRvRGF0ZUNvbXBvbmVudHNJbnRlcm5hbChjb25z
dCBVQ2hhciosIHVuc2lnbmVkIGxlbmd0aCwgRGF0ZUNvbXBvbmVudHMqKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJs
ZSwgRGF0ZUNvbXBvbmVudHMqKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNE
YXRlRmllbGQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5
cGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0ZXBSYW5nZSBjcmVhdGVTdGVwUmFu
Z2UoQW55U3RlcEhhbmRsaW5nKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcGFy
c2VUb0RhdGVDb21wb25lbnRzSW50ZXJuYWwoY29uc3QgVUNoYXIqLCB1bnNpZ25lZCBsZW5ndGgs
IERhdGVDb21wb25lbnRzKikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHNldE1p
bGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUsIERhdGVDb21wb25lbnRzKikgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzRGF0ZUZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1l
SW5wdXRUeXBlLmgKaW5kZXggMWIyOGFhNzcuLmFhYjI2YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RhdGVUaW1lSW5wdXRUeXBlLmgKQEAgLTQyLDE1ICs0MiwxNSBAQCBwdWJsaWM6CiAgICAgZXhw
bGljaXQgRGF0ZVRpbWVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNl
RGF0ZVRpbWVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2
b2lkIGF0dGFjaCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBm
b3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIERhdGVDb21wb25l
bnRzOjpUeXBlIGRhdGVUeXBlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdGVwUmFu
Z2UgY3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZykgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBEZWNpbWFsIGRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgYm9vbCBwYXJzZVRvRGF0ZUNvbXBvbmVudHNJbnRlcm5hbChjb25zdCBVQ2hh
ciosIHVuc2lnbmVkIGxlbmd0aCwgRGF0ZUNvbXBvbmVudHMqKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSwgRGF0
ZUNvbXBvbmVudHMqKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNEYXRlVGlt
ZUZpZWxkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgc2FuaXRpemVWYWx1
ZShjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNo
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9s
VHlwZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUg
ZGF0ZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0ZXBSYW5nZSBjcmVhdGVT
dGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIERl
Y2ltYWwgZGVmYXVsdFZhbHVlRm9yU3RlcFVwKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBib29sIHBhcnNlVG9EYXRlQ29tcG9uZW50c0ludGVybmFsKGNvbnN0IFVDaGFyKiwgdW5zaWdu
ZWQgbGVuZ3RoLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
Ym9vbCBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlLCBEYXRlQ29tcG9uZW50
cyopIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc0RhdGVUaW1lRmllbGQoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0
cmluZyYpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaAppbmRleCA3NmNlZjhm
Li5iMWJjMDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJ
bnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5
cGUuaApAQCAtNDEsMTUgKzQxLDE1IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBEYXRlVGltZUxv
Y2FsSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUNob29zZXJPbmx5
RGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVh
bCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5n
JiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIERhdGVDb21w
b25lbnRzOjpUeXBlIGRhdGVUeXBlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBkb3Vi
bGUgdmFsdWVBc0RhdGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFs
dWVBc0RhdGUoZG91YmxlLCBFeGNlcHRpb25Db2RlJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGF0dGFjaCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3Ry
aW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIERhdGVD
b21wb25lbnRzOjpUeXBlIGRhdGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBk
b3VibGUgdmFsdWVBc0RhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VmFsdWVBc0RhdGUoZG91YmxlLCBFeGNlcHRpb25Db2RlJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCBTdGVwUmFuZ2UgY3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZykgY29uc3Q7
Ci0gICAgdmlydHVhbCBib29sIHBhcnNlVG9EYXRlQ29tcG9uZW50c0ludGVybmFsKGNvbnN0IFVD
aGFyKiwgdW5zaWduZWQgbGVuZ3RoLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgYm9vbCBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlLCBE
YXRlQ29tcG9uZW50cyopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc0RhdGVU
aW1lTG9jYWxGaWVsZCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBwYXJzZVRv
RGF0ZUNvbXBvbmVudHNJbnRlcm5hbChjb25zdCBVQ2hhciosIHVuc2lnbmVkIGxlbmd0aCwgRGF0
ZUNvbXBvbmVudHMqKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2V0TWlsbGlz
ZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSwgRGF0ZUNvbXBvbmVudHMqKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNEYXRlVGltZUxvY2FsRmllbGQoKSBjb25zdCBvdmVy
cmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJ
bnB1dFR5cGUuaAppbmRleCBiN2FlZWM1Li5hMGM2NDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFp
bElucHV0VHlwZS5oCkBAIC00MCwxNCArNDAsMTQgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IEVt
YWlsSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5
cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUo
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0
IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCB0eXBlTWlzbWF0Y2go
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyB0eXBlTWlzbWF0Y2hUZXh0KCkg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzRW1haWxGaWVsZCgpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1NlbGVjdGlvbkFQSSgpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJikg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCB0eXBlTWlzbWF0Y2goKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyB0eXBlTWlzbWF0Y2hUZXh0KCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBib29sIGlzRW1haWxGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c1NlbGVjdGlvbkFQSSgpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgU3RyaW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJp
ZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCmluZGV4IDZhY2FkODEuLjBiNDJmY2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuY3BwCkBAIC01MywxMCArNTMs
MTAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZUUERpcmVjdG9yeURv
Y3VtZW50UGFyc2VyKGRvY3VtZW50KSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGFwcGVu
ZChQYXNzUmVmUHRyPFN0cmluZ0ltcGw+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZmlu
aXNoKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGFwcGVuZChQYXNzUmVmUHRyPFN0cmlu
Z0ltcGw+KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZmluaXNoKCkgb3ZlcnJpZGU7CiAK
LSAgICB2aXJ0dWFsIGJvb2wgaXNXYWl0aW5nRm9yU2NyaXB0cygpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzV2FpdGluZ0ZvclNjcmlwdHMoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgaW5saW5lIHZvaWQgY2hlY2tC
dWZmZXIoaW50IGxlbiA9IDEwKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRmlsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgK
aW5kZXggMDY1MDMwNi4uM2JiYWQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9G
aWxlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgK
QEAgLTUxLDQ0ICs1MSw0NCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFZlY3RvcjxGaWxlQ2hvb3Nl
ckZpbGVJbmZvPiBmaWxlc0Zyb21Gb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3Rh
dGUmKTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNv
bnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBGb3JtQ29udHJvbFN0YXRl
IHNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHZhbHVlTWlzc2luZyhjb25zdCBTdHJp
bmcmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZU1pc3NpbmdUZXh0
KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZURPTUFjdGl2YXRlRXZl
bnQoRXZlbnQqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVJbnB1dFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgY2FuU2V0U3RyaW5nVmFsdWUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGJvb2wgY2FuQ2hhbmdlRnJvbUFub3RoZXJUeXBlKCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBGaWxlTGlzdCogZmlsZXMoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0RmlsZXMoUGFzc1JlZlB0cjxGaWxlTGlzdD4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgY29u
c3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIEZvcm1Db250cm9sU3RhdGUgc2F2ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9y
bUNvbnRyb2xTdGF0ZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3JtRGF0
YShGb3JtRGF0YUxpc3QmLCBib29sKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
dmFsdWVNaXNzaW5nKGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
U3RyaW5nIHZhbHVlTWlzc2luZ1RleHQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUlucHV0UmVuZGVyZXIoUGFzc1JlZjxSZW5k
ZXJTdHlsZT4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRTdHJpbmdWYWx1ZSgp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjYW5DaGFuZ2VGcm9tQW5vdGhlclR5
cGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEZpbGVMaXN0KiBmaWxlcygpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRGaWxlcyhQYXNzUmVmUHRyPEZpbGVMaXN0Pikgb3Zl
cnJpZGU7CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIHZpcnR1YWwgU3RyaW5nIGRpc3BsYXlTdHJp
bmcoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBkaXNwbGF5U3RyaW5nKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0VmFsdWUoY29u
c3QgU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGdldFR5cGVTcGVjaWZpY1Zh
bHVlKFN0cmluZyYpIE9WRVJSSURFOyAvLyBDaGVja2VkIGZpcnN0LCBiZWZvcmUgaW50ZXJuYWwg
c3RvcmFnZSBvciB0aGUgdmFsdWUgYXR0cmlidXRlLgotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1
ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlv
cikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBnZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcm
KSBvdmVycmlkZTsgLy8gQ2hlY2tlZCBmaXJzdCwgYmVmb3JlIGludGVybmFsIHN0b3JhZ2Ugb3Ig
dGhlIHZhbHVlIGF0dHJpYnV0ZS4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3Ry
aW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIG92ZXJyaWRl
OwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICB2aXJ0dWFsIGJvb2wgcmVjZWl2ZURy
b3BwZWRGaWxlcyhjb25zdCBEcmFnRGF0YSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBy
ZWNlaXZlRHJvcHBlZEZpbGVzKGNvbnN0IERyYWdEYXRhJikgb3ZlcnJpZGU7CiAjZW5kaWYKIAot
ICAgIHZpcnR1YWwgSWNvbiogaWNvbigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9v
bCBpc0ZpbGVVcGxvYWQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRl
U2hhZG93U3VidHJlZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlZEF0dHJp
YnV0ZUNoYW5nZWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbXVsdGlwbGVBdHRyaWJ1
dGVDaGFuZ2VkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgZGVmYXVsdFRvb2xUaXAo
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEljb24qIGljb24oKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNGaWxlVXBsb2FkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlzYWJsZWRBdHRyaWJ1dGVDaGFuZ2VkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIG11bHRpcGxlQXR0cmlidXRlQ2hhbmdlZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3Ry
aW5nIGRlZmF1bHRUb29sVGlwKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBGaWxlQ2hvb3Nl
ckNsaWVudCBpbXBsZW1lbnRhdGlvbi4KLSAgICB2aXJ0dWFsIHZvaWQgZmlsZXNDaG9zZW4oY29u
c3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGZpbGVzQ2hvc2VuKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYpIG92ZXJy
aWRlOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICB2aXJ0dWFsIHZvaWQgZmlsZXNDaG9zZW4oY29u
c3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiwgY29uc3QgU3RyaW5nJiBkaXNwbGF5U3Ry
aW5nLCBJY29uKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGZpbGVzQ2hvc2VuKGNvbnN0
IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYsIGNvbnN0IFN0cmluZyYgZGlzcGxheVN0cmlu
ZywgSWNvbiopIG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICAvLyBGaWxlSWNvbkxvYWRlckNsaWVu
dCBpbXBsZW1lbnRhdGlvbi4KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUmVuZGVyaW5nKFBhc3NS
ZWZQdHI8SWNvbj4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSZW5kZXJpbmco
UGFzc1JlZlB0cjxJY29uPikgb3ZlcnJpZGU7CiAKICAgICBQYXNzUmVmUHRyPEZpbGVMaXN0PiBj
cmVhdGVGaWxlTGlzdChjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mIGZpbGVzKSBj
b25zdDsKICNpZiBFTkFCTEUoRElSRUNUT1JZX1VQTE9BRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmNwcAppbmRleCA4YWMxMTk1Li5kOGE3OTk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVkRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuY3BwCkBAIC00NCw3
ICs0NCw3IEBAIHB1YmxpYzoKICAgICBGb3JtQXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXIoY29uc3Qg
QXRvbWljU3RyaW5nJiBpZCwgRm9ybUFzc29jaWF0ZWRFbGVtZW50Jik7CiAKIHByaXZhdGU6Ci0g
ICAgdmlydHVhbCB2b2lkIGlkVGFyZ2V0Q2hhbmdlZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBpZFRhcmdldENoYW5nZWQoKSBvdmVycmlkZTsKIAogICAgIEZvcm1Bc3NvY2lhdGVkRWxl
bWVudCYgbV9lbGVtZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9y
bUFzc29jaWF0ZWRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Bc3NvY2lhdGVk
RWxlbWVudC5oCmluZGV4IDY0ZTNmNjYuLjk2ODhlOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRm9ybUFzc29jaWF0ZWRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9Gb3JtQXNzb2NpYXRlZEVsZW1lbnQuaApAQCAtMTExLDcgKzExMSw3IEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIHJlc2V0Rm9ybUF0dHJpYnV0ZVRhcmdldE9ic2VydmVyKCk7CiAKLSAgICB2aXJ0
dWFsIGJvb2wgaXNGb3JtQXNzb2NpYXRlZEVsZW1lbnQoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7
IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzRm9ybUFzc29jaWF0ZWRFbGVtZW50
KCkgY29uc3Qgb3ZlcnJpZGUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPEZvcm1BdHRyaWJ1dGVUYXJnZXRPYnNlcnZlcj4gbV9mb3JtQXR0cmlidXRlVGFyZ2V0
T2JzZXJ2ZXI7CiAgICAgSFRNTEZvcm1FbGVtZW50KiBtX2Zvcm07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmgKaW5kZXggNmVhOTVmZS4uNDQwMTI2YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaApAQCAtOTQsNyArOTQsNyBAQCBwdWJsaWM6CiAK
ICAgICBib29sIGlzTGl2ZUxpbmsoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVz
cG9uZFRvTW91c2VDbGlja0V2ZW50cygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCB3aWxs
UmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBoYXNSZWwo
dWludDMyX3QgcmVsYXRpb24pIGNvbnN0OwogICAgIHZvaWQgc2V0UmVsKGNvbnN0IFN0cmluZyYp
OwpAQCAtMTA1LDIwICsxMDUsMjAgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEhUTUxBbmNo
b3JFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgdmlydHVh
bCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNT
dHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogCiBwcml2YXRl
OgotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wgYWN0aXZlID0gdHJ1ZSwgYm9vbCBw
YXVzZSA9IGZhbHNlKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5
QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
aXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBib29sIGNhblN0YXJ0U2VsZWN0aW9uKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBTdHJpbmcgdGFyZ2V0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBzaG9ydCB0YWJJ
bmRleCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgYm9vbCBkcmFnZ2FibGUo
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVu
dCopIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVy
KEV2ZW50Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShib29sIGFjdGl2
ZSA9IHRydWUsIGJvb2wgcGF1c2UgPSBmYWxzZSkgb3ZlcnJpZGUgRklOQUw7CisgICAgdmlydHVh
bCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjYW5TdGFydFNlbGVjdGlvbigpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgU3RyaW5nIHRhcmdldCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgc2hvcnQgdGFiSW5kZXgoKSBjb25zdCBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0dWFs
IGJvb2wgZHJhZ2dhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNlbmRQaW5ncyhj
b25zdCBVUkwmIGRlc3RpbmF0aW9uVVJMKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQXBwbGV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0
RWxlbWVudC5oCmluZGV4IGQ0NTAzOGMuLjgzMTBjYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBcHBsZXRFbGVtZW50LmgKQEAgLTM0LDEzICszNCwxMyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIEhUTUxBcHBsZXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJv
b2wgY3JlYXRlZEJ5UGFyc2VyKTsKIAotICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJ
c05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0
eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3Qg
UmVuZGVyU3R5bGUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIG92ZXJyaWRl
OwogCiAgICAgdmlydHVhbCBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldEZvckpTQmluZGluZ3Mo
KSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlV2lkZ2V0KFBsdWdpbkNyZWF0aW9uT3B0
aW9uKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlV2lkZ2V0KFBsdWdpbkNyZWF0
aW9uT3B0aW9uKSBvdmVycmlkZTsKIAogICAgIGJvb2wgY2FuRW1iZWRKYXZhKCkgY29uc3Q7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKaW5kZXggMmQ2MTE2OC4uNTRjOTE0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5oCkBAIC01MSwxNCArNTEsMTQg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MQXJlYUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBT
dHJpbmcgdGFyZ2V0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzS2V5Ym9h
cmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
Ym9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29s
IGlzRm9jdXNhYmxlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZv
Y3VzQXBwZWFyYW5jZShib29sIC8qcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKi8pIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cyhib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0
cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgdGFyZ2V0KCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzRm9jdXNhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZvY3VzQXBwZWFyYW5jZShib29sIC8qcmVzdG9yZVByZXZp
b3VzU2VsZWN0aW9uKi8pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cyhib29s
KSBvdmVycmlkZTsKIAogICAgIGVudW0gU2hhcGUgeyBEZWZhdWx0LCBQb2x5LCBSZWN0LCBDaXJj
bGUsIFVua25vd24gfTsKICAgICBQYXRoIGdldFJlZ2lvbihjb25zdCBMYXlvdXRTaXplJikgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5oCmluZGV4IGUyZmM3ZjUuLmNkZTE4OTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5oCkBAIC0zOCwxMCArMzgsMTAgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBIVE1MQlJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29s
bGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJl
c2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJp
bmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5k
ZXJTdHlsZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgb3ZlcnJpZGU7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QmFzZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmgKaW5k
ZXggMjVlYjRhZC4uODU0OTNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QmFzZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5o
CkBAIC0zOCwxMCArMzgsMTAgQEAgcHJpdmF0ZToKICAgICBIVE1MQmFzZUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIFN0cmluZyB0YXJnZXQo
KSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRl
JikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5v
ZGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9k
ZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRy
aWJ1dGUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFp
bmVyTm9kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWlu
ZXJOb2RlJikgb3ZlcnJpZGU7CiB9OwogCiBOT0RFX1RZUEVfQ0FTVFMoSFRNTEJhc2VFbGVtZW50
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmgKaW5kZXggMjQzNTU0MS4uYzYwOTlk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5oCkBAIC01OSwxNSArNTksMTUg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MQm9keUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRh
dGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwg
TXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0
eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiAKLSAgICB2
aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5l
ck5vZGUmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVl
c3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwg
Ym9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgdmlydHVhbCBpbnQgc2Nyb2xsTGVmdCgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTY3Jv
bGxMZWZ0KGludCBzY3JvbGxMZWZ0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEJ1dHRvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1l
bnQuaAppbmRleCBhNGU1ZThlLi41MDE4ZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxCdXR0b25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0
dG9uRWxlbWVudC5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKICAgICAKICAgICBTdHJpbmcg
dmFsdWUoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlj
a0V2ZW50cygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VD
bGlja0V2ZW50cygpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIEhUTUxCdXR0b25FbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50
Kik7CkBAIC00NSwyNiArNDUsMjYgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0
eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBvdmVycmlkZTsKIAogICAg
IC8vIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQgYWx3YXlzIGNyZWF0ZXMgb25lLCBidXQgYnV0dG9u
cyBkb24ndCBuZWVkIGl0LgotICAgIHZpcnR1YWwgYm9vbCBhbHdheXNDcmVhdGVVc2VyQWdlbnRT
aGFkb3dSb290KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgYWx3YXlzQ3JlYXRlVXNlckFnZW50U2hhZG93Um9vdCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJv
b2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCk7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgaXNFbnVtZXJhdGFibGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
IAotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0TGFiZWxzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0TGFiZWxzKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCBib29sIGlzU3VjY2Vzc2Z1bFN1Ym1p
dEJ1dHRvbigpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2YXRlZFN1Ym1pdCgpIGNv
bnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmF0ZWRTdWJtaXQoYm9vbCBmbGFnKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpOwot
ICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRl
JikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuU3RhcnRTZWxlY3Rpb24o
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNF
bGVtZW50LmgKaW5kZXggODFhYTUwOC4uZmNmMWNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaApAQCAtMTQ5LDEzICsxNDksMTMgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBIVE1MQ2FudmFzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
IAotICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbEF0dGFjaFJlbmRlcmVycygpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgYm9vbCBhcmVBdXRob3JTaGFkb3dzQWxsb3dlZCgpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEF0dGFjaFJlbmRlcmVycygpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgYm9vbCBhcmVBdXRob3JTaGFkb3dzQWxsb3dlZCgpIGNvbnN0IG92
ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNhblN0YXJ0U2VsZWN0aW9uKCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGNhblN0YXJ0U2VsZWN0aW9uKCkgY29uc3Qg
b3ZlcnJpZGU7CiAKICAgICB2b2lkIHJlc2V0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERldGFpbHNFbGVtZW50LmNwcAppbmRleCBhYTM4MWMxLi4wZWZhNjY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC00OSw3ICs0OSw3IEBAIHByaXZh
dGU6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgTWF0Y2hUeXBlIG1hdGNoVHlwZUZvcihO
b2RlKiBub2RlKSBjb25zdCBPVkVSUklERQorICAgIHZpcnR1YWwgTWF0Y2hUeXBlIG1hdGNoVHlw
ZUZvcihOb2RlKiBub2RlKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKG5vZGUt
PmlzRWxlbWVudE5vZGUoKSAmJiBub2RlID09IG5vZGUtPnBhcmVudE5vZGUoKS0+cXVlcnlTZWxl
Y3RvcihzdW1tYXJ5UXVlcnlTZWxlY3RvcigpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKSkKICAgICAg
ICAgICAgIHJldHVybiBOZXZlck1hdGNoZXM7CkBAIC03OCw3ICs3OCw3IEBAIHByaXZhdGU6CiAg
ICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgTWF0Y2hUeXBlIG1hdGNoVHlwZUZvcihOb2RlKiBu
b2RlKSBjb25zdCBPVkVSUklERQorICAgIHZpcnR1YWwgTWF0Y2hUeXBlIG1hdGNoVHlwZUZvcihO
b2RlKiBub2RlKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKG5vZGUtPmlzRWxl
bWVudE5vZGUoKSAmJiBub2RlID09IG5vZGUtPnBhcmVudE5vZGUoKS0+cXVlcnlTZWxlY3Rvcihz
dW1tYXJ5UXVlcnlTZWxlY3RvcigpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKSkKICAgICAgICAgICAg
IHJldHVybiBBbHdheXNNYXRjaGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRGV0YWlsc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVt
ZW50LmgKaW5kZXggODc5ODIzZC4uNTY4NzIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxE
ZXRhaWxzRWxlbWVudC5oCkBAIC0zNSwxMSArMzUsMTEgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBIVE1MRGV0YWlsc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAK
LSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBjaGls
ZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21pY1N0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290KikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCop
IG92ZXJyaWRlOwogCiAgICAgYm9vbCBtX2lzT3BlbjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxE
aXZFbGVtZW50LmgKaW5kZXggOTFmZWY2OC4uZmY4MWI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERpdkVsZW1lbnQuaApAQCAtMzYsOCArMzYsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgSFRNTERpdkVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAg
dmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2Vu
dGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcm
LCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlz
UHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQ
cm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRG9jdW1lbnQuaAppbmRleCBjMGExMmY1Li41MGFiNGE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERvY3VtZW50LmgKQEAgLTk0LDcgKzk0LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgaXNGcmFtZVNldCgpIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxEb2N1
bWVudFBhcnNlcj4gY3JlYXRlUGFyc2VyKCk7CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RG9j
dW1lbnQ+IGNsb25lRG9jdW1lbnRXaXRob3V0Q2hpbGRyZW4oKSBjb25zdCBPVkVSUklERSBGSU5B
TDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IGNsb25lRG9jdW1lbnRXaXRob3V0
Q2hpbGRyZW4oKSBjb25zdCBvdmVycmlkZSBGSU5BTDsKIAogICAgIERvY3VtZW50T3JkZXJlZE1h
cCBtX2RvY3VtZW50TmFtZWRJdGVtOwogICAgIERvY3VtZW50T3JkZXJlZE1hcCBtX3dpbmRvd05h
bWVkSXRlbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAppbmRleCA1ZGZmNGRjLi43MjRiZTQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCkBAIC00NCw5ICs0NCw5IEBAIHB1YmxpYzoK
IAogICAgIFBhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IGNoaWxkcmVuKCk7CiAKLSAgICB2aXJ0
dWFsIFN0cmluZyB0aXRsZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgU3Ry
aW5nIHRpdGxlKCkgY29uc3Qgb3ZlcnJpZGUgRklOQUw7CiAKLSAgICB2aXJ0dWFsIHNob3J0IHRh
YkluZGV4KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBzaG9ydCB0YWJJbmRleCgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0VGFiSW5kZXgoaW50KTsKIAogICAgIFN0cmluZyBp
bm5lckhUTUwoKSBjb25zdDsKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAgIHZvaWQgaW5z
ZXJ0QWRqYWNlbnRUZXh0KGNvbnN0IFN0cmluZyYgd2hlcmUsIGNvbnN0IFN0cmluZyYgdGV4dCwg
RXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdmlydHVhbCBib29sIGhhc0N1c3RvbUZvY3VzTG9naWMo
KSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAg
ICBTdHJpbmcgY29udGVudEVkaXRhYmxlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRDb250ZW50RWRp
dGFibGUoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtNzcsMTIgKzc3LDEyIEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgY2xpY2soKTsKIAotICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NL
ZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIG92ZXJyaWRlOwogCiAgICAg
Ym9vbCBpZUZvcmJpZHNJbnNlcnRIVE1MKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcmVu
ZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJl
bmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQo
Y29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIG92
ZXJyaWRlOwogCiAgICAgSFRNTEZvcm1FbGVtZW50KiBmb3JtKCkgY29uc3QgeyByZXR1cm4gdmly
dHVhbEZvcm0oKTsgfQogCkBAIC05Miw5ICs5Miw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgaXNIVE1MVW5rbm93bkVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc1RleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlTW92ZUV2ZW50
cygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VXaGVlbEV2
ZW50cygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlj
a0V2ZW50cygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VN
b3ZlRXZlbnRzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3Vz
ZVdoZWVsRXZlbnRzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9N
b3VzZUNsaWNrRXZlbnRzKCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNMYWJlbGFi
bGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgRm9ybU5hbWVkSXRlbSog
YXNGb3JtTmFtZWRJdGVtKCkgeyByZXR1cm4gMDsgfQpAQCAtMTA4LDE4ICsxMDgsMTggQEAgcHJv
dGVjdGVkOgogICAgIHZvaWQgYXBwbHlBbGlnbm1lbnRBdHRyaWJ1dGVUb1N0eWxlKGNvbnN0IEF0
b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKTsKICAgICB2b2lkIGFwcGx5Qm9y
ZGVyQXR0cmlidXRlVG9TdHlsZShjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9w
ZXJ0aWVzJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9v
bCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0
eWxlUHJvcGVydGllcyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJl
c2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJp
bmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiAgICAgdW5zaWduZWQgcGFy
c2VCb3JkZXJXaWR0aEF0dHJpYnV0ZShjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdDsKIAotICAg
IHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBjYWxjdWxhdGVBbmRBZGp1c3REaXJlY3Rpb25hbGl0eSgpOwog
Ci0gICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1
dGUmKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIFN0cmluZyBub2Rl
TmFtZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1l
KCkgY29uc3Qgb3ZlcnJpZGUgRklOQUw7CiAKICAgICB2b2lkIG1hcExhbmd1YWdlQXR0cmlidXRl
VG9Mb2NhbGUoY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCmluZGV4IDI5NzNmODQuLmYwMjMy
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oCkBAIC0zNCwxNCArMzQs
MTQgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MRW1iZWRFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKIAotICAgIHZpcnR1
YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWlj
U3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNQcmVz
ZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3Bl
cnRpZXMmKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNv
bnN0IFJlbmRlclN0eWxlJik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29u
c3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIGltYWdlU291cmNlVVJMKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29s
IGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbWFnZVNvdXJjZVVSTCgpIGNvbnN0IG92ZXJyaWRl
OwogCiAgICAgdmlydHVhbCBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldEZvckpTQmluZGluZ3Mo
KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaAppbmRl
eCBkMzMxYjNjLi45MWU3YTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
aWVsZFNldEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVs
ZW1lbnQuaApAQCAtNDIsMTggKzQyLDE4IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBsZW5ndGgo
KSBjb25zdDsKIAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlZEF0dHJpYnV0
ZUNoYW5nZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZWRBdHRyaWJ1dGVD
aGFuZ2VkKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgSFRNTEZpZWxkU2V0RWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqKTsKIAotICAg
IHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0YWJsZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRy
dWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBjb25zdCBBdG9t
aWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
Ym9vbCByZWNhbGNXaWxsVmFsaWRhdGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsg
fQotICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgYXJlQXV0aG9yU2hhZG93c0FsbG93ZWQoKSBjb25z
dCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0
YWJsZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
c3VwcG9ydHNGb2N1cygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlw
ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCByZWNhbGNXaWxsVmFsaWRhdGUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBjaGls
ZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJv
b2wgYXJlQXV0aG9yU2hhZG93c0FsbG93ZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgc3RhdGljIHZvaWQgaW52YWxpZGF0ZURpc2FibGVkU3RhdGVVbmRlcihFbGVt
ZW50Kik7CiAgICAgdm9pZCByZWZyZXNoRWxlbWVudHNJZk5lZWRlZCgpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmgKaW5kZXggMDhhMzQ5ZS4uZjY0NmNjZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb250RWxlbWVudC5oCkBAIC0zNyw4ICszNyw4IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgSFRNTEZvbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwogCi0gICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29sbGVj
dFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2Vu
dGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcm
LCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCBj
M2ZhYzE3Li45MzcxMzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3Jt
Q29udHJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJv
bEVsZW1lbnQuaApAQCAtNjgsMTAgKzY4LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc3BhdGNo
Q2hhbmdlRXZlbnQoKTsKICAgICB2b2lkIGRpc3BhdGNoRm9ybUNvbnRyb2xJbnB1dEV2ZW50KCk7
CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNEaXNhYmxlZEZvcm1Db250cm9sKCkgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBib29sIGlzRGlzYWJsZWRGb3JtQ29udHJvbCgpIGNvbnN0IG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCBib29sIGlzRm9jdXNhYmxlKCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNGb2N1c2FibGUoKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGJvb2wgaXNFbnVtZXJhdGFibGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBmYWxzZTsgfQogCiAgICAgYm9vbCBpc1JlcXVpcmVkKCkgY29uc3Q7CiAKQEAgLTgzLDcgKzgz
LDcgQEAgcHVibGljOgogCiAgICAgLy8gT3ZlcnJpZGUgaW4gZGVyaXZlZCBjbGFzc2VzIHRvIGdl
dCB0aGUgZW5jb2RlZCBuYW1lPXZhbHVlIHBhaXIgZm9yIHN1Ym1pdHRpbmcuCiAgICAgLy8gUmV0
dXJuIHRydWUgZm9yIGEgc3VjY2Vzc2Z1bCBjb250cm9sIChzZWUgSFRNTDQtMTcuMTMuMikuCi0g
ICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpIE9WRVJS
SURFIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRhKEZv
cm1EYXRhTGlzdCYsIGJvb2wpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0
dWFsIGJvb2wgaXNTdWNjZXNzZnVsU3VibWl0QnV0dG9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNBY3RpdmF0ZWRTdWJtaXQoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQpAQCAtOTgsMTMgKzk4LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEF1dG9jYXBp
dGFsaXplKGNvbnN0IEF0b21pY1N0cmluZyYpOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIGJvb2wg
d2lsbFZhbGlkYXRlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHdpbGxWYWxp
ZGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlVmlzaWJsZVZhbGlkYXRpb25N
ZXNzYWdlKCk7CiAgICAgdm9pZCBoaWRlVmlzaWJsZVZhbGlkYXRpb25NZXNzYWdlKCk7CiAgICAg
Ym9vbCBjaGVja1ZhbGlkaXR5KFZlY3RvcjxSZWZQdHI8Rm9ybUFzc29jaWF0ZWRFbGVtZW50Pj4q
IHVuaGFuZGxlZEludmFsaWRDb250cm9scyA9IDApOwogICAgIC8vIFRoaXMgbXVzdCBiZSBjYWxs
ZWQgd2hlbiBhIHZhbGlkYXRpb24gY29uc3RyYWludCBvciBjb250cm9sIHZhbHVlIGlzIGNoYW5n
ZWQuCiAgICAgdm9pZCBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0Q3VzdG9tVmFsaWRpdHkoY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIHNldEN1c3RvbVZhbGlkaXR5KGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogCiAgICAgYm9v
bCBpc1JlYWRPbmx5KCkgY29uc3QgeyByZXR1cm4gbV9pc1JlYWRPbmx5OyB9CiAgICAgYm9vbCBp
c0Rpc2FibGVkT3JSZWFkT25seSgpIGNvbnN0IHsgcmV0dXJuIGlzRGlzYWJsZWRGb3JtQ29udHJv
bCgpIHx8IG1faXNSZWFkT25seTsgfQpAQCAtMTIwLDIxICsxMjAsMjEgQEAgcHVibGljOgogcHJv
dGVjdGVkOgogICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqKTsKIAotICAgIHZpcnR1YWwgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgcmVxdWlyZWRBdHRyaWJ1dGVDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGVk
QXR0cmlidXRlQ2hhbmdlZCgpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMo
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5z
ZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVt
b3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRN
b3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIElu
c2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCog
b2xkRG9jdW1lbnQpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMo
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShL
ZXlib2FyZEV2ZW50KikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzTW91c2VG
b2N1c2FibGUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1
cygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxl
KEtleWJvYXJkRXZlbnQqKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNb3Vz
ZUZvY3VzYWJsZSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2Fs
Y1N0eWxlKFN0eWxlOjpDaGFuZ2UpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNh
bGNTdHlsZShTdHlsZTo6Q2hhbmdlKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaEJsdXJFdmVudChQYXNzUmVmUHRyPEVsZW1lbnQ+IG5ld0ZvY3VzZWRFbGVtZW50KSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hCbHVyRXZlbnQoUGFzc1JlZlB0cjxFbGVt
ZW50PiBuZXdGb2N1c2VkRWxlbWVudCkgb3ZlcnJpZGU7CiAKICAgICAvLyBUaGlzIG11c3QgYmUg
Y2FsbGVkIGFueSB0aW1lIHRoZSByZXN1bHQgb2Ygd2lsbFZhbGlkYXRlKCkgaGFzIGNoYW5nZWQu
CiAgICAgdm9pZCBzZXROZWVkc1dpbGxWYWxpZGF0ZUNoZWNrKCk7CkBAIC0xNDMsMjIgKzE0Mywy
MiBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCB2YWxpZGF0aW9uTWVzc2FnZVNoYWRvd1RyZWVDb250
YWlucyhjb25zdCBOb2RlJikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHJl
ZkZvcm1Bc3NvY2lhdGVkRWxlbWVudCgpIE9WRVJSSURFIHsgcmVmKCk7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgZGVyZWZGb3JtQXNzb2NpYXRlZEVsZW1lbnQoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgcmVmRm9ybUFzc29jaWF0ZWRFbGVtZW50KCkgb3ZlcnJpZGUgeyBy
ZWYoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZXJlZkZvcm1Bc3NvY2lhdGVkRWxlbWVudCgpIG92
ZXJyaWRlIHsgZGVyZWYoKTsgfQogCi0gICAgdmlydHVhbCBib29sIGlzRm9ybUNvbnRyb2xFbGVt
ZW50KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBh
bHdheXNDcmVhdGVVc2VyQWdlbnRTaGFkb3dSb290KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
dHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0Zvcm1Db250cm9sRWxlbWVudCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgYWx3YXlzQ3JlYXRlVXNl
ckFnZW50U2hhZG93Um9vdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAg
IHZpcnR1YWwgc2hvcnQgdGFiSW5kZXgoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0
dWFsIHNob3J0IHRhYkluZGV4KCkgY29uc3Qgb3ZlcnJpZGUgRklOQUw7CiAKLSAgICB2aXJ0dWFs
IEhUTUxGb3JtRWxlbWVudCogdmlydHVhbEZvcm0oKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgaXNEZWZhdWx0QnV0dG9uRm9yRm9ybSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgYm9vbCBpc1ZhbGlkRm9ybUNvbnRyb2xFbGVtZW50KCkgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBIVE1MRm9ybUVsZW1lbnQqIHZpcnR1YWxGb3JtKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBib29sIGlzRGVmYXVsdEJ1dHRvbkZvckZvcm0oKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpIG92ZXJyaWRlOwogICAg
IHZvaWQgdXBkYXRlQW5jZXN0b3JEaXNhYmxlZFN0YXRlKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFs
IEhUTUxFbGVtZW50JiBhc0hUTUxFbGVtZW50KCkgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gKnRo
aXM7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQmIGFzSFRNTEVs
ZW1lbnQoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiAqdGhpczsgfQotICAgIHZpcnR1
YWwgSFRNTEZvcm1Db250cm9sRWxlbWVudCogYXNGb3JtTmFtZWRJdGVtKCkgT1ZFUlJJREUgRklO
QUwgeyByZXR1cm4gdGhpczsgfQorICAgIHZpcnR1YWwgSFRNTEVsZW1lbnQmIGFzSFRNTEVsZW1l
bnQoKSBvdmVycmlkZSBGSU5BTCB7IHJldHVybiAqdGhpczsgfQorICAgIHZpcnR1YWwgY29uc3Qg
SFRNTEZvcm1Db250cm9sRWxlbWVudCYgYXNIVE1MRWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlIEZJ
TkFMIHsgcmV0dXJuICp0aGlzOyB9CisgICAgdmlydHVhbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
KiBhc0Zvcm1OYW1lZEl0ZW0oKSBvdmVycmlkZSBGSU5BTCB7IHJldHVybiB0aGlzOyB9CiAKICAg
ICBPd25QdHI8VmFsaWRhdGlvbk1lc3NhZ2U+IG1fdmFsaWRhdGlvbk1lc3NhZ2U7CiAgICAgYm9v
bCBtX2Rpc2FibGVkIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZv
cm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlLmgKaW5kZXggYTY3ZGU0NC4uOTlmMDRlMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0
YXRlLmgKQEAgLTM0LDcgKzM0LDcgQEAgY2xhc3MgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhT
dGF0ZSA6IHB1YmxpYyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5IVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlKCk7CiAKLSAgICB2aXJ0dWFsIGJv
b2wgY2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2F2ZUFu
ZFJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBGb3JtQ29udHJv
bFN0YXRlIHNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3Q7CkBAIC00NiwxMCArNDYsMTAgQEAg
cHJvdGVjdGVkOgogICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqKTsKIAogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRBdXRvY29tcGxldGUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZv
aWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJbnNlcnRp
b25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlJikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUoKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVk
SW50byhDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRG
cm9tKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNGb3JtQ29u
dHJvbEVsZW1lbnRXaXRoU3RhdGUoKSBjb25zdCBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHNDb2xs
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9u
LmgKaW5kZXggNTQ0NTBkNy4uNmIyODYwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaApAQCAtNDYsMTIgKzQ2LDEyIEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24oQ29udGFp
bmVyTm9kZSYpOwogCi0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDYWNoZSgpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVOYW1lQ2FjaGUoKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNhY2hlKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZU5hbWVDYWNoZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
Y29uc3QgVmVjdG9yPEZvcm1Bc3NvY2lhdGVkRWxlbWVudCo+JiBmb3JtQ29udHJvbEVsZW1lbnRz
KCkgY29uc3Q7CiAgICAgY29uc3QgVmVjdG9yPEhUTUxJbWFnZUVsZW1lbnQqPiYgZm9ybUltYWdl
RWxlbWVudHMoKSBjb25zdDsKLSAgICB2aXJ0dWFsIEVsZW1lbnQqIGN1c3RvbUVsZW1lbnRBZnRl
cihFbGVtZW50KikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBFbGVtZW50KiBjdXN0b21F
bGVtZW50QWZ0ZXIoRWxlbWVudCopIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgbXV0YWJsZSBFbGVt
ZW50KiBtX2NhY2hlZEVsZW1lbnQ7CiAgICAgbXV0YWJsZSB1bnNpZ25lZCBtX2NhY2hlZEVsZW1l
bnRPZmZzZXRJbkFycmF5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKaW5kZXgg
MjJmZTllMS4uZTU0YWNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCkBA
IC0xMDQsNyArMTA0LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBtZXRob2QoKSBjb25zdDsKICAg
ICB2b2lkIHNldE1ldGhvZChjb25zdCBTdHJpbmcmKTsKIAotICAgIHZpcnR1YWwgU3RyaW5nIHRh
cmdldCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIHRhcmdldCgpIGNvbnN0
IG92ZXJyaWRlOwogCiAgICAgYm9vbCB3YXNVc2VyU3VibWl0dGVkKCkgY29uc3Q7CiAKQEAgLTEy
NCwyMSArMTI0LDIxIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTEZvcm1FbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBib29sIHJlbmRl
cmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIElu
c2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNl
cnRlZEludG8oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZW1v
dmVkRnJvbShDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGZpbmlz
aFBhcnNpbmdDaGlsZHJlbigpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUxv
Y2FsRXZlbnRzKEV2ZW50JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUxvY2Fs
RXZlbnRzKEV2ZW50Jikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBp
c1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZp
cnR1YWwgdm9pZCBkb2N1bWVudERpZFJlc3VtZUZyb21QYWdlQ2FjaGUoKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFnZUNhY2hlKCkgb3ZlcnJpZGU7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERv
Y3VtZW50KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQo
RG9jdW1lbnQqIG9sZERvY3VtZW50KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBjb3B5
Tm9uQXR0cmlidXRlUHJvcGVydGllc0Zyb21FbGVtZW50KGNvbnN0IEVsZW1lbnQmKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgY29weU5vbkF0dHJpYnV0ZVByb3BlcnRpZXNGcm9tRWxlbWVu
dChjb25zdCBFbGVtZW50Jikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHN1Ym1pdChFdmVudCosIGJv
b2wgYWN0aXZhdGVTdWJtaXRCdXR0b24sIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBGb3Jt
U3VibWlzc2lvblRyaWdnZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGcmFtZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5o
CmluZGV4IGMxYzQyOGQuLjUyNGJhOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZyYW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxl
bWVudC5oCkBAIC0zOSwxMiArMzksMTIgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MRnJh
bWVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgdmlydHVh
bCB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBk
aWRBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJl
cklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJik7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIG92ZXJyaWRlOwogICAgIAotICAgIHZp
cnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bWljU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKIAogI2lm
IEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dGdWxsU2NyZWVu
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1l
RWxlbWVudEJhc2UuaAppbmRleCAwMzhkMjdiLi4wMDdmZjU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5oCkBAIC0zNCw3ICszNCw3IEBAIHB1YmxpYzoKICAg
ICBVUkwgbG9jYXRpb24oKSBjb25zdDsKICAgICB2b2lkIHNldExvY2F0aW9uKGNvbnN0IFN0cmlu
ZyYpOwogCi0gICAgdmlydHVhbCBTY3JvbGxiYXJNb2RlIHNjcm9sbGluZ01vZGUoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBtX3Njcm9sbGluZzsgfQorICAgIHZpcnR1YWwgU2Nyb2xsYmFyTW9k
ZSBzY3JvbGxpbmdNb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zY3JvbGxpbmc7IH0K
ICAgICAKICAgICBpbnQgbWFyZ2luV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX21hcmdpbldpZHRo
OyB9CiAgICAgaW50IG1hcmdpbkhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFyZ2luSGVpZ2h0
OyB9CkBAIC00MiwyOCArNDIsMjggQEAgcHVibGljOgogICAgIGludCB3aWR0aCgpOwogICAgIGlu
dCBoZWlnaHQoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGNhbkNv
bnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAog
cHJvdGVjdGVkOgogICAgIEhUTUxGcmFtZUVsZW1lbnRCYXNlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwogCiAgICAgYm9vbCBpc1VSTEFsbG93ZWQoKSBjb25zdDsKIAotICAgIHZp
cnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bWljU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25S
ZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZE5vdGlmeVN1YnRyZWVJbnNlcnRpb25zKENvbnRhaW5lck5vZGUqKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlv
blJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkTm90aWZ5U3VidHJlZUluc2VydGlvbnMoQ29udGFpbmVyTm9kZSopIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKIAog
cHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cyhib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRGb2N1cyhib29sKSBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRy
aWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29s
IGlzSFRNTENvbnRlbnRBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc0hUTUxDb250ZW50QXR0cmlidXRlKGNvbnN0
IEF0dHJpYnV0ZSYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGlzRnJhbWVF
bGVtZW50QmFzZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaXNGcmFtZUVsZW1lbnRCYXNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQogCi0gICAgdmlydHVhbCBib29sIGFyZUF1dGhvclNoYWRvd3NBbGxvd2VkKCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgYXJlQXV0aG9yU2hhZG93
c0FsbG93ZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgYm9vbCB2
aWV3U291cmNlTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld1NvdXJjZTsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVPd25lckVsZW1lbnQuaAppbmRleCBiYWNiNTlkLi45ODcx
YjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJFbGVtZW50LmgKQEAg
LTYzLDggKzYzLDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0U2FuZGJveEZsYWdzKFNhbmRi
b3hGbGFncyk7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRGb2N1c2Fi
bGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc0Zy
YW1lT3duZXJFbGVtZW50KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNGcmFtZU93bmVyRWxlbWVudCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIEZyYW1lKiBtX2NvbnRlbnRGcmFtZTsKICAgICBT
YW5kYm94RmxhZ3MgbV9zYW5kYm94RmxhZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1l
U2V0RWxlbWVudC5oCmluZGV4IDVlMTE2ZWEuLmI2ZmQ5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCkBAIC02OSwyMCArNjksMjAgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBIVE1MRnJhbWVTZXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwogCi0gICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHls
ZVByb3BlcnRpZXMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNl
bnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
JiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lk
IHdpbGxBdHRhY2hSZW5kZXJlcnMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEF0
dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IFJlbmRlclN0eWxlJik7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIG92ZXJyaWRlOwogICAgIAogICAgIHZpcnR1YWwg
dm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgd2ls
bFJlY2FsY1N0eWxlKFN0eWxlOjpDaGFuZ2UpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCB3
aWxsUmVjYWxjU3R5bGUoU3R5bGU6OkNoYW5nZSkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIElu
c2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRl
ZEludG8oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVk
RnJvbShDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGVu
Z3RoW10+IG1fcm93TGVuZ3RoczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGVuZ3RoW10+IG1fY29s
TGVuZ3RoczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhSRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSFJFbGVtZW50LmgKaW5kZXggZDNiZjZlMi4uM2Nl
ZjI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSFJFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSFJFbGVtZW50LmgKQEAgLTM3LDggKzM3LDggQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MSFJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9y
UHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNT
dHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1s
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1lbnQuaAppbmRleCBj
MGU5MjU0Li43MjYyNjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1s
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmgKQEAg
LTM4LDcgKzM4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MSHRtbEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNVUkxB
dHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBi
b29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IG92ZXJyaWRlOwogfTsK
IAogTk9ERV9UWVBFX0NBU1RTKEhUTUxIdG1sRWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElGcmFtZUVsZW1lbnQuaAppbmRleCBmNzFiM2Q4Li4wZWFiY2RkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCkBAIC0zOCwxNyArMzgsMTcgQEAgcHJpdmF0ZToKICAg
ICBIVE1MSUZyYW1lRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAog
I2lmIFBMQVRGT1JNKElPUykKLSAgICB2aXJ0dWFsIGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShL
ZXlib2FyZEV2ZW50KikgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogCi0gICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVG
b3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21p
Y1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0
cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRl
OwogCiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUm
KTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0
eWxlPikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjYWxjU3R5bGUoU3R5bGU6
OkNoYW5nZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2FsY1N0eWxlKFN0eWxl
OjpDaGFuZ2UpIG92ZXJyaWRlOwogfTsKIAogTk9ERV9UWVBFX0NBU1RTKEhUTUxJRnJhbWVFbGVt
ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAppbmRleCBhZTk4NjNiLi43
ZDkyNzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaApAQCAtNzYsNDUg
Kzc2LDQ1IEBAIHB1YmxpYzoKICAgICBib29sIGNvbXBsZXRlKCkgY29uc3Q7CiAKICNpZiBQTEFU
Rk9STShJT1MpCi0gICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRz
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZl
bnRzKCkgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3QgeyByZXR1cm4gbV9pbWFnZUxvYWRlci5oYXNQZW5kaW5nQWN0aXZpdHkoKTsgfQogCi0g
ICAgdmlydHVhbCBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuQ29udGFpblJhbmdlRW5kUG9p
bnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIGltYWdlU291cmNlVVJMKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGltYWdlU291cmNlVVJMKCkgY29uc3Qgb3ZlcnJpZGU7
CiAKIHByb3RlY3RlZDoKICAgICBIVE1MSW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCogPSAwKTsKIAotICAgIHZpcnR1YWwgdm9pZCBk
aWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQp
IG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBhcmVBdXRob3JTaGFkb3dz
QWxsb3dlZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBi
b29sIGFyZUF1dGhvclNoYWRvd3NBbGxvd2VkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFs
c2U7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlz
UHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQ
cm9wZXJ0aWVzJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50
YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYs
IE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBk
aWRBdHRhY2hSZW5kZXJlcnMoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGNh
blN0YXJ0U2VsZWN0aW9uKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGNhblN0
YXJ0U2VsZWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNVUkxB
dHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBi
b29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IG92ZXJyaWRlOwogCi0g
ICAgdmlydHVhbCBib29sIGRyYWdnYWJsZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwg
Ym9vbCBkcmFnZ2FibGUoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBhZGRT
dWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8VVJMPiYpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hT
ZXQ8VVJMPiYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmlj
YXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlJikgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5l
ck5vZGUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVy
Tm9kZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGlzRm9ybUFzc29jaWF0ZWRFbGVt
ZW50KCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFs
IEZvcm1OYW1lZEl0ZW0qIGFzRm9ybU5hbWVkSXRlbSgpIE9WRVJSSURFIEZJTkFMIHsgcmV0dXJu
IHRoaXM7IH0KLSAgICB2aXJ0dWFsIEhUTUxJbWFnZUVsZW1lbnQmIGFzSFRNTEVsZW1lbnQoKSBP
VkVSUklERSBGSU5BTCB7IHJldHVybiAqdGhpczsgfQotICAgIHZpcnR1YWwgY29uc3QgSFRNTElt
YWdlRWxlbWVudCYgYXNIVE1MRWxlbWVudCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJu
ICp0aGlzOyB9CisgICAgdmlydHVhbCBib29sIGlzRm9ybUFzc29jaWF0ZWRFbGVtZW50KCkgY29u
c3Qgb3ZlcnJpZGUgRklOQUwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIEZvcm1OYW1l
ZEl0ZW0qIGFzRm9ybU5hbWVkSXRlbSgpIG92ZXJyaWRlIEZJTkFMIHsgcmV0dXJuIHRoaXM7IH0K
KyAgICB2aXJ0dWFsIEhUTUxJbWFnZUVsZW1lbnQmIGFzSFRNTEVsZW1lbnQoKSBvdmVycmlkZSBG
SU5BTCB7IHJldHVybiAqdGhpczsgfQorICAgIHZpcnR1YWwgY29uc3QgSFRNTEltYWdlRWxlbWVu
dCYgYXNIVE1MRWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlIEZJTkFMIHsgcmV0dXJuICp0aGlzOyB9
CiAKICAgICBIVE1MSW1hZ2VMb2FkZXIgbV9pbWFnZUxvYWRlcjsKICAgICBIVE1MRm9ybUVsZW1l
bnQqIG1fZm9ybTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlTG9h
ZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUxvYWRlci5oCmluZGV4IDQwNjg4
YjcuLjE0ZWEyYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlTG9h
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VMb2FkZXIuaApAQCAtMzIs
MTAgKzMyLDEwIEBAIHB1YmxpYzoKICAgICBIVE1MSW1hZ2VMb2FkZXIoRWxlbWVudCopOwogICAg
IHZpcnR1YWwgfkhUTUxJbWFnZUxvYWRlcigpOwogCi0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
TG9hZEV2ZW50KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgc291cmNlVVJJKGNvbnN0
IEF0b21pY1N0cmluZyYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aExvYWRFdmVudCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIHNvdXJjZVVSSShjb25z
dCBBdG9taWNTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBub3Rp
ZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBu
b3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopIG92ZXJyaWRlOwogfTsKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggNTc4YzY3Zi4uOTkyMTlmOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC04Niw3ICs4Niw3
IEBAIGNsYXNzIExpc3RBdHRyaWJ1dGVUYXJnZXRPYnNlcnZlciA6IElkVGFyZ2V0T2JzZXJ2ZXIg
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHN0YXRpYyBPd25Q
dHI8TGlzdEF0dHJpYnV0ZVRhcmdldE9ic2VydmVyPiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5n
JiBpZCwgSFRNTElucHV0RWxlbWVudCopOwotICAgIHZpcnR1YWwgdm9pZCBpZFRhcmdldENoYW5n
ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaWRUYXJnZXRDaGFuZ2VkKCkgb3ZlcnJp
ZGU7CiAKIHByaXZhdGU6CiAgICAgTGlzdEF0dHJpYnV0ZVRhcmdldE9ic2VydmVyKGNvbnN0IEF0
b21pY1N0cmluZyYgaWQsIEhUTUxJbnB1dEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmgKaW5kZXggNzNhMjNhZS4uM2I4NDk1YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTY3LDIwICs2NywyMCBAQCBwdWJsaWM6CiAKICAgICBE
RUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHdlYmtpdHNwZWVjaGNoYW5nZSk7CiAKLSAg
ICB2aXJ0dWFsIEhUTUxJbnB1dEVsZW1lbnQqIHRvSW5wdXRFbGVtZW50KCkgT1ZFUlJJREUgeyBy
ZXR1cm4gdGhpczsgfQorICAgIHZpcnR1YWwgSFRNTElucHV0RWxlbWVudCogdG9JbnB1dEVsZW1l
bnQoKSBvdmVycmlkZSB7IHJldHVybiB0aGlzOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
QXV0b2NvbXBsZXRlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNob3VsZEF1
dG9jb21wbGV0ZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gRm9yIFZhbGlkaXR5U3RhdGUK
LSAgICB2aXJ0dWFsIGJvb2wgaGFzQmFkSW5wdXQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgcGF0dGVybk1pc21hdGNoKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIHJhbmdlVW5kZXJmbG93KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHJh
bmdlT3ZlcmZsb3coKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc3RlcE1pc21h
dGNoKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHRvb0xvbmcoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoKCkgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBib29sIHZhbHVlTWlzc2luZygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBib29sIGhhc0JhZElucHV0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IHBhdHRlcm5NaXNtYXRjaCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCByYW5n
ZVVuZGVyZmxvdygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCByYW5nZU92ZXJm
bG93KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHN0ZXBNaXNtYXRjaCgpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCB0b29Mb25nKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIHR5cGVNaXNtYXRjaCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgYm9vbCB2YWx1ZU1pc3NpbmcoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gUmV0dXJu
cyB0aGUgbWluaW11bSB2YWx1ZSBmb3IgdHlwZT1kYXRlLCBudW1iZXIsIG9yIHJhbmdlLiAgRG9u
J3QgY2FsbCB0aGlzIGZvciBvdGhlciB0eXBlcy4KICAgICBkb3VibGUgbWluaW11bSgpIGNvbnN0
OwpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgSFRNTEVsZW1lbnQq
IGNvbnRhaW5lckVsZW1lbnQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFRleHRDb250cm9sSW5uZXJU
ZXh0RWxlbWVudCogaW5uZXJUZXh0RWxlbWVudCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50KiBpbm5lclRleHRFbGVtZW50KCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgSFRNTEVsZW1lbnQqIGlubmVyQmxvY2tFbGVtZW50KCkgY29uc3Q7CiAg
ICAgSFRNTEVsZW1lbnQqIGlubmVyU3BpbkJ1dHRvbkVsZW1lbnQoKSBjb25zdDsKICAgICBIVE1M
RWxlbWVudCogcmVzdWx0c0J1dHRvbkVsZW1lbnQoKSBjb25zdDsKQEAgLTE1Nyw3ICsxNTcsNyBA
QCBwdWJsaWM6CiAjZW5kaWYKICAgICBIVE1MRWxlbWVudCogc2xpZGVyVGh1bWJFbGVtZW50KCkg
Y29uc3Q7CiAgICAgSFRNTEVsZW1lbnQqIHNsaWRlclRyYWNrRWxlbWVudCgpIGNvbnN0OwotICAg
IHZpcnR1YWwgSFRNTEVsZW1lbnQqIHBsYWNlaG9sZGVyRWxlbWVudCgpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgSFRNTEVsZW1lbnQqIHBsYWNlaG9sZGVyRWxlbWVudCgpIGNvbnN0IG92
ZXJyaWRlOwogCiAgICAgYm9vbCBjaGVja2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc0NoZWNrZWQ7
IH0KICAgICB2b2lkIHNldENoZWNrZWQoYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciA9IERp
c3BhdGNoTm9FdmVudCk7CkBAIC0xNjcsNyArMTY3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
SW5kZXRlcm1pbmF0ZShib29sKTsKICAgICAvLyBzaG91bGRBcHBlYXJDaGVja2VkIGlzIHVzZWQg
YnkgdGhlIHJlbmRlcmluZyB0cmVlL0NTUyB3aGlsZSBjaGVja2VkKCkgaXMgdXNlZCBieSBKUyB0
byBkZXRlcm1pbmUgY2hlY2tlZCBzdGF0ZQogICAgIGJvb2wgc2hvdWxkQXBwZWFyQ2hlY2tlZCgp
IGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBlYXJJbmRldGVybWluYXRlKCkgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNob3VsZEFwcGVhckluZGV0ZXJtaW5hdGUo
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIGludCBzaXplKCkgY29uc3Q7CiAgICAgYm9vbCBzaXpl
U2hvdWxkSW5jbHVkZURlY29yYXRpb24oaW50JiBwcmVmZXJyZWRTaXplKSBjb25zdDsKQEAgLTE3
NSw3ICsxNzUsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFR5cGUoY29uc3QgU3RyaW5nJik7
CiAKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgU3RyaW5nIHZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWYWx1ZShjb25z
dCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJiwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciA9IERpc3Bh
dGNoTm9FdmVudCk7CiAgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBUZXh0RmllbGRF
dmVudEJlaGF2aW9yID0gRGlzcGF0Y2hOb0V2ZW50KTsKICAgICB2b2lkIHNldFZhbHVlRm9yVXNl
cihjb25zdCBTdHJpbmcmKTsKQEAgLTIwOCwxNyArMjA4LDE3IEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgY2FuSGF2ZVNlbGVjdGlvbigpIGNvbnN0OwogCi0gICAgdmlydHVhbCBib29sIHJlbmRlcmVy
SXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJT
dHlsZT4pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsQXR0YWNoUmVuZGVyZXJzKCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBkaWREZXRhY2hSZW5kZXJlcnMoKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdp
bGxBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXR0YWNo
UmVuZGVyZXJzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZERldGFjaFJlbmRlcmVy
cygpIG92ZXJyaWRlOwogCiAgICAgLy8gRklYTUU6IEZvciBpc0FjdGl2YXRlZFN1Ym1pdCBhbmQg
c2V0QWN0aXZhdGVkU3VibWl0LCB3ZSBzaG91bGQgdXNlIHRoZSBOVkktaWRpb20gaGVyZSBieSBt
YWtpbmcKICAgICAvLyBpdCBwcml2YXRlIHZpcnR1YWwgaW4gYWxsIGNsYXNzZXMgYW5kIGV4cG9z
ZSBhIHB1YmxpYyBtZXRob2QgaW4gSFRNTEZvcm1Db250cm9sRWxlbWVudCB0byBjYWxsCiAgICAg
Ly8gdGhlIHByaXZhdGUgdmlydHVhbCBtZXRob2QuCi0gICAgdmlydHVhbCBib29sIGlzQWN0aXZh
dGVkU3VibWl0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldEFjdGl2YXRl
ZFN1Ym1pdChib29sIGZsYWcpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2YXRl
ZFN1Ym1pdCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmF0ZWRT
dWJtaXQoYm9vbCBmbGFnKSBvdmVycmlkZTsKIAogICAgIFN0cmluZyBhbHRUZXh0KCkgY29uc3Q7
CiAKQEAgLTI0MCw3ICsyNDAsNyBAQCBwdWJsaWM6CiAKICAgICBVUkwgc3JjKCkgY29uc3Q7CiAK
LSAgICB2aXJ0dWFsIGludCBtYXhMZW5ndGgoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IGludCBtYXhMZW5ndGgoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNldE1heExlbmd0aChp
bnQsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIGJvb2wgbXVsdGlwbGUoKSBjb25zdDsKQEAgLTI3
MCw3ICsyNzAsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHVwZGF0ZUNsZWFyQnV0dG9uVmlzaWJp
bGl0eSgpOwogCi0gICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRz
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZl
bnRzKCkgb3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKICAgICBIVE1M
RWxlbWVudCogbGlzdCgpIGNvbnN0OwpAQCAtMzA5LDE5ICszMDksMTkgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0SGVpZ2h0KHVuc2lnbmVkKTsKICAgICB2b2lkIHNldFdpZHRoKHVuc2lnbmVkKTsK
IAotICAgIHZpcnR1YWwgdm9pZCBibHVyKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGJs
dXIoKSBvdmVycmlkZTsKICAgICB2b2lkIGRlZmF1bHRCbHVyKCk7CiAKLSAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGVuZEVk
aXRpbmcoKTsKIAogICAgIHN0YXRpYyBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4gZmlsZXNG
cm9tRmlsZUlucHV0Rm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29udHJvbFN0YXRlJik7CiAK
LSAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlc1JlYWRPbmx5UHNldWRvQ2xhc3MoKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlc1JlYWRXcml0ZVBzZXVkb0NsYXNzKCkgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcm
IHJlcGxhY2VtZW50LCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IHNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50LCB1bnNpZ25lZCBzdGFydCwg
dW5zaWduZWQgZW5kLCBjb25zdCBTdHJpbmcmIHNlbGVjdGlvbk1vZGUsIEV4Y2VwdGlvbkNvZGUm
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlc1JlYWRPbmx5UHNldWRvQ2xhc3Mo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlc1JlYWRXcml0ZVBzZXVk
b0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFJhbmdlVGV4dChj
b25zdCBTdHJpbmcmIHJlcGxhY2VtZW50LCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50LCB1bnNp
Z25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBjb25zdCBTdHJpbmcmIHNlbGVjdGlvbk1vZGUsIEV4
Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgaGFzSW1hZ2VMb2FkZXIoKSBjb25z
dCB7IHJldHVybiBtX2ltYWdlTG9hZGVyOyB9CiAgICAgSFRNTEltYWdlTG9hZGVyKiBpbWFnZUxv
YWRlcigpOwpAQCAtMzMzLDY4ICszMzMsNjggQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEhU
TUxJbnB1dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgSFRNTEZvcm1F
bGVtZW50KiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogCi0gICAgdmlydHVhbCB2b2lkIGRlZmF1
bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVmYXVs
dEV2ZW50SGFuZGxlcihFdmVudCopIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIGVudW0gQXV0
b0NvbXBsZXRlU2V0dGluZyB7IFVuaW5pdGlhbGl6ZWQsIE9uLCBPZmYgfTsKIAogICAgIC8vIEZJ
WE1FOiBBdXRob3Igc2hhZG93cyBzaG91bGQgYmUgYWxsb3dlZAogICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjYwOAotICAgIHZpcnR1YWwgYm9vbCBhcmVB
dXRob3JTaGFkb3dzQWxsb3dlZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgdmlydHVhbCBib29sIGFyZUF1dGhvclNoYWRvd3NBbGxvd2VkKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRVc2VyQWdlbnRTaGFk
b3dSb290KFNoYWRvd1Jvb3QqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkVXNl
ckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290Kikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgd2lsbENoYW5nZUZvcm0oKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdl
Rm9ybSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVz
dCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHdpbGxDaGFuZ2VGb3JtKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGRpZENoYW5nZUZvcm0oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlm
aWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQp
IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGhhc0N1c3RvbUZvY3VzTG9naWMoKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2Fy
ZEV2ZW50KikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzTW91c2VGb2N1c2Fi
bGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNFbnVtZXJhdGFibGUoKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydExhYmVscygpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGb2N1c0FwcGVhcmFuY2UoYm9vbCByZXN0
b3JlUHJldmlvdXNTZWxlY3Rpb24pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRV
c2VJbnB1dE1ldGhvZCgpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBoYXNDdXN0
b21Gb2N1c0xvZ2ljKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzS2V5Ym9h
cmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
Ym9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IGlzRW51bWVyYXRhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHN1cHBv
cnRMYWJlbHMoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRm9jdXNB
cHBlYXJhbmNlKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkVXNlSW5wdXRNZXRob2QoKSBvdmVycmlkZSBGSU5BTDsKIAotICAg
IHZpcnR1YWwgYm9vbCBpc1RleHRGb3JtQ29udHJvbCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IGlzVGV4dEZpZWxkKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0Rm9ybUNvbnRyb2woKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBpc1RleHRGaWVsZCgpOyB9CiAKLSAgICB2aXJ0dWFsIGJv
b2wgY2FuVHJpZ2dlckltcGxpY2l0U3VibWlzc2lvbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IGlzVGV4dEZpZWxkKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuVHJpZ2dlckltcGxpY2l0U3Vi
bWlzc2lvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGlzVGV4dEZpZWxkKCk7IH0KIAotICAg
IHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2F2ZUFuZFJlc3RvcmVG
b3JtQ29udHJvbFN0YXRlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBGb3JtQ29udHJv
bFN0YXRlIHNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2F2ZUFuZFJlc3RvcmVGb3JtQ29udHJv
bFN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBGb3JtQ29udHJvbFN0YXRlIHNh
dmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJl
c3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKSBvdmVycmlkZTsK
IAotICAgIHZpcnR1YWwgYm9vbCBjYW5TdGFydFNlbGVjdGlvbigpIGNvbnN0IE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgYm9vbCBjYW5TdGFydFNlbGVjdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCi0g
ICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2
ZW50cykgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlv
bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0
YWJsZVN0eWxlUHJvcGVydGllcyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hQ
YXJzaW5nQ2hpbGRyZW4oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclBy
ZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3Ry
aW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBj
b3B5Tm9uQXR0cmlidXRlUHJvcGVydGllc0Zyb21FbGVtZW50KGNvbnN0IEVsZW1lbnQmKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY29weU5vbkF0dHJpYnV0ZVByb3BlcnRpZXNGcm9tRWxl
bWVudChjb25zdCBFbGVtZW50Jikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgYXBwZW5k
Rm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29s
IGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpIG92ZXJyaWRlOwogCi0gICAgdmly
dHVhbCBib29sIGlzU3VjY2Vzc2Z1bFN1Ym1pdEJ1dHRvbigpIGNvbnN0IE9WRVJSSURFOworICAg
IHZpcnR1YWwgYm9vbCBpc1N1Y2Nlc3NmdWxTdWJtaXRCdXR0b24oKSBjb25zdCBvdmVycmlkZTsK
IAotICAgIHZpcnR1YWwgdm9pZCByZXNldCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBy
ZXNldCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0
IEF0dHJpYnV0ZSYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc0luUmFuZ2Uo
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNPdXRPZlJhbmdlKCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0
ZSYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc0luUmFuZ2UoKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNPdXRPZlJhbmdlKCkgY29uc3Qgb3ZlcnJpZGU7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFnZUNhY2hlKCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRvY3VtZW50RGlkUmVzdW1lRnJvbVBhZ2VDYWNoZSgp
IG92ZXJyaWRlOwogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotICAgIHZpcnR1YWwgdm9p
ZCBkb2N1bWVudFdpbGxTdXNwZW5kRm9yUGFnZUNhY2hlKCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGRvY3VtZW50V2lsbFN1c3BlbmRGb3JQYWdlQ2FjaGUoKSBvdmVycmlkZTsKICNlbmRp
ZgogCi0gICAgdmlydHVhbCB2b2lkIGFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFz
aFNldDxVUkw+JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGFkZFN1YnJlc291
cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxVUkw+JikgY29uc3Qgb3ZlcnJpZGU7CiAKICAg
ICBib29sIG5lZWRzU3VzcGVuc2lvbkNhbGxiYWNrKCk7CiAgICAgdm9pZCByZWdpc3RlckZvclN1
c3BlbnNpb25DYWxsYmFja0lmTmVlZGVkKCk7CkBAIC00MDQsMjEgKzQwNCwyMSBAQCBwcml2YXRl
OgogICAgIGJvb2wgaXNUZXh0VHlwZSgpIGNvbnN0OwogICAgIGJvb2wgdG9vTG9uZyhjb25zdCBT
dHJpbmcmLCBOZWVkc1RvQ2hlY2tEaXJ0eUZsYWcpIGNvbnN0OwogCi0gICAgdmlydHVhbCBib29s
IHN1cHBvcnRzUGxhY2Vob2xkZXIoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzRW1w
dHlWYWx1ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGlubmVyVGV4dFZhbHVlKCkuaXNFbXB0
eSgpOyB9Ci0gICAgdmlydHVhbCBib29sIGlzRW1wdHlTdWdnZXN0ZWRWYWx1ZSgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIHN1Z2dlc3RlZFZhbHVlKCkuaXNFbXB0eSgpOyB9Ci0gICAgdmlydHVh
bCB2b2lkIGhhbmRsZUZvY3VzRXZlbnQoTm9kZSogb2xkRm9jdXNlZE5vZGUsIEZvY3VzRGlyZWN0
aW9uKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQmx1ckV2ZW50KCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzUGxhY2Vob2xkZXIoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBib29sIGlzRW1wdHlWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGlu
bmVyVGV4dFZhbHVlKCkuaXNFbXB0eSgpOyB9CisgICAgdmlydHVhbCBib29sIGlzRW1wdHlTdWdn
ZXN0ZWRWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN1Z2dlc3RlZFZhbHVlKCkuaXNF
bXB0eSgpOyB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUZvY3VzRXZlbnQoTm9kZSogb2xkRm9j
dXNlZE5vZGUsIEZvY3VzRGlyZWN0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFu
ZGxlQmx1ckV2ZW50KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNPcHRpb25hbEZv
cm1Db250cm9sKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gIWlzUmVxdWlyZWRGb3JtQ29udHJv
bCgpOyB9Ci0gICAgdmlydHVhbCBib29sIGlzUmVxdWlyZWRGb3JtQ29udHJvbCgpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCByZWNhbGNXaWxsVmFsaWRhdGUoKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWlyZWRBdHRyaWJ1dGVDaGFuZ2VkKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBib29sIGlzT3B0aW9uYWxGb3JtQ29udHJvbCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuICFpc1JlcXVpcmVkRm9ybUNvbnRyb2woKTsgfQorICAgIHZpcnR1YWwgYm9v
bCBpc1JlcXVpcmVkRm9ybUNvbnRyb2woKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJv
b2wgcmVjYWxjV2lsbFZhbGlkYXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHJlcXVpcmVkQXR0cmlidXRlQ2hhbmdlZCgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCB1cGRhdGVU
eXBlKCk7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHN1YnRyZWVIYXNDaGFuZ2VkKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHN1YnRyZWVIYXNDaGFuZ2VkKCkgb3ZlcnJpZGU7CiAKICNp
ZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKICAgICB2b2lkIHJlc2V0TGlzdEF0dHJpYnV0ZVRh
cmdldE9ic2VydmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXln
ZW5FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmgKaW5k
ZXggNjc4MzE0Ny4uYzE2NWQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
S2V5Z2VuRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1l
bnQuaApAQCAtMzksMjEgKzM5LDIxIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTEtleWdl
bkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50
Kik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgYXJlQXV0aG9yU2hhZG93c0FsbG93ZWQoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBhcmVBdXRob3JTaGFk
b3dzQWxsb3dlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0
dWFsIGJvb2wgY2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0g
ICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwog
CiAgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpOwog
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIGJvb2wgaXNPcHRpb25hbEZvcm1Db250cm9sKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0YWJsZSgpIGNvbnN0IHsgcmV0
dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydExhYmVscygpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydExhYmVscygpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgdm9pZCByZXNldCgp
OwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTYXZlQW5kUmVzdG9yZUZvcm1Db250cm9sU3RhdGUo
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2F2ZUFuZFJlc3RvcmVG
b3JtQ29udHJvbFN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBIVE1MU2VsZWN0RWxlbWVu
dCogc2hhZG93U2VsZWN0KCkgY29uc3Q7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTElFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQu
aAppbmRleCBiYzdmYjRmLi5mMWVmM2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxMSUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQu
aApAQCAtMzUsMTEgKzM1LDExIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTExJRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgdm9pZCBw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29sbGVj
dFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25B
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGU7CiAKICAg
ICB2b2lkIHBhcnNlVmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJik7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMYWJlbEVsZW1lbnQuaAppbmRleCA1Y2Y4YmQ3Li4yMmRmZGZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaApAQCAtMzYsMjMgKzM2LDIzIEBAIHB1YmxpYzoK
ICAgICBMYWJlbGFibGVFbGVtZW50KiBjb250cm9sKCk7CiAgICAgSFRNTEZvcm1FbGVtZW50KiBm
b3JtKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tF
dmVudHMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xp
Y2tFdmVudHMoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBIVE1MTGFiZWxFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBib29sIGlzRm9j
dXNhYmxlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlzRm9jdXNhYmxlKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wg
c2VuZE1vdXNlRXZlbnRzKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0
aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBvdmVycmlkZTsKIAogICAgIC8vIE92ZXJyaWRkZW4g
dG8gdXBkYXRlIHRoZSBob3Zlci9hY3RpdmUgc3RhdGUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgY29u
dHJvbC4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wgPSB0cnVlLCBib29sIHBhdXNl
ID0gZmFsc2UpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRIb3ZlcmVkKGJvb2wgPSB0
cnVlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wgPSB0cnVlLCBi
b29sIHBhdXNlID0gZmFsc2UpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRIb3ZlcmVk
KGJvb2wgPSB0cnVlKSBvdmVycmlkZTsKIAogICAgIC8vIE92ZXJyaWRkZW4gdG8gZWl0aGVyIGNs
aWNrKCkgb3IgZm9jdXMoKSB0aGUgY29ycmVzcG9uZGluZyBjb250cm9sLgotICAgIHZpcnR1YWwg
dm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwg
dm9pZCBmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24p
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1Nl
bGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24pIG92ZXJyaWRlOwogfTsKIAogTk9ERV9UWVBFX0NBU1RT
KEhUTUxMYWJlbEVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxM
ZWdlbmRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmgK
aW5kZXggMWJmOGVkYS4uNTg4MGE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTGVnZW5kRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVs
ZW1lbnQuaApAQCAtNDAsOSArNDAsOSBAQCBwcml2YXRlOgogICAgIC8vIENvbnRyb2wgaW4gdGhl
IGxlZ2VuZCdzIGZpZWxkc2V0IHRoYXQgZ2V0cyBmb2N1cyBhbmQgYWNjZXNzIGtleS4KICAgICBI
VE1MRm9ybUNvbnRyb2xFbGVtZW50KiBhc3NvY2lhdGVkQ29udHJvbCgpOwogCi0gICAgdmlydHVh
bCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1
c0RpcmVjdGlvbikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBIVE1MRm9ybUVsZW1lbnQqIHZpcnR1
YWxGb3JtKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlv
bihib29sIHNlbmRNb3VzZUV2ZW50cykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGZvY3Vz
KGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlvbikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBIVE1MRm9ybUVsZW1lbnQqIHZpcnR1YWxGb3JtKCkgY29uc3Qgb3ZlcnJp
ZGU7CiB9OwogCiBOT0RFX1RZUEVfQ0FTVFMoSFRNTExlZ2VuZEVsZW1lbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTGlua0VsZW1lbnQuaAppbmRleCAyYTZiYTBmLi4xZTc4MTI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKQEAgLTcyLDE1ICs3MiwxNSBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIHZvaWQgZGlzcGF0Y2hQZW5kaW5nTG9hZEV2ZW50cygpOwogCiBwcml2YXRlOgot
ICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsK
IAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRMb2FkTGluaygpOwogICAgIHZvaWQgcHJvY2Vzcygp
OwogICAgIHN0YXRpYyB2b2lkIHByb2Nlc3NDYWxsYmFjayhOb2RlKik7CiAgICAgdm9pZCBjbGVh
clNoZWV0KCk7CiAKLSAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5z
ZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVt
b3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgSW5zZXJ0aW9u
Tm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7
CiAKICAgICAvLyBmcm9tIENhY2hlZFJlc291cmNlQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIHNl
dENTU1N0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBocmVmLCBjb25zdCBVUkwmIGJhc2VVUkwsIGNv
bnN0IFN0cmluZyYgY2hhcnNldCwgY29uc3QgQ2FjaGVkQ1NTU3R5bGVTaGVldCogc2hlZXQpOwpA
QCAtODgsMTQgKzg4LDE0IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUxvYWRl
ZFNoZWV0QW5kQWxsQ3JpdGljYWxTdWJyZXNvdXJjZXMoYm9vbCBlcnJvck9jY3VycmVkKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0KCk7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgbGlua0xvYWRlZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBsaW5rTG9hZGlu
Z0Vycm9yZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbGlua0xvYWRlZCgpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBsaW5rTG9hZGluZ0Vycm9yZWQoKSBvdmVycmlkZTsKIAog
ICAgIGJvb2wgaXNBbHRlcm5hdGUoKSBjb25zdCB7IHJldHVybiBtX2Rpc2FibGVkU3RhdGUgPT0g
VW5zZXQgJiYgbV9yZWxBdHRyaWJ1dGUubV9pc0FsdGVybmF0ZTsgfQogICAgIAogICAgIHZvaWQg
c2V0RGlzYWJsZWRTdGF0ZShib29sKTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0
ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNV
UkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6
CiAgICAgSFRNTExpbmtFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJv
b2wgY3JlYXRlZEJ5UGFyc2VyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1hcEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaAppbmRl
eCA1YzA5ODhiLi40ZGU1ZTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
YXBFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oCkBA
IC00NiwxMCArNDYsMTAgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MTWFwRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgdm9pZCBwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgSW5zZXJ0
aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlJikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50
byhDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9t
KENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKIAogICAgIEF0b21pY1N0cmluZyBtX25hbWU7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcnF1ZWVFbGVtZW50LmgKaW5kZXggYzJkYmUyMy4u
MWM0MDk1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5oCkBAIC01
Myw4ICs1Myw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTE1hcnF1ZWVFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBib29sIGlzUHJl
c2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9w
ZXJ0aWVzJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJp
ZGU7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKICAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVu
ZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAyZDBj
NWRiLi4xNzlhMTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAt
MTE3LDE3ICsxMTcsMTcgQEAgcHVibGljOgogICAgIE1lZGlhUGxheWVyKiBwbGF5ZXIoKSBjb25z
dCB7IHJldHVybiBtX3BsYXllci5nZXQoKTsgfQogCiAgICAgdmlydHVhbCBib29sIGlzVmlkZW8o
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBoYXNWaWRlbygpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGhhc0F1ZGlv
KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGhhc1ZpZGVvKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFzQXVkaW8oKSBjb25z
dCBvdmVycmlkZTsKIAogICAgIHZvaWQgcmV3aW5kKGRvdWJsZSB0aW1lRGVsdGEpOwotICAgIHZp
cnR1YWwgdm9pZCByZXR1cm5Ub1JlYWx0aW1lKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHJldHVyblRvUmVhbHRpbWUoKSBvdmVycmlkZTsKIAogICAgIC8vIEV2ZW50dWFsbHkgb3Zlcmxv
YWRlZCBpbiBIVE1MVmlkZW9FbGVtZW50Ci0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbHNj
cmVlbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9OworICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c0Z1bGxzY3JlZW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfTsK
IAogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1NhdmUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJv
b2wgc3VwcG9ydHNTY2FubmluZygpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0c1NjYW5uaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCiAgICAgUGxhdGZvcm1NZWRp
YSBwbGF0Zm9ybU1lZGlhKCkgY29uc3Q7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQpAQCAtMTY1LDM0ICsxNjUsMzQgQEAgcHVibGljOgogICAgIFN0cmluZyBwcmVsb2FkKCkgY29u
c3Q7ICAgIAogICAgIHZvaWQgc2V0UHJlbG9hZChjb25zdCBTdHJpbmcmKTsKIAotICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0IE9WRVJSSURFOworICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZvaWQgbG9hZCgpOwogICAgIFN0cmluZyBjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcm
IG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSA9IFN0cmluZygpLCBjb25zdCBVUkwm
ID0gVVJMKCkpIGNvbnN0OwogCiAvLyByZWFkeSBzdGF0ZQotICAgIHZpcnR1YWwgUmVhZHlTdGF0
ZSByZWFkeVN0YXRlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZWFkeVN0YXRlIHJl
YWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHNlZWtpbmcoKSBjb25zdDsKIAog
Ly8gcGxheWJhY2sgc3RhdGUKLSAgICB2aXJ0dWFsIGRvdWJsZSBjdXJyZW50VGltZSgpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJyZW50VGltZShkb3VibGUpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgZG91YmxlIGR1cmF0aW9uKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIHBhdXNlZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgZG91Ymxl
IGRlZmF1bHRQbGF5YmFja1JhdGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0RGVmYXVsdFBsYXliYWNrUmF0ZShkb3VibGUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgZG91
YmxlIHBsYXliYWNrUmF0ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRQ
bGF5YmFja1JhdGUoZG91YmxlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGRvdWJsZSBjdXJyZW50
VGltZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJyZW50VGltZShk
b3VibGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgZG91YmxlIGR1cmF0aW9uKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBib29sIHBhdXNlZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgZG91YmxlIGRlZmF1bHRQbGF5YmFja1JhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0RGVmYXVsdFBsYXliYWNrUmF0ZShkb3VibGUpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgZG91YmxlIHBsYXliYWNrUmF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBzZXRQbGF5YmFja1JhdGUoZG91YmxlKSBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0
ZVBsYXliYWNrUmF0ZSgpOwogICAgIGJvb2wgd2Via2l0UHJlc2VydmVzUGl0Y2goKSBjb25zdDsK
ICAgICB2b2lkIHNldFdlYmtpdFByZXNlcnZlc1BpdGNoKGJvb2wpOwotICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxUaW1lUmFuZ2VzPiBwbGF5ZWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8VGltZVJhbmdlcz4gc2Vla2FibGUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8VGltZVJhbmdlcz4gcGxheWVkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFRpbWVSYW5nZXM+IHNlZWthYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9v
bCBlbmRlZCgpIGNvbnN0OwogICAgIGJvb2wgYXV0b3BsYXkoKSBjb25zdDsKICAgICBib29sIGxv
b3AoKSBjb25zdDsgICAgCiAgICAgdm9pZCBzZXRMb29wKGJvb2wgYik7Ci0gICAgdmlydHVhbCB2
b2lkIHBsYXkoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcGF1c2UoKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgcGxheSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwYXVz
ZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgZmFzdFNlZWsoZG91YmxlKTsKIAogLy8gY2FwdGlvbnMK
QEAgLTIzNSwxNiArMjM1LDE2IEBAIHB1YmxpYzoKIC8vIGNvbnRyb2xzCiAgICAgYm9vbCBjb250
cm9scygpIGNvbnN0OwogICAgIHZvaWQgc2V0Q29udHJvbHMoYm9vbCk7Ci0gICAgdmlydHVhbCBk
b3VibGUgdm9sdW1lKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZvbHVt
ZShkb3VibGUsIEV4Y2VwdGlvbkNvZGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgbXV0
ZWQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TXV0ZWQoYm9vbCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBkb3VibGUgdm9sdW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHNldFZvbHVtZShkb3VibGUsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGJvb2wgbXV0ZWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0TXV0ZWQoYm9vbCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHRvZ2dsZVBsYXlTdGF0ZSgp
OwotICAgIHZpcnR1YWwgdm9pZCBiZWdpblNjcnViYmluZygpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBlbmRTY3J1YmJpbmcoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYmVnaW5T
Y3J1YmJpbmcoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5kU2NydWJiaW5nKCkgb3Zl
cnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCBib29sIGNhblBsYXkoKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIGJvb2wgY2FuUGxheSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgZG91Ymxl
IHBlcmNlbnRMb2FkZWQoKSBjb25zdDsKIApAQCAtMjcyLDE2ICsyNzIsMTYgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRUZXh0VHJhY2soSFRNTFRyYWNrRWxlbWVudCopOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVUZXh0VHJhY2soSFRNTFRyYWNrRWxlbWVudCopOwogCi0g
ICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyRGlkQWRkQXVkaW9UcmFjayhQYXNzUmVmUHRyPEF1
ZGlvVHJhY2tQcml2YXRlPikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVy
RGlkQWRkVGV4dFRyYWNrKFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllckRpZEFkZFZpZGVvVHJhY2soUGFzc1Jl
ZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZT4pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBtZWRp
YVBsYXllckRpZFJlbW92ZUF1ZGlvVHJhY2soUGFzc1JlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4p
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllckRpZFJlbW92ZVRleHRUcmFj
ayhQYXNzUmVmUHRyPEluYmFuZFRleHRUcmFja1ByaXZhdGU+KSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVWaWRlb1RyYWNrKFBhc3NSZWZQdHI8VmlkZW9U
cmFja1ByaXZhdGU+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJEaWRB
ZGRBdWRpb1RyYWNrKFBhc3NSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGU+KSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJhY2soUGFzc1JlZlB0cjxJbmJh
bmRUZXh0VHJhY2tQcml2YXRlPikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxh
eWVyRGlkQWRkVmlkZW9UcmFjayhQYXNzUmVmUHRyPFZpZGVvVHJhY2tQcml2YXRlPikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyRGlkUmVtb3ZlQXVkaW9UcmFjayhQYXNz
UmVmUHRyPEF1ZGlvVHJhY2tQcml2YXRlPikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG1l
ZGlhUGxheWVyRGlkUmVtb3ZlVGV4dFRyYWNrKFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZT4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllckRpZFJlbW92ZVZp
ZGVvVHJhY2soUGFzc1JlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZT4pIG92ZXJyaWRlOwogCiAjaWYg
VVNFKFBMQVRGT1JNX1RFWFRfVFJBQ0tfTUVOVSkKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0
ZWRUZXh0VHJhY2soUGFzc1JlZlB0cjxQbGF0Zm9ybVRleHRUcmFjaz4pIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgVmVjdG9yPFJlZlB0cjxQbGF0Zm9ybVRleHRUcmFjaz4+IHBsYXRmb3JtVGV4dFRy
YWNrcygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZFRleHRUcmFjayhQ
YXNzUmVmUHRyPFBsYXRmb3JtVGV4dFRyYWNrPikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBWZWN0
b3I8UmVmUHRyPFBsYXRmb3JtVGV4dFRyYWNrPj4gcGxhdGZvcm1UZXh0VHJhY2tzKCkgb3ZlcnJp
ZGU7CiAgICAgUGxhdGZvcm1UZXh0VHJhY2tNZW51SW50ZXJmYWNlKiBwbGF0Zm9ybVRleHRUcmFj
a01lbnUoKTsKICNlbmRpZgogCkBAIC0zMTUsMTkgKzMxNSwxOSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCB1cGRhdGVUZXh0VHJhY2tEaXNwbGF5KCk7CiAKICAgICAvLyBBdWRpb1RyYWNrQ2xpZW50Ci0g
ICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1RyYWNrKikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1Ry
YWNrKikgb3ZlcnJpZGU7CiAKICAgICAvLyBUZXh0VHJhY2tDbGllbnQKICAgICB2aXJ0dWFsIHZv
aWQgdGV4dFRyYWNrUmVhZHlTdGF0ZUNoYW5nZWQoVGV4dFRyYWNrKik7Ci0gICAgdmlydHVhbCB2
b2lkIHRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayopIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tD
dWVMaXN0KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMo
VGV4dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCopIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiwgUGFzc1JlZlB0cjxUZXh0VHJhY2tD
dWU+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRU
cmFjayosIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIHRleHRUcmFja0tpbmRDaGFuZ2VkKFRleHRUcmFjayopIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCB0ZXh0VHJhY2tNb2RlQ2hhbmdlZChUZXh0VHJhY2sqKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgdGV4dFRyYWNrQWRkQ3VlcyhUZXh0VHJhY2sqLCBjb25zdCBUZXh0VHJhY2tD
dWVMaXN0Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHRleHRUcmFja1JlbW92ZUN1ZXMo
VGV4dFRyYWNrKiwgY29uc3QgVGV4dFRyYWNrQ3VlTGlzdCopIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCB0ZXh0VHJhY2tBZGRDdWUoVGV4dFRyYWNrKiwgUGFzc1JlZlB0cjxUZXh0VHJhY2tD
dWU+KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFRyYWNrUmVtb3ZlQ3VlKFRleHRU
cmFjayosIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPikgb3ZlcnJpZGU7CiAKICAgICAvLyBWaWRl
b1RyYWNrQ2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIHZpZGVvVHJhY2tTZWxlY3RlZENoYW5nZWQo
VmlkZW9UcmFjayopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB2aWRlb1RyYWNrU2VsZWN0
ZWRDaGFuZ2VkKFZpZGVvVHJhY2sqKSBvdmVycmlkZTsKIAogICAgIGJvb2wgcmVxdWlyZXNUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0OwogICAgIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24oVGV4dFRyYWNrUmVwcmVzZW50YXRpb24qKTsKQEAgLTM0Nyw4ICszNDcsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCB3ZWJraXRTaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoKTsKICAgICBi
b29sIHdlYmtpdEN1cnJlbnRQbGF5YmFja1RhcmdldElzV2lyZWxlc3MoKSBjb25zdDsKIAotICAg
IHZpcnR1YWwgYm9vbCBhZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRU
eXBlLCBQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+LCBib29sIHVzZUNhcHR1cmUpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgYm9vbCByZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmlu
ZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyKiwgYm9vbCB1c2VDYXB0dXJlKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIGJvb2wgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPiwgYm9vbCB1c2VDYXB0dXJlKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciosIGJvb2wgdXNlQ2FwdHVyZSkgb3ZlcnJp
ZGU7CiAKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHdlYmtpdGN1cnJlbnRw
bGF5YmFja3RhcmdldGlzd2lyZWxlc3NjaGFuZ2VkKTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VW
RU5UX0xJU1RFTkVSKHdlYmtpdHBsYXliYWNrdGFyZ2V0YXZhaWxhYmlsaXR5Y2hhbmdlZCk7CkBA
IC0zNjMsMjEgKzM2MywyMSBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc1NpbmdsZVNlY3VyaXR5
T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gIW1fcGxheWVyIHx8IG1fcGxheWVyLT5oYXNTaW5nbGVT
ZWN1cml0eU9yaWdpbigpOyB9CiAgICAgCi0gICAgdmlydHVhbCBib29sIGlzRnVsbHNjcmVlbigp
IGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc0Z1bGxzY3JlZW4oKSBjb25zdCBv
dmVycmlkZTsKICAgICB2b2lkIHRvZ2dsZUZ1bGxzY3JlZW5TdGF0ZSgpOwotICAgIHZpcnR1YWwg
dm9pZCBlbnRlckZ1bGxzY3JlZW4oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJG
dWxsc2NyZWVuKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBleGl0RnVsbHNjcmVlbigpOwogCi0gICAg
dmlydHVhbCBib29sIGhhc0Nsb3NlZENhcHRpb25zKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBib29sIGNsb3NlZENhcHRpb25zVmlzaWJsZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBib29sIGhhc0Nsb3NlZENhcHRpb25zKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIGNsb3NlZENhcHRpb25zVmlzaWJsZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCkgb3ZlcnJpZGU7CiAKICAg
ICBNZWRpYUNvbnRyb2xzKiBtZWRpYUNvbnRyb2xzKCkgY29uc3Q7CiAKICAgICB2b2lkIHNvdXJj
ZVdhc1JlbW92ZWQoSFRNTFNvdXJjZUVsZW1lbnQqKTsKICAgICB2b2lkIHNvdXJjZVdhc0FkZGVk
KEhUTUxTb3VyY2VFbGVtZW50Kik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcHJpdmF0ZUJyb3dzaW5n
U3RhdGVEaWRDaGFuZ2UoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJpdmF0ZUJyb3dz
aW5nU3RhdGVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKIAogICAgIC8vIE1lZGlhIGNhY2hlIG1hbmFn
ZW1lbnQuCiAgICAgc3RhdGljIHZvaWQgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUoVmVjdG9yPFN0cmlu
Zz4mKTsKQEAgLTM4Nyw3ICszODcsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzUGxheWluZygp
IGNvbnN0IHsgcmV0dXJuIG1fcGxheWluZzsgfQogCi0gICAgdmlydHVhbCBib29sIGhhc1BlbmRp
bmdBY3Rpdml0eSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5n
QWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAg
TWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlKiBhdWRpb1NvdXJjZU5vZGUoKSB7IHJldHVybiBt
X2F1ZGlvU291cmNlTm9kZTsgfQpAQCAtNDA2LDcgKzQwNiw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldENvbnRyb2xsZXIoUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xsZXI+KTsKIAogI2lmICFQTEFU
Rk9STShJT1MpCi0gICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRz
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZl
bnRzKCkgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIHZvaWQgZW50ZXJlZE9yRXhpdGVkRnVsbHNj
cmVlbigpIHsgY29uZmlndXJlTWVkaWFDb250cm9scygpOyB9CkBAIC00MjgsMTkgKzQyOCwxOSBA
QCBwcm90ZWN0ZWQ6CiAgICAgSFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmLCBib29sKTsKICAgICB2aXJ0dWFsIH5IVE1MTWVkaWFFbGVtZW50KCk7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hQYXJzaW5n
Q2hpbGRyZW4oKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29u
c3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxBdHRh
Y2hSZW5kZXJlcnMoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQXR0YWNoUmVuZGVy
ZXJzKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCB3aWxsQXR0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGRp
ZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIGRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkg
b3ZlcnJpZGU7CiAKICAgICBlbnVtIERpc3BsYXlNb2RlIHsgVW5rbm93biwgTm9uZSwgUG9zdGVy
LCBQb3N0ZXJXYWl0aW5nRm9yVmlkZW8sIFZpZGVvIH07CiAgICAgRGlzcGxheU1vZGUgZGlzcGxh
eU1vZGUoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlNb2RlOyB9CiAgICAgdmlydHVhbCB2b2lk
IHNldERpc3BsYXlNb2RlKERpc3BsYXlNb2RlIG1vZGUpIHsgbV9kaXNwbGF5TW9kZSA9IG1vZGU7
IH0KICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgaXNNZWRpYUVsZW1lbnQoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzTWVkaWFFbGVtZW50KCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQog
ICAgIGJvb2wgaWdub3JlVHJhY2tEaXNwbGF5VXBkYXRlUmVxdWVzdHMoKSBjb25zdCB7IHJldHVy
biBtX2lnbm9yZVRyYWNrRGlzcGxheVVwZGF0ZSA+IDAgfHwgIW1fdGV4dFRyYWNrcyB8fCAhbV9j
dWVUcmVlLnNpemUoKTsgfQpAQCAtNDQ4LDQwICs0NDgsNDAgQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgZW5kSWdub3JpbmdUcmFja0Rpc3BsYXlVcGRhdGVSZXF1ZXN0cygpOwogI2VuZGlmCiAKLSAg
ICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikg
b3ZlcnJpZGU7CiAKICAgICBIVE1MTWVkaWFTZXNzaW9uJiBtZWRpYVNlc3Npb24oKSBjb25zdCB7
IHJldHVybiAqbV9tZWRpYVNlc3Npb247IH0KIAogcHJpdmF0ZToKICAgICB2b2lkIGNyZWF0ZU1l
ZGlhUGxheWVyKCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgYWx3YXlzQ3JlYXRlVXNlckFnZW50U2hh
ZG93Um9vdCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgYXJlQXV0aG9yU2hhZG93c0FsbG93ZWQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBhbHdheXNDcmVhdGVVc2VyQWdlbnRTaGFkb3dSb290KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBhcmVBdXRo
b3JTaGFkb3dzQWxsb3dlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAg
ICB2aXJ0dWFsIGJvb2wgaGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0
ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
ZEZyb20oQ29udGFpbmVyTm9kZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNh
bGNTdHlsZShTdHlsZTo6Q2hhbmdlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzQ3Vz
dG9tRm9jdXNMb2dpYygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0
c0ZvY3VzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzTW91c2VGb2N1c2Fi
bGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChj
b25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3Vs
ZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdl
KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50
KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQq
KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVu
dCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RvcEJlaW5nRnVsbHNjcmVlbkVs
ZW1lbnQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmVjb21lRnVsbHNjcmVlbkVs
ZW1lbnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0b3BCZWluZ0Z1bGxzY3Jl
ZW5FbGVtZW50KCkgb3ZlcnJpZGU7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QgZnVuY3Rpb25z
LgotICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHJlc3VtZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHN0b3Ao
KSBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgbWVkaWFWb2x1bWVEaWRDaGFuZ2Uo
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFWb2x1bWVEaWRDaGFuZ2UoKSBvdmVy
cmlkZTsKIAogI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQotICAgIHZpcnR1YWwgdm9p
ZCB2aXNpYmlsaXR5U3RhdGVDaGFuZ2VkKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHZp
c2liaWxpdHlTdGF0ZUNoYW5nZWQoKSBvdmVycmlkZTsKICNlbmRpZgogCiAgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZURpc3BsYXlTdGF0ZSgpIHsgfQpAQCAtNDg5LDczICs0ODksNzMgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpOwogICAg
IHZvaWQgc2V0TmV0d29ya1N0YXRlKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUpOwogCi0gICAg
dmlydHVhbCBEb2N1bWVudCogbWVkaWFQbGF5ZXJPd25pbmdEb2N1bWVudCgpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllck5ldHdvcmtTdGF0ZUNoYW5nZWQoTWVkaWFQbGF5
ZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJSZWFkeVN0YXRlQ2hh
bmdlZChNZWRpYVBsYXllciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXll
clRpbWVDaGFuZ2VkKE1lZGlhUGxheWVyKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG1l
ZGlhUGxheWVyVm9sdW1lQ2hhbmdlZChNZWRpYVBsYXllciopIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBtZWRpYVBsYXllck11dGVDaGFuZ2VkKE1lZGlhUGxheWVyKikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyRHVyYXRpb25DaGFuZ2VkKE1lZGlhUGxheWVyKikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyUmF0ZUNoYW5nZWQoTWVkaWFQ
bGF5ZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJQbGF5YmFja1N0
YXRlQ2hhbmdlZChNZWRpYVBsYXllciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBtZWRp
YVBsYXllclNhd1Vuc3VwcG9ydGVkVHJhY2tzKE1lZGlhUGxheWVyKikgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIG1lZGlhUGxheWVyUmVzb3VyY2VOb3RTdXBwb3J0ZWQoTWVkaWFQbGF5ZXIq
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJSZXBhaW50KE1lZGlhUGxh
eWVyKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyU2l6ZUNoYW5nZWQo
TWVkaWFQbGF5ZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIERvY3VtZW50KiBtZWRpYVBsYXll
ck93bmluZ0RvY3VtZW50KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVy
TmV0d29ya1N0YXRlQ2hhbmdlZChNZWRpYVBsYXllciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBtZWRpYVBsYXllclJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyKikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyVGltZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJWb2x1bWVDaGFuZ2VkKE1lZGlh
UGxheWVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyTXV0ZUNoYW5n
ZWQoTWVkaWFQbGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJE
dXJhdGlvbkNoYW5nZWQoTWVkaWFQbGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
bWVkaWFQbGF5ZXJSYXRlQ2hhbmdlZChNZWRpYVBsYXllciopIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBtZWRpYVBsYXllclBsYXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyKikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyU2F3VW5zdXBwb3J0ZWRUcmFja3Mo
TWVkaWFQbGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJSZXNv
dXJjZU5vdFN1cHBvcnRlZChNZWRpYVBsYXllciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBtZWRpYVBsYXllclJlcGFpbnQoTWVkaWFQbGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgbWVkaWFQbGF5ZXJTaXplQ2hhbmdlZChNZWRpYVBsYXllciopIG92ZXJyaWRlOwogI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5
ZXJSZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKE1lZGlhUGxheWVyKikgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIG1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQoTWVkaWFQbGF5ZXIq
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJSZW5kZXJpbmdDYW5CZUFj
Y2VsZXJhdGVkKE1lZGlhUGxheWVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG1lZGlh
UGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKSBvdmVycmlkZTsKICNlbmRp
ZgotICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQoTWVkaWFQbGF5ZXIq
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJFbmdpbmVVcGRhdGVkKE1l
ZGlhUGxheWVyKikgb3ZlcnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVy
Rmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKE1lZGlhUGxheWVyKikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIG1lZGlhUGxheWVyQ2hhcmFjdGVyaXN0aWNDaGFuZ2VkKE1lZGlhUGxheWVyKikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyRmlyc3RWaWRlb0ZyYW1lQXZh
aWxhYmxlKE1lZGlhUGxheWVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxh
eWVyQ2hhcmFjdGVyaXN0aWNDaGFuZ2VkKE1lZGlhUGxheWVyKikgb3ZlcnJpZGU7CiAKICNpZiBF
TkFCTEUoRU5DUllQVEVEX01FRElBKQotICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllcktleUFk
ZGVkKE1lZGlhUGxheWVyKiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYg
c2Vzc2lvbklkKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJLZXlFcnJv
cihNZWRpYVBsYXllciosIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIHNl
c3Npb25JZCwgTWVkaWFQbGF5ZXJDbGllbnQ6Ok1lZGlhS2V5RXJyb3JDb2RlLCB1bnNpZ25lZCBz
aG9ydCBzeXN0ZW1Db2RlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJL
ZXlNZXNzYWdlKE1lZGlhUGxheWVyKiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0
cmluZyYgc2Vzc2lvbklkLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBtZXNzYWdlLCB1bnNpZ25lZCBt
ZXNzYWdlTGVuZ3RoLCBjb25zdCBVUkwmIGRlZmF1bHRVUkwpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgYm9vbCBtZWRpYVBsYXllcktleU5lZWRlZChNZWRpYVBsYXllciosIGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwgY29uc3QgdW5zaWduZWQgY2hhciog
aW5pdERhdGEsIHVuc2lnbmVkIGluaXREYXRhTGVuZ3RoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgbWVkaWFQbGF5ZXJLZXlBZGRlZChNZWRpYVBsYXllciosIGNvbnN0IFN0cmluZyYga2V5
U3lzdGVtLCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIG1lZGlhUGxheWVyS2V5RXJyb3IoTWVkaWFQbGF5ZXIqLCBjb25zdCBTdHJpbmcmIGtleVN5
c3RlbSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIE1lZGlhUGxheWVyQ2xpZW50OjpNZWRpYUtl
eUVycm9yQ29kZSwgdW5zaWduZWQgc2hvcnQgc3lzdGVtQ29kZSkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIG1lZGlhUGxheWVyS2V5TWVzc2FnZShNZWRpYVBsYXllciosIGNvbnN0IFN0cmlu
ZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwgY29uc3QgdW5zaWduZWQgY2hh
ciogbWVzc2FnZSwgdW5zaWduZWQgbWVzc2FnZUxlbmd0aCwgY29uc3QgVVJMJiBkZWZhdWx0VVJM
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJLZXlOZWVkZWQoTWVkaWFQ
bGF5ZXIqLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQs
IGNvbnN0IHVuc2lnbmVkIGNoYXIqIGluaXREYXRhLCB1bnNpZ25lZCBpbml0RGF0YUxlbmd0aCkg
b3ZlcnJpZGU7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUFfVjIpCi0gICAg
dmlydHVhbCBib29sIG1lZGlhUGxheWVyS2V5TmVlZGVkKE1lZGlhUGxheWVyKiwgVWludDhBcnJh
eSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllcktleU5lZWRlZChNZWRp
YVBsYXllciosIFVpbnQ4QXJyYXkqKSBvdmVycmlkZTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKElP
U19BSVJQTEFZKQotICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllckN1cnJlbnRQbGF5YmFja1Rh
cmdldElzV2lyZWxlc3NDaGFuZ2VkKE1lZGlhUGxheWVyKikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIG1lZGlhUGxheWVyUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlDaGFuZ2VkKE1lZGlh
UGxheWVyKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyQ3VycmVudFBs
YXliYWNrVGFyZ2V0SXNXaXJlbGVzc0NoYW5nZWQoTWVkaWFQbGF5ZXIqKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUNoYW5n
ZWQoTWVkaWFQbGF5ZXIqKSBvdmVycmlkZTsKICAgICB2b2lkIGVucXVldWVQbGF5YmFja1Rhcmdl
dEF2YWlsYWJpbGl0eUNoYW5nZWRFdmVudCgpOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBtZWRpYVBsYXllclJlZmVycmVyKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJp
bmcgbWVkaWFQbGF5ZXJVc2VyQWdlbnQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIENP
UlNNb2RlIG1lZGlhUGxheWVyQ09SU01vZGUoKSBjb25zdCBPVkVSUklERTsKLQotICAgIHZpcnR1
YWwgYm9vbCBtZWRpYVBsYXllck5lZWRzU2l0ZVNwZWNpZmljSGFja3MoKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYVBsYXllckRvY3VtZW50SG9zdCgpIGNvbnN0IE9W
RVJSSURFOwotCi0gICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyRW50ZXJGdWxsc2NyZWVuKCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyRXhpdEZ1bGxzY3JlZW4oKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW4oKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW5QZXJt
aXR0ZWQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJJc1Zp
ZGVvKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBMYXlvdXRSZWN0IG1lZGlhUGxheWVy
Q29udGVudEJveFJlY3QoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQ
bGF5ZXJTZXRTaXplKGNvbnN0IEludFNpemUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
bWVkaWFQbGF5ZXJQYXVzZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXll
clBsYXkoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJQbGF0Zm9ybVZv
bHVtZUNvbmZpZ3VyYXRpb25SZXF1aXJlZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
Ym9vbCBtZWRpYVBsYXllcklzUGF1c2VkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIG1lZGlhUGxheWVySXNMb29waW5nKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBI
b3N0V2luZG93KiBtZWRpYVBsYXllckhvc3RXaW5kb3coKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IEludFJlY3QgbWVkaWFQbGF5ZXJXaW5kb3dDbGlwUmVjdCgpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIG1lZGlhUGxheWVyQ2FjaGVkUmVzb3VyY2VMb2FkZXIo
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYVBsYXllclJlZmVycmVyKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgbWVkaWFQbGF5ZXJVc2VyQWdlbnQoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIENPUlNNb2RlIG1lZGlhUGxheWVyQ09SU01vZGUo
KSBjb25zdCBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllck5lZWRzU2l0
ZVNwZWNpZmljSGFja3MoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBtZWRp
YVBsYXllckRvY3VtZW50SG9zdCgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lk
IG1lZGlhUGxheWVyRW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IG1lZGlhUGxheWVyRXhpdEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
bWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW4oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJv
b2wgbWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW5QZXJtaXR0ZWQoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJJc1ZpZGVvKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBMYXlvdXRSZWN0IG1lZGlhUGxheWVyQ29udGVudEJveFJlY3QoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJTZXRTaXplKGNvbnN0IEludFNpemUm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJQYXVzZSgpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclBsYXkoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgbWVkaWFQbGF5ZXJQbGF0Zm9ybVZvbHVtZUNvbmZpZ3VyYXRpb25SZXF1aXJlZCgp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllcklzUGF1c2VkKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIG1lZGlhUGxheWVySXNMb29waW5nKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBIb3N0V2luZG93KiBtZWRpYVBsYXllckhvc3RX
aW5kb3coKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEludFJlY3QgbWVkaWFQbGF5ZXJXaW5kb3dD
bGlwUmVjdCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIG1l
ZGlhUGxheWVyQ2FjaGVkUmVzb3VyY2VMb2FkZXIoKSBvdmVycmlkZTsKIAogI2lmIFBMQVRGT1JN
KFdJTikgJiYgVVNFKEFWRk9VTkRBVElPTikKLSAgICB2aXJ0dWFsIEdyYXBoaWNzRGV2aWNlQWRh
cHRlciogbWVkaWFQbGF5ZXJHcmFwaGljc0RldmljZUFkYXB0ZXIoY29uc3QgTWVkaWFQbGF5ZXIq
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEdyYXBoaWNzRGV2aWNlQWRhcHRlciogbWVk
aWFQbGF5ZXJHcmFwaGljc0RldmljZUFkYXB0ZXIoY29uc3QgTWVkaWFQbGF5ZXIqKSBjb25zdCBv
dmVycmlkZTsKICNlbmRpZgogCi0gICAgdmlydHVhbCBib29sIG1lZGlhUGxheWVyU2hvdWxkV2Fp
dEZvclJlc3BvbnNlVG9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllclNob3Vs
ZFdhaXRGb3JSZXNwb25zZVRvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgbG9hZFRpbWVyRmlyZWQoVGlt
ZXI8SFRNTE1lZGlhRWxlbWVudD4mKTsKICAgICB2b2lkIHByb2dyZXNzRXZlbnRUaW1lckZpcmVk
KFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+Jik7CkBAIC01OTcsNyArNTk3LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgQWZ0ZXJEZWxheSwKICAgICB9OwogICAgIHZvaWQgbWFya0NhcHRpb25BbmRTdWJ0
aXRsZVRyYWNrc0FzVW5jb25maWd1cmVkKFJlY29uZmlndXJlTW9kZSk7Ci0gICAgdmlydHVhbCB2
b2lkIGNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgY2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpIG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICAv
LyBUaGVzZSAiaW50ZXJuYWwiIGZ1bmN0aW9ucyBkbyBub3QgY2hlY2sgdXNlciBnZXN0dXJlIHJl
c3RyaWN0aW9ucy4KQEAgLTYzMiw3ICs2MzIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRQ
bGF5YmFja1JhdGVJbnRlcm5hbChkb3VibGUpOwogCi0gICAgdmlydHVhbCB2b2lkIG1lZGlhQ2Fu
U3RhcnQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFDYW5TdGFydCgpIG92ZXJy
aWRlOwogCiAgICAgdm9pZCBzZXRTaG91bGREZWxheUxvYWRFdmVudChib29sKTsKICAgICB2b2lk
IGludmFsaWRhdGVDYWNoZWRUaW1lKCk7CkBAIC02NTIsOCArNjUyLDggQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHVwZGF0ZU1lZGlhQ29udHJvbGxlcigpOwogICAgIGJvb2wgaXNCbG9ja2VkKCkgY29u
c3Q7CiAgICAgYm9vbCBpc0Jsb2NrZWRPbk1lZGlhQ29udHJvbGxlcigpIGNvbnN0OwotICAgIHZp
cnR1YWwgYm9vbCBoYXNDdXJyZW50U3JjKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gIW1fY3Vy
cmVudFNyYy5pc0VtcHR5KCk7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNMaXZlU3RyZWFtKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gbW92aWVMb2FkVHlwZSgpID09IE1lZGlhUGxheWVyOjpMaXZl
U3RyZWFtOyB9CisgICAgdmlydHVhbCBib29sIGhhc0N1cnJlbnRTcmMoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiAhbV9jdXJyZW50U3JjLmlzRW1wdHkoKTsgfQorICAgIHZpcnR1YWwgYm9vbCBp
c0xpdmVTdHJlYW0oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtb3ZpZUxvYWRUeXBlKCkgPT0g
TWVkaWFQbGF5ZXI6OkxpdmVTdHJlYW07IH0KICAgICBib29sIGlzQXV0b3BsYXlpbmcoKSBjb25z
dCB7IHJldHVybiBtX2F1dG9wbGF5aW5nOyB9CiAKICAgICB2b2lkIHVwZGF0ZVNsZWVwRGlzYWJs
aW5nKCk7CkBAIC02NjIsMTYgKzY2MiwxNiBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFC
TEUoTUVESUFfQ09OVFJPTFNfU0NSSVBUKQotICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRVc2VyQWdl
bnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
QWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290Kikgb3ZlcnJpZGU7CiAgICAgRE9NV3Jh
cHBlcldvcmxkJiBlbnN1cmVJc29sYXRlZFdvcmxkKCk7CiAgICAgYm9vbCBlbnN1cmVNZWRpYUNv
bnRyb2xzSW5qZWN0ZWRTY3JpcHQoKTsKICNlbmRpZgogCi0gICAgdmlydHVhbCBNZWRpYVNlc3Np
b246Ok1lZGlhVHlwZSBtZWRpYVR5cGUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIE1l
ZGlhU2Vzc2lvbjo6TWVkaWFUeXBlIG1lZGlhVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAg
dmlydHVhbCB2b2lkIGJlZ2luSW50ZXJydXB0aW9uKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIGVuZEludGVycnVwdGlvbihNZWRpYVNlc3Npb246OkVuZEludGVycnVwdGlvbkZsYWdzKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcGF1c2VQbGF5YmFjaygpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBiZWdpbkludGVycnVwdGlvbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBlbmRJbnRlcnJ1cHRpb24oTWVkaWFTZXNzaW9uOjpFbmRJbnRlcnJ1cHRpb25GbGFncykg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBhdXNlUGxheWJhY2soKSBvdmVycmlkZTsKIAog
ICAgIFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+IG1fbG9hZFRpbWVyOwogICAgIFRpbWVyPEhUTUxN
ZWRpYUVsZW1lbnQ+IG1fcHJvZ3Jlc3NFdmVudFRpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYVNlc3Npb24uaAppbmRleCBlMDNkM2UyLi4wNTk5ZGYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYVNlc3Npb24uaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGNsaWVudFdpbGxCZWdpblBsYXliYWNrKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGF1c2VTZXNz
aW9uKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhdXNlU2Vzc2lvbigpIG92ZXJyaWRl
OwogCiAgICAgYm9vbCBwbGF5YmFja1Blcm1pdHRlZChjb25zdCBIVE1MTWVkaWFFbGVtZW50Jikg
Y29uc3Q7CiAgICAgYm9vbCBkYXRhTG9hZGluZ1Blcm1pdHRlZChjb25zdCBIVE1MTWVkaWFFbGVt
ZW50JikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYVNv
dXJjZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFTb3VyY2UuaAppbmRleCA1YTE3
OWYzLi44OGJjZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYVNv
dXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhU291cmNlLmgKQEAgLTY1
LDcgKzY1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBtb25pdG9yU291cmNlQnVmZmVy
cygpID0gMDsKIAogICAgIC8vIFVSTFJlZ2lzdHJhYmxlCi0gICAgdmlydHVhbCBVUkxSZWdpc3Ry
eSYgcmVnaXN0cnkoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAqc19yZWdpc3RyeTsgfQorICAg
IHZpcnR1YWwgVVJMUmVnaXN0cnkmIHJlZ2lzdHJ5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
KnNfcmVnaXN0cnk7IH0KIAogcHJpdmF0ZToKICAgICBzdGF0aWMgVVJMUmVnaXN0cnkqIHNfcmVn
aXN0cnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaAppbmRleCA3ZTQwZGU5Li5j
YjI4ODg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgKQEAgLTM4LDggKzM4
LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MTWV0YUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFp
bmVyTm9kZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJO
b2RlJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHByb2Nlc3MoKTsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1ldGVyRWxlbWVudC5oCmluZGV4IDFhMzRmY2MuLjU5OThhYTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oCkBAIC02MCwyNCArNjAsMjQgQEAgcHVibGljOgog
ICAgIGRvdWJsZSB2YWx1ZVJhdGlvKCkgY29uc3Q7CiAgICAgR2F1Z2VSZWdpb24gZ2F1Z2VSZWdp
b24oKSBjb25zdDsKIAotICAgIHZpcnR1YWwgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGNhbkNv
bnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAog
cHJpdmF0ZToKICAgICBIVE1MTWV0ZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwogICAgIHZpcnR1YWwgfkhUTUxNZXRlckVsZW1lbnQoKTsKIAotICAgIHZpcnR1YWwg
Ym9vbCBhcmVBdXRob3JTaGFkb3dzQWxsb3dlZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgdmlydHVhbCBib29sIGFyZUF1dGhvclNoYWRvd3NBbGxvd2VkKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBSZW5kZXJNZXRlciogcmVuZGVyTWV0ZXIo
KSBjb25zdDsKIAotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0TGFiZWxzKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0TGFiZWxzKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCBib29sIHJlY2FsY1dp
bGxWYWxpZGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5
bGU+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJl
cihjb25zdCBOb2RlJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBj
aGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkaWRFbGVtZW50U3RhdGVDaGFu
Z2UoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dS
b290KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jv
b3QoU2hhZG93Um9vdCopIG92ZXJyaWRlOwogCiAgICAgUmVmUHRyPE1ldGVyVmFsdWVFbGVtZW50
PiBtX3ZhbHVlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1vZEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1vZEVsZW1lbnQuaAppbmRleCAzYzE4
MjMwLi4wYzlhMGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNb2RFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTW9kRWxlbWVudC5oCkBAIC0zNSw3
ICszNSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTE1vZEVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1
dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlz
VVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogfSAv
L25hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaAppbmRleCAyNzQ5
OGJjLi43NDA5NzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuaApAQCAt
NTMsOSArNTMsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZWNhbGN1bGF0ZUl0ZW1Db3VudCgp
OwogCi0gICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNQcmVz
ZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3Bl
cnRpZXMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlv
bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0
YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwogCiAgICAgaW50IG1fc3RhcnQ7CiAgICAg
dW5zaWduZWQgbV9pdGVtQ291bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPYmplY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50
LmgKaW5kZXggOTFiMjgyNC4uNGRlNmMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT2JqZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVj
dEVsZW1lbnQuaApAQCAtNTQsOSArNTQsOSBAQCBwdWJsaWM6CiAKICAgICAvLyBJbXBsZW1lbnRh
dGlvbnMgb2YgY29uc3RyYWludCB2YWxpZGF0aW9uIEFQSS4KICAgICAvLyBOb3RlIHRoYXQgdGhl
IG9iamVjdCBlbGVtZW50cyBhcmUgYWx3YXlzIGJhcnJlZCBmcm9tIGNvbnN0cmFpbnQgdmFsaWRh
dGlvbi4KLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZSgpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIFN0cmluZygpOyB9CisgICAgdmlydHVhbCBTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTdHJpbmcoKTsgfQogICAgIGJvb2wgY2hl
Y2tWYWxpZGl0eSgpIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q3VzdG9t
VmFsaWRpdHkoY29uc3QgU3RyaW5nJikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIHNl
dEN1c3RvbVZhbGlkaXR5KGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlIHsgfQogCiAgICAgdXNpbmcg
Tm9kZTo6cmVmOwogICAgIHVzaW5nIE5vZGU6OmRlcmVmOwpAQCAtNjgsMTkgKzY4LDE5IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTE9iamVjdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50KiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwog
Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50
YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRp
ZXMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
Ym9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJs
ZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBJbnNlcnRpb25Ob3Rp
ZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlJikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRh
aW5lck5vZGUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFp
bmVyTm9kZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGRpZE1vdmVUb05ld0RvY3Vt
ZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRp
ZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkgb3ZlcnJpZGU7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYp
IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJp
YnV0ZSYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBp
bWFnZVNvdXJjZVVSTCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0
dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgaW1hZ2VTb3VyY2VVUkwoKSBjb25zdCBvdmVycmlkZTsKIAogICAg
IHZpcnR1YWwgUmVuZGVyV2lkZ2V0KiByZW5kZXJXaWRnZXRGb3JKU0JpbmRpbmdzKCkgY29uc3Q7
CiAKQEAgLTEwMCw5ICsxMDAsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkZv
cm1Bc3NvY2lhdGVkRWxlbWVudCgpIHsgZGVyZWYoKTsgfQogICAgIHZpcnR1YWwgSFRNTEZvcm1F
bGVtZW50KiB2aXJ0dWFsRm9ybSgpIGNvbnN0OwogCi0gICAgdmlydHVhbCBGb3JtTmFtZWRJdGVt
KiBhc0Zvcm1OYW1lZEl0ZW0oKSBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0aGlzOyB9Ci0gICAg
dmlydHVhbCBIVE1MT2JqZWN0RWxlbWVudCYgYXNIVE1MRWxlbWVudCgpIE9WRVJSSURFIEZJTkFM
IHsgcmV0dXJuICp0aGlzOyB9Ci0gICAgdmlydHVhbCBjb25zdCBIVE1MT2JqZWN0RWxlbWVudCYg
YXNIVE1MRWxlbWVudCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuICp0aGlzOyB9Cisg
ICAgdmlydHVhbCBGb3JtTmFtZWRJdGVtKiBhc0Zvcm1OYW1lZEl0ZW0oKSBvdmVycmlkZSBGSU5B
TCB7IHJldHVybiB0aGlzOyB9CisgICAgdmlydHVhbCBIVE1MT2JqZWN0RWxlbWVudCYgYXNIVE1M
RWxlbWVudCgpIG92ZXJyaWRlIEZJTkFMIHsgcmV0dXJuICp0aGlzOyB9CisgICAgdmlydHVhbCBj
b25zdCBIVE1MT2JqZWN0RWxlbWVudCYgYXNIVE1MRWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlIEZJ
TkFMIHsgcmV0dXJuICp0aGlzOyB9CiAKICAgICBTdHJpbmcgbV9jbGFzc0lkOwogICAgIGJvb2wg
bV9kb2NOYW1lZEl0ZW0gOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T3B0R3JvdXBFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1l
bnQuaAppbmRleCBhOGU5YWQxLi5hNGY5MTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
cHRHcm91cEVsZW1lbnQuaApAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBIVE1MT3B0R3JvdXBFbGVt
ZW50IEZJTkFMIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxIVE1MT3B0R3JvdXBFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNEaXNhYmxlZEZvcm1Db250cm9sKCkg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlzRGlzYWJsZWRGb3JtQ29udHJvbCgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIEhUTUxTZWxlY3RFbGVtZW50KiBvd25lclNlbGVjdEVsZW1l
bnQoKSBjb25zdDsKICAgICAKICAgICBTdHJpbmcgZ3JvdXBMYWJlbFRleHQoKSBjb25zdDsKQEAg
LTQzLDIwICs0MywyMCBAQCBwcml2YXRlOgogICAgIEhUTUxPcHRHcm91cEVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGlzRm9jdXNh
YmxlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIE9WRVJSSURF
IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGV0YWNoUmVuZGVyZXJzKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBib29sIGlzRm9jdXNhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9taWNTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRl
ZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRGV0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY2hp
bGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIG92ZXJyaWRlOwogCi0gICAg
dmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50
cykgb3ZlcnJpZGU7CiAKICAgICAvLyA8b3B0Z3JvdXA+IG5ldmVyIGhhcyBhIHJlbmRlcmVyIHNv
IHdlIG1hbnVhbGx5IG1hbmFnZSBhIGNhY2hlZCBzdHlsZS4KICAgICB2b2lkIHVwZGF0ZU5vblJl
bmRlclN0eWxlKCk7Ci0gICAgdmlydHVhbCBSZW5kZXJTdHlsZSogbm9uUmVuZGVyZXJTdHlsZSgp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gY3Vz
dG9tU3R5bGVGb3JSZW5kZXJlcigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyU3R5bGUq
IG5vblJlbmRlcmVyU3R5bGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8UmVuZGVyU3R5bGU+IGN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoKSBvdmVycmlkZTsKIAogICAg
IHZvaWQgcmVjYWxjU2VsZWN0T3B0aW9ucygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRp
b25FbGVtZW50LmgKaW5kZXggYjE5ZjIxYS4uZjJjNTQyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9wdGlvbkVsZW1lbnQuaApAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAKICAgICBib29s
IG93bkVsZW1lbnREaXNhYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzYWJsZWQ7IH0KIAotICAg
IHZpcnR1YWwgYm9vbCBpc0Rpc2FibGVkRm9ybUNvbnRyb2woKSBjb25zdCBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNEaXNhYmxlZEZvcm1Db250cm9sKCkgY29uc3Qgb3ZlcnJpZGU7CiAK
ICAgICBTdHJpbmcgdGV4dEluZGVudGVkVG9SZXNwZWN0R3JvdXBMYWJlbCgpIGNvbnN0OwogCkBA
IC02OSwyNCArNjksMjQgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MT3B0aW9uRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgYm9vbCBp
c0ZvY3VzYWJsZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklz
TmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHdpbGxEZXRhY2hSZW5kZXJlcnMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wg
aXNGb2N1c2FibGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJ
c05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgdmlydHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCB3aWxsRGV0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFs
IEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUm
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZElu
dG8oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NLZXlB
Y3Rpb24oYm9vbCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2Vk
KGNvbnN0IENoaWxkQ2hhbmdlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVu
Q2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIG92ZXJyaWRlOwogCiAgICAgLy8gPG9wdGlvbj4g
bmV2ZXIgaGFzIGEgcmVuZGVyZXIgc28gd2UgbWFudWFsbHkgbWFuYWdlIGEgY2FjaGVkIHN0eWxl
LgogICAgIHZvaWQgdXBkYXRlTm9uUmVuZGVyU3R5bGUoKTsKLSAgICB2aXJ0dWFsIFJlbmRlclN0
eWxlKiBub25SZW5kZXJlclN0eWxlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQYXNz
UmVmUHRyPFJlbmRlclN0eWxlPiBjdXN0b21TdHlsZUZvclJlbmRlcmVyKCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBSZW5kZXJTdHlsZSogbm9uUmVuZGVyZXJTdHlsZSgpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gY3VzdG9tU3R5bGVGb3JSZW5k
ZXJlcigpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2FsY1N0eWxlKFN0eWxl
OjpDaGFuZ2UpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNhbGNTdHlsZShTdHls
ZTo6Q2hhbmdlKSBvdmVycmlkZTsKIAogICAgIFN0cmluZyBjb2xsZWN0T3B0aW9uSW5uZXJUZXh0
KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaAppbmRleCAw
NGJmMDVkLi45ZDdhMjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRw
dXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5o
CkBAIC01NCwxMiArNTQsMTIgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MT3V0cHV0RWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqKTsK
IAotICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29u
c3Q7CiAgICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0TGFiZWxzKCkgY29uc3QgT1ZFUlJJREUgeyBy
ZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5n
ZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0TGFiZWxzKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBD
aGlsZENoYW5nZSYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZXNldCgpOwogCiAgICAg
dm9pZCBzZXRUZXh0Q29udGVudEludGVybmFsKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYWdyYXBoRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUGFyYWdyYXBoRWxlbWVudC5oCmluZGV4IDZjOGQ5MmYuLmQ1Nzg5N2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhZ3JhcGhFbGVtZW50LmgKQEAgLTM1LDggKzM1
LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MUGFyYWdyYXBoRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRh
dGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNv
bGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUGFyYW1FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVs
ZW1lbnQuaAppbmRleCBjNDA5YmUwLi4yMzQ0NzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQYXJhbUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
YXJhbUVsZW1lbnQuaApAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhU
TUxQYXJhbUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2
aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVS
THMoTGlzdEhhc2hTZXQ8VVJMPiYpIGNvbnN0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UGx1Z0luRWxlbWVudC5oCmluZGV4IGFmODM5ODMuLmVjNjk5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKQEAgLTc3LDMxICs3NywzMSBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc0NhcHR1cmluZ01vdXNlRXZlbnRzKCkgY29uc3QgeyByZXR1cm4gbV9pc0NhcHR1cmlu
Z01vdXNlRXZlbnRzOyB9CiAgICAgdm9pZCBzZXRJc0NhcHR1cmluZ01vdXNlRXZlbnRzKGJvb2wg
Y2FwdHVyaW5nKSB7IG1faXNDYXB0dXJpbmdNb3VzZUV2ZW50cyA9IGNhcHR1cmluZzsgfQogCi0g
ICAgdmlydHVhbCBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuQ29udGFpblJhbmdlRW5kUG9p
bnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgYm9vbCBjYW5Qcm9j
ZXNzRHJhZygpIGNvbnN0OwogCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIHZpcnR1YWwgYm9vbCB3
aWxsUmVzcG9uZFRvTW91c2VNb3ZlRXZlbnRzKCkgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlTW92ZUV2ZW50cygpIG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKLSAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRU
b01vdXNlQ2xpY2tFdmVudHMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3Bv
bmRUb01vdXNlQ2xpY2tFdmVudHMoKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1Bs
dWdJbkltYWdlRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKIHByb3RlY3RlZDoK
ICAgICBIVE1MUGx1Z0luRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYpOwogCi0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hSZW5kZXJlcnMoKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVG
b3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21p
Y1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgd2lsbERldGFjaFJlbmRlcmVycygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBp
c1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxl
UHJvcGVydGllcyYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHVzZUZhbGxiYWNrQ29u
dGVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGVmYXVs
dEV2ZW50SGFuZGxlcihFdmVudCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0
RXZlbnRIYW5kbGVyKEV2ZW50Kikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVxdWVz
dE9iamVjdChjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZh
bHVlcyk7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290KikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBh
c3NSZWY8UmVuZGVyU3R5bGU+KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkVXNl
ckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290Kikgb3ZlcnJpZGU7CiAKICAgICAvLyBTdWJjbGFz
c2VzIHNob3VsZCB1c2UgZ3VhcmRlZERpc3BhdGNoQmVmb3JlTG9hZEV2ZW50IGluc3RlYWQgb2Yg
Y2FsbGluZyBkaXNwYXRjaEJlZm9yZUxvYWRFdmVudCBkaXJlY3RseS4KICAgICBib29sIGd1YXJk
ZWREaXNwYXRjaEJlZm9yZUxvYWRFdmVudChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7CkBAIC0x
MTQsMTQgKzExNCwxNCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBkaXNwYXRjaEJlZm9yZUxvYWRF
dmVudChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7IC8vIE5vdCBpbXBsZW1lbnRlZCwgZ2VuZXJh
dGVzIGEgY29tcGlsZSBlcnJvciBpZiBzdWJjbGFzc2VzIGNhbGwgdGhpcyBieSBtaXN0YWtlLgog
Ci0gICAgdmlydHVhbCBib29sIGFyZUF1dGhvclNoYWRvd3NBbGxvd2VkKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgYXJlQXV0aG9yU2hhZG93c0Fs
bG93ZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCBS
ZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldEZvckpTQmluZGluZ3MoKSBjb25zdCA9IDA7CiAKLSAg
ICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJv
b2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBib29sIGlzUGx1Z2luRWxlbWVudCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwor
ICAgIHZpcnR1YWwgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNQbHVnaW5FbGVtZW50KCkgY29uc3Qgb3Zl
cnJpZGUgRklOQUw7CiAKICAgICBSZWZQdHI8SlNDOjpCaW5kaW5nczo6SW5zdGFuY2U+IG1faW5z
dGFuY2U7CiAgICAgVGltZXI8SFRNTFBsdWdJbkVsZW1lbnQ+IG1fc3dhcFJlbmRlcmVyVGltZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oCmluZGV4IDI1
ZDIwNjYuLjdlOWU2ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJ
bkltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdl
RWxlbWVudC5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIFJlbmRlckVtYmVkZGVk
T2JqZWN0KiByZW5kZXJFbWJlZGRlZE9iamVjdCgpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lk
IHNldERpc3BsYXlTdGF0ZShEaXNwbGF5U3RhdGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBzZXREaXNwbGF5U3RhdGUoRGlzcGxheVN0YXRlKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVXaWRnZXQoUGx1Z2luQ3JlYXRpb25PcHRpb24pID0gMDsKIApAQCAtMTE2LDQy
ICsxMTYsNDIgQEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyB2b2lkIHVwZGF0ZVdpZGdldENhbGxi
YWNrKE5vZGUmLCB1bnNpZ25lZCk7CiAgICAgc3RhdGljIHZvaWQgc3RhcnRMb2FkaW5nSW1hZ2VD
YWxsYmFjayhOb2RlJiwgdW5zaWduZWQpOwogCi0gICAgdmlydHVhbCB2b2lkIGRpZEF0dGFjaFJl
bmRlcmVycygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGV0YWNoUmVuZGVyZXJz
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGV0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGU7CiAK
ICAgICBib29sIGFsbG93ZWRUb0xvYWRGcmFtZVVSTChjb25zdCBTdHJpbmcmIHVybCk7CiAgICAg
Ym9vbCB3b3VsZExvYWRBc05ldHNjYXBlUGx1Z2luKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBT
dHJpbmcmIHNlcnZpY2VUeXBlKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1
bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBk
aWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCogb2xkRG9jdW1lbnQpIG92ZXJyaWRlOwogCi0g
ICAgdmlydHVhbCB2b2lkIGRvY3VtZW50V2lsbFN1c3BlbmRGb3JQYWdlQ2FjaGUoKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFnZUNhY2hlKCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRvY3VtZW50V2lsbFN1c3BlbmRGb3JQYWdlQ2FjaGUo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFnZUNh
Y2hlKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZXN0YXJ0ZWRQbHVnaW4oKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiBtX2lzUmVzdGFydGVkUGx1Z2luOyB9Ci0gICAgdmlydHVh
bCBib29sIHJlcXVlc3RPYmplY3QoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgcGFyYW1WYWx1ZXMpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc1Jlc3RhcnRl
ZFBsdWdpbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faXNSZXN0YXJ0ZWRQbHVnaW47IH0K
KyAgICB2aXJ0dWFsIGJvb2wgcmVxdWVzdE9iamVjdChjb25zdCBTdHJpbmcmIHVybCwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcykgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAg
dmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBh
c3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlY2Fs
Y1N0eWxlKFN0eWxlOjpDaGFuZ2UpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHdpbGxSZWNhbGNTdHlsZShTdHlsZTo6Q2hhbmdl
KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290
KFNoYWRvd1Jvb3QqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkVXNlckFnZW50
U2hhZG93Um9vdChTaGFkb3dSb290Kikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZmlu
aXNoUGFyc2luZ0NoaWxkcmVuKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGZpbmlzaFBh
cnNpbmdDaGlsZHJlbigpIG92ZXJyaWRlOwogCiAgICAgdm9pZCB1cGRhdGVXaWRnZXRJZk5lY2Vz
c2FyeSgpOwogICAgIHZvaWQgc3RhcnRMb2FkaW5nSW1hZ2UoKTsKIAotICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVTbmFwc2hvdChQYXNzUmVmUHRyPEltYWdlPikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoUGVuZGluZ01vdXNlQ2xpY2soKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlU25hcHNob3QoUGFzc1JlZlB0cjxJbWFnZT4pIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaFBlbmRpbmdNb3VzZUNsaWNrKCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBzaW11bGF0ZWRNb3VzZUNsaWNrVGltZXJGaXJlZChEZWZlcnJhYmxlT25lU2hvdFRpbWVyPEhU
TUxQbHVnSW5JbWFnZUVsZW1lbnQ+Jik7CiAKICAgICB2b2lkIHJlc3RhcnRTaW1pbGFyUGx1Z0lu
cygpOwogCi0gICAgdmlydHVhbCBib29sIGlzUGx1Z0luSW1hZ2VFbGVtZW50KCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1BsdWdJbkltYWdlRWxl
bWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZvaWQgcmVtb3Zl
U25hcHNob3RUaW1lckZpcmVkKFRpbWVyPEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ+Jik7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kikgb3ZlcnJpZGU7CiAKICAg
ICBib29sIG1fbmVlZHNXaWRnZXRVcGRhdGU7CiAgICAgYm9vbCBtX3Nob3VsZFByZWZlclBsdWdJ
bnNGb3JJbWFnZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcmVFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmgKaW5kZXggYzczODlk
MS4uOTM4NzUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJlRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuaApAQCAtMzQsOCAr
MzQsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxQcmVFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9u
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29sbGVj
dFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQcm9ncmVzc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNz
RWxlbWVudC5oCmluZGV4IDhmMWMwNWMuLjlmZmIxODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFByb2dyZXNzRWxlbWVudC5oCkBAIC00NCwyNiArNDQsMjYgQEAgcHVibGljOgogCiAgICAg
ZG91YmxlIHBvc2l0aW9uKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuQ29udGFpblJh
bmdlRW5kUG9pbnQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1
YWwgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IGZhbHNlOyB9CiAKIHByaXZhdGU6CiAgICAgSFRNTFByb2dyZXNzRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAgICB2aXJ0dWFsIH5IVE1MUHJvZ3Jlc3NFbGVtZW50
KCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgYXJlQXV0aG9yU2hhZG93c0FsbG93ZWQoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBlYXJJ
bmRldGVybWluYXRlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHN1cHBvcnRM
YWJlbHMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29s
IGFyZUF1dGhvclNoYWRvd3NBbGxvd2VkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwZWFySW5kZXRlcm1pbmF0ZSgpIGNvbnN0IG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0TGFiZWxzKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgUmVuZGVyUHJvZ3Jlc3MqIHJlbmRlclByb2dyZXNzKCkgY29uc3Q7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkaWRF
bGVtZW50U3RhdGVDaGFuZ2UoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkVXNlckFnZW50U2hh
ZG93Um9vdChTaGFkb3dSb290KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZFVz
ZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCopIG92ZXJyaWRlOwogICAgIGJvb2wgaXNEZXRl
cm1pbmF0ZSgpIGNvbnN0OwogCiAgICAgUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQqIG1fdmFsdWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVudC5oCmluZGV4IDM2ODRiOWUuLjdhYWRhNmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVudC5oCkBAIC0zNiw4ICszNiw4IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTFF1b3RlRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKICAgICAKLSAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlv
blJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhD
b250YWluZXJOb2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRl
KGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogfSAvL25hbWVzcGFjZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IDY2MTZmOGUuLmExNzI2
OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKQEAgLTQ0LDExICs0
NCwxMSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxTY3JpcHRFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNlciwgYm9vbCBh
bHJlYWR5U3RhcnRlZCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9k
ZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hp
bGRDaGFuZ2UmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVy
Tm9kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3Qg
Q2hpbGRDaGFuZ2UmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0
ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNV
UkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0
dWFsIHZvaWQgYWRkU3VicmVzb3VyY2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PFVSTD4mKSBj
b25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IDIyMTQ5
Y2UuLjlhN2E2NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKQEAg
LTQ2LDggKzQ2LDggQEAgcHVibGljOgogICAgIHZvaWQgb3B0aW9uU2VsZWN0ZWRCeVVzZXIoaW50
IGluZGV4LCBib29sIGRpc3BhdGNoQ2hhbmdlRXZlbnQsIGJvb2wgYWxsb3dNdWx0aXBsZVNlbGVj
dGlvbiA9IGZhbHNlKTsKIAogICAgIC8vIEZvciBWYWxpZGl0eVN0YXRlCi0gICAgdmlydHVhbCBT
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2UoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJv
b2wgdmFsdWVNaXNzaW5nKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBTdHJpbmcgdmFs
aWRhdGlvbk1lc3NhZ2UoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgdmFsdWVN
aXNzaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsK
IApAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBWZWN0b3I8SFRNTEVsZW1l
bnQqPiYgbGlzdEl0ZW1zKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0
aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYWNj
ZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBvdmVycmlkZTsKICAgICB2b2lkIGFj
Y2Vzc0tleVNldFNlbGVjdGVkSW5kZXgoaW50KTsKIAogICAgIHZvaWQgc2V0TXVsdGlwbGUoYm9v
bCk7CkBAIC05NSw3ICs5NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxpc3RCb3hTZWxlY3RJdGVt
KGludCBsaXN0SW5kZXgsIGJvb2wgYWxsb3dNdWx0aXBseVNlbGVjdGlvbnMsIGJvb2wgc2hpZnQs
IGJvb2wgZmlyZU9uQ2hhbmdlTm93ID0gdHJ1ZSk7CiAKICNpZiBQTEFURk9STShJT1MpCi0gICAg
dmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgb3ZlcnJpZGU7
CiAjZW5kaWYKIAogICAgIGJvb2wgY2FuU2VsZWN0QWxsKCkgY29uc3Q7CkBAIC0xMTcsMzYgKzEx
NywzNiBAQCBwcm90ZWN0ZWQ6CiAgICAgSFRNTFNlbGVjdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50Kik7CiAKIHByaXZhdGU6Ci0gICAgdmly
dHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25z
dCBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShL
ZXlib2FyZEV2ZW50KikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzTW91c2VG
b2N1c2FibGUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNLZXlib2FyZEZv
Y3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaEZvY3VzRXZlbnQoUGFzc1JlZlB0cjxFbGVtZW50PiBvbGRGb2N1c2VkRWxlbWVudCwg
Rm9jdXNEaXJlY3Rpb24pIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aEJsdXJFdmVudChQYXNzUmVmUHRyPEVsZW1lbnQ+IG5ld0ZvY3VzZWRFbGVtZW50KSBPVkVSUklE
RSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hGb2N1c0V2ZW50KFBhc3NSZWZQdHI8
RWxlbWVudD4gb2xkRm9jdXNlZEVsZW1lbnQsIEZvY3VzRGlyZWN0aW9uKSBvdmVycmlkZSBGSU5B
TDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hCbHVyRXZlbnQoUGFzc1JlZlB0cjxFbGVtZW50
PiBuZXdGb2N1c2VkRWxlbWVudCkgb3ZlcnJpZGUgRklOQUw7CiAgICAgCi0gICAgdmlydHVhbCBi
b29sIGNhblN0YXJ0U2VsZWN0aW9uKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgY2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkgY29uc3Qg
T1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0TGFiZWxz
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0Vu
dW1lcmF0YWJsZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgc3VwcG9ydExhYmVscygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAot
ICAgIHZpcnR1YWwgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25z
dCBGb3JtQ29udHJvbFN0YXRlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBGb3JtQ29udHJvbFN0
YXRlIHNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKSBvdmVy
cmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlz
UHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNl
bnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7CiAK
LSAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpIG92ZXJyaWRl
OwogCi0gICAgdmlydHVhbCB2b2lkIHJlc2V0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHJlc2V0KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxl
cihFdmVudCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVy
KEV2ZW50Kikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRpc3BhdGNoQ2hhbmdlRXZlbnRGb3JNZW51
TGlzdCgpOwogCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2FsY1N0eWxlKFN0eWxlOjpDaGFuZ2Up
IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNhbGNTdHlsZShTdHlsZTo6
Q2hhbmdlKSBvdmVycmlkZSBGSU5BTDsKIAogICAgIHZvaWQgcmVjYWxjTGlzdEl0ZW1zKGJvb2wg
dXBkYXRlU2VsZWN0ZWRTdGF0ZXMgPSB0cnVlKSBjb25zdDsKIApAQCAtMTU0LDEwICsxNTQsMTAg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHR5cGVBaGVhZEZpbmQoS2V5Ym9hcmRFdmVudCopOwogICAg
IHZvaWQgc2F2ZUxhc3RTZWxlY3Rpb24oKTsKIAotICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZp
Y2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFp
bmVyTm9kZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGlzT3B0aW9uYWxGb3JtQ29u
dHJvbCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuICFpc1JlcXVpcmVkRm9ybUNvbnRyb2woKTsg
fQotICAgIHZpcnR1YWwgYm9vbCBpc1JlcXVpcmVkRm9ybUNvbnRyb2woKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNPcHRpb25hbEZvcm1Db250cm9sKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gIWlzUmVxdWlyZWRGb3JtQ29udHJvbCgpOyB9CisgICAgdmlydHVhbCBib29s
IGlzUmVxdWlyZWRGb3JtQ29udHJvbCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgYm9vbCBoYXNQ
bGFjZWhvbGRlckxhYmVsT3B0aW9uKCkgY29uc3Q7CiAKQEAgLTE4OSwxMyArMTg5LDEzIEBAIHBy
aXZhdGU6CiAgICAgaW50IGxhc3RTZWxlY3RhYmxlTGlzdEluZGV4KCkgY29uc3Q7CiAgICAgaW50
IG5leHRTZWxlY3RhYmxlTGlzdEluZGV4UGFnZUF3YXkoaW50IHN0YXJ0SW5kZXgsIFNraXBEaXJl
Y3Rpb24pIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBD
aGlsZENoYW5nZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBhcmVBdXRob3JTaGFkb3dz
QWxsb3dlZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2
b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgYm9vbCBhcmVBdXRob3JTaGFkb3dzQWxsb3dlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIGZhbHNlOyB9CiAKICAgICAvLyBUeXBlQWhlYWREYXRhU291cmNlIGZ1bmN0aW9ucy4KLSAg
ICB2aXJ0dWFsIGludCBpbmRleE9mU2VsZWN0ZWRPcHRpb24oKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGludCBvcHRpb25Db3VudCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
U3RyaW5nIG9wdGlvbkF0SW5kZXgoaW50IGluZGV4KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIGludCBpbmRleE9mU2VsZWN0ZWRPcHRpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGludCBvcHRpb25Db3VudCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5n
IG9wdGlvbkF0SW5kZXgoaW50IGluZGV4KSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIG1fbGlz
dEl0ZW1zIGNvbnRhaW5zIEhUTUxPcHRpb25FbGVtZW50LCBIVE1MT3B0R3JvdXBFbGVtZW50LCBh
bmQgSFRNTEhSRWxlbWVudCBvYmplY3RzLgogICAgIG11dGFibGUgVmVjdG9yPEhUTUxFbGVtZW50
Kj4gbV9saXN0SXRlbXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3Vy
Y2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgKaW5k
ZXggYTY1YTBiZi4uYmYwNGQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U291cmNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1l
bnQuaApAQCAtNDgsOSArNDgsOSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxTb3VyY2VF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIAotICAgIHZpcnR1
YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9k
ZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2Rl
JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJp
YnV0ZSYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9u
UmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgdm9pZCBlcnJvckV2ZW50VGltZXJGaXJlZChUaW1lcjxIVE1MU291cmNlRWxlbWVudD4m
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaAppbmRleCBlYmZiZGIzLi5j
N2Y2MDEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaApAQCAtNTEsMTAg
KzUxLDEwIEBAIHByaXZhdGU6CiAgICAgSFRNTFN0eWxlRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CiAKICAgICAvLyBvdmVybG9h
ZCBmcm9tIEhUTUxFbGVtZW50Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5v
ZGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9k
ZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hp
bGRDaGFuZ2UmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVy
Tm9kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJO
b2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBD
aGlsZENoYW5nZSYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGZpbmlzaFBhcnNpbmdD
aGlsZHJlbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuaAppbmRl
eCBmMzk4MDU2Li5hMTY4ZTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
dW1tYXJ5RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVt
ZW50LmgKQEAgLTMxLDE5ICszMSwxOSBAQCBjbGFzcyBIVE1MU3VtbWFyeUVsZW1lbnQgRklOQUwg
OiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhU
TUxTdW1tYXJ5RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OwogICAgIGJvb2wgaXNNYWluU3VtbWFyeSgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCB3aWxs
UmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCB3
aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAg
IEhUTUxTdW1tYXJ5RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAot
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNoaWxk
U2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNz
UmVmPFJlbmRlclN0eWxlPikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxk
Q3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlk
QWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290KikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCopIG92ZXJyaWRlOwog
ICAgIEhUTUxEZXRhaWxzRWxlbWVudCogZGV0YWlsc0VsZW1lbnQoKSBjb25zdDsKIAotICAgIGJv
b2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IE9WRVJSSURFOworICAgIGJvb2wgc3VwcG9ydHNGb2N1
cygpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogTk9ERV9UWVBFX0NBU1RTKEhUTUxTdW1tYXJ5RWxl
bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaApp
bmRleCBiMTJiZGMxLi43YTg3MzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZUNhcHRpb25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVDYXB0aW9uRWxlbWVudC5oCkBAIC0zNyw4ICszNyw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAg
ICAgSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5
bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRp
b25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11
dGFibGVTdHlsZVByb3BlcnRpZXMmKSBvdmVycmlkZTsKIH07CiAKIE5PREVfVFlQRV9DQVNUUyhI
VE1MVGFibGVDYXB0aW9uRWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQuaAppbmRleCA1YjYyMDE3Li5mZGJkYzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVDZWxsRWxlbWVudC5oCkBAIC01MiwxNCArNTIsMTQgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBIVE1MVGFibGVDZWxsRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKIAotICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29s
IGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBjb25zdCBTdHlsZVByb3BlcnRp
ZXMqIGFkZGl0aW9uYWxQcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9u
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBjb25zdCBTdHlsZVByb3BlcnRpZXMqIGFkZGl0aW9uYWxQ
cmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29s
IGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCBvdmVycmlk
ZTsKIAotICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhh
c2hTZXQ8VVJMPiYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNv
dXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8VVJMPiYpIGNvbnN0IG92ZXJyaWRlOwogfTsK
IAogdm9pZCBpc0hUTUxUYWJsZUNlbGxFbGVtZW50KGNvbnN0IEhUTUxUYWJsZUNlbGxFbGVtZW50
Jik7IC8vIENhdGNoIHVubmVjZXNzYXJ5IHJ1bnRpbWUgY2hlY2sgb2YgdHlwZSBrbm93biBhdCBj
b21waWxlIHRpbWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNv
bEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5oCmlu
ZGV4IDhkMTExOGYuLjc2NTQ4YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlQ29sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29s
RWxlbWVudC5oCkBAIC00MiwxMCArNDIsMTAgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1M
VGFibGVDb2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNl
bnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVy
dGllcyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBhZGRp
dGlvbmFsUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0
cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBhZGRpdGlvbmFsUHJlc2VudGF0
aW9uQXR0cmlidXRlU3R5bGUoKSBvdmVycmlkZTsKIAogICAgIGludCBtX3NwYW47CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaAppbmRleCA5MzNhMmQyLi4yYWIzODM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaApAQCAtNzEsMTUgKzcxLDE1IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTFRhYmxlRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0
aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzVVJM
QXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3Ry
aW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0
IG92ZXJyaWRlOwogCiAgICAgLy8gVXNlZCB0byBvYnRhaW4gZWl0aGVyIGEgc29saWQgb3Igb3V0
c2V0IGJvcmRlciBkZWNsIGFuZCB0byBkZWFsIHdpdGggdGhlIGZyYW1lIGFuZCBydWxlcyBhdHRy
aWJ1dGVzLgotICAgIHZpcnR1YWwgY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBhZGRpdGlvbmFsUHJl
c2VudGF0aW9uQXR0cmlidXRlU3R5bGUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGNvbnN0IFN0
eWxlUHJvcGVydGllcyogYWRkaXRpb25hbFByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCkgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkU3VicmVzb3VyY2VBdHRyaWJ1dGVVUkxzKExp
c3RIYXNoU2V0PFVSTD4mKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkU3Vi
cmVzb3VyY2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PFVSTD4mKSBjb25zdCBvdmVycmlkZTsK
IAogICAgIGVudW0gVGFibGVSdWxlcyB7IFVuc2V0UnVsZXMsIE5vbmVSdWxlcywgR3JvdXBzUnVs
ZXMsIFJvd3NSdWxlcywgQ29sc1J1bGVzLCBBbGxSdWxlcyB9OwogICAgIGVudW0gQ2VsbEJvcmRl
cnMgeyBOb0JvcmRlcnMsIFNvbGlkQm9yZGVycywgSW5zZXRCb3JkZXJzLCBTb2xpZEJvcmRlcnND
b2xzT25seSwgU29saWRCb3JkZXJzUm93c09ubHkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlUGFydEVsZW1lbnQuaAppbmRleCBhYjhkNzgxLi5lZTM2ZWZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVBhcnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVQYXJ0RWxlbWVudC5oCkBAIC0zOSw4ICszOSw4IEBAIHByb3Rl
Y3RlZDoKICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0
eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiAKICAgICBI
VE1MVGFibGVFbGVtZW50KiBmaW5kUGFyZW50VGFibGUoKSBjb25zdDsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmgKaW5kZXggZTAxMWY1Yi4uODll
OGU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dzQ29sbGVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24u
aApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEhUTUxU
YWJsZVJvd3NDb2xsZWN0aW9uKEhUTUxUYWJsZUVsZW1lbnQmKTsKIAotICAgIHZpcnR1YWwgRWxl
bWVudCogY3VzdG9tRWxlbWVudEFmdGVyKEVsZW1lbnQqKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIEVsZW1lbnQqIGN1c3RvbUVsZW1lbnRBZnRlcihFbGVtZW50KikgY29uc3Qgb3ZlcnJp
ZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVTZWN0aW9uRWxlbWVudC5oCmluZGV4IGQ1NjE3MmYuLmY4ZmIyMjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgKQEAgLTU3LDcgKzU3LDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MVGFibGVTZWN0aW9uRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBjb25zdCBTdHls
ZVByb3BlcnRpZXMqIGFkZGl0aW9uYWxQcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBhZGRpdGlvbmFsUHJlc2Vu
dGF0aW9uQXR0cmlidXRlU3R5bGUoKSBvdmVycmlkZTsKIH07CiAKIGlubGluZSBib29sIGlzSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQoY29uc3QgTm9kZSYgbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGVtcGxhdGVFbGVtZW50LmgKaW5kZXggNjE5ZjM1Mi4uZTQxNjYzNTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRlbXBsYXRlRWxlbWVudC5oCkBAIC01MCw4ICs1MCw4IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTFRlbXBsYXRlRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxOb2RlPiBjbG9uZU5v
ZGUoYm9vbCBkZWVwKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkTW92ZVRvTmV3RG9j
dW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8Tm9kZT4gY2xvbmVOb2RlKGJvb2wgZGVlcCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkgb3ZlcnJpZGU7
CiAKICAgICBtdXRhYmxlIFJlZlB0cjxUZW1wbGF0ZUNvbnRlbnREb2N1bWVudEZyYWdtZW50PiBt
X2NvbnRlbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaApp
bmRleCBmOGU5MmVjLi44NzlkYjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJl
YUVsZW1lbnQuaApAQCAtNDAsMzUgKzQwLDM1IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgc2hvdWxk
V3JhcFRleHQoKSBjb25zdCB7IHJldHVybiBtX3dyYXAgIT0gTm9XcmFwOyB9CiAKLSAgICB2aXJ0
dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIHZh
bHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmKTsK
ICAgICBTdHJpbmcgZGVmYXVsdFZhbHVlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREZWZhdWx0VmFs
dWUoY29uc3QgU3RyaW5nJik7CiAgICAgaW50IHRleHRMZW5ndGgoKSBjb25zdCB7IHJldHVybiB2
YWx1ZSgpLmxlbmd0aCgpOyB9Ci0gICAgdmlydHVhbCBpbnQgbWF4TGVuZ3RoKCkgY29uc3QgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBpbnQgbWF4TGVuZ3RoKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
dm9pZCBzZXRNYXhMZW5ndGgoaW50LCBFeGNlcHRpb25Db2RlJik7CiAgICAgLy8gRm9yIFZhbGlk
aXR5U3RhdGUKLSAgICB2aXJ0dWFsIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZSgpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCB2YWx1ZU1pc3NpbmcoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgdG9vTG9uZygpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwg
U3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBi
b29sIHZhbHVlTWlzc2luZygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCB0b29M
b25nKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1ZhbGlkVmFsdWUoY29uc3QgU3RyaW5n
JikgY29uc3Q7CiAgICAgCi0gICAgdmlydHVhbCBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQq
IGlubmVyVGV4dEVsZW1lbnQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFRleHRDb250
cm9sSW5uZXJUZXh0RWxlbWVudCogaW5uZXJUZXh0RWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgdm9pZCByZW5kZXJlcldpbGxCZURlc3Ryb3llZCgpOwogCiAgICAgdm9pZCBzZXRDb2xz
KGludCk7CiAgICAgdm9pZCBzZXRSb3dzKGludCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgd2lsbFJl
c3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgd2ls
bFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBI
VE1MVGV4dEFyZWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxG
b3JtRWxlbWVudCopOwogCiAgICAgZW51bSBXcmFwTWV0aG9kIHsgTm9XcmFwLCBTb2Z0V3JhcCwg
SGFyZFdyYXAgfTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290
KFNoYWRvd1Jvb3QqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgYXJlQXV0aG9yU2hhZG93
c0FsbG93ZWQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
dm9pZCBkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QqKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGJvb2wgYXJlQXV0aG9yU2hhZG93c0FsbG93ZWQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBmYWxzZTsgfQogCiAgICAgdm9pZCBoYW5kbGVCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVu
dChCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudCopIGNvbnN0OwogICAgIHN0YXRpYyBTdHJpbmcgc2Fu
aXRpemVVc2VySW5wdXRWYWx1ZShjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBtYXhMZW5ndGgpOwpA
QCAtNzYsNDUgKzc2LDQ1IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXROb25EaXJ0eVZhbHVlKGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2V0VmFsdWVDb21tb24oY29uc3QgU3RyaW5nJik7CiAK
LSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNQbGFjZWhvbGRlcigpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIEhUTUxFbGVtZW50KiBwbGFjZWhvbGRlckVsZW1l
bnQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUGxhY2Vob2xkZXJU
ZXh0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzRW1wdHlWYWx1ZSgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIHZhbHVlKCkuaXNFbXB0eSgpOyB9CisgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzUGxhY2Vob2xkZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAg
dmlydHVhbCBIVE1MRWxlbWVudCogcGxhY2Vob2xkZXJFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBpc0VtcHR5VmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB2YWx1
ZSgpLmlzRW1wdHkoKTsgfQogCi0gICAgdmlydHVhbCBib29sIGlzT3B0aW9uYWxGb3JtQ29udHJv
bCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuICFpc1JlcXVpcmVkRm9ybUNvbnRyb2woKTsgfQot
ICAgIHZpcnR1YWwgYm9vbCBpc1JlcXVpcmVkRm9ybUNvbnRyb2woKSBjb25zdCBPVkVSUklERSB7
IHJldHVybiBpc1JlcXVpcmVkKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNPcHRpb25hbEZvcm1D
b250cm9sKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIWlzUmVxdWlyZWRGb3JtQ29udHJvbCgp
OyB9CisgICAgdmlydHVhbCBib29sIGlzUmVxdWlyZWRGb3JtQ29udHJvbCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGlzUmVxdWlyZWQoKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGRlZmF1bHRF
dmVudEhhbmRsZXIoRXZlbnQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2
ZW50SGFuZGxlcihFdmVudCopIG92ZXJyaWRlOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBzdWJ0
cmVlSGFzQ2hhbmdlZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdWJ0cmVlSGFzQ2hh
bmdlZCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0TGFi
ZWxzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBp
c0VudW1lcmF0YWJsZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydExhYmVscygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
IAotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xU
eXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIEZvcm1Db250cm9sU3RhdGUgc2F2
ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVz
dG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25z
dCBGb3JtQ29udHJvbFN0YXRlJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0
Rm9ybUNvbnRyb2woKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVh
bCBib29sIGlzVGV4dEZvcm1Db250cm9sKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQogCi0gICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29s
IGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlc2V0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBib29sIGhhc0N1c3RvbUZvY3VzTG9naWMoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9v
bCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlRm9jdXNBcHBlYXJhbmNlKGJvb2wgcmVzdG9yZVByZXZpb3Vz
U2VsZWN0aW9uKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNv
bnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQ
cmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0
cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5k
ZXJTdHlsZT4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3Jt
RGF0YUxpc3QmLCBib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzZXQoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgYm9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGb2N1c0FwcGVhcmFuY2UoYm9v
bCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lk
IGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgb3ZlcnJpZGU7
CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlSW5wdXRNZXRob2QoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgbWF0Y2hlc1JlYWRPbmx5UHNldWRvQ2xhc3MoKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlc1JlYWRXcml0ZVBzZXVkb0NsYXNzKCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUlucHV0TWV0aG9kKCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBib29sIG1hdGNoZXNSZWFkT25seVBzZXVkb0NsYXNzKCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIG1hdGNoZXNSZWFkV3JpdGVQc2V1ZG9DbGFzcygp
IGNvbnN0IG92ZXJyaWRlOwogCiAgICAgYm9vbCB2YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5nJiB2
YWx1ZSkgY29uc3QgeyByZXR1cm4gaXNSZXF1aXJlZEZvcm1Db250cm9sKCkgJiYgIWlzRGlzYWJs
ZWRPclJlYWRPbmx5KCkgJiYgdmFsdWUuaXNFbXB0eSgpOyB9CiAgICAgYm9vbCB0b29Mb25nKGNv
bnN0IFN0cmluZyYsIE5lZWRzVG9DaGVja0RpcnR5RmxhZykgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggZmJkNzVhMS4u
NTZkNGYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZvcndhcmRF
dmVudChFdmVudCopOwogCi0gICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0
IGluc2VydGVkSW50byhDb250YWluZXJOb2RlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBJbnNl
cnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlJikgb3Zl
cnJpZGU7CiAKICAgICAvLyBUaGUgZGVyaXZlZCBjbGFzcyBzaG91bGQgcmV0dXJuIHRydWUgaWYg
cGxhY2Vob2xkZXIgcHJvY2Vzc2luZyBpcyBuZWVkZWQuCiAgICAgdmlydHVhbCBib29sIHN1cHBv
cnRzUGxhY2Vob2xkZXIoKSBjb25zdCA9IDA7CkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKICAg
ICBQYXNzUmVmUHRyPFJhbmdlPiBzZWxlY3Rpb24oKSBjb25zdDsKICAgICBTdHJpbmcgc2VsZWN0
ZWRUZXh0KCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hGb3JtQ29udHJvbENo
YW5nZUV2ZW50KCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRm9y
bUNvbnRyb2xDaGFuZ2VFdmVudCgpIG92ZXJyaWRlIEZJTkFMOwogCiAgICAgdmlydHVhbCBpbnQg
bWF4TGVuZ3RoKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlKCkgY29uc3Qg
PSAwOwpAQCAtOTYsNyArOTYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBpc1BsYWNlaG9sZGVy
RW1wdHkoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkg
PSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92
ZXJyaWRlOwogCiAgICAgdm9pZCBjYWNoZVNlbGVjdGlvbihpbnQgc3RhcnQsIGludCBlbmQsIFRl
eHRGaWVsZFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24pCiAgICAgewpAQCAtMTA4LDcgKzEw
OCw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHJlc3RvcmVDYWNoZWRTZWxlY3Rpb24oKTsKICAg
ICBib29sIGhhc0NhY2hlZFNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkU2VsZWN0
aW9uU3RhcnQgPj0gMDsgfQogCi0gICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIo
RXZlbnQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihF
dmVudCopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzdWJ0cmVlSGFzQ2hhbmdlZCgpID0g
MDsKIAogICAgIHZvaWQgc2V0TGFzdENoYW5nZVdhc05vdFVzZXJFZGl0KCkgeyBtX2xhc3RDaGFu
Z2VXYXNVc2VyRWRpdCA9IGZhbHNlOyB9CkBAIC0xMjAsOSArMTIwLDkgQEAgcHJpdmF0ZToKICAg
ICBpbnQgY29tcHV0ZVNlbGVjdGlvbkVuZCgpIGNvbnN0OwogICAgIFRleHRGaWVsZFNlbGVjdGlv
bkRpcmVjdGlvbiBjb21wdXRlU2VsZWN0aW9uRGlyZWN0aW9uKCkgY29uc3Q7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hGb2N1c0V2ZW50KFBhc3NSZWZQdHI8RWxlbWVudD4gb2xkRm9jdXNl
ZEVsZW1lbnQsIEZvY3VzRGlyZWN0aW9uKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hCbHVyRXZlbnQoUGFzc1JlZlB0cjxFbGVtZW50PiBuZXdGb2N1c2VkRWxlbWVu
dCkgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVu
ZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaEZvY3VzRXZlbnQoUGFzc1JlZlB0cjxFbGVtZW50PiBvbGRGb2N1c2VkRWxlbWVudCwgRm9j
dXNEaXJlY3Rpb24pIG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEJs
dXJFdmVudChQYXNzUmVmUHRyPEVsZW1lbnQ+IG5ld0ZvY3VzZWRFbGVtZW50KSBvdmVycmlkZSBG
SU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBO
b2RlJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdXNlci1lZGl0
YWJsZSB2YWx1ZSBpcyBlbXB0eS4gVXNlZCB0byBjaGVjayBwbGFjZWhvbGRlciB2aXNpYmlsaXR5
LgogICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5VmFsdWUoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUaXRsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRpdGxlRWxlbWVudC5oCmluZGV4IGZhNzZiZDAuLmFjYjdkZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRpdGxlRWxlbWVudC5oCkBAIC0zOSw5ICszOSw5IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgSFRNTFRpdGxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKIAotICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNl
cnRlZEludG8oQ29udGFpbmVyTm9kZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZW1v
dmVkRnJvbShDb250YWluZXJOb2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNoaWxk
cmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgSW5z
ZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlJikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5n
ZSYpIG92ZXJyaWRlOwogCiAgICAgU3RyaW5nV2l0aERpcmVjdGlvbiBtX3RpdGxlOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKaW5kZXggMmFlZWVjNS4uZDIxMTBjMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKQEAgLTY4LDEyICs2OCwxMiBA
QCBwcml2YXRlOgogICAgIEhUTUxUcmFja0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAgICAgdmlydHVhbCB+SFRNTFRyYWNrRWxlbWVudCgpOwogCi0gICAgdmlydHVh
bCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNT
dHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogCi0gICAgdmly
dHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJO
b2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5v
ZGUmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3Qg
aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29s
IGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCBvdmVycmlk
ZTsKIAogICAgIHZvaWQgbG9hZFRpbWVyRmlyZWQoVGltZXI8SFRNTFRyYWNrRWxlbWVudD4mKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxVTGlzdEVsZW1lbnQuaAppbmRleCBhYjA1ZGM2Li5iZTM1
OWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxVTGlzdEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxVTGlzdEVsZW1lbnQuaApAQCAtMzUsOCArMzUs
OCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxVTGlzdEVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25B
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0
U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBvdmVycmlkZTsKIH07CiAK
IH0gLy9uYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFVua25v
d25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxVbmtub3duRWxlbWVudC5oCmlu
ZGV4IGVhMGNmNTAuLjVlMmJlNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFVua25vd25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVW5rbm93bkVs
ZW1lbnQuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgSFRNTFVua25vd25FbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiAgICAgfQogCi0g
ICAgdmlydHVhbCBib29sIGlzSFRNTFVua25vd25FbGVtZW50KCkgY29uc3QgT1ZFUlJJREUgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0hUTUxVbmtub3duRWxlbWVudCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogcHJpdmF0ZToKICAgICBIVE1MVW5rbm93
bkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAppbmRleCA4NThhMDcyLi5lMzU5
YWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaApAQCAtNzQsMjYgKzc0
LDI2IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZERpc3BsYXlQb3N0ZXJJbWFnZSgpIGNvbnN0
IHsgcmV0dXJuIGRpc3BsYXlNb2RlKCkgPT0gUG9zdGVyIHx8IGRpc3BsYXlNb2RlKCkgPT0gUG9z
dGVyV2FpdGluZ0ZvclZpZGVvOyB9CiAKICAgICBVUkwgcG9zdGVySW1hZ2VVUkwoKSBjb25zdDsK
LSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxl
Pikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgSFRNTFZpZGVvRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sKTsKIAotICAgIHZpcnR1YWwgYm9vbCByZW5kZXJl
cklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGRpZEF0dGFjaFJlbmRlcmVycygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxl
Rm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
aWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBib29sIGlzVmlkZW8oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmly
dHVhbCBib29sIGhhc1ZpZGVvKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gcGxheWVyKCkgJiYg
cGxheWVyKCktPmhhc1ZpZGVvKCk7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGdWxsc2Ny
ZWVuKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKGNv
bnN0IEF0dHJpYnV0ZSYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgY29uc3QgQXRvbWlj
U3RyaW5nJiBpbWFnZVNvdXJjZVVSTCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9v
bCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29s
bGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBib29sIGlzVmlkZW8oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9
CisgICAgdmlydHVhbCBib29sIGhhc1ZpZGVvKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gcGxh
eWVyKCkgJiYgcGxheWVyKCktPmhhc1ZpZGVvKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9y
dHNGdWxsc2NyZWVuKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzVVJMQXR0
cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgY29u
c3QgQXRvbWljU3RyaW5nJiBpbWFnZVNvdXJjZVVSTCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
dmlydHVhbCBib29sIGhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSBjb25zdDsKLSAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlRGlzcGxheVN0YXRlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIHNldERpc3BsYXlNb2RlKERpc3BsYXlNb2RlKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlRGlzcGxheVN0YXRlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHNldERpc3BsYXlNb2RlKERpc3BsYXlNb2RlKSBvdmVycmlkZTsK
IAogICAgIE93blB0cjxIVE1MSW1hZ2VMb2FkZXI+IG1faW1hZ2VMb2FkZXI7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCmluZGV4IDBmODk3NjUuLjI5MjA4ZTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaApAQCAtNDAsMTkgKzQwLDE5IEBAIHB1YmxpYzoK
ICAgICBleHBsaWNpdCBIaWRkZW5JbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkg
OiBJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29u
dHJvbFN0YXRlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzVmFsaWRhdGlv
bigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IGNyZWF0ZUlucHV0UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKCkgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIHN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBib29sIGlzSGlkZGVuVHlwZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0TGFiZWxzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cmlidXRl
cygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBi
b29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
YXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0
ZShjb25zdCBGb3JtQ29udHJvbFN0YXRlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzVmFsaWRhdGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUlucHV0UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4p
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91
c2VFdmVudHMpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmli
dXRlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzSGlkZGVuVHlwZSgpIGNvbnN0IG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0TGFiZWxzKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdEhlaWdodEFu
ZFdpZHRoQXR0cmlidXRlcygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShj
b25zdCBTdHJpbmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgY29uc3Qg
b3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9J
bWFnZURvY3VtZW50LmNwcAppbmRleCA4ZmI0MDM2Li43NDQ1NGY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW1hZ2VEb2N1bWVudC5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCBwcml2YXRlOgogICAgIH0K
IAogICAgIHZpcnR1YWwgfkltYWdlRG9jdW1lbnRFbGVtZW50KCk7Ci0gICAgdmlydHVhbCB2b2lk
IGRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVu
dCkgb3ZlcnJpZGU7CiAKICAgICBJbWFnZURvY3VtZW50KiBtX2ltYWdlRG9jdW1lbnQ7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oCmluZGV4IGMyZGI1NGIuLmEzYzJmODUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgKQEAgLTQzLDIyICs0MywyMiBAQCBwdWJs
aWM6CiAgICAgZXhwbGljaXQgSW1hZ2VJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYpOwogCiBw
cml2YXRlOgotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUo
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNGb3JtRGF0YUFwcGVuZGFibGUo
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURh
dGFMaXN0JiwgYm9vbCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHN1cHBvcnRz
VmFsaWRhdGlvbigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUlucHV0UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50KikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGFsdEF0dHJpYnV0ZUNoYW5nZWQoKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgc3JjQXR0cmlidXRlQ2hhbmdlZCgpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVz
cGVjdEFsaWduQXR0cmlidXRlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNhbkJlU3Vj
Y2Vzc2Z1bFN1Ym1pdEJ1dHRvbigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdl
QnV0dG9uKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxl
KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RIZWlnaHRBbmRXaWR0
aEF0dHJpYnV0ZXMoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGhlaWdodCgpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdW5zaWduZWQgd2lkdGgoKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzRm9ybURhdGFBcHBlbmRhYmxlKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlz
dCYsIGJvb2wpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1ZhbGlk
YXRpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVJbnB1dFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCopIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBhbHRBdHRyaWJ1dGVDaGFuZ2VkKCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHNyY0F0dHJpYnV0ZUNoYW5nZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgYXR0YWNoKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RB
bGlnbkF0dHJpYnV0ZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjYW5CZVN1Y2Nlc3Nm
dWxTdWJtaXRCdXR0b24oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZUJ1dHRv
bigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0YWJsZSgpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRy
aWJ1dGVzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB1bnNpZ25lZCBoZWlnaHQoKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKCkgY29uc3Qgb3ZlcnJpZGU7CiAK
ICAgICBJbnRQb2ludCBtX2NsaWNrTG9jYXRpb247IC8vIFZhbGlkIG9ubHkgZHVyaW5nIEhUTUxG
b3JtRWxlbWVudDo6cHJlcGFyZUZvclN1Ym1pc3Npb24oKS4KIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0xhYmVsYWJsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TGFiZWxhYmxlRWxlbWVudC5oCmluZGV4IGRlOGNiNDMuLmY2MDEyYWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTGFiZWxhYmxlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTGFiZWxhYmxlRWxlbWVudC5oCkBAIC00Nyw3ICs0Nyw3IEBAIHByb3RlY3RlZDoKICAg
ICBMYWJlbGFibGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
Jik7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGlzTGFiZWxhYmxlKCkgY29uc3QgT1ZF
UlJJREUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0xhYmVsYWJs
ZSgpIGNvbnN0IG92ZXJyaWRlIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KIH07CiAKIHZvaWQgaXNM
YWJlbGFibGVFbGVtZW50KGNvbnN0IExhYmVsYWJsZUVsZW1lbnQmKTsgLy8gQ2F0Y2ggdW5uZWNl
c3NhcnkgcnVudGltZSBjaGVjayBvZiB0eXBlIGtub3duIGF0IGNvbXBpbGUgdGltZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGFiZWxzTm9kZUxpc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTGFiZWxzTm9kZUxpc3QuaAppbmRleCAzMDQwYTUyLi41M2YyNzgyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xhYmVsc05vZGVMaXN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9MYWJlbHNOb2RlTGlzdC5oCkBAIC00Miw3ICs0Miw3IEBAIHB1YmxpYzoKIHBy
b3RlY3RlZDoKICAgICBleHBsaWNpdCBMYWJlbHNOb2RlTGlzdChMYWJlbGFibGVFbGVtZW50JiBm
b3JOb2RlKTsKIAotICAgIHZpcnR1YWwgYm9vbCBub2RlTWF0Y2hlcyhFbGVtZW50KikgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIG5vZGVNYXRjaGVzKEVsZW1lbnQqKSBjb25zdCBv
dmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01l
ZGlhQ29udHJvbGxlci5oCmluZGV4IDg2MjMyMmUuLjg0OGYyMmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTWVkaWFDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9NZWRpYUNvbnRyb2xsZXIuaApAQCAtNTQsNTggKzU0LDU4IEBAIHB1YmxpYzoKIAogICAgIGNv
bnN0IFN0cmluZyYgbWVkaWFHcm91cCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFHcm91cDsgfQog
ICAgIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBzZWVrYWJsZSgp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBwbGF5
ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVy
ZWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4g
c2Vla2FibGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGltZVJh
bmdlcz4gcGxheWVkKCkgb3ZlcnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCBkb3VibGUgZHVyYXRp
b24oKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGRvdWJsZSBjdXJyZW50VGltZSgpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJyZW50VGltZShkb3VibGUpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgZG91YmxlIGR1cmF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBkb3VibGUgY3VycmVudFRpbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0Q3VycmVudFRpbWUoZG91YmxlKSBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0
dWFsIGJvb2wgcGF1c2VkKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9wYXVzZWQ7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgcGxheSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBwYXVzZSgp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBwYXVzZWQoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX3BhdXNlZDsgfQorICAgIHZpcnR1YWwgdm9pZCBwbGF5KCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHBhdXNlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCB1bnBhdXNlKCk7CiAgICAg
Ci0gICAgdmlydHVhbCBkb3VibGUgZGVmYXVsdFBsYXliYWNrUmF0ZSgpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIG1fZGVmYXVsdFBsYXliYWNrUmF0ZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRE
ZWZhdWx0UGxheWJhY2tSYXRlKGRvdWJsZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBkb3VibGUg
ZGVmYXVsdFBsYXliYWNrUmF0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fZGVmYXVsdFBs
YXliYWNrUmF0ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXREZWZhdWx0UGxheWJhY2tSYXRlKGRv
dWJsZSkgb3ZlcnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCBkb3VibGUgcGxheWJhY2tSYXRlKCkg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFBsYXliYWNrUmF0ZShkb3VibGUp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgZG91YmxlIHBsYXliYWNrUmF0ZSgpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRQbGF5YmFja1JhdGUoZG91YmxlKSBvdmVycmlkZTsK
ICAgICAKLSAgICB2aXJ0dWFsIGRvdWJsZSB2b2x1bWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biBtX3ZvbHVtZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRWb2x1bWUoZG91YmxlLCBFeGNlcHRp
b25Db2RlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBkb3VibGUgdm9sdW1lKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbV92b2x1bWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Vm9sdW1lKGRv
dWJsZSwgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwogICAgIAotICAgIHZpcnR1YWwgYm9vbCBt
dXRlZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fbXV0ZWQ7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgc2V0TXV0ZWQoYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIG11dGVkKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9tdXRlZDsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRNdXRl
ZChib29sKSBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIFJlYWR5U3RhdGUgcmVhZHlTdGF0
ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fcmVhZHlTdGF0ZTsgfQorICAgIHZpcnR1YWwg
UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9yZWFkeVN0
YXRlOyB9CiAKICAgICBlbnVtIFBsYXliYWNrU3RhdGUgeyBXQUlUSU5HLCBQTEFZSU5HLCBFTkRF
RCB9OwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgcGxheWJhY2tTdGF0ZSgpIGNvbnN0OwogCi0g
ICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbHNjcmVlbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzRnVsbHNjcmVlbigpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbHNjcmVlbigp
IE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxzY3JlZW4oKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0Z1bGxzY3Jl
ZW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBl
bnRlckZ1bGxzY3JlZW4oKSBvdmVycmlkZSB7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBoYXNBdWRp
bygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBoYXNWaWRlbygpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNsb3NlZENhcHRpb25zVmlzaWJsZSgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIG1fY2xvc2VkQ2FwdGlvbnNWaXNpYmxlOyB9CisgICAgdmlydHVhbCBi
b29sIGhhc0F1ZGlvKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGhhc1ZpZGVv
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGhhc0Nsb3NlZENhcHRpb25zKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldENsb3NlZENhcHRpb25zVmlzaWJs
ZShib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgY2xvc2VkQ2FwdGlvbnNWaXNpYmxl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jbG9zZWRDYXB0aW9uc1Zpc2libGU7IH0KICAg
ICAKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNTY2FubmluZygpIGNvbnN0IE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1NjYW5uaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
Ci0gICAgdmlydHVhbCB2b2lkIGJlZ2luU2NydWJiaW5nKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGVuZFNjcnViYmluZygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBiZWdpblNj
cnViYmluZygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBlbmRTY3J1YmJpbmcoKSBvdmVy
cmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuUGxheSgpIGNvbnN0IE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgYm9vbCBjYW5QbGF5KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCi0gICAgdmly
dHVhbCBib29sIGlzTGl2ZVN0cmVhbSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9v
bCBpc0xpdmVTdHJlYW0oKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wg
aGFzQ3VycmVudFNyYygpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBoYXNDdXJy
ZW50U3JjKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHJldHVyblRv
UmVhbHRpbWUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmV0dXJuVG9SZWFsdGltZSgp
IG92ZXJyaWRlOwogCiAgICAgYm9vbCBpc0Jsb2NrZWQoKSBjb25zdDsKIApAQCAtMTI5LDEwICsx
MjksMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0VGltZXVwZGF0ZVRpbWVyKCk7CiAKICAg
ICAvLyBFdmVudFRhcmdldAotICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIE9WRVJS
SURFIHsgcmVmKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIE9WRVJS
SURFIHsgZGVyZWYoKTsgfQotICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRU
YXJnZXRJbnRlcmZhY2UoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBNZWRpYUNvbnRyb2xsZXJF
dmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KLSAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAm
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OyB9OworICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRh
cmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRh
cmdldCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsgfQorICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRl
cmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBNZWRp
YUNvbnRyb2xsZXJFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICB2aXJ0dWFsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiAmbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OyB9OwogCiAgICAgZnJpZW5kIGNs
YXNzIEhUTUxNZWRpYUVsZW1lbnQ7CiAgICAgZnJpZW5kIGNsYXNzIE1lZGlhQ29udHJvbGxlckV2
ZW50TGlzdGVuZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRU
eXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKaW5kZXggZjU3YmY4
NC4uZjMxMjUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaApAQCAtNDEsMTcg
KzQxLDE3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBNb250aElucHV0VHlwZShIVE1MSW5wdXRF
bGVtZW50JiBlbGVtZW50KSA6IEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlKGVs
ZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBEYXRlQ29tcG9uZW50czo6VHlwZSBkYXRlVHlwZSgp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgZG91YmxlIHZhbHVlQXNEYXRlKCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgc2VyaWFsaXplV2l0aE1pbGxpc2Vjb25kcyhk
b3VibGUpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgRGVjaW1hbCBwYXJzZVRvTnVtYmVy
KGNvbnN0IFN0cmluZyYsIGNvbnN0IERlY2ltYWwmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIERlY2ltYWwgZGVmYXVsdFZhbHVlRm9yU3RlcFVwKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBTdGVwUmFuZ2UgY3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZykgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHBhcnNlVG9EYXRlQ29tcG9uZW50c0ludGVybmFs
KGNvbnN0IFVDaGFyKiwgdW5zaWduZWQgbGVuZ3RoLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMo
ZG91YmxlLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9v
bCBpc01vbnRoRmllbGQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNo
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9s
VHlwZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUg
ZGF0ZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGRvdWJsZSB2YWx1ZUFzRGF0
ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIHNlcmlhbGl6ZVdpdGhNaWxs
aXNlY29uZHMoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIERlY2ltYWwgcGFy
c2VUb051bWJlcihjb25zdCBTdHJpbmcmLCBjb25zdCBEZWNpbWFsJikgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBEZWNpbWFsIGRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgU3RlcFJhbmdlIGNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxp
bmcpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBwYXJzZVRvRGF0ZUNvbXBvbmVu
dHNJbnRlcm5hbChjb25zdCBVQ2hhciosIHVuc2lnbmVkIGxlbmd0aCwgRGF0ZUNvbXBvbmVudHMq
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2V0TWlsbGlzZWNvbmRUb0RhdGVD
b21wb25lbnRzKGRvdWJsZSwgRGF0ZUNvbXBvbmVudHMqKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNNb250aEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklu
cHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAppbmRleCA4
ZDhhNWE0Li43YWJhN2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklu
cHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKQEAg
LTQwLDMyICs0MCwzMiBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgTnVtYmVySW5wdXRUeXBlKEhU
TUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogVGV4dEZpZWxkSW5wdXRUeXBlKGVsZW1lbnQpIHsg
fQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVD
aGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGRv
dWJsZSB2YWx1ZUFzRG91YmxlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNl
dFZhbHVlQXNEb3VibGUoZG91YmxlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yLCBFeGNlcHRpb25D
b2RlJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEZWNpbWFs
KGNvbnN0IERlY2ltYWwmLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yLCBFeGNlcHRpb25Db2RlJikg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHR5cGVNaXNtYXRjaEZvcihjb25zdCBT
dHJpbmcmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoKCkg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNpemVTaG91bGRJbmNsdWRlRGVjb3Jh
dGlvbihpbnQgZGVmYXVsdFNpemUsIGludCYgcHJlZmVycmVkU2l6ZSkgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBmbG9hdCBkZWNvcmF0aW9uV2lkdGgoKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNTdGVwcGFibGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IFN0ZXBSYW5nZSBjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIERlY2ltYWwgcGFyc2VUb051bWJlcihjb25zdCBTdHJpbmcm
LCBjb25zdCBEZWNpbWFsJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgc2Vy
aWFsaXplKGNvbnN0IERlY2ltYWwmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBsb2NhbGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnZlcnRGcm9tVmlzaWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgU3RyaW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGhhc0JhZElucHV0KCkgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBTdHJpbmcgYmFkSW5wdXRUZXh0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RTcGVlY2hBdHRyaWJ1dGUoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNQbGFjZWhvbGRlcigpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBpc051bWJlckZpZWxkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIG1pbk9yTWF4QXR0cmlidXRlQ2hhbmdlZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBzdGVwQXR0cmlidXRlQ2hhbmdlZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBh
dHRhY2goKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNv
bnRyb2xUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNv
bnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGRvdWJsZSB2YWx1ZUFzRG91YmxlKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEb3VibGUoZG91YmxlLCBUZXh0RmllbGRF
dmVudEJlaGF2aW9yLCBFeGNlcHRpb25Db2RlJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHNldFZhbHVlQXNEZWNpbWFsKGNvbnN0IERlY2ltYWwmLCBUZXh0RmllbGRFdmVudEJl
aGF2aW9yLCBFeGNlcHRpb25Db2RlJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IHR5cGVNaXNtYXRjaEZvcihjb25zdCBTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgdHlwZU1pc21hdGNoKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IHNpemVTaG91bGRJbmNsdWRlRGVjb3JhdGlvbihpbnQgZGVmYXVsdFNpemUsIGludCYgcHJlZmVy
cmVkU2l6ZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBmbG9hdCBkZWNvcmF0aW9uV2lk
dGgoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTdGVwcGFibGUoKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0ZXBSYW5nZSBjcmVhdGVTdGVwUmFuZ2UoQW55U3Rl
cEhhbmRsaW5nKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlS2V5ZG93
bkV2ZW50KEtleWJvYXJkRXZlbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIERlY2ltYWwgcGFy
c2VUb051bWJlcihjb25zdCBTdHJpbmcmLCBjb25zdCBEZWNpbWFsJikgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBTdHJpbmcgc2VyaWFsaXplKGNvbnN0IERlY2ltYWwmKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBsb2NhbGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0IG92
ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIGNvbnZlcnRGcm9tVmlzaWJsZVZhbHVlKGNvbnN0
IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIHNhbml0aXplVmFs
dWUoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGhhc0Jh
ZElucHV0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgYmFkSW5wdXRUZXh0
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RTcGVlY2hB
dHRyaWJ1dGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNQbGFjZWhvbGRl
cigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc051bWJlckZpZWxkKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG1pbk9yTWF4QXR0cmlidXRlQ2hhbmdlZCgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdGVwQXR0cmlidXRlQ2hhbmdlZCgpIG92ZXJy
aWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNz
d29yZElucHV0VHlwZS5oCmluZGV4IDQzYTdiNDMuLjAwMWZkMjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmgKQEAgLTQwLDE1ICs0MCwxNSBAQCBwdWJsaWM6CiAgICAg
ZXhwbGljaXQgUGFzc3dvcmRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBC
YXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIHNob3VsZFNhdmVBbmRSZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xT
dGF0ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRy
b2xTdGF0ZShjb25zdCBGb3JtQ29udHJvbFN0YXRlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIHNob3VsZFVzZUlucHV0TWV0aG9kKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIHNob3VsZFJlc2V0T25Eb2N1bWVudEFjdGl2YXRpb24oKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUoKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkUmVzcGVjdFNwZWVjaEF0dHJpYnV0ZSgpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBib29sIHNob3VsZFNhdmVBbmRSZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSgpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRy
b2xTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNv
bnRyb2xTdGF0ZShjb25zdCBGb3JtQ29udHJvbFN0YXRlJikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBib29sIHNob3VsZFVzZUlucHV0TWV0aG9kKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBib29sIHNob3VsZFJlc2V0T25Eb2N1bWVudEFjdGl2YXRpb24oKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdFNwZWVjaEF0dHJpYnV0ZSgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1
Z2luRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuaAppbmRl
eCBmY2QzNTQzLi41Y2YyYWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdp
bkRvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5oCkBA
IC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgUGx1Z2luRG9jdW1lbnQoRnJh
bWUqLCBjb25zdCBVUkwmKTsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxEb2N1bWVudFBhcnNl
cj4gY3JlYXRlUGFyc2VyKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPERvY3Vt
ZW50UGFyc2VyPiBjcmVhdGVQYXJzZXIoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgc2V0U2hvdWxk
TG9hZFBsdWdpbk1hbnVhbGx5KGJvb2wgbG9hZE1hbnVhbGx5KSB7IG1fc2hvdWxkTG9hZFBsdWdp
bk1hbnVhbGx5ID0gbG9hZE1hbnVhbGx5OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmFkaW9JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5
cGUuaAppbmRleCAzMTdjYjI4Li4zOTEwNDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1JhZGlvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYWRpb0lucHV0
VHlwZS5oCkBAIC00MCwxOCArNDAsMTggQEAgcHVibGljOgogICAgIGV4cGxpY2l0IFJhZGlvSW5w
dXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUNoZWNrYWJsZUlucHV0VHlw
ZShlbGVtZW50KSB7IH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHZh
bHVlTWlzc2luZyhjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0
cmluZyB2YWx1ZU1pc3NpbmdUZXh0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGhhbmRsZUNsaWNrRXZlbnQoTW91c2VFdmVudCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCopIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBoYW5kbGVLZXl1cEV2ZW50KEtleWJvYXJkRXZlbnQqKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZFNlbmRDaGFuZ2VFdmVudEFmdGVyQ2hlY2tl
ZENoYW5nZWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERpc3BhdGNoQ2xpY2so
SW5wdXRFbGVtZW50Q2xpY2tTdGF0ZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRE
aXNwYXRjaENsaWNrKEV2ZW50KiwgY29uc3QgSW5wdXRFbGVtZW50Q2xpY2tTdGF0ZSYpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBpc1JhZGlvQnV0dG9uKCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBib29sIHN1cHBvcnRzSW5kZXRlcm1pbmF0ZUFwcGVhcmFuY2UoKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBl
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHZhbHVlTWlzc2luZyhjb25zdCBT
dHJpbmcmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZU1pc3NpbmdU
ZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUNsaWNrRXZlbnQo
TW91c2VFdmVudCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVLZXlkb3duRXZl
bnQoS2V5Ym9hcmRFdmVudCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVLZXl1
cEV2ZW50KEtleWJvYXJkRXZlbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNLZXli
b2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBib29sIHNob3VsZFNlbmRDaGFuZ2VFdmVudEFmdGVyQ2hlY2tlZENoYW5nZWQoKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERpc3BhdGNoQ2xpY2soSW5wdXRFbGVtZW50Q2xpY2tT
dGF0ZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWREaXNwYXRjaENsaWNrKEV2ZW50
KiwgY29uc3QgSW5wdXRFbGVtZW50Q2xpY2tTdGF0ZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
Ym9vbCBpc1JhZGlvQnV0dG9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzSW5kZXRlcm1pbmF0ZUFwcGVhcmFuY2UoKSBjb25zdCBvdmVycmlkZTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFu
Z2VJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaAppbmRl
eCA1OTY3MDIxLi5hZTAwZGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jhbmdl
SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCkBA
IC00Miw1MSArNDIsNTEgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IFJhbmdlSW5wdXRUeXBlKEhU
TUxJbnB1dEVsZW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzUmFuZ2VDb250cm9sKCkgY29uc3QgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgZG91YmxlIHZhbHVlQXNEb3VibGUoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0RlY2ltYWwoY29uc3QgRGVjaW1h
bCYsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1JlcXVpcmVkKCkgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBTdGVwUmFuZ2UgY3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5k
bGluZykgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzU3RlcHBhYmxlKCkgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgYm9vbCBpc1JhbmdlQ29udHJvbCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGRvdWJsZSB2YWx1ZUFzRG91YmxlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHNldFZhbHVlQXNEZWNpbWFsKGNvbnN0IERlY2ltYWwmLCBUZXh0RmllbGRFdmVu
dEJlaGF2aW9yLCBFeGNlcHRpb25Db2RlJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBi
b29sIHR5cGVNaXNtYXRjaEZvcihjb25zdCBTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgc3VwcG9ydHNSZXF1aXJlZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgU3RlcFJhbmdlIGNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1N0ZXBwYWJsZSgpIGNvbnN0IG92ZXJyaWRlOwogI2lm
ICFQTEFURk9STShJT1MpCi0gICAgdmlydHVhbCB2b2lkIGhhbmRsZU1vdXNlRG93bkV2ZW50KE1v
dXNlRXZlbnQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlTW91c2VEb3duRXZl
bnQoTW91c2VFdmVudCopIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgdmlydHVhbCB2b2lkIGhhbmRs
ZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlSW5wdXRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0
eWxlPikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIERlY2ltYWwgcGFyc2VUb051bWJlcihjb25zdCBTdHJpbmcm
LCBjb25zdCBEZWNpbWFsJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgc2Vy
aWFsaXplKGNvbnN0IERlY2ltYWwmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgbWluT3JNYXhBdHRyaWJ1dGVDaGFuZ2VkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0Rmll
bGRFdmVudEJlaGF2aW9yKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBmYWxsYmFja1Zh
bHVlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgc2FuaXRpemVWYWx1ZShj
b25zdCBTdHJpbmcmIHByb3Bvc2VkVmFsdWUpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0ZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
SFRNTEVsZW1lbnQqIHNsaWRlclRodW1iRWxlbWVudCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgSFRNTEVsZW1lbnQqIHNsaWRlclRyYWNrRWxlbWVudCgpIGNvbnN0IE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCopIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUlucHV0UmVu
ZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBj
cmVhdGVTaGFkb3dTdWJ0cmVlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBEZWNpbWFsIHBhcnNl
VG9OdW1iZXIoY29uc3QgU3RyaW5nJiwgY29uc3QgRGVjaW1hbCYpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgU3RyaW5nIHNlcmlhbGl6ZShjb25zdCBEZWNpbWFsJikgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50
cykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG1pbk9yTWF4QXR0cmlidXRlQ2hhbmdlZCgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29s
IHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBTdHJpbmcgZmFsbGJhY2tWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
U3RyaW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUoKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIEhUTUxFbGVtZW50KiBzbGlkZXJUaHVtYkVsZW1lbnQoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEhUTUxFbGVtZW50KiBzbGlkZXJUcmFja0VsZW1l
bnQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFNsaWRlclRodW1iRWxlbWVudCYgdHlwZWRTbGlk
ZXJUaHVtYkVsZW1lbnQoKSBjb25zdDsKIAogI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQot
ICAgIHZpcnR1YWwgdm9pZCBsaXN0QXR0cmlidXRlVGFyZ2V0Q2hhbmdlZCgpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBsaXN0QXR0cmlidXRlVGFyZ2V0Q2hhbmdlZCgpIG92ZXJyaWRlOwog
ICAgIHZvaWQgdXBkYXRlVGlja01hcmtWYWx1ZXMoKTsKLSAgICB2aXJ0dWFsIERlY2ltYWwgZmlu
ZENsb3Nlc3RUaWNrTWFya1ZhbHVlKGNvbnN0IERlY2ltYWwmKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIERlY2ltYWwgZmluZENsb3Nlc3RUaWNrTWFya1ZhbHVlKGNvbnN0IERlY2ltYWwmKSBvdmVy
cmlkZTsKIAogICAgIGJvb2wgbV90aWNrTWFya1ZhbHVlc0RpcnR5OwogICAgIFZlY3RvcjxEZWNp
bWFsPiBtX3RpY2tNYXJrVmFsdWVzOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVUb3VjaEV2ZW50KFRvdWNoRXZlbnQqKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlVG91Y2hFdmVudChUb3VjaEV2ZW50Kikgb3ZlcnJp
ZGU7CiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgdmlydHVhbCB2b2lkIGRpc2FibGVkQXR0cmli
dXRlQ2hhbmdlZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlZEF0dHJpYnV0
ZUNoYW5nZWQoKSBvdmVycmlkZTsKICNlbHNlCiAjaWYgRU5BQkxFKFRPVUNIX1NMSURFUikKLSAg
ICB2aXJ0dWFsIGJvb2wgaGFzVG91Y2hFdmVudEhhbmRsZXIoKSBjb25zdCBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIGJvb2wgaGFzVG91Y2hFdmVudEhhbmRsZXIoKSBjb25zdCBvdmVycmlkZTsKICNl
bmRpZgogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKICNlbmRpZiAvLyBFTkFCTEUoVE9VQ0hfRVZF
TlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9SZXNldElucHV0VHlwZS5oCmluZGV4IGY3NDlmNjguLjdjMDI2
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmVzZXRJbnB1dFR5cGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jlc2V0SW5wdXRUeXBlLmgKQEAgLTQwLDExICs0MCwxMSBA
QCBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVzZXRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYg
ZWxlbWVudCkgOiBCYXNlQnV0dG9uSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgot
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNWYWxpZGF0aW9uKCkgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQqKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBkZWZhdWx0VmFsdWUoKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0QnV0dG9uKCkgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1ZhbGlkYXRpb24oKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCopIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgU3RyaW5nIGRlZmF1bHRWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgYm9vbCBpc1RleHRCdXR0b24oKSBjb25zdCBvdmVycmlkZTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2Vh
cmNoSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5oCmlu
ZGV4IDI5ZDAzZTMuLjE0NzYwZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2Vh
cmNoSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUu
aApAQCAtNDYsMjEgKzQ2LDIxIEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3BTZWFyY2hFdmVudFRp
bWVyKCk7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBhZGRTZWFyY2hSZXN1bHQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVJbnB1dFJlbmRlcmVyKFBhc3NSZWY8UmVu
ZGVyU3R5bGU+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9y
bUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZFJl
c3BlY3RTcGVlY2hBdHRyaWJ1dGUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNTZWFy
Y2hGaWVsZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBuZWVkc0NvbnRhaW5l
cigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVl
KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBIVE1MRWxlbWVudCogcmVzdWx0c0J1dHRvbkVsZW1lbnQoKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEhUTUxFbGVtZW50KiBjYW5jZWxCdXR0b25FbGVt
ZW50KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWRvd25FdmVu
dChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFNldFZhbHVl
QnlVc2VyRWRpdChWYWx1ZUNoYW5nZVN0YXRlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
c2l6ZVNob3VsZEluY2x1ZGVEZWNvcmF0aW9uKGludCBkZWZhdWx0U2l6ZSwgaW50JiBwcmVmZXJy
ZWRTaXplKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGZsb2F0IGRlY29yYXRpb25XaWR0
aCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgYWRkU2VhcmNoUmVzdWx0KCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlSW5wdXRSZW5kZXJlcihQYXNzUmVmPFJl
bmRlclN0eWxlPikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZv
cm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRS
ZXNwZWN0U3BlZWNoQXR0cmlidXRlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzU2Vh
cmNoRmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgbmVlZHNDb250YWlu
ZXIoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlU2hhZG93U3VidHJl
ZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95U2hhZG93U3VidHJlZSgpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgSFRNTEVsZW1lbnQqIHJlc3VsdHNCdXR0b25FbGVtZW50KCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBIVE1MRWxlbWVudCogY2FuY2VsQnV0dG9uRWxl
bWVudCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVLZXlkb3duRXZl
bnQoS2V5Ym9hcmRFdmVudCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRTZXRWYWx1
ZUJ5VXNlckVkaXQoVmFsdWVDaGFuZ2VTdGF0ZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IHNpemVTaG91bGRJbmNsdWRlRGVjb3JhdGlvbihpbnQgZGVmYXVsdFNpemUsIGludCYgcHJlZmVy
cmVkU2l6ZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBmbG9hdCBkZWNvcmF0aW9uV2lk
dGgoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgc2VhcmNoRXZlbnRUaW1lckZpcmVkKFRp
bWVyPFNlYXJjaElucHV0VHlwZT4qKTsKICAgICBib29sIHNlYXJjaEV2ZW50c1Nob3VsZEJlRGlz
cGF0Y2hlZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJ
bnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU3VibWl0SW5wdXRUeXBlLmgKaW5kZXgg
ZjRlNjNmYi4uYzVkYTU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9TdWJtaXRJ
bnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1N1Ym1pdElucHV0VHlwZS5oCkBA
IC00MCwxNCArNDAsMTQgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IFN1Ym1pdElucHV0VHlwZShI
VE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkg
eyB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250
cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3JtRGF0
YShGb3JtRGF0YUxpc3QmLCBib29sKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
c3VwcG9ydHNSZXF1aXJlZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBoYW5k
bGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNh
bkJlU3VjY2Vzc2Z1bFN1Ym1pdEJ1dHRvbigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5n
IGRlZmF1bHRWYWx1ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc1N1Ym1p
dEJ1dHRvbigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc1RleHRCdXR0b24o
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNv
bnRyb2xUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1E
YXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c1JlcXVpcmVkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGhh
bmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
Y2FuQmVTdWNjZXNzZnVsU3VibWl0QnV0dG9uKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJp
bmcgZGVmYXVsdFZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzU3Vi
bWl0QnV0dG9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzVGV4dEJ1dHRv
bigpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmgKaW5kZXggZjJkODM3OS4uNTgwNGY5YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oCkBAIC00MCwxMCArNDAs
MTAgQEAgcHVibGljOgogICAgIGV4cGxpY2l0IFRlbGVwaG9uZUlucHV0VHlwZShIVE1MSW5wdXRF
bGVtZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogCiBwcml2
YXRlOgotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RTcGVlY2hBdHRyaWJ1dGUoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNUZWxlcGhvbmVGaWVsZCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBhdHRhY2goKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IHNob3VsZFJlc3BlY3RTcGVlY2hBdHRyaWJ1dGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJv
b2wgaXNUZWxlcGhvbmVGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmgKaW5kZXgg
NzU5OTY2YS4uNjIwYmE1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0Rmll
bGRJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlw
ZS5oCkBAIC00NSwzMiArNDUsMzIgQEAgY2xhc3MgVGV4dEZpZWxkSW5wdXRUeXBlIDogcHVibGlj
IElucHV0VHlwZSwgcHJvdGVjdGVkIFNwaW5CdXR0b25FbGVtZW50OjpTcGluQnUKIHByb3RlY3Rl
ZDoKICAgICBleHBsaWNpdCBUZXh0RmllbGRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYpOwog
ICAgIHZpcnR1YWwgflRleHRGaWVsZElucHV0VHlwZSgpOwotICAgIHZpcnR1YWwgYm9vbCBjYW5T
ZXRTdWdnZXN0ZWRWYWx1ZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVLZXlk
b3duRXZlbnQoS2V5Ym9hcmRFdmVudCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjYW5T
ZXRTdWdnZXN0ZWRWYWx1ZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVLZXlk
b3duRXZlbnQoS2V5Ym9hcmRFdmVudCopIG92ZXJyaWRlOwogICAgIHZvaWQgaGFuZGxlS2V5ZG93
bkV2ZW50Rm9yU3BpbkJ1dHRvbihLZXlib2FyZEV2ZW50Kik7CiAKLSAgICB2aXJ0dWFsIEhUTUxF
bGVtZW50KiBjb250YWluZXJFbGVtZW50KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBI
VE1MRWxlbWVudCogaW5uZXJCbG9ja0VsZW1lbnQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudCogaW5uZXJUZXh0RWxlbWVudCgpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgSFRNTEVsZW1lbnQqIGlubmVyU3BpbkJ1dHRvbkVsZW1l
bnQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEhUTUxFbGVtZW50KiBjb250YWluZXJF
bGVtZW50KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBIVE1MRWxlbWVudCogaW5uZXJC
bG9ja0VsZW1lbnQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFRleHRDb250cm9sSW5u
ZXJUZXh0RWxlbWVudCogaW5uZXJUZXh0RWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgSFRNTEVsZW1lbnQqIGlubmVyU3BpbkJ1dHRvbkVsZW1lbnQoKSBjb25zdCBvdmVycmlk
ZTsKICNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQotICAgIHZpcnR1YWwgSFRNTEVsZW1lbnQqIHNw
ZWVjaEJ1dHRvbkVsZW1lbnQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEhUTUxFbGVt
ZW50KiBzcGVlY2hCdXR0b25FbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAogcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBuZWVkc0NvbnRhaW5lcigpIGNvbnN0OwogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRIYXZlU3BpbkJ1dHRvbigpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9p
ZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRlc3Ry
b3lTaGFkb3dTdWJ0cmVlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGF0dHJpYnV0ZUNo
YW5nZWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZWRBdHRyaWJ1dGVDaGFu
Z2VkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlYWRvbmx5QXR0cmlidXRlQ2hhbmdl
ZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1JlYWRPbmx5KCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUJsdXJFdmVudCgpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdl
ZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZUlubmVyVGV4dFZhbHVlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVNo
YWRvd1N1YnRyZWUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveVNoYWRvd1N1
YnRyZWUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYXR0cmlidXRlQ2hhbmdlZCgpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlZEF0dHJpYnV0ZUNoYW5nZWQoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVhZG9ubHlBdHRyaWJ1dGVDaGFuZ2VkKCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzUmVhZE9ubHkoKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQmx1ckV2ZW50KCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0Rmll
bGRFdmVudEJlaGF2aW9yKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlSW5uZXJU
ZXh0VmFsdWUoKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCi0gICAgdmlydHVhbCBTdHJp
bmcgc2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlOwog
I2VuZGlmCiAKICAgICB2aXJ0dWFsIFN0cmluZyBjb252ZXJ0RnJvbVZpc2libGVWYWx1ZShjb25z
dCBTdHJpbmcmKSBjb25zdDsKQEAgLTgxLDMwICs4MSwzMCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmly
dHVhbCB2b2lkIGRpZFNldFZhbHVlQnlVc2VyRWRpdChWYWx1ZUNoYW5nZVN0YXRlKTsKIAogcHJp
dmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50
KikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzTW91c2VGb2N1c2FibGUoKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0RmllbGQoKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGJvb2wgdmFsdWVNaXNzaW5nKGNvbnN0IFN0cmluZyYpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVu
dChCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBm
b3J3YXJkRXZlbnQoRXZlbnQqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3Vi
bWl0SW1wbGljaXRseShFdmVudCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUlucHV0UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VJbnB1dE1ldGhvZCgpIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZl
bnQqKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1RleHRGaWVsZCgpIGNvbnN0IG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCB2YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5nJikgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUJlZm9yZVRleHRJbnNlcnRlZEV2
ZW50KEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IGZvcndhcmRFdmVudChFdmVudCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRT
dWJtaXRJbXBsaWNpdGx5KEV2ZW50Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlSW5wdXRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUlucHV0TWV0aG9kKCkgY29uc3Qg
b3ZlcnJpZGU7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICB2aXJ0dWFsIFN0cmluZyBzYW5pdGl6
ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5n
IHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKLSAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIEhUTUxFbGVtZW50KiBwbGFjZWhvbGRlckVsZW1lbnQoKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wgbXVsdGlw
YXJ0KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3VidHJlZUhhc0NoYW5nZWQo
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEhUTUxFbGVtZW50KiBwbGFjZWhvbGRlckVsZW1lbnQo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUGxhY2Vob2xkZXJUZXh0
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlz
dCYsIGJvb2wgbXVsdGlwYXJ0KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc3Vi
dHJlZUhhc0NoYW5nZWQoKSBvdmVycmlkZTsKIAogICAgIC8vIFNwaW5CdXR0b25FbGVtZW50OjpT
cGluQnV0dG9uT3duZXIgZnVuY3Rpb25zLgotICAgIHZpcnR1YWwgdm9pZCBmb2N1c0FuZFNlbGVj
dFNwaW5CdXR0b25Pd25lcigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTcGlu
QnV0dG9uUmVzcG9uZFRvTW91c2VFdmVudHMoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkU3BpbkJ1dHRvblJlc3BvbmRUb1doZWVsRXZlbnRzKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHNwaW5CdXR0b25TdGVwRG93bigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBzcGluQnV0dG9uU3RlcFVwKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGZvY3VzQW5k
U2VsZWN0U3BpbkJ1dHRvbk93bmVyKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHNob3Vs
ZFNwaW5CdXR0b25SZXNwb25kVG9Nb3VzZUV2ZW50cygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRTcGluQnV0dG9uUmVzcG9uZFRvV2hlZWxFdmVudHMoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc3BpbkJ1dHRvblN0ZXBEb3duKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHNwaW5CdXR0b25TdGVwVXAoKSBvdmVycmlkZTsKIAogICAgIFJlZlB0cjxIVE1MRWxl
bWVudD4gbV9jb250YWluZXI7CiAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBtX2lubmVyQmxvY2s7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5oCmluZGV4IDQxYjJhNjIuLjM0OTA1YTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5oCkBAIC00MCw5ICs0MCw5IEBAIHB1YmxpYzoK
ICAgICBleHBsaWNpdCBUZXh0SW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDog
QmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2
b2lkIGF0dGFjaCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBm
b3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
UmVzcGVjdFNwZWVjaEF0dHJpYnV0ZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhdHRh
Y2goKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRy
b2xUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RT
cGVlY2hBdHRyaWJ1dGUoKSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKaW5kZXggMDkxZjIyMi4uMmM1NWJkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKQEAgLTQxLDE0ICs0MSwxNCBAQCBwdWJsaWM6
CiAgICAgZXhwbGljaXQgVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Jik7CiAKIHByaXZh
dGU6Ci0gICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgY29u
c3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIERhdGVDb21wb25lbnRzOjpUeXBlIGRhdGVUeXBlKCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBEZWNpbWFsIGRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgU3RlcFJhbmdlIGNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBwYXJzZVRvRGF0ZUNvbXBvbmVudHNJ
bnRlcm5hbChjb25zdCBVQ2hhciosIHVuc2lnbmVkIGxlbmd0aCwgRGF0ZUNvbXBvbmVudHMqKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21w
b25lbnRzKGRvdWJsZSwgRGF0ZUNvbXBvbmVudHMqKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgaXNUaW1lRmllbGQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
YXR0YWNoKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1D
b250cm9sVHlwZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6
OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIERlY2ltYWwgZGVm
YXVsdFZhbHVlRm9yU3RlcFVwKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdGVwUmFu
Z2UgY3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZykgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBib29sIHBhcnNlVG9EYXRlQ29tcG9uZW50c0ludGVybmFsKGNvbnN0IFVDaGFyKiwg
dW5zaWduZWQgbGVuZ3RoLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgYm9vbCBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlLCBEYXRlQ29t
cG9uZW50cyopIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1RpbWVGaWVsZCgp
IGNvbnN0IG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVVJMSW5wdXRUeXBlLmgKaW5kZXggMTQ5NmYwNy4uMzk2MDU2ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1VSTElucHV0VHlwZS5oCkBAIC00MCwxMiArNDAsMTIgQEAgcHVibGljOgogICAgIGV4cGxpY2l0
IFVSTElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJhc2VUZXh0SW5wdXRU
eXBlKGVsZW1lbnQpIHsgfQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBl
KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHR5cGVNaXNtYXRjaEZvcihjb25z
dCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNo
KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgdHlwZU1pc21hdGNoVGV4dCgp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc1VSTEZpZWxkKCkgY29uc3QgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgYm9vbCB0eXBlTWlzbWF0Y2goKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIFN0cmluZyB0eXBlTWlzbWF0Y2hUZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBib29sIGlzVVJMRmllbGQoKSBjb25zdCBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0
VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKaW5kZXggMzMzZmI1
Ny4uODgzMWY2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKQEAgLTQxLDEzICs0
MSwxMyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgV2Vla0lucHV0VHlwZShIVE1MSW5wdXRFbGVt
ZW50JiBlbGVtZW50KSA6IEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlKGVsZW1l
bnQpIHsgfQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBEYXRlQ29tcG9uZW50czo6VHlwZSBkYXRlVHlwZSgpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RlcFJhbmdlIGNyZWF0ZVN0ZXBSYW5nZShBbnlT
dGVwSGFuZGxpbmcpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBwYXJzZVRvRGF0
ZUNvbXBvbmVudHNJbnRlcm5hbChjb25zdCBVQ2hhciosIHVuc2lnbmVkIGxlbmd0aCwgRGF0ZUNv
bXBvbmVudHMqKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2V0TWlsbGlzZWNv
bmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSwgRGF0ZUNvbXBvbmVudHMqKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNXZWVrRmllbGQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgYXR0YWNoKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgRGF0
ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IFN0ZXBSYW5nZSBjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgcGFyc2VUb0RhdGVDb21wb25lbnRzSW50ZXJuYWwoY29uc3Qg
VUNoYXIqLCB1bnNpZ25lZCBsZW5ndGgsIERhdGVDb21wb25lbnRzKikgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUs
IERhdGVDb21wb25lbnRzKikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzV2Vl
a0ZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmNwcAppbmRleCA3N2U3ZGMzLi4xOGE4N2Y0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKQEAgLTg4
LDcgKzg4LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3Ry
b2tlU3R5bGUoR3JhcGhpY3NDb250ZXh0KiBjKSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBz
dHJva2VTdHlsZShHcmFwaGljc0NvbnRleHQqIGMpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBj
LT5zZXRTdHJva2VUaGlja25lc3MobV9jYW52YXNDb250ZXh0LT5saW5lV2lkdGgoKSk7CiAgICAg
ICAgIGMtPnNldExpbmVDYXAobV9jYW52YXNDb250ZXh0LT5nZXRMaW5lQ2FwKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
aAppbmRleCA5MjQ4NWE5Li4yN2I3ZTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaApAQCAtMjMzLDcgKzIzMyw3IEBA
IHByaXZhdGU6CiAgICAgICAgIFN0YXRlKGNvbnN0IFN0YXRlJik7CiAgICAgICAgIFN0YXRlJiBv
cGVyYXRvcj0oY29uc3QgU3RhdGUmKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgZm9udHNOZWVk
VXBkYXRlKEZvbnRTZWxlY3RvciopIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIHZvaWQgZm9u
dHNOZWVkVXBkYXRlKEZvbnRTZWxlY3RvciopIG92ZXJyaWRlOwogCiAgICAgICAgIFN0cmluZyBt
X3VucGFyc2VkU3Ryb2tlQ29sb3I7CiAgICAgICAgIFN0cmluZyBtX3VucGFyc2VkRmlsbENvbG9y
OwpAQCAtMzI1LDEzICszMjUsMTMgQEAgcHJpdmF0ZToKICAgICBQYXNzUmVmUHRyPEltYWdlRGF0
YT4gZ2V0SW1hZ2VEYXRhKEltYWdlQnVmZmVyOjpDb29yZGluYXRlU3lzdGVtLCBmbG9hdCBzeCwg
ZmxvYXQgc3ksIGZsb2F0IHN3LCBmbG9hdCBzaCwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogICAg
IHZvaWQgcHV0SW1hZ2VEYXRhKEltYWdlRGF0YSosIEltYWdlQnVmZmVyOjpDb29yZGluYXRlU3lz
dGVtLCBmbG9hdCBkeCwgZmxvYXQgZHksIGZsb2F0IGRpcnR5WCwgZmxvYXQgZGlydHlZLCBmbG9h
dCBkaXJ0eVdpZHRoLCBmbG9hdCBkaXJ0eUhlaWdodCwgRXhjZXB0aW9uQ29kZSYpOwogCi0gICAg
dmlydHVhbCBib29sIGlzMmQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAg
dmlydHVhbCBib29sIGlzQWNjZWxlcmF0ZWQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IGJvb2wgaXMyZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaXNBY2NlbGVyYXRlZCgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29s
IGhhc0ludmVydGlibGVUcmFuc2Zvcm0oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBzdGF0ZSgp
Lm1faGFzSW52ZXJ0aWJsZVRyYW5zZm9ybTsgfQorICAgIHZpcnR1YWwgYm9vbCBoYXNJbnZlcnRp
YmxlVHJhbnNmb3JtKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RhdGUoKS5tX2hhc0ludmVy
dGlibGVUcmFuc2Zvcm07IH0KIAogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICYm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIq
IHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5
ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgogCiAgICAgVmVjdG9y
PFN0YXRlLCAxPiBtX3N0YXRlU3RhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IDc0Y2FkMmUuLjFiNDczYzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5o
CkBAIC0zNDAsOCArMzQwLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldHVwRmxhZ3MoKTsKIAog
ICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5nQWN0aXZp
dHkoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc3RvcCgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBhZGRTaGFyZWRPYmpl
Y3QoV2ViR0xTaGFyZWRPYmplY3QqKTsKICAgICB2b2lkIGFkZENvbnRleHRPYmplY3QoV2ViR0xD
b250ZXh0T2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MRG9jdW1lbnRQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1
bWVudFBhcnNlci5oCmluZGV4IDRlMWUyMTUuLmUzY2I2MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCkBAIC05OCw5ICs5OCw5IEBAIHB1
YmxpYzoKICNlbmRpZgogCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB2b2lkIGluc2VydChjb25z
dCBTZWdtZW50ZWRTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kKFBh
c3NSZWZQdHI8U3RyaW5nSW1wbD4pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBmaW5pc2go
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0KGNvbnN0IFNlZ21lbnRlZFN0cmlu
ZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhcHBlbmQoUGFzc1JlZlB0cjxTdHJpbmdJ
bXBsPikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGZpbmlzaCgpIG92ZXJyaWRlOwogCiAg
ICAgZXhwbGljaXQgSFRNTERvY3VtZW50UGFyc2VyKEhUTUxEb2N1bWVudCYpOwogICAgIEhUTUxE
b2N1bWVudFBhcnNlcihEb2N1bWVudEZyYWdtZW50JiwgRWxlbWVudCogY29udGV4dEVsZW1lbnQs
IFBhcnNlckNvbnRlbnRQb2xpY3kpOwpAQCAtMTE3LDIzICsxMTcsMjMgQEAgcHJpdmF0ZToKIAog
ICAgIC8vIERvY3VtZW50UGFyc2VyCiAjaWYgRU5BQkxFKFRIUkVBREVEX0hUTUxfUEFSU0VSKQot
ICAgIHZpcnR1YWwgdm9pZCBwaW5Ub01haW5UaHJlYWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgcGluVG9NYWluVGhyZWFkKCkgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICB2aXJ0dWFsIHZv
aWQgZGV0YWNoKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGhhc0luc2VydGlvblBvaW50
KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHByb2Nlc3NpbmdEYXRhKCkgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1N0b3BQYXJzaW5nKCkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BQYXJzaW5nKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIGlzV2FpdGluZ0ZvclNjcmlwdHMoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJv
b2wgaXNFeGVjdXRpbmdTY3JpcHQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZXhlY3V0ZVNjcmlwdHNXYWl0aW5nRm9yU3R5bGVzaGVldHMoKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGV0YWNoKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGhhc0luc2VydGlv
blBvaW50KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHByb2Nlc3NpbmdEYXRhKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1N0b3BQYXJzaW5nKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHN0b3BQYXJzaW5nKCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIGlzV2FpdGluZ0ZvclNjcmlwdHMoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgaXNFeGVjdXRpbmdTY3JpcHQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgZXhlY3V0ZVNjcmlwdHNXYWl0aW5nRm9yU3R5bGVzaGVldHMoKSBvdmVycmlkZTsKIAog
ICAgIC8vIEhUTUxTY3JpcHRSdW5uZXJIb3N0Ci0gICAgdmlydHVhbCB2b2lkIHdhdGNoRm9yTG9h
ZChDYWNoZWRSZXNvdXJjZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wV2F0Y2hp
bmdGb3JMb2FkKENhY2hlZFJlc291cmNlKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHdh
dGNoRm9yTG9hZChDYWNoZWRSZXNvdXJjZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBz
dG9wV2F0Y2hpbmdGb3JMb2FkKENhY2hlZFJlc291cmNlKikgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCBIVE1MSW5wdXRTdHJlYW0mIGlucHV0U3RyZWFtKCkgeyByZXR1cm4gbV9pbnB1dDsgfQogICAg
IHZpcnR1YWwgYm9vbCBoYXNQcmVsb2FkU2Nhbm5lcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJlbG9h
ZFNjYW5uZXIuZ2V0KCkgJiYgIXNob3VsZFVzZVRocmVhZGluZygpOyB9Ci0gICAgdmlydHVhbCB2
b2lkIGFwcGVuZEN1cnJlbnRJbnB1dFN0cmVhbVRvUHJlbG9hZFNjYW5uZXJBbmRTY2FuKCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGFwcGVuZEN1cnJlbnRJbnB1dFN0cmVhbVRvUHJlbG9h
ZFNjYW5uZXJBbmRTY2FuKCkgb3ZlcnJpZGU7CiAKICAgICAvLyBDYWNoZWRSZXNvdXJjZUNsaWVu
dAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFyc2VyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuaAppbmRleCA1
NTRhZjVlLi5lN2ExY2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9U
ZXh0RG9jdW1lbnRQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0
RG9jdW1lbnRQYXJzZXIuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IFRleHREb2N1bWVudFBhcnNlcihIVE1MRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1
YWwgdm9pZCBhcHBlbmQoUGFzc1JlZlB0cjxTdHJpbmdJbXBsPikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGFwcGVuZChQYXNzUmVmUHRyPFN0cmluZ0ltcGw+KSBvdmVycmlkZTsKICAgICB2
b2lkIGluc2VydEZha2VQcmVFbGVtZW50KCk7CiAKICAgICBib29sIG1faGF2ZUluc2VydGVkRmFr
ZVByZUVsZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRh
aWxzTWFya2VyQ29udHJvbC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01h
cmtlckNvbnRyb2wuaAppbmRleCBjN2RkYzljLi43MjVhNDgxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RldGFpbHNNYXJrZXJDb250cm9sLmgKQEAgLTQ1LDcgKzQ1LDcg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICBEZXRhaWxzTWFya2VyQ29udHJvbChEb2N1bWVudCYp
OwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJl
bmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJT
dHlsZT4pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0
IFJlbmRlclN0eWxlJik7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1Bz
ZXVkb0lkKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0luc2VydGlvblBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9JbnNlcnRpb25Q
b2ludC5oCmluZGV4IDRhODNjYzEuLmM3OTI3ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0luc2VydGlvblBvaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvSW5zZXJ0aW9uUG9pbnQuaApAQCAtNjQsMTEgKzY0LDExIEBAIHB1YmxpYzoKIAogcHJv
dGVjdGVkOgogICAgIEluc2VydGlvblBvaW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwotICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxl
JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGls
ZENoYW5nZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVx
dWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIGlzSW5zZXJ0aW9uUG9pbnROb2RlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsg
fQorICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENo
YW5nZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVz
dCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IGlzSW5zZXJ0aW9uUG9pbnROb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQog
CiBwcml2YXRlOgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50VHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbEVsZW1lbnRUeXBlcy5oCmluZGV4IDY1YzBkNzAuLjBlNDNkMzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRUeXBlcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRUeXBlcy5o
CkBAIC0xMTAsNyArMTEwLDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9sRGl2RWxl
bWVudCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCwgcHVibGljIE1lZGlhQ29udHJvbEVsZW1lbnQg
ewogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgYm9vbCBpc01lZGlhQ29udHJvbEVsZW1lbnQoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiBNZWRpYUNvbnRyb2xFbGVtZW50Ojppc01lZGlhQ29udHJv
bEVsZW1lbnQoKTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc01lZGlhQ29udHJvbEVsZW1lbnQoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBNZWRpYUNvbnRyb2xFbGVtZW50Ojppc01lZGlhQ29udHJv
bEVsZW1lbnQoKTsgfQogICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbERpdkVsZW1lbnQoRG9jdW1l
bnQmLCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSk7CiB9OwogCkBAIC0xMTgsNyArMTE4LDcgQEAg
cHJvdGVjdGVkOgogCiBjbGFzcyBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQgOiBwdWJsaWMgSFRN
TElucHV0RWxlbWVudCwgcHVibGljIE1lZGlhQ29udHJvbEVsZW1lbnQgewogcHJvdGVjdGVkOgot
ICAgIHZpcnR1YWwgYm9vbCBpc01lZGlhQ29udHJvbEVsZW1lbnQoKSBjb25zdCBPVkVSUklERSB7
IHJldHVybiBNZWRpYUNvbnRyb2xFbGVtZW50Ojppc01lZGlhQ29udHJvbEVsZW1lbnQoKTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBpc01lZGlhQ29udHJvbEVsZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBNZWRpYUNvbnRyb2xFbGVtZW50Ojppc01lZGlhQ29udHJvbEVsZW1lbnQoKTsgfQog
ICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbElucHV0RWxlbWVudChEb2N1bWVudCYsIE1lZGlhQ29u
dHJvbEVsZW1lbnRUeXBlKTsKIAogcHJpdmF0ZToKQEAgLTE0NSwzMSArMTQ1LDMxIEBAIGNsYXNz
IE1lZGlhQ29udHJvbE11dGVCdXR0b25FbGVtZW50IDogcHVibGljIE1lZGlhQ29udHJvbElucHV0
RWxlbWVudCB7CiBwdWJsaWM6CiAgICAgdm9pZCBjaGFuZ2VkTXV0ZSgpOwogCi0gICAgdmlydHVh
bCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREUgeyByZXR1cm4g
dHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygp
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IE1l
ZGlhQ29udHJvbE11dGVCdXR0b25FbGVtZW50KERvY3VtZW50JiwgTWVkaWFDb250cm9sRWxlbWVu
dFR5cGUpOwogCi0gICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIG92
ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVEaXNwbGF5VHlwZSgp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVEaXNwbGF5VHlwZSgpIG92ZXJyaWRl
OwogfTsKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBjbGFzcyBNZWRpYUNv
bnRyb2xTZWVrQnV0dG9uRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQg
ewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50
cygpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3Bv
bmRUb01vdXNlQ2xpY2tFdmVudHMoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKIHByb3Rl
Y3RlZDoKICAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xTZWVrQnV0dG9uRWxlbWVudChEb2N1bWVu
dCYsIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0
RXZlbnRIYW5kbGVyKEV2ZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRF
dmVudEhhbmRsZXIoRXZlbnQqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNGb3J3YXJk
QnV0dG9uKCkgY29uc3QgPSAwOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBzZXRBY3Rp
dmUoYm9vbCAvKmZsYWcqLyA9IHRydWUsIGJvb2wgLypwYXVzZSovID0gZmFsc2UpIE9WRVJSSURF
IEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCAvKmZsYWcqLyA9IHRydWUs
IGJvb2wgLypwYXVzZSovID0gZmFsc2UpIG92ZXJyaWRlIEZJTkFMOwogCiAgICAgdm9pZCBzdGFy
dFRpbWVyKCk7CiAgICAgdm9pZCBzdG9wVGltZXIoKTsKQEAgLTE4NywxNSArMTg3LDE1IEBAIHBy
aXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQgOiBwdWJsaWMg
TWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgd2ls
bFJlc3BvbmRUb01vdXNlTW92ZUV2ZW50cygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCB3
aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9v
bCB3aWxsUmVzcG9uZFRvTW91c2VNb3ZlRXZlbnRzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBi
b29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBz
ZXRWb2x1bWUoZG91YmxlKTsKICAgICB2b2lkIHNldENsZWFyTXV0ZWRPblVzZXJJbnRlcmFjdGlv
bihib29sKTsKIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFZvbHVtZVNs
aWRlckVsZW1lbnQoRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhh
bmRsZXIoRXZlbnQqKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBib29sIG1fY2xlYXJNdXRl
ZE9uVXNlckludGVyYWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sRWxlbWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbEVsZW1lbnRzLmgKaW5kZXggZTA3ZjY2Mi4uOWQ3NWRlZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCkBAIC01MCwx
NSArNTAsMTUgQEAgcHVibGljOgogICAgIHZvaWQgbWFrZVRyYW5zcGFyZW50KCk7CiAKICNpZiAh
UExBVEZPUk0oSU9TKQotICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VNb3ZlRXZl
bnRzKCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVz
cG9uZFRvTW91c2VDbGlja0V2ZW50cygpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlTW92ZUV2ZW50cygpIG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVu
dHMoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAjZW5kaWYKIAogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQoRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBvdmVy
cmlkZTsKIAogICAgIHZvaWQgc3RhcnREcmFnKGNvbnN0IExheW91dFBvaW50JiBldmVudExvY2F0
aW9uKTsKICAgICB2b2lkIGNvbnRpbnVlRHJhZyhjb25zdCBMYXlvdXRQb2ludCYgZXZlbnRMb2Nh
dGlvbik7CkBAIC04OCw3ICs4OCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBleHBsaWNp
dCBNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQoRG9jdW1lbnQmKTsKLSAgICB2aXJ0
dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBv
dmVycmlkZTsKIH07CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTk5LDcg
Kzk5LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbE92
ZXJsYXlFbmNsb3N1cmVFbGVtZW50KERvY3VtZW50Jik7Ci0gICAgdmlydHVhbCBjb25zdCBBdG9t
aWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBj
b25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Qgb3ZlcnJpZGU7CiB9Owog
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMTIsOSArMTEyLDkgQEAgcHVi
bGljOgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFp
bmVyRWxlbWVudChEb2N1bWVudCYpOwotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBz
aGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgY29uc3QgQXRvbWlj
U3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVu
ZGVyU3R5bGU+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIG92ZXJyaWRlOwog
fTsKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTI0LDE2ICsxMjQsMTYg
QEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRl
ckNvbnRhaW5lckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiAjaWYgIVBMQVRGT1JNKElP
UykKLSAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlTW92ZUV2ZW50cygpIE9WRVJS
SURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNl
TW92ZUV2ZW50cygpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICNlbmRpZgogCiBwcml2YXRl
OgogICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQo
RG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1
ZG9JZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5k
bGVyKEV2ZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNo
YWRvd1BzZXVkb0lkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRF
dmVudEhhbmRsZXIoRXZlbnQqKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxl
bWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBvdmVycmlkZTsKIH07CiAKIC8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE0Niw3ICsxNDYsNyBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQo
RG9jdW1lbnQmKTsKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRv
SWQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hh
ZG93UHNldWRvSWQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGVudW0gU3RhdGVCZWluZ0Rpc3Bs
YXllZCB7IE5vdGhpbmcsIExvYWRpbmcsIExpdmVCcm9hZGNhc3QgfTsKICAgICBTdGF0ZUJlaW5n
RGlzcGxheWVkIG1fc3RhdGVCZWluZ0Rpc3BsYXllZDsKQEAgLTE1OSwxNCArMTU5LDE0IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25F
bGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmLCBNZWRpYUNvbnRyb2xzKik7CiAKICNpZiAhUExBVEZP
Uk0oSU9TKQotICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VNb3ZlRXZlbnRzKCkg
T1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRv
TW91c2VNb3ZlRXZlbnRzKCkgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogI2VuZGlmCiAKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudChE
b2N1bWVudCYsIE1lZGlhQ29udHJvbHMqKTsKIAotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3Ry
aW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBk
ZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBvdmVycmlkZTsKIAogICAgIE1lZGlh
Q29udHJvbHMqIG1fY29udHJvbHM7CiB9OwpAQCAtMTc5LDcgKzE3OSw3IEBAIHB1YmxpYzoKIAog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9u
RWxlbWVudChEb2N1bWVudCYpOwotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFk
b3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3Ry
aW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogCkBAIC0xOTAsMTYg
KzE5MCwxNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUGxh
eUJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiAjaWYgIVBMQVRGT1JNKElPUykK
LSAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBPVkVSUklE
RSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNs
aWNrRXZlbnRzKCkgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogI2VuZGlmCiAKLSAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlRGlzcGxheVR5cGUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlRGlzcGxheVR5cGUoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBN
ZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudChEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBj
b25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIG92ZXJyaWRl
OwogfTsKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjA4LDEzICsyMDgs
MTMgQEAgY2xhc3MgTWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50IEZJTkFMIDog
cHVibGljIE1lZGlhQ29udHJvbElucHV0RWxlbWUKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVu
dCYpOwogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZURpc3BsYXlUeXBlKCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZURpc3BsYXlUeXBlKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6
CiAgICAgZXhwbGljaXQgTWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50KERvY3Vt
ZW50Jik7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQo
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihF
dmVudCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQ
c2V1ZG9JZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50Kikgb3ZlcnJpZGU7CiB9OwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCkBAIC0yMjUsOSArMjI1LDkgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGV4cGxp
Y2l0IE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudChEb2N1bWVudCYpOwotICAg
IHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGlzRm9yd2FyZEJ1dHRvbigpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNGb3J3YXJkQnV0
dG9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjM4LDkgKzIzOCw5IEBAIHB1YmxpYzoKIAogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQoRG9jdW1l
bnQmKTsKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNl
dWRvSWQoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc0ZvcndhcmRCdXR0
b24oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBp
c0ZvcndhcmRCdXR0b24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAog
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjUwLDE0ICsyNTAsMTQgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1l
bnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICB2aXJ0dWFs
IGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBPVkVSUklERSB7IHJldHVybiB0
cnVlOyB9CisgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgZXhwbGlj
aXQgTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudChEb2N1bWVudCYpOwogCi0gICAgdmly
dHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIG92
ZXJyaWRlOwogfTsKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjY3LDE0
ICsyNjcsMTQgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJl
dHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogI2lmICFQ
TEFURk9STShJT1MpCi0gICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZl
bnRzKCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVz
cG9uZFRvTW91c2VDbGlja0V2ZW50cygpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICNlbmRp
ZgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVC
dXR0b25FbGVtZW50KERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVm
YXVsdEV2ZW50SGFuZGxlcihFdmVudCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kikgb3ZlcnJpZGU7CiB9OwogCiAvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yODQsMTYgKzI4NCwxNiBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0
b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmLCBNZWRpYUNvbnRyb2xzKik7CiAKICNpZiAhUExB
VEZPUk0oSU9TKQotICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50
cygpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3Bv
bmRUb01vdXNlQ2xpY2tFdmVudHMoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAjZW5kaWYK
IAotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVEaXNwbGF5VHlwZSgpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVEaXNwbGF5VHlwZSgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudChE
b2N1bWVudCYsIE1lZGlhQ29udHJvbHMqKTsKIAotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3Ry
aW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBk
ZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBvdmVycmlkZTsKIAogI2lmIFBMQVRG
T1JNKE1BQykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShHVEspCiAgICAgTWVkaWFDb250
cm9scyogbV9jb250cm9sczsKQEAgLTMwNywxMiArMzA3LDEyIEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDbG9zZWRDYXB0aW9uc0NvbnRhaW5lckVsZW1lbnQ+
IGNyZWF0ZShEb2N1bWVudCYpOwogCiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICB2aXJ0dWFsIGJv
b2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBPVkVSUklERSB7IHJldHVybiB0cnVl
OyB9CisgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgTWVkaWFDb250
cm9sQ2xvc2VkQ2FwdGlvbnNDb250YWluZXJFbGVtZW50KERvY3VtZW50Jik7Ci0gICAgdmlydHVh
bCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3QgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Qgb3Zl
cnJpZGU7CiB9OwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMjIsNyAr
MzIyLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbENsb3Nl
ZENhcHRpb25zVHJhY2tMaXN0RWxlbWVudD4gY3JlYXRlKERvY3VtZW50JiwgTWVkaWFDb250cm9s
cyopOwogCiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRU
b01vdXNlQ2xpY2tFdmVudHMoKSBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVh
bCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQogI2VuZGlmCiAKICAgICB2b2lkIHVwZGF0ZURpc3BsYXkoKTsKQEAgLTMzMiw4ICsz
MzIsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZWJ1aWxkVHJhY2tMaXN0TWVudSgpOwogCi0g
ICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVu
dCopIG92ZXJyaWRlOwogCiAgICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+PiBUcmFj
a01lbnVJdGVtczsKICAgICBUcmFja01lbnVJdGVtcyBtX21lbnVJdGVtczsKQEAgLTM1MSw3ICsz
NTEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVGltZWxp
bmVFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmLCBNZWRpYUNvbnRyb2xzKik7CiAKICNpZiAhUExB
VEZPUk0oSU9TKQotICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50
cygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2
ZW50cygpIG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICB2b2lkIHNldFBvc2l0aW9uKGRvdWJsZSk7
CkBAIC0zNjAsOCArMzYwLDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBNZWRp
YUNvbnRyb2xUaW1lbGluZUVsZW1lbnQoRG9jdW1lbnQmLCBNZWRpYUNvbnRyb2xzKik7CiAKLSAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIE9WRVJS
SURFOworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50
Kikgb3ZlcnJpZGU7CiAKICAgICBNZWRpYUNvbnRyb2xzKiBtX2NvbnRyb2xzOwogfTsKQEAgLTM3
Myw3ICszNzMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9s
RnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiAjaWYgIVBMQVRG
T1JNKElPUykKLSAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMo
KSBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25k
VG9Nb3VzZUNsaWNrRXZlbnRzKCkgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogI2VuZGlmCiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0SXNGdWxsc2NyZWVuKGJvb2wpOwpAQCAtMzgxLDggKzM4MSw4
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFDb250cm9sRnVsbHNjcmVl
bkJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3Ry
aW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBk
ZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBvdmVycmlkZTsKIH07CiAKIC8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM5Myw3ICszOTMsNyBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFDb250cm9sUGFuZWxWb2x1bWVTbGlkZXJFbGVt
ZW50KERvY3VtZW50Jik7Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1Bz
ZXVkb0lkKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcm
IHNoYWRvd1BzZXVkb0lkKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCkBAIC00MDMsNyArNDAzLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgog
ICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50KERv
Y3VtZW50Jik7Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lk
KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRv
d1BzZXVkb0lkKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCkBAIC00MTMsMTMgKzQxMywxMyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ+IGNyZWF0
ZShEb2N1bWVudCYpOwogCiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICB2aXJ0dWFsIGJvb2wgd2ls
bFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Cisg
ICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgb3ZlcnJpZGUg
eyByZXR1cm4gdHJ1ZTsgfQogI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFD
b250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmKTsKLSAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIE9WRVJSSURF
OworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kikg
b3ZlcnJpZGU7CiB9OwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00Mjks
MTQgKzQyOSwxNCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9s
RnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiAj
aWYgIVBMQVRGT1JNKElPUykKLSAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xp
Y2tFdmVudHMoKSBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHdp
bGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQog
I2VuZGlmCiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFDb250cm9sRnVsbHNjcmVlblZv
bHVtZU1heEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBj
b25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBvdmVycmlkZTsKIH07CiAK
IApAQCAtNDQ4LDcgKzQ0OCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBN
ZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQoRG9jdW1lbnQmKTsKLSAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25z
dCBvdmVycmlkZTsKIH07CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQ1
OSw3ICs0NTksNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFDb250
cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudChEb2N1bWVudCYpOwotICAgIHZpcnR1YWwgY29u
c3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IG92ZXJyaWRl
OwogfTsKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDgwLDEyICs0ODAs
MTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVRpbWVyRmlyZWQoVGltZXI8TWVkaWFDb250
cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudD4mKTsKIAogICAgIGV4cGxpY2l0IE1lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQoRG9jdW1lbnQmKTsKLSAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdCBvdmVycmlk
ZTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVy
U3R5bGU+KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJbWFnZT4gY3JlYXRl
VGV4dFRyYWNrUmVwcmVzZW50YXRpb25JbWFnZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCB0ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQoY29uc3QgSW50UmVjdCYpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJbWFnZT4gY3JlYXRlVGV4dFRyYWNrUmVw
cmVzZW50YXRpb25JbWFnZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB0ZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQoY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOwogICAg
IHZvaWQgY2xlYXJUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpOwogICAgIE93blB0cjxUZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbj4gbV90ZXh0VHJhY2tSZXByZXNlbnRhdGlvbjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5oCmluZGV4IGM5NWY2OTEuLmQ0NzFkZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmgKQEAgLTk0LDcg
Kzk0LDcgQEAgY2xhc3MgTWVkaWFDb250cm9scyA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CiAg
ICAgdmlydHVhbCB2b2lkIGV4aXRlZEZ1bGxzY3JlZW4oKTsKIAogI2lmICFQTEFURk9STShJT1Mp
Ci0gICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZU1vdmVFdmVudHMoKSBPVkVSUklE
RSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZU1v
dmVFdmVudHMoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAjZW5kaWYKIAogICAgIHZpcnR1
YWwgdm9pZCBoaWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXJGaXJlZChUaW1lcjxNZWRpYUNvbnRy
b2xzPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sc0FwcGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBw
bGUuaAppbmRleCA0YmU4ZGRiLi45M2IxMjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xzQXBwbGUuaApAQCAtNjQsMjkgKzY0LDI5IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQXBwbGU+IGNyZWF0ZUNvbnRyb2xz
KERvY3VtZW50Jik7CiAKICAgICAvLyBNZWRpYUNvbnRyb2xzIGltcGxlbWVudGF0aW9uLgotICAg
IHZpcnR1YWwgdm9pZCBzZXRNZWRpYUNvbnRyb2xsZXIoTWVkaWFDb250cm9sbGVySW50ZXJmYWNl
KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldE1lZGlhQ29udHJvbGxlcihNZWRpYUNv
bnRyb2xsZXJJbnRlcmZhY2UqKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBoaWRlKCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG1ha2VUcmFuc3BhcmVudCgpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBoaWRlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG1ha2VU
cmFuc3BhcmVudCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHJlc2V0KCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHJlc2V0KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgY2hhbmdlZE11dGUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2hhbmdlZFZvbHVt
ZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjaGFuZ2VkTXV0ZSgpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBjaGFuZ2VkVm9sdW1lKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgZW50ZXJlZEZ1bGxzY3JlZW4oKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZXhp
dGVkRnVsbHNjcmVlbigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBlbnRlcmVkRnVsbHNj
cmVlbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBleGl0ZWRGdWxsc2NyZWVuKCkgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0ZWRFcnJvcigpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBsb2FkZWRNZXRhZGF0YSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCByZXBvcnRlZEVycm9yKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGxvYWRlZE1ldGFk
YXRhKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2hvd1ZvbHVtZVNsaWRlcigpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDdXJyZW50VGltZURpc3BsYXkoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3RhdHVzRGlzcGxheSgpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBzaG93Vm9sdW1lU2xpZGVyKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZUN1cnJlbnRUaW1lRGlzcGxheSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVTdGF0dXNEaXNwbGF5KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
Y2hhbmdlZENsb3NlZENhcHRpb25zVmlzaWJpbGl0eSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCB0b2dnbGVDbG9zZWRDYXB0aW9uVHJhY2tMaXN0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGNsb3NlZENhcHRpb25UcmFja3NDaGFuZ2VkKCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGNoYW5nZWRDbG9zZWRDYXB0aW9uc1Zpc2liaWxpdHkoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgdG9nZ2xlQ2xvc2VkQ2FwdGlvblRyYWNrTGlzdCgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBjbG9zZWRDYXB0aW9uVHJhY2tzQ2hhbmdlZCgpIG92ZXJyaWRlOwogCiAg
ICAgYm9vbCBzaG91bGRDbG9zZWRDYXB0aW9uc0NvbnRhaW5lclByZXZlbnRQYWdlU2Nyb2xsaW5n
KGludCB3aGVlbERlbHRhWSk7CiAgICAgdm9pZCBoYW5kbGVDbGlja0V2ZW50KEV2ZW50Kik7CkBA
IC05NCw3ICs5NCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWVkaWFDb250cm9sc0FwcGxl
KERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVu
dCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50
Kikgb3ZlcnJpZGU7CiAgICAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzQXBwbGVFdmVudExpc3Rl
bmVyPiBldmVudExpc3RlbmVyKCk7CiAKICAgICB2b2lkIHNob3dDbG9zZWRDYXB0aW9uVHJhY2tM
aXN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xzR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzR3RrLmgK
aW5kZXggZTYzZDcwOS4uYjQ0NGNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sc0d0ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01lZGlhQ29udHJvbHNHdGsuaApAQCAtNDIsMTkgKzQyLDE5IEBAIHB1YmxpYzoKICAgICAvLyBD
YWxsZWQgZnJvbSBwb3J0LXNwZWNpZmljIHBhcmVudCBjcmVhdGUgZnVuY3Rpb24gdG8gY3JlYXRl
IGN1c3RvbSBjb250cm9scy4KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzR3Rr
PiBjcmVhdGVDb250cm9scyhEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldE1lZGlh
Q29udHJvbGxlcihNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UqKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgcmVzZXQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tTdGFy
dGVkKCkgT1ZFUlJJREU7Ci0gICAgdm9pZCBjaGFuZ2VkTXV0ZSgpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVDdXJyZW50VGltZURpc3BsYXkoKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgc2hvd1ZvbHVtZVNsaWRlcigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBt
YWtlVHJhbnNwYXJlbnQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQ2xvc2Vk
Q2FwdGlvblRyYWNrTGlzdCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRNZWRpYUNv
bnRyb2xsZXIoTWVkaWFDb250cm9sbGVySW50ZXJmYWNlKikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHJlc2V0KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBsYXliYWNrU3RhcnRl
ZCgpIG92ZXJyaWRlOworICAgIHZvaWQgY2hhbmdlZE11dGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlQ3VycmVudFRpbWVEaXNwbGF5KCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHNob3dWb2x1bWVTbGlkZXIoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFr
ZVRyYW5zcGFyZW50KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUNsb3NlZENh
cHRpb25UcmFja0xpc3QoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgaGFuZGxlQ2xpY2tFdmVudChF
dmVudCopOwogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIHZvaWQgY3JlYXRlVGV4dFRy
YWNrRGlzcGxheSgpIE9WRVJSSURFOworICAgIHZvaWQgY3JlYXRlVGV4dFRyYWNrRGlzcGxheSgp
IG92ZXJyaWRlOwogI2VuZGlmCiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmgKaW5kZXggM2VjODg3MC4uMTJjY2U0MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmgKQEAg
LTU4LDggKzU4LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNZXRlcklubmVyRWxlbWVudChE
b2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVu
ZGVyU3R5bGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBvdmVycmlkZTsKIH07CiAKIGlubGluZSBQ
YXNzUmVmUHRyPE1ldGVySW5uZXJFbGVtZW50PiBNZXRlcklubmVyRWxlbWVudDo6Y3JlYXRlKERv
Y3VtZW50JiBkb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1Byb2dyZXNzU2hhZG93RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJv
Z3Jlc3NTaGFkb3dFbGVtZW50LmgKaW5kZXggMzg1YTYzZC4uMWIwZTc5NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmgKQEAgLTU4
LDcgKzU4LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBQcm9ncmVzc0lubmVyRWxlbWVudChE
b2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1Jl
ZjxSZW5kZXJTdHlsZT4pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IFJlbmRlclN0eWxlJik7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAppbmRleCA5MTNkZWEyLi5mYWI3N2ZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5j
cHAKQEAgLTExNSwxMCArMTE1LDEwIEBAIHB1YmxpYzoKICAgICB9CiAKIHB1YmxpYzoKLSAgICB2
aXJ0dWFsIHZvaWQgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0
LCBMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlTG9naWNhbEhlaWdodChMYXlv
dXRVbml0IGxvZ2ljYWxIZWlnaHQsIExheW91dFVuaXQgbG9naWNhbFRvcCwgTG9naWNhbEV4dGVu
dENvbXB1dGVkVmFsdWVzJikgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVh
bCB2b2lkIGxheW91dCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBvdmVy
cmlkZTsKIH07CiAKIHZvaWQgUmVuZGVyU2xpZGVyQ29udGFpbmVyOjpjb21wdXRlTG9naWNhbEhl
aWdodChMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIExheW91dFVuaXQgbG9naWNhbFRvcCwgTG9n
aWNhbEV4dGVudENvbXB1dGVkVmFsdWVzJiBjb21wdXRlZFZhbHVlcykgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgKaW5kZXggYjg4NTQ0
Yi4uNTAwMGI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVy
VGh1bWJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1
bWJFbGVtZW50LmgKQEAgLTYxLDI0ICs2MSwyNCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNs
aWRlclRodW1iRWxlbWVudChEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0
aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBp
c0Rpc2FibGVkRm9ybUNvbnRyb2woKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
bWF0Y2hlc1JlYWRPbmx5UHNldWRvQ2xhc3MoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IGJvb2wgbWF0Y2hlc1JlYWRXcml0ZVBzZXVkb0NsYXNzKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBFbGVtZW50KiBmb2N1c0RlbGVnYXRlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVu
ZGVyU3R5bGU+KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RWxlbWVudD4gY2xv
bmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbigpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgYm9vbCBpc0Rpc2FibGVkRm9ybUNvbnRyb2woKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgbWF0Y2hlc1JlYWRPbmx5UHNldWRvQ2xhc3MoKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlc1JlYWRXcml0ZVBzZXVkb0NsYXNzKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBFbGVtZW50KiBmb2N1c0RlbGVnYXRlKCkgb3ZlcnJpZGU7CiAj
aWYgIVBMQVRGT1JNKElPUykKLSAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihF
dmVudCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VNb3Zl
RXZlbnRzKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNs
aWNrRXZlbnRzKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRs
ZXIoRXZlbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNl
TW92ZUV2ZW50cygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91
c2VDbGlja0V2ZW50cygpIG92ZXJyaWRlOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZF
TlRTKSAmJiBQTEFURk9STShJT1MpCi0gICAgdmlydHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRlcmVy
cygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBvdmVy
cmlkZTsKICNlbmRpZgotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGV0YWNoUmVuZGVyZXJzKCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsK
IAotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9J
ZCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBzdGFydERyYWdnaW5nKCk7CiAgICAgdm9p
ZCBzdG9wRHJhZ2dpbmcoKTsKQEAgLTEzMiw3ICsxMzIsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6
CiAgICAgU2xpZGVyQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCYpOwotICAgIHZpcnR1YWwgUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRl
clN0eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5oCmlu
ZGV4IDRlMGFlOTMuLjMzYmE5NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1NwaW5CdXR0b25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U3BpbkJ1dHRvbkVsZW1lbnQuaApAQCAtNjEsMjkgKzYxLDI5IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc3RlcChpbnQgYW1vdW50KTsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRU
b01vdXNlTW92ZUV2ZW50cygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9u
ZFRvTW91c2VDbGlja0V2ZW50cygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVz
cG9uZFRvTW91c2VNb3ZlRXZlbnRzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHdpbGxS
ZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGZvcndhcmRF
dmVudChFdmVudCopOwogCiBwcml2YXRlOgogICAgIFNwaW5CdXR0b25FbGVtZW50KERvY3VtZW50
JiwgU3BpbkJ1dHRvbk93bmVyJik7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYg
c2hhZG93UHNldWRvSWQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERl
dGFjaFJlbmRlcmVycygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc1NwaW5CdXR0b25F
bGVtZW50KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9v
bCBpc0Rpc2FibGVkRm9ybUNvbnRyb2woKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBzaGFkb3dI
b3N0KCkgJiYgc2hhZG93SG9zdCgpLT5pc0Rpc2FibGVkRm9ybUNvbnRyb2woKTsgfQotICAgIHZp
cnR1YWwgYm9vbCBtYXRjaGVzUmVhZE9ubHlQc2V1ZG9DbGFzcygpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgYm9vbCBtYXRjaGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MoKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsT3BlblBvcHVwKCkgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNTcGluQnV0dG9uRWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNEaXNhYmxlZEZvcm1Db250cm9sKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gc2hhZG93SG9zdCgpICYmIHNoYWRvd0hvc3QoKS0+aXNEaXNhYmxl
ZEZvcm1Db250cm9sKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlc1JlYWRPbmx5UHNldWRv
Q2xhc3MoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlc1JlYWRXcml0
ZVBzZXVkb0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRF
dmVudEhhbmRsZXIoRXZlbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbE9wZW5Q
b3B1cCgpIG92ZXJyaWRlOwogICAgIHZvaWQgZG9TdGVwQWN0aW9uKGludCk7CiAgICAgdm9pZCBz
dGFydFJlcGVhdGluZ1RpbWVyKCk7CiAgICAgdm9pZCBzdG9wUmVwZWF0aW5nVGltZXIoKTsKICAg
ICB2b2lkIHJlcGVhdGluZ1RpbWVyRmlyZWQoVGltZXI8U3BpbkJ1dHRvbkVsZW1lbnQ+Kik7Ci0g
ICAgdmlydHVhbCB2b2lkIHNldEhvdmVyZWQoYm9vbCA9IHRydWUpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBzZXRIb3ZlcmVkKGJvb2wgPSB0cnVlKSBvdmVycmlkZTsKICAgICBib29sIHNo
b3VsZFJlc3BvbmRUb01vdXNlRXZlbnRzKCk7Ci0gICAgdmlydHVhbCBib29sIGlzTW91c2VGb2N1
c2FibGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9v
bCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAog
ICAgIFNwaW5CdXR0b25Pd25lciogbV9zcGluQnV0dG9uT3duZXI7CiAgICAgYm9vbCBtX2NhcHR1
cmluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9s
SW5uZXJFbGVtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJ
bm5lckVsZW1lbnRzLmgKaW5kZXggNjVmYmVhYy4uNDBjMjVmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgKQEAgLTQx
LDcgKzQxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRleHRDb250cm9sSW5u
ZXJDb250YWluZXI+IGNyZWF0ZShEb2N1bWVudCYpOwogcHJvdGVjdGVkOgogICAgIFRleHRDb250
cm9sSW5uZXJDb250YWluZXIoRG9jdW1lbnQmKTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9W
RVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgb3ZlcnJpZGU7CiB9OwogCiBjbGFzcyBU
ZXh0Q29udHJvbElubmVyRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CkBA
IC01MCwyNiArNTAsMjYgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgVGV4dENvbnRyb2xJ
bm5lckVsZW1lbnQoRG9jdW1lbnQmKTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UmVuZGVyU3R5
bGU+IGN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8UmVuZGVyU3R5bGU+IGN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoKSBvdmVycmlkZTsKIAog
cHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzTW91c2VGb2N1c2FibGUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAogY2xhc3MgVGV4dENvbnRy
b2xJbm5lclRleHRFbGVtZW50IEZJTkFMIDogcHVibGljIEhUTUxEaXZFbGVtZW50IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIo
RXZlbnQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihF
dmVudCopIG92ZXJyaWRlOwogCiAgICAgUmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrKiByZW5k
ZXJlcigpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVu
dChEb2N1bWVudCYpOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjdXN0b21TdHlsZUZvclJlbmRlcmVyKCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1RleHRDb250cm9sSW5uZXJU
ZXh0RWxlbWVudCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFs
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxS
ZW5kZXJTdHlsZT4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxSZW5kZXJTdHls
ZT4gY3VzdG9tU3R5bGVGb3JSZW5kZXJlcigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBp
c01vdXNlRm9jdXNhYmxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgaXNUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CiB9OwogCiBpbmxpbmUgYm9vbCBpc1RleHRDb250cm9sSW5uZXJU
ZXh0RWxlbWVudChjb25zdCBIVE1MRWxlbWVudCYgZWxlbWVudCkgeyByZXR1cm4gZWxlbWVudC5p
c1RleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudCgpOyB9CkBAIC04MCwzMiArODAsMzIgQEAgY2xh
c3MgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1MRGl2
RWxlbWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2VhcmNoRmllbGRSZXN1
bHRzQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBk
ZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kikgb3ZlcnJpZGU7CiAjaWYgIVBMQVRGT1JNKElPUykK
LSAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBvdmVy
cmlkZTsKICNlbmRpZgogCiBwcml2YXRlOgogICAgIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVs
ZW1lbnQoRG9jdW1lbnQmKTsKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93
UHNldWRvSWQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZvY3Vz
YWJsZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxz
ZTsgfQogfTsKIAogY2xhc3MgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50IEZJTkFMIDog
cHVibGljIEhUTUxEaXZFbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
ZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCi0gICAg
dmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQoKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRs
ZXIoRXZlbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZENhbmNl
bEJ1dHRvbkVsZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAjaWYgIVBM
QVRGT1JNKElPUykKLSAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVu
dHMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tF
dmVudHMoKSBvdmVycmlkZTsKICNlbmRpZgogCiBwcml2YXRlOgogICAgIFNlYXJjaEZpZWxkQ2Fu
Y2VsQnV0dG9uRWxlbWVudChEb2N1bWVudCYpOwotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3Ry
aW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3
aWxsRGV0YWNoUmVuZGVyZXJzKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzTW91c2VG
b2N1c2FibGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCB3aWxsRGV0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsg
fQogCiAgICAgYm9vbCBtX2NhcHR1cmluZzsKIH07CkBAIC0xNDQsOSArMTQ0LDkgQEAgcHJpdmF0
ZToKICAgICBTcGVlY2hJbnB1dCogc3BlZWNoSW5wdXQoKTsKICAgICB2b2lkIHNldFN0YXRlKFNw
ZWVjaElucHV0U3RhdGUgc3RhdGUpOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBz
aGFkb3dQc2V1ZG9JZCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBpc01vdXNlRm9jdXNhYmxl
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgd2ls
bEF0dGFjaFJlbmRlcmVycygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGV0YWNo
UmVuZGVyZXJzKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlzTW91c2VGb2N1c2FibGUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxs
QXR0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hS
ZW5kZXJlcnMoKSBvdmVycmlkZTsKIAogCiAgICAgYm9vbCBtX2NhcHR1cmluZzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1lvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQu
aAppbmRleCA4YmRkZDkzLi40YThhNjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9Zb3VUdWJlRW1iZWRTaGFkb3dFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5oCkBAIC0zOSw3ICszOSw3IEBA
IGNsYXNzIFlvdVR1YmVFbWJlZFNoYWRvd0VsZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRNTERpdkVs
ZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFlvdVR1YmVFbWJlZFNoYWRv
d0VsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgSFRN
TFBsdWdJbkltYWdlRWxlbWVudCogcGx1Z2luRWxlbWVudCgpIGNvbnN0OwogCiBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaAppbmRleCAwNzdlY2EwLi4yOWM1YmQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2suaApAQCAtNjAsMTIgKzYwLDEy
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBtYWluRGVzY0tleXdv
cmQoKTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiB0cmFuc2xhdGlvbktleXdvcmQo
KTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBjb21tZW50YXJ5S2V5d29yZCgpOwot
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBkZWZhdWx0S2luZEtleXdvcmQoKSBjb25z
dCBPVkVSUklERSB7IHJldHVybiBlbXB0eUF0b207IH0KKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21p
Y1N0cmluZyYgZGVmYXVsdEtpbmRLZXl3b3JkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZW1w
dHlBdG9tOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIG1fZW5hYmxlZDsgfQorICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbV9lbmFibGVkOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEVuYWJsZWQo
Y29uc3QgYm9vbCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJDbGllbnQoKSBPVkVSUklERSB7
IG1fY2xpZW50ID0gMDsgfQorICAgIHZpcnR1YWwgdm9pZCBjbGVhckNsaWVudCgpIG92ZXJyaWRl
IHsgbV9jbGllbnQgPSAwOyB9CiAgICAgQXVkaW9UcmFja0NsaWVudCogY2xpZW50KCkgY29uc3Qg
eyByZXR1cm4gbV9jbGllbnQ7IH0KIAogICAgIHNpemVfdCBpbmJhbmRUcmFja0luZGV4KCk7CkBA
IC03NCwxMyArNzQsMTMgQEAgcHJvdGVjdGVkOgogICAgIEF1ZGlvVHJhY2soQXVkaW9UcmFja0Ns
aWVudCosIFBhc3NSZWZQdHI8QXVkaW9UcmFja1ByaXZhdGU+KTsKIAogcHJpdmF0ZToKLSAgICB2
aXJ0dWFsIGJvb2wgaXNWYWxpZEtpbmQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBib29sIGlzVmFsaWRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIGNv
bnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGVuYWJsZWRDaGFuZ2VkKEF1ZGlvVHJh
Y2tQcml2YXRlKiwgYm9vbCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGlkQ2hhbmdlZChU
cmFja1ByaXZhdGVCYXNlKiwgY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIGxhYmVsQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgU3RyaW5nJikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGxhbmd1YWdlQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwg
Y29uc3QgU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmUoVHJh
Y2tQcml2YXRlQmFzZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBlbmFibGVkQ2hhbmdl
ZChBdWRpb1RyYWNrUHJpdmF0ZSosIGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBp
ZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBsYWJlbENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IFN0cmlu
ZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2
YXRlQmFzZSosIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxs
UmVtb3ZlKFRyYWNrUHJpdmF0ZUJhc2UqKSBvdmVycmlkZTsKIAogICAgIGJvb2wgbV9lbmFibGVk
OwogICAgIEF1ZGlvVHJhY2tDbGllbnQqIG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9BdWRpb1RyYWNrTGlzdC5oCmluZGV4IDQ1NDgyNjIuLjkxMDRiNmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0xpc3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tMaXN0LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgYXBwZW5kKFBhc3NSZWZQdHI8QXVkaW9UcmFjaz4pOwogCiAgICAgLy8g
RXZlbnRUYXJnZXQKLSAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0
SW50ZXJmYWNlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBFdmVudFRhcmdldEludGVy
ZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgog
ICAgIEF1ZGlvVHJhY2tMaXN0KEhUTUxNZWRpYUVsZW1lbnQqLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZEdlbmVy
aWNUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1Rl
eHRUcmFjay5oCmluZGV4IGY0M2Q4YTguLjI0NTZhOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svSW5iYW5kR2VuZXJpY1RleHRUcmFjay5oCkBAIC02NywxMiArNjcsMTIg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICBJbmJhbmRHZW5lcmljVGV4dFRyYWNrKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBUZXh0VHJhY2tDbGllbnQqLCBQYXNzUmVmUHRyPEluYmFuZFRleHRU
cmFja1ByaXZhdGU+KTsKIAotICAgIHZpcnR1YWwgdm9pZCBhZGRHZW5lcmljQ3VlKEluYmFuZFRl
eHRUcmFja1ByaXZhdGUqLCBQYXNzUmVmUHRyPEdlbmVyaWNDdWVEYXRhPikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSos
IEdlbmVyaWNDdWVEYXRhKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUdlbmVy
aWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWNDdWVEYXRhKikgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUN1ZShUZXh0VHJhY2tDdWUqLCBFeGNlcHRpb25Db2Rl
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGFkZEdlbmVyaWNDdWUoSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZSosIFBhc3NSZWZQdHI8R2VuZXJpY0N1ZURhdGE+KSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgR2Vu
ZXJpY0N1ZURhdGEqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlR2VuZXJpY0N1
ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgR2VuZXJpY0N1ZURhdGEqKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ3VlKFRleHRUcmFja0N1ZSosIEV4Y2VwdGlvbkNvZGUmKSBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25lZCkgT1ZFUlJJREUgeyBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IGNoYXIqLCB1bnNpZ25lZCkgb3ZlcnJpZGUgeyBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogCiAgICAgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVHZW5l
cmljPiBjcmVhdGVDdWUoUGFzc1JlZlB0cjxHZW5lcmljQ3VlRGF0YT4pOwogICAgIHZvaWQgdXBk
YXRlQ3VlRnJvbUN1ZURhdGEoVGV4dFRyYWNrQ3VlR2VuZXJpYyosIEdlbmVyaWNDdWVEYXRhKik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFRleHRUcmFjay5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRUZXh0VHJhY2suaAppbmRleCAwNjcx
MzFmLi4xZTEzMTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFu
ZFRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kVGV4dFRy
YWNrLmgKQEAgLTQwLDEyICs0MCwxMiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
SW5iYW5kVGV4dFRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFj
a0NsaWVudCosIFBhc3NSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4pOwogICAgIHZpcnR1
YWwgfkluYmFuZFRleHRUcmFjaygpOwogCi0gICAgdmlydHVhbCBib29sIGlzQ2xvc2VkQ2FwdGlv
bnMoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNTREgoKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKCkgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzTWFpblByb2dyYW1Db250ZW50KCkgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzRWFzeVRvUmVhZCgpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRNb2RlKGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgYm9vbCBpc0Nsb3NlZENhcHRpb25zKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIGlzU0RIKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBi
b29sIGNvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlcygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgYm9vbCBpc01haW5Qcm9ncmFtQ29udGVudCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgYm9vbCBpc0Vhc3lUb1JlYWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0TW9kZShjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICBzaXplX3QgaW5i
YW5kVHJhY2tJbmRleCgpOwogCiBwcm90ZWN0ZWQ6CkBAIC01NSwxMyArNTUsMTMgQEAgcHJvdGVj
dGVkOgogCiBwcml2YXRlOgogCi0gICAgdmlydHVhbCB2b2lkIGlkQ2hhbmdlZChUcmFja1ByaXZh
dGVCYXNlKiwgY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGxhYmVs
Q2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIGxhbmd1YWdlQ2hhbmdlZChUcmFja1ByaXZhdGVCYXNlKiwgY29uc3QgU3Ry
aW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmUoVHJhY2tQcml2YXRl
QmFzZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBpZENoYW5nZWQoVHJhY2tQcml2YXRl
QmFzZSosIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBsYWJlbENo
YW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IFN0cmlu
ZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlKFRyYWNrUHJpdmF0ZUJh
c2UqKSBvdmVycmlkZTsKIAogI2lmIFVTRShQTEFURk9STV9URVhUX1RSQUNLX01FTlUpCi0gICAg
dmlydHVhbCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiBwcml2YXRlVHJhY2soKSBPVkVSUklERSB7
IHJldHVybiBtX3ByaXZhdGUuZ2V0KCk7IH0KKyAgICB2aXJ0dWFsIEluYmFuZFRleHRUcmFja1By
aXZhdGUqIHByaXZhdGVUcmFjaygpIG92ZXJyaWRlIHsgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsg
fQogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0lu
YmFuZFdlYlZUVFRleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9JbmJhbmRX
ZWJWVFRUZXh0VHJhY2suaAppbmRleCBlN2I3YTEyLi5jMGMyZWY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL0luYmFuZFdlYlZUVFRleHRUcmFjay5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svSW5iYW5kV2ViVlRUVGV4dFRyYWNrLmgKQEAgLTQyLDE3ICs0
MiwxNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEluYmFuZFdlYlZUVFRleHRUcmFjayhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRyYWNrQ2xpZW50KiwgUGFzc1JlZlB0cjxJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlPik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VXZWJWVFRDdWVEYXRh
KEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5n
dGgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZVdlYlZUVEN1ZURhdGEoSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZSosIGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbmV3Q3Vlc1BhcnNlZCgpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBuZXdDdWVzUGFyc2VkKCkgb3ZlcnJpZGU7CiAjaWYgRU5BQkxFKFdFQlZU
VF9SRUdJT05TKQotICAgIHZpcnR1YWwgdm9pZCBuZXdSZWdpb25zUGFyc2VkKCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIG5ld1JlZ2lvbnNQYXJzZWQoKSBvdmVycmlkZTsKICNlbmRpZgot
ICAgIHZpcnR1YWwgdm9pZCBmaWxlRmFpbGVkVG9QYXJzZSgpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBmaWxlRmFpbGVkVG9QYXJzZSgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lk
IGFkZEdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIFBhc3NSZWZQdHI8R2VuZXJp
Y0N1ZURhdGE+KSBPVkVSUklERSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVh
bCB2b2lkIHVwZGF0ZUdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWND
dWVEYXRhKikgT1ZFUlJJREUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVHZW5lcmljQ3VlKEluYmFuZFRleHRUcmFja1ByaXZhdGUqLCBHZW5lcmljQ3Vl
RGF0YSopIE9WRVJSSURFIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgYWRkR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgUGFzc1JlZlB0cjxHZW5l
cmljQ3VlRGF0YT4pIG92ZXJyaWRlIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlR2VuZXJpY0N1ZShJbmJhbmRUZXh0VHJhY2tQcml2YXRlKiwgR2VuZXJp
Y0N1ZURhdGEqKSBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmlydHVh
bCB2b2lkIHJlbW92ZUdlbmVyaWNDdWUoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSosIEdlbmVyaWND
dWVEYXRhKikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogCiAgICAgT3duUHRy
PFdlYlZUVFBhcnNlcj4gbV93ZWJWVFRQYXJzZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9Mb2FkYWJsZVRleHRUcmFjay5oCmluZGV4IDdmMjM3NjAuLmQ2MGFkZTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svTG9hZGFibGVUZXh0VHJhY2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0xvYWRhYmxlVGV4dFRyYWNrLmgKQEAgLTU3LDE1
ICs1NywxNSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJDbGllbnQoKTsKIAot
ICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIGlkKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBBdG9taWNTdHJpbmcgaWQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHNpemVfdCB0cmFja0Vs
ZW1lbnRJbmRleCgpOwogICAgIEhUTUxUcmFja0VsZW1lbnQqIHRyYWNrRWxlbWVudCgpIHsgcmV0
dXJuIG1fdHJhY2tFbGVtZW50OyB9CiAgICAgdm9pZCBzZXRUcmFja0VsZW1lbnQoSFRNTFRyYWNr
RWxlbWVudCopOwotICAgIHZpcnR1YWwgRWxlbWVudCogZWxlbWVudCgpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgRWxlbWVudCogZWxlbWVudCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29s
IGlzRGVmYXVsdCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1faXNEZWZhdWx0OyB9Ci0gICAg
dmlydHVhbCB2b2lkIHNldElzRGVmYXVsdChib29sIGlzRGVmYXVsdCkgT1ZFUlJJREUgIHsgbV9p
c0RlZmF1bHQgPSBpc0RlZmF1bHQ7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNEZWZhdWx0KCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc0RlZmF1bHQ7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0
SXNEZWZhdWx0KGJvb2wgaXNEZWZhdWx0KSBvdmVycmlkZSAgeyBtX2lzRGVmYXVsdCA9IGlzRGVm
YXVsdDsgfQogCiBwcml2YXRlOgogICAgIC8vIFRleHRUcmFja0xvYWRlckNsaWVudApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKaW5kZXggM2EzNmY2ZC4uYWY5M2E1YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5oCkBAIC03Myw4ICs3Myw4IEBAIHB1YmxpYzoK
ICAgICB9CiAgICAgdmlydHVhbCB+VGV4dFRyYWNrKCk7CiAKLSAgICB2aXJ0dWFsIEV2ZW50VGFy
Z2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgT1ZFUlJJREUgRklOQUwg
eyByZXR1cm4gVGV4dFRyYWNrRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9Ci0gICAgdmlydHVh
bCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qg
T1ZFUlJJREUgRklOQUwgeyByZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OyB9CisgICAg
dmlydHVhbCBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0
IG92ZXJyaWRlIEZJTkFMIHsgcmV0dXJuIFRleHRUcmFja0V2ZW50VGFyZ2V0SW50ZXJmYWNlVHlw
ZTsgfQorICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIEZJTkFMIHsgcmV0dXJuIG1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dDsgfQogCiAgICAgc3RhdGljIFRleHRUcmFjayogY2FwdGlvbk1lbnVPZmZJdGVtKCk7
CiAgICAgc3RhdGljIFRleHRUcmFjayogY2FwdGlvbk1lbnVBdXRvbWF0aWNJdGVtKCk7CkBAIC04
NSwxNCArODUsMTQgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGNo
YXB0ZXJzS2V5d29yZCgpOwogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIG1ldGFkYXRh
S2V5d29yZCgpOwogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGZvcmNlZEtleXdvcmQo
KTsKLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZGVmYXVsdEtpbmRLZXl3b3JkKCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gc3VidGl0bGVzS2V5d29yZCgpOyB9CisgICAgdmlydHVh
bCBjb25zdCBBdG9taWNTdHJpbmcmIGRlZmF1bHRLaW5kS2V5d29yZCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIHN1YnRpdGxlc0tleXdvcmQoKTsgfQogICAgIHN0YXRpYyBib29sIGlzVmFsaWRL
aW5kS2V5d29yZChjb25zdCBBdG9taWNTdHJpbmcmKTsKIAogICAgIHN0YXRpYyBjb25zdCBBdG9t
aWNTdHJpbmcmIGRpc2FibGVkS2V5d29yZCgpOwogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJp
bmcmIGhpZGRlbktleXdvcmQoKTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzaG93
aW5nS2V5d29yZCgpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldEtpbmQoY29uc3QgQXRvbWljU3Ry
aW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEtpbmQoY29uc3QgQXRvbWljU3Ry
aW5nJikgb3ZlcnJpZGU7CiAKICAgICBBdG9taWNTdHJpbmcgbW9kZSgpIGNvbnN0IHsgcmV0dXJu
IG1fbW9kZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRNb2RlKGNvbnN0IEF0b21pY1N0cmluZyYp
OwpAQCAtMTA0LDcgKzEwNCw3IEBAIHB1YmxpYzoKICAgICBUZXh0VHJhY2tDdWVMaXN0KiBjdWVz
KCk7CiAgICAgVGV4dFRyYWNrQ3VlTGlzdCogYWN0aXZlQ3VlcygpIGNvbnN0OwogCi0gICAgdmly
dHVhbCB2b2lkIGNsZWFyQ2xpZW50KCkgT1ZFUlJJREUgeyBtX2NsaWVudCA9IDA7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgY2xlYXJDbGllbnQoKSBvdmVycmlkZSB7IG1fY2xpZW50ID0gMDsgfQogICAg
IFRleHRUcmFja0NsaWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAogICAgIHZv
aWQgYWRkQ3VlKFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPik7CkBAIC0xNTEsNyArMTUxLDcgQEAg
cHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIHZpcnR1YWwg
dm9pZCBzZXRMYW5ndWFnZShjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0TGFuZ3VhZ2UoY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAjZW5k
aWYKIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ8VHJhY2tCYXNlPjo6cmVmOwpAQCAtMTY2LDEyICsx
NjYsMTIgQEAgcHJvdGVjdGVkOgogICAgIFJlZlB0cjxUZXh0VHJhY2tDdWVMaXN0PiBtX2N1ZXM7
CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGlzVmFsaWRLaW5kKGNvbnN0IEF0b21pY1N0
cmluZyYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkS2luZChjb25z
dCBBdG9taWNTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBlbmFi
bGVkKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKSBjb25zdCBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIEZJ
TkFMIHsgcmVmKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIE9WRVJS
SURFIEZJTkFMIHsgZGVyZWYoKTsgfQorICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgp
IG92ZXJyaWRlIEZJTkFMIHsgcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRh
cmdldCgpIG92ZXJyaWRlIEZJTkFMIHsgZGVyZWYoKTsgfQogCiAjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKSAmJiBFTkFCTEUoV0VCVlRUX1JFR0lPTlMpCiAgICAgVGV4dFRyYWNrUmVnaW9uTGlzdCog
ZW5zdXJlVGV4dFRyYWNrUmVnaW9uTGlzdCgpOwpAQCAtMTc5LDcgKzE3OSw3IEBAIHByaXZhdGU6
CiAjZW5kaWYKIAogI2lmIFVTRShQTEFURk9STV9URVhUX1RSQUNLX01FTlUpCi0gICAgdmlydHVh
bCBUZXh0VHJhY2sqIHB1YmxpY1RyYWNrKCkgT1ZFUlJJREUgeyByZXR1cm4gdGhpczsgfQorICAg
IHZpcnR1YWwgVGV4dFRyYWNrKiBwdWJsaWNUcmFjaygpIG92ZXJyaWRlIHsgcmV0dXJuIHRoaXM7
IH0KIAogICAgIFJlZlB0cjxQbGF0Zm9ybVRleHRUcmFjaz4gbV9wbGF0Zm9ybVRleHRUcmFjazsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tD
dWUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKaW5kZXggNjAz
YzlhMC4uOTg2MjM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2tDdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5o
CkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBUZXh0VHJhY2tDdWVC
b3goRG9jdW1lbnQmLCBUZXh0VHJhY2tDdWUqKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxl
bWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBvdmVycmlkZTsKIAogICAgIFRleHRU
cmFja0N1ZSogbV9jdWU7CiB9OwpAQCAtMTMyLDcgKzEzMiw3IEBAIHB1YmxpYzoKICAgICBQYXNz
UmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUN1ZVJlbmRlcmluZ1RyZWUoKTsKIAogICAg
IHVzaW5nIEV2ZW50VGFyZ2V0OjpkaXNwYXRjaEV2ZW50OwotICAgIHZpcnR1YWwgYm9vbCBkaXNw
YXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wg
ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50Pikgb3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUo
V0VCVlRUX1JFR0lPTlMpCiAgICAgY29uc3QgU3RyaW5nJiByZWdpb25JZCgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVnaW9uSWQ7IH0KQEAgLTE1Myw4ICsxNTMsOCBAQCBwdWJsaWM6CiAgICAgaW50IGNh
bGN1bGF0ZUNvbXB1dGVkTGluZVBvc2l0aW9uKCk7CiAgICAgc3RkOjpwYWlyPGRvdWJsZSwgZG91
YmxlPiBnZXRQb3NpdGlvbkNvb3JkaW5hdGVzKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIEV2ZW50
VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgT1ZFUlJJREUgRklO
QUwgeyByZXR1cm4gVGV4dFRyYWNrQ3VlRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9Ci0gICAg
dmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkg
Y29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gJm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsg
fQorICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2Uo
KSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiBUZXh0VHJhY2tDdWVFdmVudFRhcmdldElu
dGVyZmFjZVR5cGU7IH0KKyAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiAmbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0OyB9CiAKICAgICBzdGQ6OnBhaXI8ZG91YmxlLCBkb3VibGU+IGdl
dENTU1Bvc2l0aW9uKCkgY29uc3Q7CiAKQEAgLTIxOSw4ICsyMTksOCBAQCBwcml2YXRlOgogICAg
IHZvaWQgZGV0ZXJtaW5lVGV4dERpcmVjdGlvbigpOwogICAgIHZvaWQgY2FsY3VsYXRlRGlzcGxh
eVBhcmFtZXRlcnMoKTsKIAotICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIE9WRVJS
SURFIEZJTkFMIHsgcmVmKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgp
IE9WRVJSSURFIEZJTkFMIHsgZGVyZWYoKTsgfQorICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRh
cmdldCgpIG92ZXJyaWRlIEZJTkFMIHsgcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZF
dmVudFRhcmdldCgpIG92ZXJyaWRlIEZJTkFMIHsgZGVyZWYoKTsgfQogCiAgICAgZW51bSBDdWVT
ZXR0aW5nIHsKICAgICAgICAgTm9uZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFja0N1ZUdlbmVyaWMuY3BwCmluZGV4IDRmMjJmNTYuLmNhMzNhMWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJpYy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmNwcApAQCAt
NDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGV4dFRy
YWNrQ3VlR2VuZXJpY0JveEVsZW1lbnQoZG9jdW1lbnQsIGN1ZSkpOwogICAgIH0KICAgICAKLSAg
ICB2aXJ0dWFsIHZvaWQgYXBwbHlDU1NQcm9wZXJ0aWVzKGNvbnN0IEludFNpemUmKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlDU1NQcm9wZXJ0aWVzKGNvbnN0IEludFNpemUmKSBv
dmVycmlkZTsKICAgICAKIHByaXZhdGU6CiAgICAgVGV4dFRyYWNrQ3VlR2VuZXJpY0JveEVsZW1l
bnQoRG9jdW1lbnQmLCBUZXh0VHJhY2tDdWUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJpYy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmgKaW5kZXggZDBjOTdmMi4uZWIzNTljMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmgKQEAgLTQ1
LDEwICs0NSwxMCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB+VGV4dFRyYWNrQ3VlR2Vu
ZXJpYygpIHsgfQogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFRleHRUcmFja0N1ZUJveD4gY3Jl
YXRlRGlzcGxheVRyZWUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGV4dFRy
YWNrQ3VlQm94PiBjcmVhdGVEaXNwbGF5VHJlZSgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2
b2lkIHNldExpbmUoaW50LCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHNldFBvc2l0aW9uKGludCwgRXhjZXB0aW9uQ29kZSYpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBzZXRMaW5lKGludCwgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBzZXRQb3NpdGlvbihpbnQsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKIAogICAg
IGJvb2wgdXNlRGVmYXVsdFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZWZhdWx0UG9zaXRp
b247IH0KICAgICAKQEAgLTcwLDE0ICs3MCwxNCBAQCBwdWJsaWM6CiAgICAgQ29sb3IgaGlnaGxp
Z2h0Q29sb3IoKSBjb25zdCB7IHJldHVybiBtX2hpZ2hsaWdodENvbG9yOyB9CiAgICAgdm9pZCBz
ZXRIaWdobGlnaHRDb2xvcihSR0JBMzIgY29sb3IpIHsgbV9oaWdobGlnaHRDb2xvci5zZXRSR0Io
Y29sb3IpOyB9CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHNldEZvbnRTaXplKGludCwgY29uc3Qg
SW50U2l6ZSYsIGJvb2wgaW1wb3J0YW50KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
Rm9udFNpemUoaW50LCBjb25zdCBJbnRTaXplJiwgYm9vbCBpbXBvcnRhbnQpIG92ZXJyaWRlOwog
Ci0gICAgdmlydHVhbCBib29sIGlzRXF1YWwoY29uc3QgVGV4dFRyYWNrQ3VlJiwgQ3VlTWF0Y2hS
dWxlcykgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlzRXF1YWwoY29uc3QgVGV4
dFRyYWNrQ3VlJiwgQ3VlTWF0Y2hSdWxlcykgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFs
IFRleHRUcmFja0N1ZTo6Q3VlVHlwZSBjdWVUeXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
VGV4dFRyYWNrQ3VlOjpHZW5lcmljOyB9CisgICAgdmlydHVhbCBUZXh0VHJhY2tDdWU6OkN1ZVR5
cGUgY3VlVHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFRleHRUcmFja0N1ZTo6R2VuZXJp
YzsgfQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBpc09yZGVyZWRCZWZvcmUoY29uc3Qg
VGV4dFRyYWNrQ3VlKikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlzT3JkZXJl
ZEJlZm9yZShjb25zdCBUZXh0VHJhY2tDdWUqKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFRleHRU
cmFja0N1ZUdlbmVyaWMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGRvdWJsZSBzdGFydCwgZG91
YmxlIGVuZCwgY29uc3QgU3RyaW5nJik7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1RleHRUcmFja0xpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VGV4dFRyYWNrTGlzdC5oCmluZGV4IGNmY2Q2YjQuLjU3YzhiODIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5oCkBAIC00MiwyMCArNDIsMjAgQEAgcHVibGljOgog
ICAgIH0KICAgICB2aXJ0dWFsIH5UZXh0VHJhY2tMaXN0KCk7CiAKLSAgICB2aXJ0dWFsIHVuc2ln
bmVkIGxlbmd0aCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3Ro
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgaW50IGdldFRyYWNrSW5kZXgoVGV4dFRyYWNrKik7CiAg
ICAgaW50IGdldFRyYWNrSW5kZXhSZWxhdGl2ZVRvUmVuZGVyZWRUcmFja3MoVGV4dFRyYWNrKik7
Ci0gICAgdmlydHVhbCBib29sIGNvbnRhaW5zKFRyYWNrQmFzZSopIGNvbnN0IE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgYm9vbCBjb250YWlucyhUcmFja0Jhc2UqKSBjb25zdCBvdmVycmlkZTsKIAog
ICAgIFRleHRUcmFjayogaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CiAgICAgVGV4dFRyYWNr
KiBnZXRUcmFja0J5SWQoY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgVGV4dFRyYWNrKiBsYXN0
SXRlbSgpIGNvbnN0IHsgcmV0dXJuIGl0ZW0obGVuZ3RoKCkgLSAxKTsgfQogCiAgICAgdm9pZCBh
cHBlbmQoUGFzc1JlZlB0cjxUZXh0VHJhY2s+KTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlKFRy
YWNrQmFzZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoVHJhY2tCYXNlKikg
b3ZlcnJpZGU7CiAKICAgICAvLyBFdmVudFRhcmdldAotICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJ
bnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKIHByaXZhdGU6CiAgICAgVGV4dFRyYWNrTGlzdChIVE1MTWVkaWFFbGVtZW50Kiwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UcmFja0xpc3RCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RyYWNr
TGlzdEJhc2UuaAppbmRleCA1YmM1MjZmLi43ZTJmNDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RyYWNrTGlzdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1RyYWNrTGlzdEJhc2UuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0ID0g
MDsKICAgICB1c2luZyBSZWZDb3VudGVkPFRyYWNrTGlzdEJhc2U+OjpyZWY7CiAgICAgdXNpbmcg
UmVmQ291bnRlZDxUcmFja0xpc3RCYXNlPjo6ZGVyZWY7Ci0gICAgdmlydHVhbCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgT1ZFUlJJREUgRklO
QUwgeyByZXR1cm4gbV9jb250ZXh0OyB9CisgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgRklOQUwgeyByZXR1
cm4gbV9jb250ZXh0OyB9CiAKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGFk
ZHRyYWNrKTsKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGNoYW5nZSk7CkBA
IC04MSw4ICs4MSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzY2hlZHVsZVRyYWNrRXZlbnQoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUsIFBhc3NSZWZQdHI8VHJhY2tCYXNlPik7CiAKICAg
ICAvLyBFdmVudFRhcmdldAotICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIE9WRVJS
SURFIEZJTkFMIHsgcmVmKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgp
IE9WRVJSSURFIEZJTkFMIHsgZGVyZWYoKTsgfQorICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRh
cmdldCgpIG92ZXJyaWRlIEZJTkFMIHsgcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZF
dmVudFRhcmdldCgpIG92ZXJyaWRlIEZJTkFMIHsgZGVyZWYoKTsgfQogCiAgICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogbV9jb250ZXh0OwogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1fZWxlbWVu
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFjay5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmgKaW5kZXggYjA5N2Q4YS4uNjM0
M2EwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmgKQEAgLTYxLDE5ICs2
MSwxOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc2lnbktleXdv
cmQoKTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdWJ0aXRsZXNLZXl3b3JkKCk7
CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgY29tbWVudGFyeUtleXdvcmQoKTsKLSAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZGVmYXVsdEtpbmRLZXl3b3JkKCkgY29uc3Qg
T1ZFUlJJREUgeyByZXR1cm4gZW1wdHlBdG9tOyB9CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIGRlZmF1bHRLaW5kS2V5d29yZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGVtcHR5
QXRvbTsgfQogCiAgICAgYm9vbCBzZWxlY3RlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0ZWQ7
IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWQoY29uc3QgYm9vbCk7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgY2xlYXJDbGllbnQoKSBPVkVSUklERSB7IG1fY2xpZW50ID0gMDsgfQorICAgIHZp
cnR1YWwgdm9pZCBjbGVhckNsaWVudCgpIG92ZXJyaWRlIHsgbV9jbGllbnQgPSAwOyB9CiAgICAg
VmlkZW9UcmFja0NsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAog
ICAgIHNpemVfdCBpbmJhbmRUcmFja0luZGV4KCk7CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNF
KQotICAgIHZpcnR1YWwgdm9pZCBzZXRLaW5kKGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBzZXRMYW5ndWFnZShjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0S2luZChjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TGFuZ3VhZ2UoY29uc3QgQXRvbWljU3RyaW5nJikg
b3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIGNvbnN0IE1lZGlhRGVzY3JpcHRpb24mIGRlc2NyaXB0
aW9uKCkgY29uc3Q7CkBAIC04MiwxNSArODIsMTUgQEAgcHJvdGVjdGVkOgogICAgIFZpZGVvVHJh
Y2soVmlkZW9UcmFja0NsaWVudCosIFBhc3NSZWZQdHI8VmlkZW9UcmFja1ByaXZhdGU+IHByaXZh
dGVUcmFjayk7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGlzVmFsaWRLaW5kKGNvbnN0
IEF0b21pY1N0cmluZyYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlk
S2luZChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwg
dm9pZCBzZWxlY3RlZENoYW5nZWQoVmlkZW9UcmFja1ByaXZhdGUqLCBib29sKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgaWRDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBTdHJp
bmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbGFiZWxDaGFuZ2VkKFRyYWNrUHJpdmF0
ZUJhc2UqLCBjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbGFuZ3Vh
Z2VDaGFuZ2VkKFRyYWNrUHJpdmF0ZUJhc2UqLCBjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZShUcmFja1ByaXZhdGVCYXNlKikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHNlbGVjdGVkQ2hhbmdlZChWaWRlb1RyYWNrUHJpdmF0ZSosIGJvb2wp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpZENoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSos
IGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBsYWJlbENoYW5nZWQo
VHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBsYW5ndWFnZUNoYW5nZWQoVHJhY2tQcml2YXRlQmFzZSosIGNvbnN0IFN0cmluZyYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlKFRyYWNrUHJpdmF0ZUJhc2UqKSBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCkgY29uc3QgT1ZFUlJJREUgeyBy
ZXR1cm4gc2VsZWN0ZWQoKTsgfQorICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gc2VsZWN0ZWQoKTsgfQogCiAgICAgYm9vbCBtX3NlbGVjdGVkOwogICAg
IFZpZGVvVHJhY2tDbGllbnQqIG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9WaWRlb1RyYWNrTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9W
aWRlb1RyYWNrTGlzdC5oCmluZGV4IDU4NWRiOGEuLmRlN2I4NDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFja0xpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2tMaXN0LmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgYXBwZW5kKFBhc3NSZWZQdHI8VmlkZW9UcmFjaz4pOwogCiAgICAgLy8gRXZlbnRU
YXJnZXQKLSAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJm
YWNlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBFdmVudFRhcmdldEludGVyZmFjZSBl
dmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIFZp
ZGVvVHJhY2tMaXN0KEhUTUxNZWRpYUVsZW1lbnQqLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oCmluZGV4IGI5NWRmMDYu
LmEyYTYzMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRURWxlbWVudC5oCkBA
IC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJWVFRFbGVt
ZW50PiBjcmVhdGUoY29uc3QgV2ViVlRUTm9kZVR5cGUsIERvY3VtZW50Jik7CiAgICAgUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlRXF1aXZhbGVudEhUTUxFbGVtZW50KERvY3VtZW50Jik7
CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0
dHJpYnV0ZXNBbmRDaGlsZHJlbigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxF
bGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKCkgb3ZlcnJp
ZGU7CiAKICAgICB2b2lkIHNldFdlYlZUVE5vZGVUeXBlKFdlYlZUVE5vZGVUeXBlIHR5cGUpIHsg
bV93ZWJWVFROb2RlVHlwZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih0eXBlKTsgfQogICAgIFdl
YlZUVE5vZGVUeXBlIHdlYlZUVE5vZGVUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
V2ViVlRUTm9kZVR5cGU+KG1fd2ViVlRUTm9kZVR5cGUpOyB9CkBAIC03Miw3ICs3Miw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgV2ViVlRURWxlbWVudChXZWJWVFROb2RlVHlwZSwgRG9jdW1l
bnQmKTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc1dlYlZUVEVsZW1lbnQoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzV2ViVlRURWxlbWVudCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHVuc2lnbmVkIG1faXNQYXN0Tm9k
ZSA6IDE7CiAgICAgdW5zaWduZWQgbV93ZWJWVFROb2RlVHlwZSA6IDQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29tbWFuZExpbmVBUElNb2R1bGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9Db21tYW5kTGluZUFQSU1vZHVsZS5oCmluZGV4IGFjNjlkN2IuLjEw
MmQyY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db21tYW5kTGluZUFQ
SU1vZHVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db21tYW5kTGluZUFQSU1v
ZHVsZS5oCkBAIC0zNiw5ICszNiw5IEBAIGNsYXNzIENvbW1hbmRMaW5lQVBJTW9kdWxlIEZJTkFM
IDogcHVibGljIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRNb2R1bGUgewogcHVibGljOgogICAg
IENvbW1hbmRMaW5lQVBJTW9kdWxlKCk7CiAKLSAgICB2aXJ0dWFsIFN0cmluZyBzb3VyY2UoKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEpTQzo6SlNWYWx1ZSBob3N0KEluc3BlY3Rvcjo6
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgSlNDOjpFeGVjU3RhdGUqKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgcmV0dXJuc09iamVjdCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCBTdHJpbmcgc291cmNlKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBKU0M6OkpTVmFsdWUgaG9zdChJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0TWFu
YWdlciosIEpTQzo6RXhlY1N0YXRlKikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IHJldHVybnNPYmplY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAg
c3RhdGljIHZvaWQgaW5qZWN0SWZOZWVkZWQoSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFn
ZXIqLCBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0KTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5oCmluZGV4IGZhNzJm
MGEuLjFiZjBlZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdENhbnZhc01vZHVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Jbmpl
Y3RlZFNjcmlwdENhbnZhc01vZHVsZS5oCkBAIC01MCw5ICs1MCw5IEBAIGNsYXNzIEluamVjdGVk
U2NyaXB0Q2FudmFzTW9kdWxlIEZJTkFMIDogcHVibGljIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3Jp
cHRNb2R1bGUKIHB1YmxpYzoKICAgICBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZSgpOwogICAg
IAotICAgIHZpcnR1YWwgU3RyaW5nIHNvdXJjZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgSlNDOjpKU1ZhbHVlIGhvc3QoSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBK
U0M6OkV4ZWNTdGF0ZSopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCByZXR1cm5z
T2JqZWN0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgU3Ry
aW5nIHNvdXJjZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgSlNDOjpKU1ZhbHVlIGhv
c3QoSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBKU0M6OkV4ZWNTdGF0ZSopIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCByZXR1cm5zT2JqZWN0KCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgc3RhdGljIEluamVjdGVkU2NyaXB0Q2FudmFz
TW9kdWxlIG1vZHVsZUZvclN0YXRlKEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwg
SlNDOjpFeGVjU3RhdGUqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oCmluZGV4IDM1YTY4OWYuLmU0YWNh
YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50LmgKQEAgLTU2LDggKzU2LDggQEAgcHVibGljOgogICAgIElu
c3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVj
dG9yUGFnZUFnZW50Kik7CiAgICAgfkluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCgpIHsg
fQogCi0gICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0
b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9u
dGVuZEFuZEJhY2tlbmQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5z
cGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOwogCiAgICAg
dm9pZCB1cGRhdGVBcHBsaWNhdGlvbkNhY2hlU3RhdHVzKEZyYW1lKik7CiAgICAgdm9pZCBuZXR3
b3JrU3RhdGVDaGFuZ2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
U1NBZ2VudC5oCmluZGV4IGVlMTJkOTIuLjNlYTk1MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCkBAIC05NSw4ICs5NSw4IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgQ1NTU3R5bGVSdWxlKiBhc0NTU1N0eWxlUnVsZShDU1NSdWxlKik7CiAKICAgICBi
b29sIGZvcmNlUHNldWRvU3RhdGUoRWxlbWVudCosIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlKTsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVu
ZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0
b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIGRpc2NhcmRBZ2VudCgpOwogICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoRXJyb3JTdHJp
bmcqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyopOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaAppbmRleCA1MDgzZGFk
Li4xODM5Y2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q2FudmFzQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQuaApAQCAtNjUsOCArNjUsOCBAQCBwdWJsaWM6CiAgICAgSW5zcGVjdG9yQ2FudmFz
QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclBhZ2VBZ2VudCosIEluc3BlY3Rv
cjo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CiAgICAgfkluc3BlY3RvckNhbnZhc0FnZW50KCk7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5k
RGlzcGF0Y2hlciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9u
dGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNw
ZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CiAKICAgICB2
b2lkIGZyYW1lTmF2aWdhdGVkKEZyYW1lKik7CiAgICAgdm9pZCBmcmFtZURldGFjaGVkKEZyYW1l
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29s
ZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdl
bnQuY3BwCmluZGV4IDhlNjVmOTMuLjdmYzg1ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCkBAIC0zMjIsNyArMzIyLDcgQEAg
dm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmFkZENvbnNvbGVNZXNzYWdlKFBhc3NPd25QdHI8
Q29uc29sZU1lc3NhZ2U+IGNvbnNvbGUKIGNsYXNzIEluc3BlY3RhYmxlSGVhcE9iamVjdCBGSU5B
TCA6IHB1YmxpYyBDb21tYW5kTGluZUFQSUhvc3Q6Okluc3BlY3RhYmxlT2JqZWN0IHsKIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBJbnNwZWN0YWJsZUhlYXBPYmplY3QoaW50IGhlYXBPYmplY3RJZCkg
OiBtX2hlYXBPYmplY3RJZChoZWFwT2JqZWN0SWQpIHsgfQotICAgIHZpcnR1YWwgRGVwcmVjYXRl
ZDo6U2NyaXB0VmFsdWUgZ2V0KEpTQzo6RXhlY1N0YXRlKikgT1ZFUlJJREUKKyAgICB2aXJ0dWFs
IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIGdldChKU0M6OkV4ZWNTdGF0ZSopIG92ZXJyaWRlCiAg
ICAgewogICAgICAgICByZXR1cm4gU2NyaXB0UHJvZmlsZXI6Om9iamVjdEJ5SGVhcE9iamVjdElk
KG1faGVhcE9iamVjdElkKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ29uc29sZUFnZW50LmgKaW5kZXggNDhhODA3ZC4uNGI0MzQ0OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaApAQCAtNjUs
OCArNjUsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBlbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9l
bmFibGVkOyB9CiAgICAgdm9pZCByZXNldCgpOwogCi0gICAgdmlydHVhbCB2b2lkIGRpZENyZWF0
ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCos
IEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5z
cGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZCgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3Nh
Z2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgSlNDOjpFeGVjU3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIHVuc2lnbmVk
IGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKICAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNv
bGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNjcmlwdElELCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1
bnNpZ25lZCBjb2x1bW5OdW1iZXIsIEpTQzo6RXhlY1N0YXRlKiA9IDAsIHVuc2lnbmVkIGxvbmcg
cmVxdWVzdElkZW50aWZpZXIgPSAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5oCmluZGV4IGQ2YTcwYzUuLjgzYjYzOGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtMTM2LDEyICsxMzYs
MTIgQEAgcHVibGljOgogICAgIHZvaWQgd2lsbENvbXBvc2l0ZSgpOwogICAgIHZvaWQgZGlkQ29t
cG9zaXRlKCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBjYW5BY2Nlc3NJbnNwZWN0ZWRTY3JpcHRT
dGF0ZShKU0M6OkV4ZWNTdGF0ZSopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgSW5zcGVj
dG9yOjpJbnNwZWN0b3JGdW5jdGlvbkNhbGxIYW5kbGVyIGZ1bmN0aW9uQ2FsbEhhbmRsZXIoKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEluc3BlY3Rvcjo6SW5zcGVjdG9yRXZhbHVhdGVI
YW5kbGVyIGV2YWx1YXRlSGFuZGxlcigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCB3aWxsQ2FsbEluamVjdGVkU2NyaXB0RnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBT
dHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkQ2FsbEluamVjdGVkU2NyaXB0RnVuY3Rpb24oKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIGJvb2wgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgYm9vbCBjYW5BY2Nlc3NJbnNwZWN0ZWRTY3JpcHRTdGF0ZShKU0M6OkV4ZWNTdGF0ZSop
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW5zcGVjdG9yOjpJbnNwZWN0b3JGdW5jdGlv
bkNhbGxIYW5kbGVyIGZ1bmN0aW9uQ2FsbEhhbmRsZXIoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIEluc3BlY3Rvcjo6SW5zcGVjdG9yRXZhbHVhdGVIYW5kbGVyIGV2YWx1YXRlSGFuZGxl
cigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2FsbEluamVjdGVkU2Ny
aXB0RnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGlu
dCBzY3JpcHRMaW5lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FsbEluamVjdGVk
U2NyaXB0RnVuY3Rpb24oKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBJbnNwZWN0b3JDb250
cm9sbGVyKFBhZ2UqLCBJbnNwZWN0b3JDbGllbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmgKaW5kZXggMzkxZGQ3My4uOWE3Y2E5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKQEAgLTExMSw4ICsxMTEs
OCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RyaW5nIHRvRXJyb3JTdHJpbmcoY29uc3QgRXhj
ZXB0aW9uQ29kZSYpOwogCi0gICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFj
a2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5z
cGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgd2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRD
aGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJy
aWRlOwogCiAgICAgVmVjdG9yPERvY3VtZW50Kj4gZG9jdW1lbnRzKCk7CiAgICAgdm9pZCByZXNl
dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURl
YnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1
Z2dlckFnZW50LmgKaW5kZXggMzBjNjc3My4uN2U3YWNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oCkBAIC04MSw4ICs4
MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbGxTZW5kWE1MSHR0cFJlcXVlc3QoY29uc3QgU3Ry
aW5nJiB1cmwpOwogICAgIHZvaWQgcGF1c2VPbk5hdGl2ZUV2ZW50SWZOZWVkZWQoYm9vbCBpc0RP
TUV2ZW50LCBjb25zdCBTdHJpbmcmIGV2ZW50TmFtZSwgYm9vbCBzeW5jaHJvbm91cyk7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5z
cGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFu
ZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6
Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIGRpc2NhcmRBZ2VudCgpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oCmluZGV4IGI0NzJiNmUuLmY0N2Ni
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50LmgKQEAgLTU3LDggKzU3LDggQEAgcHVibGljOgogICAgIEluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFnZW50Kik7CiAg
ICAgfkluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCgpOwogCi0gICAgdmlydHVhbCB2b2lkIGRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6
SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5k
QW5kQmFja2VuZCgpIG92ZXJyaWRlOwogCiAgICAgLy8gQ2FsbGVkIGZyb20gdGhlIGZyb250LWVu
ZC4KICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaAppbmRleCBlZTVhYTZh
Li45NzhmODA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RGF0YWJhc2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
YXRhYmFzZUFnZW50LmgKQEAgLTU1LDggKzU1LDggQEAgcHVibGljOgogICAgIGV4cGxpY2l0IElu
c3BlY3RvckRhdGFiYXNlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyopOwogICAgIH5JbnNwZWN0
b3JEYXRhYmFzZUFnZW50KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRB
bmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9y
OjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkg
b3ZlcnJpZGU7CiAKICAgICB2b2lkIGNsZWFyUmVzb3VyY2VzKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCmluZGV4IDA3ZGY0N2Qu
LjU4M2M1NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRl
YnVnZ2VyQWdlbnQuaApAQCAtNzAsOCArNzAsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5J
bnNwZWN0b3JEZWJ1Z2dlckFnZW50KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJv
bnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5z
cGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0
b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVy
Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKCkgb3ZlcnJpZGU7CiAKICAgICBib29sIGlzUGF1c2VkKCk7CiAgICAgdm9pZCBhZGRNZXNz
YWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlKTsKQEAgLTE0Myw5ICsxNDMs
OSBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpUeXBl
QnVpbGRlcjo6QXJyYXk8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6RGVidWdnZXI6OkNhbGxGcmFt
ZT4+IGN1cnJlbnRDYWxsRnJhbWVzKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUGFyc2VTb3Vy
Y2UoSlNDOjpTb3VyY2VJRCwgY29uc3QgU2NyaXB0JikgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmly
dHVhbCB2b2lkIGZhaWxlZFRvUGFyc2VTb3VyY2UoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0
cmluZyYgZGF0YSwgaW50IGZpcnN0TGluZSwgaW50IGVycm9yTGluZSwgY29uc3QgU3RyaW5nJiBl
cnJvck1lc3NhZ2UpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBkaWRTYW1wbGVQ
cm9iZShKU0M6OkV4ZWNTdGF0ZSosIGludCBwcm9iZUlkZW50aWZpZXIsIGludCBoaXRDb3VudCwg
Y29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIHNhbXBsZSkgT1ZFUlJJREUgRklOQUw7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZFBhcnNlU291cmNlKEpTQzo6U291cmNlSUQsIGNvbnN0IFNjcmlw
dCYpIG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBmYWlsZWRUb1BhcnNlU291cmNl
KGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIGRhdGEsIGludCBmaXJzdExpbmUsIGlu
dCBlcnJvckxpbmUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSBvdmVycmlkZSBGSU5BTDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkU2FtcGxlUHJvYmUoSlNDOjpFeGVjU3RhdGUqLCBpbnQgcHJv
YmVJZGVudGlmaWVyLCBpbnQgaGl0Q291bnQsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVl
JiBzYW1wbGUpIG92ZXJyaWRlIEZJTkFMOwogCiAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlR5
cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6TG9jYXRpb24+IHJlc29sdmVCcmVha3BvaW50KGNvbnN0IFN0
cmluZyYgYnJlYWtwb2ludElkZW50aWZpZXIsIEpTQzo6U291cmNlSUQsIGNvbnN0IFNjcmlwdEJy
ZWFrcG9pbnQmKTsKICAgICBib29sIGFzc2VydFBhdXNlZChFcnJvclN0cmluZyopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckhlYXBQcm9maWxlckFnZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQu
aAppbmRleCBlYTM1NjU0Li5jNGY0ZGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaApAQCAtNjYsOCArNjYsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEhlYXBTbmFwc2hvdChFcnJvclN0cmluZyosIGlu
dCB1aWQpOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVQcm9maWxlKEVycm9yU3RyaW5nKiwgaW50
IHVpZCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKElu
c3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJv
eUZyb250ZW5kQW5kQmFja2VuZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVh
dGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwq
LCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgdGFrZUhlYXBTbmFwc2hvdChFcnJvclN0cmluZyosIGNvbnN0IGJv
b2wqIHJlcG9ydFByb2dyZXNzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKaW5kZXggYjRkN2RhNS4uYjk4ZDYyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdl
bnQuY3BwCkBAIC05OCwxMiArOTgsMTIgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+R2V0RGF0
YWJhc2VOYW1lc0NhbGxiYWNrKCkgeyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBFdmVudExpc3RlbmVyJiBvdGhlcikgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBFdmVudExpc3RlbmVyJiBvdGhlcikgb3ZlcnJpZGUKICAgICB7CiAgICAg
ICAgIHJldHVybiB0aGlzID09ICZvdGhlcjsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgaGFu
ZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV2ZW50KiBldmVudCkgT1ZFUlJJREUK
KyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV2
ZW50KiBldmVudCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmICghbV9yZXF1ZXN0Q2FsbGJh
Y2stPmlzQWN0aXZlKCkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNjIsMTIgKzE2MiwxMiBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5PcGVuRGF0YWJhc2VDYWxsYmFjaygpIHsgfQogCi0g
ICAgdmlydHVhbCBib29sIG9wZXJhdG9yPT0oY29uc3QgRXZlbnRMaXN0ZW5lciYgb3RoZXIpIE9W
RVJSSURFCisgICAgdmlydHVhbCBib29sIG9wZXJhdG9yPT0oY29uc3QgRXZlbnRMaXN0ZW5lciYg
b3RoZXIpIG92ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcyA9PSAmb3RoZXI7CiAg
ICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBFdmVudCogZXZlbnQpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVudCogZXZlbnQpIG92ZXJyaWRlCiAgICAgewog
ICAgICAgICBpZiAoZXZlbnQtPnR5cGUoKSAhPSBldmVudE5hbWVzKCkuc3VjY2Vzc0V2ZW50KSB7
CiAgICAgICAgICAgICBtX2V4ZWN1dGFibGVXaXRoRGF0YWJhc2UtPnJlcXVlc3RDYWxsYmFjaygp
LT5zZW5kRmFpbHVyZSgiVW5leHBlY3RlZCBldmVudCB0eXBlLiIpOwpAQCAtNDEyLDEyICs0MTIs
MTIgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+T3BlbkN1cnNvckNhbGxiYWNrKCkgeyB9CiAK
LSAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBFdmVudExpc3RlbmVyJiBvdGhlcikg
T1ZFUlJJREUKKyAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBFdmVudExpc3RlbmVy
JiBvdGhlcikgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzID09ICZvdGhlcjsK
ICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIEV2ZW50KiBldmVudCkgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZl
bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV2ZW50KiBldmVudCkgb3ZlcnJpZGUKICAgICB7
CiAgICAgICAgIGlmIChldmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMoKS5zdWNjZXNzRXZlbnQp
IHsKICAgICAgICAgICAgIG1fcmVxdWVzdENhbGxiYWNrLT5zZW5kRmFpbHVyZSgiVW5leHBlY3Rl
ZCBldmVudCB0eXBlLiIpOwpAQCAtNjc5LDEyICs2NzksMTIgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB+Q2xlYXJPYmplY3RTdG9yZUxpc3RlbmVyKCkgeyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBFdmVudExpc3RlbmVyJiBvdGhlcikgT1ZFUlJJREUKKyAgICB2aXJ0
dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBFdmVudExpc3RlbmVyJiBvdGhlcikgb3ZlcnJpZGUK
ICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzID09ICZvdGhlcjsKICAgICB9CiAKLSAgICB2aXJ0
dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV2ZW50KiBldmVu
dCkgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIEV2ZW50KiBldmVudCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmICghbV9y
ZXF1ZXN0Q2FsbGJhY2stPmlzQWN0aXZlKCkpCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oCmluZGV4
IDNjMzk4NjMuLjhjNTBlMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbmRleGVkREJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbmRleGVkREJBZ2VudC5oCkBAIC01Myw4ICs1Myw4IEBAIHB1YmxpYzoKICAgICBJ
bnNwZWN0b3JJbmRleGVkREJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yOjpJ
bmplY3RlZFNjcmlwdE1hbmFnZXIqLCBJbnNwZWN0b3JQYWdlQWdlbnQqKTsKICAgICB+SW5zcGVj
dG9ySW5kZXhlZERCQWdlbnQoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVu
ZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0
b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZy
b250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQo
KSBvdmVycmlkZTsKIAogICAgIC8vIENhbGxlZCBmcm9tIHRoZSBmcm9udC1lbmQuCiAgICAgdmly
dHVhbCB2b2lkIGVuYWJsZShFcnJvclN0cmluZyopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50LmgKaW5kZXggZjY5ODM2Yi4uODFhNjZjNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5oCkBAIC01MCw4
ICs1MCw4IEBAIHB1YmxpYzoKICAgICBJbnNwZWN0b3JJbnB1dEFnZW50KEluc3RydW1lbnRpbmdB
Z2VudHMqLCBQYWdlKik7CiAgICAgfkluc3BlY3RvcklucHV0QWdlbnQoKTsKIAotICAgIHZpcnR1
YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JG
cm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5k
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2Vu
ZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVj
dG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERl
c3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKIAogICAgIC8vIE1ldGhvZHMgY2Fs
bGVkIGZyb20gdGhlIGZyb250ZW5kIGZvciBzaW11bGF0aW5nIGlucHV0LgogICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaEtleUV2ZW50KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiB0eXBlLCBj
b25zdCBpbnQqIG1vZGlmaWVycywgY29uc3QgZG91YmxlKiB0aW1lc3RhbXAsIGNvbnN0IFN0cmlu
ZyogdGV4dCwgY29uc3QgU3RyaW5nKiB1bm1vZGlmaWVkVGV4dCwgY29uc3QgU3RyaW5nKiBrZXlJ
ZGVudGlmaWVyLCBjb25zdCBpbnQqIHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgY29uc3QgaW50KiBu
YXRpdmVWaXJ0dWFsS2V5Q29kZSwgY29uc3QgaW50KiBtYWNDaGFyQ29kZSwgY29uc3QgYm9vbCog
YXV0b1JlcGVhdCwgY29uc3QgYm9vbCogaXNLZXlwYWQsIGNvbnN0IGJvb2wqIGlzU3lzdGVtS2V5
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRy
ZWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFn
ZW50LmgKaW5kZXggY2MzYmI5MS4uYWZiMTUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmgKQEAgLTUyLDggKzUyLDggQEAgcHVi
bGljOgogICAgIGV4cGxpY2l0IEluc3BlY3RvckxheWVyVHJlZUFnZW50KEluc3RydW1lbnRpbmdB
Z2VudHMqKTsKICAgICB+SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoKTsKIAotICAgIHZpcnR1YWwg
dm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJ
bnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ry
b3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKICAgICB2b2lkIHJlc2V0KCk7CiAKICAg
ICB2b2lkIGxheWVyVHJlZURpZENoYW5nZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuaAppbmRleCBlNDU0ZmYwLi4wZTY2YjUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuaApAQCAtNTEs
OCArNTEsOCBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgSW5zcGVjdG9yTWVtb3J5QWdlbnQoSW5z
dHJ1bWVudGluZ0FnZW50cyopOwogICAgIHZpcnR1YWwgfkluc3BlY3Rvck1lbW9yeUFnZW50KCk7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rv
cjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5k
RGlzcGF0Y2hlciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250
ZW5kQW5kQmFja2VuZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9u
dGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNw
ZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZ2V0RE9NQ291bnRlcnMoRXJyb3JTdHJpbmcqLCBpbnQqIGRvY3VtZW50cywg
aW50KiBub2RlcywgaW50KiBqc0V2ZW50TGlzdGVuZXJzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IDEzMzliYzAuLjQ4MjBlZDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKQEAgLTE0
Nyw4ICsxNDcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzY3JpcHRzRW5hYmxlZChib29sIGlzRW5h
YmxlZCk7CiAKICAgICAvLyBJbnNwZWN0b3IgQ29udHJvbGxlciBBUEkKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRl
bmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95
RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CiAKICAgICAvLyBDcm9zcy1hZ2VudHMgQVBJ
CiAgICAgUGFnZSogcGFnZSgpIHsgcmV0dXJuIG1fcGFnZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmgKaW5kZXggOThiMDcyOC4uMGQ4
ZjM0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2Zp
bGVyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudC5oCkBAIC05MSw4ICs5MSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
SGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiwgaW50IHVpZCk7CiAgICAgdmlydHVhbCB2b2lkIHJl
bW92ZVByb2ZpbGUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHR5cGUsIGludCB1aWQpOwog
Ci0gICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6
Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERp
c3BhdGNoZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVu
ZEFuZEJhY2tlbmQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRl
bmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVj
dG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOwogCiAgICAgdmly
dHVhbCB2b2lkIHRha2VIZWFwU25hcHNob3QoRXJyb3JTdHJpbmcqLCBjb25zdCBib29sKiByZXBv
cnRQcm9ncmVzcyk7CiAgICAgdm9pZCB0b2dnbGVSZWNvcmRCdXR0b24oYm9vbCBpc1Byb2ZpbGlu
Zyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdl
bnQuaAppbmRleCAxNDZiMTA5Li4xZTJlN2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKQEAgLTgwLDggKzgwLDggQEAgcHVibGlj
OgogICAgIEluc3BlY3RvclJlc291cmNlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3Bl
Y3RvclBhZ2VBZ2VudCosIEluc3BlY3RvckNsaWVudCopOwogICAgIH5JbnNwZWN0b3JSZXNvdXJj
ZUFnZW50KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5k
KEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRD
cmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5u
ZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7
CiAKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERv
Y3VtZW50TG9hZGVyKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVkaXJlY3RSZXNwb25zZSk7CiAgICAgdm9pZCBtYXJrUmVzb3VyY2VBc0NhY2hlZCh1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmgKaW5kZXggM2ExOTVhZC4uZTM5OTk5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCkBAIC0xMzEs
OCArMTMxLDggQEAgcHVibGljOgogICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zdHJ1bWVu
dGluZ0FnZW50cyosIEluc3BlY3RvclBhZ2VBZ2VudCosIEluc3BlY3Rvck1lbW9yeUFnZW50Kiwg
SW5zcGVjdG9yVHlwZSwgSW5zcGVjdG9yQ2xpZW50Kik7CiAgICAgfkluc3BlY3RvclRpbWVsaW5l
QWdlbnQoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQo
SW5zcGVjdG9yOjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3Rv
ckJhY2tlbmREaXNwYXRjaGVyKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0
cm95RnJvbnRlbmRBbmRCYWNrZW5kKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsK
IAogICAgIHZpcnR1YWwgdm9pZCBzdGFydChFcnJvclN0cmluZyosIGNvbnN0IGludCogbWF4Q2Fs
bFN0YWNrRGVwdGgsIGNvbnN0IGJvb2wqIGluY2x1ZGVEb21Db3VudGVycyk7CiAgICAgdmlydHVh
bCB2b2lkIHN0b3AoRXJyb3JTdHJpbmcqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvcldvcmtlckFnZW50LmgKaW5kZXggMmFiMjJkZC4uMWYwOWRmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmgKQEAgLTUzLDgg
KzUzLDggQEAgcHVibGljOgogICAgIGV4cGxpY2l0IEluc3BlY3RvcldvcmtlckFnZW50KEluc3Ry
dW1lbnRpbmdBZ2VudHMqKTsKICAgICB+SW5zcGVjdG9yV29ya2VyQWdlbnQoKTsKIAotICAgIHZp
cnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpJbnNwZWN0
b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVy
KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRlbmRBbmRCYWNr
ZW5kKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFj
a2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5z
cGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2ls
bERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBvdmVycmlkZTsKIAogICAgIC8vIENhbGxlZCBm
cm9tIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIGJvb2wgc2hvdWxkUGF1c2VEZWRpY2F0
ZWRXb3JrZXJPblN0YXJ0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFn
ZUNvbnNvbGVBZ2VudC5jcHAKaW5kZXggMTRiMjk1Ni4uYjMwMmYzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9QYWdlQ29uc29sZUFnZW50LmNwcApAQCAtNjMsNyArNjMsNyBAQCB2
b2lkIFBhZ2VDb25zb2xlQWdlbnQ6OmNsZWFyTWVzc2FnZXMoRXJyb3JTdHJpbmcqIGVycm9yU3Ry
aW5nKQogY2xhc3MgSW5zcGVjdGFibGVOb2RlIEZJTkFMIDogcHVibGljIENvbW1hbmRMaW5lQVBJ
SG9zdDo6SW5zcGVjdGFibGVPYmplY3QgewogcHVibGljOgogICAgIGV4cGxpY2l0IEluc3BlY3Rh
YmxlTm9kZShOb2RlKiBub2RlKSA6IG1fbm9kZShub2RlKSB7IH0KLSAgICB2aXJ0dWFsIERlcHJl
Y2F0ZWQ6OlNjcmlwdFZhbHVlIGdldChKU0M6OkV4ZWNTdGF0ZSogc3RhdGUpIE9WRVJSSURFCisg
ICAgdmlydHVhbCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBnZXQoSlNDOjpFeGVjU3RhdGUqIHN0
YXRlKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgcmV0dXJuIEluc3BlY3RvckRPTUFnZW50Ojpu
b2RlQXNTY3JpcHRWYWx1ZShzdGF0ZSwgbV9ub2RlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuaAppbmRleCA5YTliY2QzLi5lMWM3NmNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlQ29uc29sZUFnZW50LmgKQEAgLTQ2LDcgKzQ2
LDcgQEAgcHVibGljOgogICAgIFBhZ2VDb25zb2xlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyos
IFBhZ2VJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBJbnNwZWN0b3JET01BZ2VudCopOwogICAgIHZp
cnR1YWwgflBhZ2VDb25zb2xlQWdlbnQoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc1dvcmtlckFn
ZW50KCkgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNXb3Jr
ZXJBZ2VudCgpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIGNsZWFyTWVzc2FnZXMoRXJyb3JTdHJpbmcqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlSW5qZWN0ZWRTY3JpcHRIb3N0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvUGFnZUluamVjdGVkU2NyaXB0SG9zdC5oCmluZGV4IDdmZmYyOWEuLjhi
ZWQ2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlSW5qZWN0ZWRT
Y3JpcHRIb3N0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VJbmplY3RlZFNj
cmlwdEhvc3QuaApAQCAtMzYsOCArMzYsOCBAQCBjbGFzcyBQYWdlSW5qZWN0ZWRTY3JpcHRIb3N0
IEZJTkFMIDogcHVibGljIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRIb3N0IHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxQYWdlSW5qZWN0ZWRTY3JpcHRIb3N0PiBjcmVhdGUoKSB7
IHJldHVybiBhZG9wdFJlZihuZXcgUGFnZUluamVjdGVkU2NyaXB0SG9zdCk7IH0KIAotICAgIHZp
cnR1YWwgSlNDOjpKU1ZhbHVlIHR5cGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc0hUTUxBbGxDb2xsZWN0aW9uKEpTQzo6SlNWYWx1
ZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBKU0M6OkpTVmFsdWUgdHlwZShKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNWYWx1ZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzSFRNTEFsbENv
bGxlY3Rpb24oSlNDOjpKU1ZhbHVlKSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZUluamVjdGVkU2Ny
aXB0TWFuYWdlci5oCmluZGV4IGYxODgwYjMuLjQ4MGYzNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9QYWdlSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VJbmplY3RlZFNjcmlwdE1hbmFnZXIuaApAQCAtNDEsMTIg
KzQxLDEyIEBAIHB1YmxpYzoKIAogICAgIENvbW1hbmRMaW5lQVBJSG9zdCogY29tbWFuZExpbmVB
UElIb3N0KCkgY29uc3QgeyByZXR1cm4gbV9jb21tYW5kTGluZUFQSUhvc3QuZ2V0KCk7IH0KIAot
ICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGRpc2Nvbm5lY3QoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZGlzY2FyZEluamVjdGVkU2NyaXB0
c0ZvcihET01XaW5kb3cqKTsKIAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVh
dGVJbmplY3RlZFNjcmlwdChJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0KSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlSW5qZWN0ZWRTY3JpcHQoSW5zcGVjdG9yOjpJbmplY3Rl
ZFNjcmlwdCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgUmVmUHRyPENvbW1hbmRMaW5lQVBJ
SG9zdD4gbV9jb21tYW5kTGluZUFQSUhvc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Bh
Z2VSdW50aW1lQWdlbnQuaAppbmRleCA4MmQ0ZTU0Li45ODg1OGM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmgKQEAgLTUzLDggKzUzLDggQEAgcHVibGlj
OgogICAgIFBhZ2VSdW50aW1lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3Rvcjo6
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgUGFnZSosIEluc3BlY3RvclBhZ2VBZ2VudCopOwogICAg
IHZpcnR1YWwgflBhZ2VSdW50aW1lQWdlbnQoKTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgZGlk
Q3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFu
bmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciopIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZyb250ZW5kQW5kQmFja2VuZCgpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9y
OjpJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqLCBJbnNwZWN0b3I6Okluc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95RnJvbnRl
bmRBbmRCYWNrZW5kKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGVuYWJsZShFcnJvclN0
cmluZyopOwogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nKik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaAppbmRleCAzYzk5MWFl
Li5mNjZkMDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyQ29u
c29sZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckNvbnNvbGVB
Z2VudC5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICBXb3JrZXJDb25zb2xlQWdlbnQo
SW5zdHJ1bWVudGluZ0FnZW50cyosIFBhZ2VJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKICAgICB2
aXJ0dWFsIH5Xb3JrZXJDb25zb2xlQWdlbnQoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc1dvcmtl
ckFnZW50KCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1dv
cmtlckFnZW50KCkgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBhZGRJbnNwZWN0ZWROb2RlKEVycm9yU3RyaW5nKiwgaW50IG5vZGVJZCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuaAppbmRleCAz
ZmYwYzlhLi5lYWRkNzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VyRGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJE
ZWJ1Z2dlckFnZW50LmgKQEAgLTUwLDEyICs1MCwxMiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNv
bnN0IGNoYXIqIGRlYnVnZ2VyVGFza01vZGU7CiAgICAgc3RhdGljIHZvaWQgaW50ZXJydXB0QW5k
RGlzcGF0Y2hJbnNwZWN0b3JDb21tYW5kcyhXb3JrZXJUaHJlYWQqKTsKIAotICAgIHZpcnR1YWwg
dm9pZCBzdGFydExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHN0b3BMaXN0ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcigpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXImIHNjcmlwdERlYnVnU2VydmVyKCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0IGluamVjdGVkU2Ny
aXB0Rm9yRXZhbChFcnJvclN0cmluZyosIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNvbnNvbGUoKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgdW5tdXRlQ29uc29sZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBz
dGFydExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHN0b3BMaXN0ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcigpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXImIHNjcmlwdERlYnVnU2VydmVyKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9y
RXZhbChFcnJvclN0cmluZyosIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgbXV0ZUNvbnNvbGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgdW5tdXRlQ29uc29sZSgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIFdvcmtlclNj
cmlwdERlYnVnU2VydmVyIG1fc2NyaXB0RGVidWdTZXJ2ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCAyOWZkMzU4
Li45MTQyZjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5z
cGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTcwLDEyICs3MCwxMiBAQCBwdWJsaWM6CiAgICAgdm9p
ZCByZXN1bWUoKTsKICNlbmRpZgogCi0gICAgdmlydHVhbCBib29sIGRldmVsb3BlckV4dHJhc0Vu
YWJsZWQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29s
IGNhbkFjY2Vzc0luc3BlY3RlZFNjcmlwdFN0YXRlKEpTQzo6RXhlY1N0YXRlKikgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgSW5zcGVjdG9yOjpJbnNwZWN0b3JG
dW5jdGlvbkNhbGxIYW5kbGVyIGZ1bmN0aW9uQ2FsbEhhbmRsZXIoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIEluc3BlY3Rvcjo6SW5zcGVjdG9yRXZhbHVhdGVIYW5kbGVyIGV2YWx1YXRl
SGFuZGxlcigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2FsbEluamVj
dGVkU2NyaXB0RnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHNjcmlwdE5h
bWUsIGludCBzY3JpcHRMaW5lKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FsbElu
amVjdGVkU2NyaXB0RnVuY3Rpb24oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgZGV2ZWxv
cGVyRXh0cmFzRW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgY2FuQWNjZXNzSW5zcGVjdGVkU2NyaXB0U3RhdGUoSlNDOjpFeGVjU3RhdGUq
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBJbnNwZWN0b3I6
Okluc3BlY3RvckZ1bmN0aW9uQ2FsbEhhbmRsZXIgZnVuY3Rpb25DYWxsSGFuZGxlcigpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW5zcGVjdG9yOjpJbnNwZWN0b3JFdmFsdWF0ZUhhbmRs
ZXIgZXZhbHVhdGVIYW5kbGVyKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdp
bGxDYWxsSW5qZWN0ZWRTY3JpcHRGdW5jdGlvbihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmlu
ZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRDYWxsSW5qZWN0ZWRTY3JpcHRGdW5jdGlvbigpIG92ZXJyaWRlOwogCiBwcml2YXRlOgog
ICAgIGZyaWVuZCBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50YXRpb25Gb3JXb3JrZXJH
bG9iYWxTY29wZShXb3JrZXJHbG9iYWxTY29wZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oCmluZGV4IGM5ZTE2ZjkuLmFkY2VkZTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmgKQEAgLTQ1LDggKzQ1
LDggQEAgcHVibGljOgogICAgIFdvcmtlclJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRz
KiwgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBXb3JrZXJHbG9iYWxTY29wZSop
OwogICAgIHZpcnR1YWwgfldvcmtlclJ1bnRpbWVBZ2VudCgpOwogCi0gICAgdmlydHVhbCB2b2lk
IGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5k
Q2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5kKEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JCYWNr
ZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUZy
b250ZW5kQW5kQmFja2VuZCgpIG92ZXJyaWRlOwogCiAgICAgLy8gUHJvdG9jb2wgY29tbWFuZHMu
CiAgICAgdmlydHVhbCB2b2lkIHJ1bihFcnJvclN0cmluZyopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuaAppbmRleCBjNGZmMDczLi44NjZmZDdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtMjk2LDEwICsyOTYsMTAgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgICAgIHZvaWQgZmluaXNoZWRMb2FkaW5nKGRv
dWJsZSBmaW5pc2hUaW1lKTsKICAgICAgICAgdm9pZCBtYWluUmVjZWl2ZWRFcnJvcihjb25zdCBS
ZXNvdXJjZUVycm9yJik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdFJlY2VpdmVkKENh
Y2hlZFJlc291cmNlKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
IE9WRVJSSURFOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChDYWNoZWRS
ZXNvdXJjZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKLSAgICAgICAgdmly
dHVhbCB2b2lkIGRhdGFSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSosIGNvbnN0IGNoYXIqIGRhdGEs
IGludCBsZW5ndGgpIE9WRVJSSURFOwotICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNo
ZWQoQ2FjaGVkUmVzb3VyY2UqKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlZGly
ZWN0UmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXNwb25zZVJl
Y2VpdmVkKENhY2hlZFJlc291cmNlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRl
OworICAgICAgICB2aXJ0dWFsIHZvaWQgZGF0YVJlY2VpdmVkKENhY2hlZFJlc291cmNlKiwgY29u
c3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopIG92ZXJyaWRlOwogCiAgICAgICAgIGJv
b2wgbWF5YmVMb2FkRW1wdHkoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmlu
ZGV4IDgyMmI3YjcuLjY0MjU0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
QEAgLTY2LDcwICs2Niw3MCBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJv
bWVDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHZp
cnR1YWwgfkVtcHR5Q2hyb21lQ2xpZW50KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNocm9tZURl
c3Ryb3llZCgpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQo
KSBvdmVycmlkZSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IEZs
b2F0UmVjdCYpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHdpbmRvd1JlY3Qo
KSBPVkVSUklERSB7IHJldHVybiBGbG9hdFJlY3QoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRX
aW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgRmxv
YXRSZWN0IHdpbmRvd1JlY3QoKSBvdmVycmlkZSB7IHJldHVybiBGbG9hdFJlY3QoKTsgfQogCi0g
ICAgdmlydHVhbCBGbG9hdFJlY3QgcGFnZVJlY3QoKSBPVkVSUklERSB7IHJldHVybiBGbG9hdFJl
Y3QoKTsgfQorICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCkgb3ZlcnJpZGUgeyByZXR1
cm4gRmxvYXRSZWN0KCk7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpIE9WRVJSSURFIHsg
fQotICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCkgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2
b2lkIGZvY3VzKCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKSBvdmVy
cmlkZSB7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBjYW5UYWtlRm9jdXMoRm9jdXNEaXJlY3Rpb24p
IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHRha2VGb2N1cyhG
b2N1c0RpcmVjdGlvbikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCBib29sIGNhblRha2VGb2N1
cyhGb2N1c0RpcmVjdGlvbikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgdGFrZUZvY3VzKEZvY3VzRGlyZWN0aW9uKSBvdmVycmlkZSB7IH0KIAotICAgIHZpcnR1
YWwgdm9pZCBmb2N1c2VkRWxlbWVudENoYW5nZWQoRWxlbWVudCopIE9WRVJSSURFIHsgfQotICAg
IHZpcnR1YWwgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKikgT1ZFUlJJREUgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIGZvY3VzZWRFbGVtZW50Q2hhbmdlZChFbGVtZW50Kikgb3ZlcnJpZGUg
eyB9CisgICAgdmlydHVhbCB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqKSBvdmVycmlk
ZSB7IH0KIAotICAgIHZpcnR1YWwgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJh
bWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgY29uc3QgTmF2aWdhdGlvbkFj
dGlvbiYpIE9WRVJSSURFIHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2hvdygpIE9W
RVJSSURFIHsgfQorICAgIHZpcnR1YWwgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3Qg
RnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgY29uc3QgTmF2aWdhdGlv
bkFjdGlvbiYpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2hvdygp
IG92ZXJyaWRlIHsgfQogCi0gICAgdmlydHVhbCBib29sIGNhblJ1bk1vZGFsKCkgT1ZFUlJJREUg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcnVuTW9kYWwoKSBPVkVSUklERSB7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuTW9kYWwoKSBvdmVycmlkZSB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBydW5Nb2RhbCgpIG92ZXJyaWRlIHsgfQogCi0gICAgdmly
dHVhbCB2b2lkIHNldFRvb2xiYXJzVmlzaWJsZShib29sKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0
dWFsIGJvb2wgdG9vbGJhcnNWaXNpYmxlKCkgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0VG9vbGJhcnNWaXNpYmxlKGJvb2wpIG92ZXJyaWRlIHsgfQorICAg
IHZpcnR1YWwgYm9vbCB0b29sYmFyc1Zpc2libGUoKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsg
fQogCi0gICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclZpc2libGUoYm9vbCkgT1ZFUlJJREUg
eyB9Ci0gICAgdmlydHVhbCBib29sIHN0YXR1c2JhclZpc2libGUoKSBPVkVSUklERSB7IHJldHVy
biBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0dXNiYXJWaXNpYmxlKGJvb2wpIG92
ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgYm9vbCBzdGF0dXNiYXJWaXNpYmxlKCkgb3ZlcnJpZGUg
eyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxiYXJzVmlzaWJs
ZShib29sKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsYmFyc1Zpc2libGUo
KSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxi
YXJzVmlzaWJsZShib29sKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsYmFy
c1Zpc2libGUoKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCB2b2lk
IHNldE1lbnViYXJWaXNpYmxlKGJvb2wpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgYm9vbCBt
ZW51YmFyVmlzaWJsZSgpIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2
b2lkIHNldE1lbnViYXJWaXNpYmxlKGJvb2wpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgYm9v
bCBtZW51YmFyVmlzaWJsZSgpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0
dWFsIHZvaWQgc2V0UmVzaXphYmxlKGJvb2wpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBzZXRSZXNpemFibGUoYm9vbCkgb3ZlcnJpZGUgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRk
TWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmlu
ZyYsIHVuc2lnbmVkLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgT1ZFUlJJREUgeyB9CisgICAg
dmlydHVhbCB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxl
dmVsLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIG92
ZXJyaWRlIHsgfQogCi0gICAgdmlydHVhbCBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1Q
YW5lbCgpIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmLCBGcmFtZSopIE9WRVJSSURFIHsg
cmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsKCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcnVu
QmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYsIEZyYW1lKikgb3ZlcnJpZGUg
eyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGNsb3NlV2luZG93U29vbigpIE9W
RVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKSBvdmVycmlkZSB7
IH0KIAotICAgIHZpcnR1YWwgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqLCBjb25zdCBT
dHJpbmcmKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZp
cm0oRnJhbWUqLCBjb25zdCBTdHJpbmcmKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQotICAg
IHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiwgU3RyaW5nJikgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpIE9WRVJSSURFIHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSosIGNv
bnN0IFN0cmluZyYpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0
Q29uZmlybShGcmFtZSosIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBTdHJpbmcmLCBTdHJpbmcmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVj
dGlvbklzTmF0dXJhbCgpIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBi
b29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSBPVkVS
UklERSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBoYXNPcGVuZWRQb3B1cCgp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRy
PFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJj
aFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSBvdmVycmlkZSB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93
c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQ
b3B1cE1lbnVDbGllbnQqKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50Kikg
Y29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25z
dCBTdHJpbmcmKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4
dChjb25zdCBTdHJpbmcmKSBvdmVycmlkZSB7IH0KIAotICAgIHZpcnR1YWwgS2V5Ym9hcmRVSU1v
ZGUga2V5Ym9hcmRVSU1vZGUoKSBPVkVSUklERSB7IHJldHVybiBLZXlib2FyZEFjY2Vzc0RlZmF1
bHQ7IH0KKyAgICB2aXJ0dWFsIEtleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gS2V5Ym9hcmRBY2Nlc3NEZWZhdWx0OyB9CiAKLSAgICB2aXJ0dWFsIEludFJl
Y3Qgd2luZG93UmVzaXplclJlY3QoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBJbnRSZWN0KCk7
IH0KKyAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBJbnRSZWN0KCk7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9v
dFZpZXcoY29uc3QgSW50UmVjdCYsIGJvb2wpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9p
ZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiwgYm9vbCkgT1ZF
UlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3Jv
bGwoY29uc3QgSW50UmVjdCYsIGJvb2wpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGwoY29uc3QgSW50U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0JikgT1ZF
UlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRS
ZWN0JiwgYm9vbCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250
ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmLCBib29sKSBvdmVycmlkZSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0
JiwgYm9vbCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRT
aXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZSB7IH0KICNpZiBV
U0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICB2aXJ0dWFsIHZvaWQgZGVsZWdhdGVkU2Nyb2xs
UmVxdWVzdGVkKGNvbnN0IEludFBvaW50JikgeyB9CiAjZW5kaWYKQEAgLTEzNywxMDQgKzEzNywx
MDQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFuaW1hdGlvbigpIHsgfQog
I2VuZGlmCiAKLSAgICB2aXJ0dWFsIEludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50
UG9pbnQmIHApIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHA7IH0KLSAgICB2aXJ0dWFsIEludFJl
Y3Qgcm9vdFZpZXdUb1NjcmVlbihjb25zdCBJbnRSZWN0JiByKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiByOyB9Ci0gICAgdmlydHVhbCBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xp
ZW50KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgdm9pZCBjb250
ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0IE9WRVJSSURFIHsg
fQorICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYg
cCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gcDsgfQorICAgIHZpcnR1YWwgSW50UmVjdCByb290
Vmlld1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHIpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHI7
IH0KKyAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6
ZUNoYW5nZWQoRnJhbWUqLCBjb25zdCBJbnRTaXplJikgY29uc3Qgb3ZlcnJpZGUgeyB9CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCBPVkVSUklERSB7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVz
dFJlc3VsdCYsIHVuc2lnbmVkKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xs
YmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkKSBv
dmVycmlkZSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYs
IFRleHREaXJlY3Rpb24pIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlw
KGNvbnN0IFN0cmluZyYsIFRleHREaXJlY3Rpb24pIG92ZXJyaWRlIHsgfQogCi0gICAgdmlydHVh
bCB2b2lkIHByaW50KEZyYW1lKikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIHByaW50
KEZyYW1lKikgb3ZlcnJpZGUgeyB9CiAKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQotICAgIHZp
cnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmLCBE
YXRhYmFzZURldGFpbHMpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERh
dGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmLCBEYXRhYmFzZURldGFpbHMpIG92ZXJy
aWRlIHsgfQogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6
ZShpbnQ2NF90KSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiosIGludDY0X3QpIE9WRVJSSURFIHsg
fQorICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3QpIG92ZXJy
aWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1
b3RhKFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCkgb3ZlcnJpZGUgeyB9CiAKICNpZiBFTkFCTEUo
RElSRUNUT1JZX1VQTE9BRCkKICAgICB2aXJ0dWFsIHZvaWQgZW51bWVyYXRlQ2hvc2VuRGlyZWN0
b3J5KEZpbGVDaG9vc2VyKikgeyB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SKQotICAgIHZpcnR1YWwgUGFzc093blB0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hv
b3NlcihDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBDb2xvciYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgUGFzc093blB0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNo
b29zZXJDbGllbnQqLCBjb25zdCBDb2xvciYpIG92ZXJyaWRlOwogI2VuZGlmCiAKICNpZiBFTkFC
TEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykgJiYgIVBMQVRGT1JNKElPUykKLSAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8RGF0ZVRpbWVDaG9vc2VyPiBvcGVuRGF0ZVRpbWVDaG9vc2VyKERhdGVU
aW1lQ2hvb3NlckNsaWVudCosIGNvbnN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMmKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RGF0ZVRpbWVDaG9vc2VyPiBvcGVuRGF0ZVRp
bWVDaG9vc2VyKERhdGVUaW1lQ2hvb3NlckNsaWVudCosIGNvbnN0IERhdGVUaW1lQ2hvb3NlclBh
cmFtZXRlcnMmKSBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5Q
YW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29u
TG9hZGVyKikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChGcmFt
ZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyKikg
b3ZlcnJpZGUgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hhbmdlKGNvbnN0
IE5vZGUqKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hhbmdl
KGNvbnN0IE5vZGUqKSBvdmVycmlkZSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlk
Rm9jdXMoY29uc3QgTm9kZSopIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50
RGlkQmx1cihjb25zdCBOb2RlKikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIGVsZW1l
bnREaWRGb2N1cyhjb25zdCBOb2RlKikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGVs
ZW1lbnREaWRCbHVyKGNvbnN0IE5vZGUqKSBvdmVycmlkZSB7IH0KIAogI2lmICFQTEFURk9STShJ
T1MpCi0gICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3ImKSBPVkVSUklERSB7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wp
IE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJikg
b3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VN
b3Zlcyhib29sKSBvdmVycmlkZSB7IH0KICNlbmRpZgogCi0gICAgdmlydHVhbCB2b2lkIHNjcm9s
bFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0JikgY29uc3QgT1ZFUlJJREUgeyB9CisgICAgdmly
dHVhbCB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0JikgY29uc3Qgb3ZlcnJp
ZGUgeyB9CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgdmlydHVhbCB2
b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciopIE9WRVJS
SURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25p
emF0aW9uKCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRp
bmdMYXllckZsdXNoKCkgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIGF0dGFjaFJvb3RH
cmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgb3ZlcnJp
ZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkg
b3ZlcnJpZGUgeyB9CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpIE9WRVJSSURFIHsgfQotICAgIHZp
cnR1YWwgdm9pZCBBWFN0YXJ0RnJhbWVMb2FkKCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2
b2lkIEFYRmluaXNoRnJhbWVMb2FkKCkgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIHNl
dExhc3RTZXRDdXJzb3JUb0N1cnJlbnRDdXJzb3IoKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgQVhTdGFydEZyYW1lTG9hZCgpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBB
WEZpbmlzaEZyYW1lTG9hZCgpIG92ZXJyaWRlIHsgfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShO
SVgpCi0gICAgdmlydHVhbCBGbG9hdFJlY3Qgc2NyZWVuUmVjdCgpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIEZsb2F0UmVjdCgpOyB9CisgICAgdmlydHVhbCBGbG9hdFJlY3Qgc2NyZWVuUmVjdCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9CiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKElPUykKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIHZpcnR1YWwgdm9pZCBk
aWRQcmV2ZW50RGVmYXVsdEZvckV2ZW50KCkgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lk
IGRpZFByZXZlbnREZWZhdWx0Rm9yRXZlbnQoKSBvdmVycmlkZSB7IH0KICNlbmRpZgotICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlTW9iaWxlRG9jVHlwZSgpIE9WRVJSSURFIHsgfQotICAgIHZp
cnR1YWwgdm9pZCBzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoRnJhbWUqLCBib29sKSBPVkVS
UklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgb2JzZXJ2ZWRDb250ZW50Q2hhbmdlKEZyYW1lKikg
T1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyQ29udGVudENoYW5nZU9ic2VydmVy
cyhGcmFtZSopIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlSZXZlYWxlZFNl
bGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoRnJhbWUqKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgZGlkTGF5b3V0KExheW91dFR5cGUpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9p
ZCBkaWRTdGFydE92ZXJmbG93U2Nyb2xsKCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lk
IGRpZEVuZE92ZXJmbG93U2Nyb2xsKCkgT1ZFUlJJREUgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQg
c3VwcHJlc3NGb3JtTm90aWZpY2F0aW9ucygpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9p
ZCByZXN0b3JlRm9ybU5vdGlmaWNhdGlvbnMoKSBPVkVSUklERSB7IH0KLQotICAgIHZpcnR1YWwg
dm9pZCBhZGRPclVwZGF0ZVNjcm9sbGluZ0xheWVyKE5vZGUqLCBQbGF0Zm9ybUxheWVyKiwgUGxh
dGZvcm1MYXllciosIGNvbnN0IEludFNpemUmLCBib29sLCBib29sKSBPVkVSUklERSB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3ZlU2Nyb2xsaW5nTGF5ZXIoTm9kZSosIFBsYXRmb3JtTGF5ZXIq
LCBQbGF0Zm9ybUxheWVyKikgT1ZFUlJJREUgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgd2ViQXBw
T3JpZW50YXRpb25zVXBkYXRlZCgpIE9WRVJSSURFIHsgfTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZU1vYmlsZURvY1R5cGUoKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0
TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKEZyYW1lKiwgYm9vbCkgb3ZlcnJpZGUgeyB9CisgICAg
dmlydHVhbCB2b2lkIG9ic2VydmVkQ29udGVudENoYW5nZShGcmFtZSopIG92ZXJyaWRlIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBjbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoRnJhbWUqKSBvdmVy
cmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9s
bGluZ0ZyYW1lKEZyYW1lKikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZExheW91
dChMYXlvdXRUeXBlKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRPdmVy
Zmxvd1Njcm9sbCgpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRPdmVyZmxv
d1Njcm9sbCgpIG92ZXJyaWRlIHsgfQorCisgICAgdmlydHVhbCB2b2lkIHN1cHByZXNzRm9ybU5v
dGlmaWNhdGlvbnMoKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1O
b3RpZmljYXRpb25zKCkgb3ZlcnJpZGUgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgYWRkT3JVcGRh
dGVTY3JvbGxpbmdMYXllcihOb2RlKiwgUGxhdGZvcm1MYXllciosIFBsYXRmb3JtTGF5ZXIqLCBj
b25zdCBJbnRTaXplJiwgYm9vbCwgYm9vbCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lk
IHJlbW92ZVNjcm9sbGluZ0xheWVyKE5vZGUqLCBQbGF0Zm9ybUxheWVyKiwgUGxhdGZvcm1MYXll
ciopIG92ZXJyaWRlIHsgfQorCisgICAgdmlydHVhbCB2b2lkIHdlYkFwcE9yaWVudGF0aW9uc1Vw
ZGF0ZWQoKSBvdmVycmlkZSB7IH07CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCiAjaWYgUExB
VEZPUk0oSU9TKQotICAgIHZpcnR1YWwgYm9vbCBpc1N0b3BwaW5nKCkgT1ZFUlJJREUgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTdG9wcGluZygpIG92ZXJyaWRlIHsgcmV0
dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0gICAgdmly
dHVhbCB2b2lkIG5lZWRUb3VjaEV2ZW50cyhib29sKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgbmVlZFRvdWNoRXZlbnRzKGJvb2wpIG92ZXJyaWRlIHsgfQogI2VuZGlmCiAgICAgCi0g
ICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIE9W
RVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2Vk
KHVuc2lnbmVkKSBvdmVycmlkZSB7IH0KICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eUNo
cm9tZUNsaWVudCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaXNFbXB0eUNocm9tZUNsaWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7
IH0KIAotICAgIHZpcnR1YWwgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoY29uc3QgVmVj
dG9yPFJlZlB0cjxFbGVtZW50Pj4mKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkTm90aWZ5T25Gb3JtQ2hhbmdlcygpIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
dmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhjb25zdCBWZWN0b3I8UmVmUHRy
PEVsZW1lbnQ+PiYpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGROb3RpZnlP
bkZvcm1DaGFuZ2VzKCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAKIC8vIEZJWE1F
IChidWcgMTE2MjMzKTogR2V0IHJpZCBvZiBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50LiBJdCBpcyBh
IHRyYXZlc3R5LgpAQCAtMjQ0LDE4OCArMjQ0LDE4OCBAQCBjbGFzcyBFbXB0eUZyYW1lTG9hZGVy
Q2xpZW50IDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBFbXB0eUZy
YW1lTG9hZGVyQ2xpZW50KCkgeyB9CiAgICAgdmlydHVhbCB+RW1wdHlGcmFtZUxvYWRlckNsaWVu
dCgpIHsgIH0KLSAgICB2aXJ0dWFsIHZvaWQgZnJhbWVMb2FkZXJEZXN0cm95ZWQoKSBPVkVSUklE
RSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZnJhbWVMb2FkZXJEZXN0cm95ZWQoKSBvdmVycmlkZSB7
IH0KIAotICAgIHZpcnR1YWwgYm9vbCBoYXNXZWJWaWV3KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gdHJ1ZTsgfSAvLyBtYWlubHkgZm9yIGFzc2VydGlvbnMKKyAgICB2aXJ0dWFsIGJvb2wgaGFz
V2ViVmlldygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0gLy8gbWFpbmx5IGZvciBh
c3NlcnRpb25zCiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFrZVJlcHJlc2VudGF0aW9uKERvY3VtZW50
TG9hZGVyKikgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGZvcmNlTGF5b3V0KCkgT1ZF
UlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIG1ha2VSZXByZXNlbnRhdGlvbihEb2N1bWVudExv
YWRlciopIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBmb3JjZUxheW91dCgpIG92ZXJy
aWRlIHsgfQogI2lmIFBMQVRGT1JNKElPUykKLSAgICB2aXJ0dWFsIHZvaWQgZm9yY2VMYXlvdXRX
aXRob3V0UmVjYWxjdWxhdGluZ1N0eWxlcygpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBmb3JjZUxheW91dFdpdGhvdXRSZWNhbGN1bGF0aW5nU3R5bGVzKCkgb3ZlcnJpZGUgeyB9CiAj
ZW5kaWYKLSAgICB2aXJ0dWFsIHZvaWQgZm9yY2VMYXlvdXRGb3JOb25IVE1MKCkgT1ZFUlJJREUg
eyB9CisgICAgdmlydHVhbCB2b2lkIGZvcmNlTGF5b3V0Rm9yTm9uSFRNTCgpIG92ZXJyaWRlIHsg
fQogCi0gICAgdmlydHVhbCB2b2lkIHNldENvcGllc09uU2Nyb2xsKCkgT1ZFUlJJREUgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIHNldENvcGllc09uU2Nyb2xsKCkgb3ZlcnJpZGUgeyB9CiAKLSAgICB2
aXJ0dWFsIHZvaWQgZGV0YWNoZWRGcm9tUGFyZW50MigpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1
YWwgdm9pZCBkZXRhY2hlZEZyb21QYXJlbnQzKCkgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2
b2lkIGRldGFjaGVkRnJvbVBhcmVudDIoKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
ZGV0YWNoZWRGcm9tUGFyZW50MygpIG92ZXJyaWRlIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGNv
bnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChEb2N1bWVudExvYWRlciosIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50
TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
IG92ZXJyaWRlIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGFzc2lnbklkZW50aWZpZXJUb0luaXRp
YWxSZXF1ZXN0KHVuc2lnbmVkIGxvbmcsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JikgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCBib29sIHNob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZykgT1ZFUlJJREUgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoRG9j
dW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJikgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQg
bG9uZywgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBPVkVSUklERSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShEb2N1
bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
JikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIGFzc2lnbklkZW50aWZpZXJUb0luaXRp
YWxSZXF1ZXN0KHVuc2lnbmVkIGxvbmcsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0Jikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZykgb3ZlcnJpZGUgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoRG9j
dW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQg
bG9uZywgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShEb2N1
bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
Jikgb3ZlcnJpZGUgeyB9CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykK
LSAgICB2aXJ0dWFsIGJvb2wgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShE
b2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcsIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYpIE9W
RVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGNhbkF1dGhlbnRpY2F0
ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nLCBj
b25zdCBQcm90ZWN0aW9uU3BhY2UmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlm
CiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgdmlydHVhbCBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5
UmVmPiBjb25uZWN0aW9uUHJvcGVydGllcyhEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcp
IE9WRVJSSURFIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIFJldGFpblB0cjxDRkRp
Y3Rpb25hcnlSZWY+IGNvbm5lY3Rpb25Qcm9wZXJ0aWVzKERvY3VtZW50TG9hZGVyKiwgdW5zaWdu
ZWQgbG9uZykgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKLSAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNp
Z25lZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJREUgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRG9jdW1lbnRMb2FkZXIq
LCB1bnNpZ25lZCBsb25nLCBpbnQpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERpZEZpbmlzaExvYWRpbmcoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nKSBPVkVS
UklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyhEb2N1bWVu
dExvYWRlciosIHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlRXJyb3ImKSBPVkVSUklERSB7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgZGlzcGF0Y2hEaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2Fj
aGUoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiwgaW50KSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQotCi0gICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoRGlkSGFuZGxlT25sb2FkRXZlbnRzKCkgT1ZFUlJJREUgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9u
YWxMb2FkKCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2FuY2Vs
Q2xpZW50UmVkaXJlY3QoKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hX
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFVSTCYsIGRvdWJsZSwgZG91YmxlKSBPVkVS
UklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VMb2NhdGlvbldpdGhp
blBhZ2UoKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRQdXNoU3Rh
dGVXaXRoaW5QYWdlKCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlk
UmVwbGFjZVN0YXRlV2l0aGluUGFnZSgpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaERpZFBvcFN0YXRlV2l0aGluUGFnZSgpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaFdpbGxDbG9zZSgpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaERpZFJlY2VpdmVJY29uKCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQoKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3QgU3RyaW5nV2l0aERpcmVjdGlvbiYp
IE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENoYW5nZUljb25zKElj
b25UeXBlKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDb21taXRM
b2FkKCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmFpbFByb3Zp
c2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJikgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoRGlkRmFpbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURF
IHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpbmlzaERvY3VtZW50TG9hZCgpIE9W
RVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWQoKSBPVkVS
UklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRMYXlvdXQoTGF5b3V0TWlsZXN0
b25lcykgT1ZFUlJJREUgeyB9Ci0KLSAgICB2aXJ0dWFsIEZyYW1lKiBkaXNwYXRjaENyZWF0ZVBh
Z2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpIE9WRVJSSURFIHsgcmV0dXJuIDA7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hTaG93KCkgT1ZFUlJJREUgeyB9Ci0KLSAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRnJhbWVQb2xpY3lGdW5jdGlvbikgT1ZFUlJJREUg
eyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYXNz
UmVmUHRyPEZvcm1TdGF0ZT4sIGNvbnN0IFN0cmluZyYsIEZyYW1lUG9saWN5RnVuY3Rpb24pIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgRnJhbWVQb2xpY3lGdW5jdGlvbikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgT1ZFUlJJREUgeyB9Ci0KLSAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hVbmFibGVUb0ltcGxlbWVudFBvbGljeShjb25zdCBSZXNvdXJj
ZUVycm9yJikgT1ZFUlJJREUgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsU2Vu
ZFN1Ym1pdEV2ZW50KFBhc3NSZWZQdHI8Rm9ybVN0YXRlPikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoV2lsbFN1Ym1pdEZvcm0oUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBGcmFt
ZVBvbGljeUZ1bmN0aW9uKSBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgdm9pZCByZXZlcnRUb1By
b3Zpc2lvbmFsU3RhdGUoRG9jdW1lbnRMb2FkZXIqKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgc2V0TWFpbkRvY3VtZW50RXJyb3IoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJj
ZUVycm9yJikgT1ZFUlJJREUgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0TWFpbkZyYW1lRG9j
dW1lbnRSZWFkeShib29sKSBPVkVSUklERSB7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBzdGFydERv
d25sb2FkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFt
ZSA9IFN0cmluZygpKSBPVkVSUklERSB7IFVOVVNFRF9QQVJBTShzdWdnZXN0ZWROYW1lKTsgfQot
Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxDaGFuZ2VUaXRsZShEb2N1bWVudExvYWRlciopIE9WRVJS
SURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VUaXRsZShEb2N1bWVudExvYWRlciop
IE9WRVJSSURFIHsgfQotCi0gICAgdmlydHVhbCB2b2lkIGNvbW1pdHRlZExvYWQoRG9jdW1lbnRM
b2FkZXIqLCBjb25zdCBjaGFyKiwgaW50KSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
ZmluaXNoZWRMb2FkaW5nKERvY3VtZW50TG9hZGVyKikgT1ZFUlJJREUgeyB9Ci0KLSAgICB2aXJ0
dWFsIFJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jikg
T1ZFUlJJREUgeyBSZXNvdXJjZUVycm9yIGVycm9yKCIiLCAwLCAiIiwgIiIpOyBlcnJvci5zZXRJ
c0NhbmNlbGxhdGlvbih0cnVlKTsgcmV0dXJuIGVycm9yOyB9Ci0gICAgdmlydHVhbCBSZXNvdXJj
ZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBPVkVSUklERSB7IHJl
dHVybiBSZXNvdXJjZUVycm9yKCIiLCAwLCAiIiwgIiIpOyB9Ci0gICAgdmlydHVhbCBSZXNvdXJj
ZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBPVkVSUklE
RSB7IHJldHVybiBSZXNvdXJjZUVycm9yKCIiLCAwLCAiIiwgIiIpOyB9Ci0gICAgdmlydHVhbCBS
ZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JikgT1ZFUlJJREUgeyByZXR1cm4gUmVzb3VyY2VFcnJvcigiIiwgMCwgIiIsICIi
KTsgfQotCi0gICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9y
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERSB7IHJldHVybiBSZXNvdXJjZUVycm9y
KCIiLCAwLCAiIiwgIiIpOyB9Ci0gICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90
RXhpc3RFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJREUgeyByZXR1cm4gUmVz
b3VyY2VFcnJvcigiIiwgMCwgIiIsICIiKTsgfQotICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJvciBw
bHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklE
RSB7IHJldHVybiBSZXNvdXJjZUVycm9yKCIiLCAwLCAiIiwgIiIpOyB9Ci0KLSAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkRmFsbEJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFIHsgcmV0
dXJuIGZhbHNlOyB9Ci0KLSAgICB2aXJ0dWFsIGJvb2wgY2FuSGFuZGxlUmVxdWVzdChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZp
cnR1YWwgYm9vbCBjYW5TaG93TUlNRVR5cGUoY29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgY2FuU2hvd01JTUVUeXBlQXNIVE1M
KGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmly
dHVhbCBib29sIHJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBTdHJpbmcgZ2Vu
ZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gIiI7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBmcmFtZUxvYWRDb21wbGV0ZWQoKSBP
VkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZVZpZXdTdGF0ZSgpIE9WRVJSSURF
IHsgfQotICAgIHZpcnR1YWwgdm9pZCBwcm92aXNpb25hbExvYWRTdGFydGVkKCkgT1ZFUlJJREUg
eyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWQoKSBPVkVSUklERSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgcHJlcGFyZUZvckRhdGFTb3VyY2VSZXBsYWNlbWVudCgpIE9WRVJSSURFIHsg
fQotCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPERvY3VtZW50TG9hZGVyPiBjcmVhdGVEb2N1bWVu
dExvYWRlcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRUaXRsZShjb25zdCBTdHJpbmdXaXRoRGlyZWN0
aW9uJiwgY29uc3QgVVJMJikgT1ZFUlJJREUgeyB9Ci0KLSAgICB2aXJ0dWFsIFN0cmluZyB1c2Vy
QWdlbnQoY29uc3QgVVJMJikgT1ZFUlJJREUgeyByZXR1cm4gIiI7IH0KLQotICAgIHZpcnR1YWwg
dm9pZCBzYXZlUGxhdGZvcm1EYXRhVG9DYWNoZWRGcmFtZShDYWNoZWRGcmFtZSopIE9WRVJSSURF
IHsgfQotICAgIHZpcnR1YWwgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGcm9tQ2FjaGVkRnJh
bWUoQ2FjaGVkRnJhbWUqKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hE
aWRSZWNlaXZlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
RGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nLCBp
bnQpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWRp
bmcoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyhEb2N1bWVudExvYWRlciosIHVuc2lnbmVk
IGxvbmcsIGNvbnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgZGlzcGF0Y2hEaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUoRG9jdW1lbnRMb2FkZXIq
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgaW50KSBv
dmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorCisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlk
SGFuZGxlT25sb2FkRXZlbnRzKCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKCkgb3ZlcnJpZGUg
eyB9CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QoKSBv
dmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJl
ZGlyZWN0KGNvbnN0IFVSTCYsIGRvdWJsZSwgZG91YmxlKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2UoKSBvdmVycmlkZSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRQdXNoU3RhdGVXaXRoaW5QYWdlKCkgb3Zl
cnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVwbGFjZVN0YXRlV2l0aGlu
UGFnZSgpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFBvcFN0YXRl
V2l0aGluUGFnZSgpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxD
bG9zZSgpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVJ
Y29uKCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkU3RhcnRQcm92
aXNpb25hbExvYWQoKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRS
ZWNlaXZlVGl0bGUoY29uc3QgU3RyaW5nV2l0aERpcmVjdGlvbiYpIG92ZXJyaWRlIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENoYW5nZUljb25zKEljb25UeXBlKSBvdmVycmlkZSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDb21taXRMb2FkKCkgb3ZlcnJpZGUgeyB9
CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBS
ZXNvdXJjZUVycm9yJikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlk
RmFpbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERpZEZpbmlzaERvY3VtZW50TG9hZCgpIG92ZXJyaWRlIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWQoKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEaWRMYXlvdXQoTGF5b3V0TWlsZXN0b25lcykgb3ZlcnJpZGUgeyB9
CisKKyAgICB2aXJ0dWFsIEZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlv
bkFjdGlvbiYpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hTaG93KCkgb3ZlcnJpZGUgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgRnJhbWVQb2xpY3lGdW5jdGlvbikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IE5hdmlnYXRp
b25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4s
IGNvbnN0IFN0cmluZyYsIEZyYW1lUG9saWN5RnVuY3Rpb24pIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgTmF2
aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8Rm9ybVN0
YXRlPiwgRnJhbWVQb2xpY3lGdW5jdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNh
bmNlbFBvbGljeUNoZWNrKCkgb3ZlcnJpZGUgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hVbmFibGVUb0ltcGxlbWVudFBvbGljeShjb25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGUg
eyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KFBhc3NS
ZWZQdHI8Rm9ybVN0YXRlPikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2ls
bFN1Ym1pdEZvcm0oUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBGcmFtZVBvbGljeUZ1bmN0aW9uKSBv
dmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCByZXZlcnRUb1Byb3Zpc2lvbmFsU3RhdGUoRG9j
dW1lbnRMb2FkZXIqKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0TWFpbkRvY3Vt
ZW50RXJyb3IoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGUg
eyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TWFpbkZyYW1lRG9jdW1lbnRSZWFkeShib29sKSBv
dmVycmlkZSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzdGFydERvd25sb2FkKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSA9IFN0cmluZygpKSBvdmVy
cmlkZSB7IFVOVVNFRF9QQVJBTShzdWdnZXN0ZWROYW1lKTsgfQorCisgICAgdmlydHVhbCB2b2lk
IHdpbGxDaGFuZ2VUaXRsZShEb2N1bWVudExvYWRlciopIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBkaWRDaGFuZ2VUaXRsZShEb2N1bWVudExvYWRlciopIG92ZXJyaWRlIHsgfQorCisg
ICAgdmlydHVhbCB2b2lkIGNvbW1pdHRlZExvYWQoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBjaGFy
KiwgaW50KSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZmluaXNoZWRMb2FkaW5nKERv
Y3VtZW50TG9hZGVyKikgb3ZlcnJpZGUgeyB9CisKKyAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3Ig
Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGUgeyBSZXNvdXJj
ZUVycm9yIGVycm9yKCIiLCAwLCAiIiwgIiIpOyBlcnJvci5zZXRJc0NhbmNlbGxhdGlvbih0cnVl
KTsgcmV0dXJuIGVycm9yOyB9CisgICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJv
cihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZSB7IHJldHVybiBSZXNvdXJjZUVycm9y
KCIiLCAwLCAiIiwgIiIpOyB9CisgICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dV
UkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZSB7IHJldHVybiBSZXNvdXJj
ZUVycm9yKCIiLCAwLCAiIiwgIiIpOyB9CisgICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGludGVy
cnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJp
ZGUgeyByZXR1cm4gUmVzb3VyY2VFcnJvcigiIiwgMCwgIiIsICIiKTsgfQorCisgICAgdmlydHVh
bCBSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKSBvdmVycmlkZSB7IHJldHVybiBSZXNvdXJjZUVycm9yKCIiLCAwLCAiIiwgIiIpOyB9
CisgICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGUgeyByZXR1cm4gUmVzb3VyY2VFcnJvcigiIiwgMCwg
IiIsICIiKTsgfQorICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9h
ZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlkZSB7IHJldHVybiBSZXNvdXJj
ZUVycm9yKCIiLCAwLCAiIiwgIiIpOyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRmFsbEJh
Y2soY29uc3QgUmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisKKyAg
ICB2aXJ0dWFsIGJvb2wgY2FuSGFuZGxlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5TaG93
TUlNRVR5cGUoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgY2FuU2hvd01JTUVUeXBlQXNIVE1MKGNvbnN0IFN0cmluZyYpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIHJlcHJlc2Vu
dGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBTdHJpbmcgZ2VuZXJhdGVkTUlNRVR5cGVGb3JV
UkxTY2hlbWUoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIiI7IH0KKwor
ICAgIHZpcnR1YWwgdm9pZCBmcmFtZUxvYWRDb21wbGV0ZWQoKSBvdmVycmlkZSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgcmVzdG9yZVZpZXdTdGF0ZSgpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBwcm92aXNpb25hbExvYWRTdGFydGVkKCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2
b2lkIGRpZEZpbmlzaExvYWQoKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcHJlcGFy
ZUZvckRhdGFTb3VyY2VSZXBsYWNlbWVudCgpIG92ZXJyaWRlIHsgfQorCisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPERvY3VtZW50TG9hZGVyPiBjcmVhdGVEb2N1bWVudExvYWRlcihjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBzZXRUaXRsZShjb25zdCBTdHJpbmdXaXRoRGlyZWN0aW9uJiwgY29uc3QgVVJMJikg
b3ZlcnJpZGUgeyB9CisKKyAgICB2aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQoY29uc3QgVVJMJikg
b3ZlcnJpZGUgeyByZXR1cm4gIiI7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzYXZlUGxhdGZvcm1E
YXRhVG9DYWNoZWRGcmFtZShDYWNoZWRGcmFtZSopIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwg
dm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGcm9tQ2FjaGVkRnJhbWUoQ2FjaGVkRnJhbWUqKSBv
dmVycmlkZSB7IH0KICNpZiBQTEFURk9STShJT1MpCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlc3Rv
cmVGcmFtZUhpZXJhcmNoeUZvckNhY2hlZEZyYW1lKCkgT1ZFUlJJREUgeyB9CisgICAgdmlydHVh
bCB2b2lkIGRpZFJlc3RvcmVGcmFtZUhpZXJhcmNoeUZvckNhY2hlZEZyYW1lKCkgb3ZlcnJpZGUg
eyB9CiAjZW5kaWYKLSAgICB2aXJ0dWFsIHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3
UGFnZSgpIE9WRVJSSURFIHsgfQotCi0gICAgdmlydHVhbCB2b2lkIGRpZFNhdmVUb1BhZ2VDYWNo
ZSgpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN0b3JlRnJvbVBhZ2VDYWNo
ZSgpIE9WRVJSSURFIHsgfQotCi0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQmVjb21lRnJh
bWVzZXQoYm9vbCkgT1ZFUlJJREUgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2xvYmFs
SGlzdG9yeSgpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHbG9iYWxIaXN0
b3J5UmVkaXJlY3RMaW5rcygpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRH
b1RvSGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0qKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxz
ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKEhp
c3RvcnlJdGVtKikgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlR2xvYmFsSGlzdG9yeUl0ZW1Gb3JQYWdlKCkgT1ZFUlJJREUgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIHNhdmVWaWV3U3RhdGVUb0l0ZW0oSGlzdG9yeUl0ZW0qKSBPVkVSUklERSB7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgp
IE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnQoU2Vj
dXJpdHlPcmlnaW4qLCBjb25zdCBVUkwmKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkRGV0ZWN0WFNTKGNvbnN0IFVSTCYsIGJvb2wpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiwg
SFRNTEZyYW1lT3duZXJFbGVtZW50KiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgaW50LCBpbnQpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25z
dCBJbnRTaXplJiwgSFRNTFBsdWdJbkVsZW1lbnQqLCBjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiwgYm9vbCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlY3JlYXRlUGx1Z2luKFdpZGdldCopIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXaWRnZXQ+IGNyZWF0ZUphdmFBcHBsZXRXaWRnZXQo
Y29uc3QgSW50U2l6ZSYsIEhUTUxBcHBsZXRFbGVtZW50KiwgY29uc3QgVVJMJiwgY29uc3QgVmVj
dG9yPFN0cmluZz4mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkgb3ZlcnJpZGUgeyB9CisK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkU2F2ZVRvUGFnZUNhY2hlKCkgb3ZlcnJpZGUgeyB9CisgICAg
dmlydHVhbCB2b2lkIGRpZFJlc3RvcmVGcm9tUGFnZUNhY2hlKCkgb3ZlcnJpZGUgeyB9CisKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKSBvdmVycmlkZSB7
IH0KKworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHbG9iYWxIaXN0b3J5KCkgb3ZlcnJpZGUgeyB9
CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdsb2JhbEhpc3RvcnlSZWRpcmVjdExpbmtzKCkgb3Zl
cnJpZGUgeyB9CisgICAgdmlydHVhbCBib29sIHNob3VsZEdvVG9IaXN0b3J5SXRlbShIaXN0b3J5
SXRlbSopIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29s
IHNob3VsZFN0b3BMb2FkaW5nRm9ySGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0qKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHbG9iYWxIaXN0
b3J5SXRlbUZvclBhZ2UoKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVZpZXdT
dGF0ZVRvSXRlbShIaXN0b3J5SXRlbSopIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgYm9vbCBj
YW5DYWNoZVBhZ2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1
YWwgdm9pZCBkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50KCkgb3ZlcnJpZGUgeyB9CisgICAgdmly
dHVhbCB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiosIGNvbnN0IFVS
TCYpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWREZXRlY3RYU1MoY29uc3QgVVJM
JiwgYm9vbCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZyYW1lPiBjcmVh
dGVGcmFtZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmLCBIVE1MRnJhbWVPd25lckVsZW1lbnQq
LCBjb25zdCBTdHJpbmcmLCBib29sLCBpbnQsIGludCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFdpZGdldD4gY3JlYXRlUGx1Z2luKGNvbnN0IEludFNpemUmLCBIVE1MUGx1Z0lu
RWxlbWVudCosIGNvbnN0IFVSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9y
PFN0cmluZz4mLCBjb25zdCBTdHJpbmcmLCBib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVjcmVhdGVQbHVnaW4oV2lkZ2V0Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQYXNzUmVm
UHRyPFdpZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiwgSFRNTEFw
cGxldEVsZW1lbnQqLCBjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+Jikgb3ZlcnJpZGU7CiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklE
RU8pCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdpZGdldD4gY3JlYXRlTWVkaWFQbGF5ZXJQcm94
eVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRNTE1lZGlhRWxlbWVudCosIGNvbnN0IFVSTCYsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcm
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgaGlkZU1lZGlhUGxheWVyUHJveHlQbHVnaW4o
V2lkZ2V0KikgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHNob3dNZWRpYVBsYXllclBy
b3h5UGx1Z2luKFdpZGdldCopIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxX
aWRnZXQ+IGNyZWF0ZU1lZGlhUGxheWVyUHJveHlQbHVnaW4oY29uc3QgSW50U2l6ZSYsIEhUTUxN
ZWRpYUVsZW1lbnQqLCBjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IGhpZGVNZWRpYVBsYXllclByb3h5UGx1Z2luKFdpZGdldCopIG92ZXJyaWRlIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBzaG93TWVkaWFQbGF5ZXJQcm94eVBsdWdpbihXaWRnZXQqKSBvdmVycmlkZSB7
IH0KICNlbmRpZgogCi0gICAgdmlydHVhbCBPYmplY3RDb250ZW50VHlwZSBvYmplY3RDb250ZW50
VHlwZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmLCBib29sKSBPVkVSUklERSB7IHJldHVybiBP
YmplY3RDb250ZW50VHlwZSgpOyB9Ci0gICAgdmlydHVhbCBTdHJpbmcgb3ZlcnJpZGVNZWRpYVR5
cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBTdHJpbmcoKTsgfQorICAgIHZpcnR1YWwgT2Jq
ZWN0Q29udGVudFR5cGUgb2JqZWN0Q29udGVudFR5cGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5n
JiwgYm9vbCkgb3ZlcnJpZGUgeyByZXR1cm4gT2JqZWN0Q29udGVudFR5cGUoKTsgfQorICAgIHZp
cnR1YWwgU3RyaW5nIG92ZXJyaWRlTWVkaWFUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
U3RyaW5nKCk7IH0KIAotICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihXaWRn
ZXQqKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDbGVhcldpbmRv
d09iamVjdEluV29ybGQoRE9NV3JhcHBlcldvcmxkJikgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIGRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1
YWwgdm9pZCBkaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29uc3QgT1ZFUlJJREUgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCopIG92ZXJyaWRlIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENsZWFyV2luZG93T2JqZWN0SW5Xb3JsZChE
T01XcmFwcGVyV29ybGQmKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZG9jdW1lbnRF
bGVtZW50QXZhaWxhYmxlKCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFBlcmZv
cm1GaXJzdE5hdmlnYXRpb24oKSBjb25zdCBvdmVycmlkZSB7IH0KIAotICAgIHZpcnR1YWwgdm9p
ZCByZWdpc3RlckZvckljb25Ob3RpZmljYXRpb24oYm9vbCkgT1ZFUlJJREUgeyB9CisgICAgdmly
dHVhbCB2b2lkIHJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29sKSBvdmVycmlkZSB7IH0K
IAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFJlbW90ZUFYT2JqZWN0UmVmIGFjY2Vz
c2liaWxpdHlSZW1vdGVPYmplY3QoKSBPVkVSUklERSB7IHJldHVybiAwOyB9Ci0gICAgdmlydHVh
bCBOU0NhY2hlZFVSTFJlc3BvbnNlKiB3aWxsQ2FjaGVSZXNwb25zZShEb2N1bWVudExvYWRlcios
IHVuc2lnbmVkIGxvbmcsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHJlc3BvbnNlKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiByZXNwb25zZTsgfQorICAgIHZpcnR1YWwgUmVtb3RlQVhPYmplY3RSZWYg
YWNjZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKyAgICB2
aXJ0dWFsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHdpbGxDYWNoZVJlc3BvbnNlKERvY3VtZW50TG9h
ZGVyKiwgdW5zaWduZWQgbG9uZywgTlNDYWNoZWRVUkxSZXNwb25zZSogcmVzcG9uc2UpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHJlc3BvbnNlOyB9CiAjZW5kaWYKICNpZiBQTEFURk9STShXSU4p
ICYmIFVTRShDRk5FVFdPUkspCiAgICAgLy8gRklYTUU6IFdpbmRvd3Mgc2hvdWxkIHVzZSB3aWxs
Q2FjaGVSZXNwb25zZSAtIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTcyNTc+LgotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDYWNoZVJlc3BvbnNlKERvY3VtZW50TG9h
ZGVyKiwgdW5zaWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IHVuc2ln
bmVkIGNoYXIqLCB1bnNpZ25lZCBsb25nIGxvbmcpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShEb2N1bWVudExvYWRlciosIHVu
c2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCB1bnNpZ25lZCBjaGFy
KiwgdW5zaWduZWQgbG9uZyBsb25nKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAjZW5kaWYK
IAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVO
ZXR3b3JraW5nQ29udGV4dCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpIG92ZXJyaWRlOwog
Ci0gICAgdmlydHVhbCBib29sIGlzRW1wdHlGcmFtZUxvYWRlckNsaWVudCgpIE9WRVJSSURFIHsg
cmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eUZyYW1lTG9hZGVyQ2xpZW50
KCkgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogY2xhc3MgRW1wdHlUZXh0Q2hlY2tl
ckNsaWVudCA6IHB1YmxpYyBUZXh0Q2hlY2tlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgdmlydHVh
bCBib29sIHNob3VsZEVyYXNlTWFya2Vyc0FmdGVyQ2hhbmdlU2VsZWN0aW9uKFRleHRDaGVja2lu
Z1R5cGUpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
aWdub3JlV29yZEluU3BlbGxEb2N1bWVudChjb25zdCBTdHJpbmcmKSBPVkVSUklERSB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgbGVhcm5Xb3JkKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFIHsgfQotICAg
IHZpcnR1YWwgdm9pZCBjaGVja1NwZWxsaW5nT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQsIGlu
dCosIGludCopIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgU3RyaW5nIGdldEF1dG9Db3JyZWN0
U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFIHsgcmV0
dXJuIFN0cmluZygpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGNoZWNrR3JhbW1hck9mU3RyaW5nKGNv
bnN0IFVDaGFyKiwgaW50LCBWZWN0b3I8R3JhbW1hckRldGFpbD4mLCBpbnQqLCBpbnQqKSBPVkVS
UklERSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRXJhc2VNYXJrZXJzQWZ0ZXJDaGFuZ2VT
ZWxlY3Rpb24oVGV4dENoZWNraW5nVHlwZSkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQorICAgIHZpcnR1YWwgdm9pZCBpZ25vcmVXb3JkSW5TcGVsbERvY3VtZW50KGNvbnN0IFN0cmlu
ZyYpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBsZWFybldvcmQoY29uc3QgU3RyaW5n
Jikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGNoZWNrU3BlbGxpbmdPZlN0cmluZyhj
b25zdCBVQ2hhciosIGludCwgaW50KiwgaW50Kikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCBT
dHJpbmcgZ2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlzc3BlbGxlZFdvcmQoY29uc3QgU3Ry
aW5nJikgb3ZlcnJpZGUgeyByZXR1cm4gU3RyaW5nKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY2hl
Y2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQsIFZlY3RvcjxHcmFtbWFyRGV0YWls
PiYsIGludCosIGludCopIG92ZXJyaWRlIHsgfQogCiAjaWYgVVNFKFVOSUZJRURfVEVYVF9DSEVD
S0lORykKLSAgICB2aXJ0dWFsIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+IGNoZWNrVGV4dE9m
UGFyYWdyYXBoKFN0cmluZ1ZpZXcsIFRleHRDaGVja2luZ1R5cGVNYXNrKSBPVkVSUklERSB7IHJl
dHVybiBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PigpOyB9CisgICAgdmlydHVhbCBWZWN0b3I8
VGV4dENoZWNraW5nUmVzdWx0PiBjaGVja1RleHRPZlBhcmFncmFwaChTdHJpbmdWaWV3LCBUZXh0
Q2hlY2tpbmdUeXBlTWFzaykgb3ZlcnJpZGUgeyByZXR1cm4gVmVjdG9yPFRleHRDaGVja2luZ1Jl
c3VsdD4oKTsgfQogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQo
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKSBPVkVSUklERSB7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoUGFzc1JlZlB0cjxU
ZXh0Q2hlY2tpbmdSZXF1ZXN0PikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNz
ZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+Jikg
b3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFBh
c3NSZWZQdHI8VGV4dENoZWNraW5nUmVxdWVzdD4pIG92ZXJyaWRlOwogfTsKIAogY2xhc3MgRW1w
dHlFZGl0b3JDbGllbnQgOiBwdWJsaWMgRWRpdG9yQ2xpZW50IHsKQEAgLTQzMywxMTggKzQzMywx
MTggQEAgY2xhc3MgRW1wdHlFZGl0b3JDbGllbnQgOiBwdWJsaWMgRWRpdG9yQ2xpZW50IHsKIHB1
YmxpYzoKICAgICBFbXB0eUVkaXRvckNsaWVudCgpIHsgfQogICAgIHZpcnR1YWwgfkVtcHR5RWRp
dG9yQ2xpZW50KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHBhZ2VEZXN0cm95ZWQoKSBPVkVSUklE
RSB7IH0KLQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVSYW5nZShSYW5nZSopIE9WRVJS
SURFIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCgpIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlz
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNl
OyB9Ci0gICAgdmlydHVhbCBib29sIGlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkg
T1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQ29udGlu
dW91c1NwZWxsQ2hlY2tpbmcoKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNHcmFt
bWFyQ2hlY2tpbmdFbmFibGVkKCkgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgdG9nZ2xlR3JhbW1hckNoZWNraW5nKCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVh
bCBpbnQgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKSBPVkVSUklERSB7IHJldHVybiAtMTsgfQot
Ci0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQmVnaW5FZGl0aW5nKFJhbmdlKikgT1ZFUlJJREUg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRW5kRWRpdGluZyhSYW5n
ZSopIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHNob3VsZElu
c2VydE5vZGUoTm9kZSosIFJhbmdlKiwgRWRpdG9ySW5zZXJ0QWN0aW9uKSBPVkVSUklERSB7IHJl
dHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnNlcnRUZXh0KGNvbnN0IFN0
cmluZyYsIFJhbmdlKiwgRWRpdG9ySW5zZXJ0QWN0aW9uKSBPVkVSUklERSB7IHJldHVybiBmYWxz
ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFJhbmdlKiwg
UmFuZ2UqLCBFQWZmaW5pdHksIGJvb2wpIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9Ci0KLSAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShTdHlsZVByb3BlcnRpZXMqLCBSYW5nZSop
IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHNob3VsZE1vdmVS
YW5nZUFmdGVyRGVsZXRlKFJhbmdlKiwgUmFuZ2UqKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsg
fQotCi0gICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRWRpdGluZygpIE9WRVJSSURFIHsgfQotICAg
IHZpcnR1YWwgdm9pZCByZXNwb25kVG9DaGFuZ2VkQ29udGVudHMoKSBPVkVSUklERSB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgcmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbihGcmFtZSopIE9WRVJSSURF
IHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRFZGl0aW5nKCkgT1ZFUlJJREUgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIHdpbGxXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChSYW5nZSopIE9WRVJS
SURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgp
IE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBnZXRDbGllbnRQYXN0ZWJvYXJkRGF0YUZv
clJhbmdlKFJhbmdlKiwgVmVjdG9yPFN0cmluZz4mLCBWZWN0b3I8UmVmUHRyPFNoYXJlZEJ1ZmZl
cj4+JikgT1ZFUlJJREUgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJVbmRvU3RlcChQ
YXNzUmVmUHRyPFVuZG9TdGVwPikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVy
UmVkb1N0ZXAoUGFzc1JlZlB0cjxVbmRvU3RlcD4pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBjbGVhclVuZG9SZWRvT3BlcmF0aW9ucygpIE9WRVJSSURFIHsgfQotCi0gICAgdmlydHVhbCBi
b29sIGNhbkNvcHlDdXQoRnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gZGVmYXVsdFZhbHVlOyB9Ci0gICAgdmlydHVhbCBib29sIGNhblBhc3RlKEZyYW1l
KiwgYm9vbCBkZWZhdWx0VmFsdWUpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGRlZmF1bHRWYWx1
ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBjYW5VbmRvKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
ZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgY2FuUmVkbygpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIGZhbHNlOyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgdW5kbygpIE9WRVJSSURFIHsgfQotICAg
IHZpcnR1YWwgdm9pZCByZWRvKCkgT1ZFUlJJREUgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgaGFu
ZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIGhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bihLZXlib2FyZEV2ZW50KikgT1ZFUlJJREUg
eyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKEVsZW1lbnQq
KSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dEZpZWxkRGlkRW5kRWRpdGluZyhF
bGVtZW50KikgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHRleHREaWRDaGFuZ2VJblRl
eHRGaWVsZChFbGVtZW50KikgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCBib29sIGRvVGV4dEZp
ZWxkQ29tbWFuZEZyb21FdmVudChFbGVtZW50KiwgS2V5Ym9hcmRFdmVudCopIE9WRVJSSURFIHsg
cmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHRleHRXaWxsQmVEZWxldGVkSW5UZXh0
RmllbGQoRWxlbWVudCopIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCB0ZXh0RGlkQ2hh
bmdlSW5UZXh0QXJlYShFbGVtZW50KikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIHBh
Z2VEZXN0cm95ZWQoKSBvdmVycmlkZSB7IH0KKworICAgIHZpcnR1YWwgYm9vbCBzaG91bGREZWxl
dGVSYW5nZShSYW5nZSopIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBi
b29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgdmlydHVhbCBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIG92
ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzQ29udGludW91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgdG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKSBvdmVycmlkZSB7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCkgb3ZlcnJpZGUgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlR3JhbW1hckNoZWNraW5nKCkgb3Zl
cnJpZGUgeyB9CisgICAgdmlydHVhbCBpbnQgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKSBvdmVy
cmlkZSB7IHJldHVybiAtMTsgfQorCisKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQmVnaW5FZGl0
aW5nKFJhbmdlKikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkRW5kRWRpdGluZyhSYW5nZSopIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
dmlydHVhbCBib29sIHNob3VsZEluc2VydE5vZGUoTm9kZSosIFJhbmdlKiwgRWRpdG9ySW5zZXJ0
QWN0aW9uKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRJbnNlcnRUZXh0KGNvbnN0IFN0cmluZyYsIFJhbmdlKiwgRWRpdG9ySW5zZXJ0QWN0aW9uKSBv
dmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDaGFuZ2VT
ZWxlY3RlZFJhbmdlKFJhbmdlKiwgUmFuZ2UqLCBFQWZmaW5pdHksIGJvb2wpIG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShTdHls
ZVByb3BlcnRpZXMqLCBSYW5nZSopIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCBib29sIHNob3VsZE1vdmVSYW5nZUFmdGVyRGVsZXRlKFJhbmdlKiwgUmFuZ2UqKSBvdmVy
cmlkZSB7IHJldHVybiBmYWxzZTsgfQorCisgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRWRpdGlu
ZygpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZXNwb25kVG9DaGFuZ2VkQ29udGVu
dHMoKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uZFRvQ2hhbmdlZFNlbGVj
dGlvbihGcmFtZSopIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRFZGl0aW5n
KCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxXcml0ZVNlbGVjdGlvblRvUGFz
dGVib2FyZChSYW5nZSopIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRXcml0ZVNl
bGVjdGlvblRvUGFzdGVib2FyZCgpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBnZXRD
bGllbnRQYXN0ZWJvYXJkRGF0YUZvclJhbmdlKFJhbmdlKiwgVmVjdG9yPFN0cmluZz4mLCBWZWN0
b3I8UmVmUHRyPFNoYXJlZEJ1ZmZlcj4+Jikgb3ZlcnJpZGUgeyB9CisKKyAgICB2aXJ0dWFsIHZv
aWQgcmVnaXN0ZXJVbmRvU3RlcChQYXNzUmVmUHRyPFVuZG9TdGVwPikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoUGFzc1JlZlB0cjxVbmRvU3RlcD4pIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBjbGVhclVuZG9SZWRvT3BlcmF0aW9ucygpIG92ZXJyaWRl
IHsgfQorCisgICAgdmlydHVhbCBib29sIGNhbkNvcHlDdXQoRnJhbWUqLCBib29sIGRlZmF1bHRW
YWx1ZSkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZGVmYXVsdFZhbHVlOyB9CisgICAgdmlydHVh
bCBib29sIGNhblBhc3RlKEZyYW1lKiwgYm9vbCBkZWZhdWx0VmFsdWUpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGRlZmF1bHRWYWx1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5VbmRvKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuUmVkbygp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgdW5k
bygpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZWRvKCkgb3ZlcnJpZGUgeyB9CisK
KyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50Kikgb3Zl
cnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bihLZXli
b2FyZEV2ZW50Kikgb3ZlcnJpZGUgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dEZpZWxkRGlk
QmVnaW5FZGl0aW5nKEVsZW1lbnQqKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdGV4
dEZpZWxkRGlkRW5kRWRpdGluZyhFbGVtZW50Kikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2
b2lkIHRleHREaWRDaGFuZ2VJblRleHRGaWVsZChFbGVtZW50Kikgb3ZlcnJpZGUgeyB9CisgICAg
dmlydHVhbCBib29sIGRvVGV4dEZpZWxkQ29tbWFuZEZyb21FdmVudChFbGVtZW50KiwgS2V5Ym9h
cmRFdmVudCopIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHRl
eHRXaWxsQmVEZWxldGVkSW5UZXh0RmllbGQoRWxlbWVudCopIG92ZXJyaWRlIHsgfQorICAgIHZp
cnR1YWwgdm9pZCB0ZXh0RGlkQ2hhbmdlSW5UZXh0QXJlYShFbGVtZW50Kikgb3ZlcnJpZGUgeyB9
CiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgdmlydHVhbCB2b2lkIHN1cHByZXNzU2VsZWN0aW9u
Tm90aWZpY2F0aW9ucygpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlU2Vs
ZWN0aW9uTm90aWZpY2F0aW9ucygpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBzdGFy
dERlbGF5aW5nQW5kQ29hbGVzY2luZ0NvbnRlbnRDaGFuZ2VOb3RpZmljYXRpb25zKCkgT1ZFUlJJ
REUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BEZWxheWluZ0FuZENvYWxlc2NpbmdDb250ZW50
Q2hhbmdlTm90aWZpY2F0aW9ucygpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCB3cml0
ZURhdGFUb1Bhc3RlYm9hcmQoTlNEaWN0aW9uYXJ5KikgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVh
bCBOU0FycmF5KiBzdXBwb3J0ZWRQYXN0ZWJvYXJkVHlwZXNGb3JDdXJyZW50U2VsZWN0aW9uKCkg
T1ZFUlJJREUgeyByZXR1cm4gbnVsbHB0cjsgfQotICAgIHZpcnR1YWwgTlNBcnJheSogcmVhZERh
dGFGcm9tUGFzdGVib2FyZChOU1N0cmluZyosIGludCkgT1ZFUlJJREUgeyByZXR1cm4gbnVsbHB0
cjsgfQotICAgIHZpcnR1YWwgYm9vbCBoYXNSaWNobHlFZGl0YWJsZVNlbGVjdGlvbigpIE9WRVJS
SURFIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBpbnQgZ2V0UGFzdGVib2FyZEl0ZW1z
Q291bnQoKSBPVkVSUklERSB7IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCBEb2N1bWVudEZyYWdt
ZW50KiBkb2N1bWVudEZyYWdtZW50RnJvbURlbGVnYXRlKGludCkgT1ZFUlJJREUgeyByZXR1cm4g
bnVsbHB0cjsgfQotICAgIHZpcnR1YWwgYm9vbCBwZXJmb3Jtc1R3b1N0ZXBQYXN0ZShEb2N1bWVu
dEZyYWdtZW50KikgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGludCBw
YXN0ZWJvYXJkQ2hhbmdlQ291bnQoKSBPVkVSUklERSB7IHJldHVybiAwOyB9CisgICAgdmlydHVh
bCB2b2lkIHN1cHByZXNzU2VsZWN0aW9uTm90aWZpY2F0aW9ucygpIG92ZXJyaWRlIHsgfQorICAg
IHZpcnR1YWwgdm9pZCByZXN0b3JlU2VsZWN0aW9uTm90aWZpY2F0aW9ucygpIG92ZXJyaWRlIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBzdGFydERlbGF5aW5nQW5kQ29hbGVzY2luZ0NvbnRlbnRDaGFu
Z2VOb3RpZmljYXRpb25zKCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIHN0b3BEZWxh
eWluZ0FuZENvYWxlc2NpbmdDb250ZW50Q2hhbmdlTm90aWZpY2F0aW9ucygpIG92ZXJyaWRlIHsg
fQorICAgIHZpcnR1YWwgdm9pZCB3cml0ZURhdGFUb1Bhc3RlYm9hcmQoTlNEaWN0aW9uYXJ5Kikg
b3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCBOU0FycmF5KiBzdXBwb3J0ZWRQYXN0ZWJvYXJkVHlw
ZXNGb3JDdXJyZW50U2VsZWN0aW9uKCkgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQorICAg
IHZpcnR1YWwgTlNBcnJheSogcmVhZERhdGFGcm9tUGFzdGVib2FyZChOU1N0cmluZyosIGludCkg
b3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwgYm9vbCBoYXNSaWNobHlF
ZGl0YWJsZVNlbGVjdGlvbigpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCBpbnQgZ2V0UGFzdGVib2FyZEl0ZW1zQ291bnQoKSBvdmVycmlkZSB7IHJldHVybiAwOyB9Cisg
ICAgdmlydHVhbCBEb2N1bWVudEZyYWdtZW50KiBkb2N1bWVudEZyYWdtZW50RnJvbURlbGVnYXRl
KGludCkgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwgYm9vbCBwZXJm
b3Jtc1R3b1N0ZXBQYXN0ZShEb2N1bWVudEZyYWdtZW50Kikgb3ZlcnJpZGUgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIGludCBwYXN0ZWJvYXJkQ2hhbmdlQ291bnQoKSBvdmVycmlkZSB7
IHJldHVybiAwOyB9CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIE5T
U3RyaW5nKiB1c2VyVmlzaWJsZVN0cmluZyhOU1VSTCopIE9WRVJSSURFIHsgcmV0dXJuIDA7IH0K
LSAgICB2aXJ0dWFsIERvY3VtZW50RnJhZ21lbnQqIGRvY3VtZW50RnJhZ21lbnRGcm9tQXR0cmli
dXRlZFN0cmluZyhOU0F0dHJpYnV0ZWRTdHJpbmcqLCBWZWN0b3I8UmVmUHRyPEFyY2hpdmVSZXNv
dXJjZT4+JikgT1ZFUlJJREUgeyByZXR1cm4gMDsgfTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0SW5z
ZXJ0aW9uUGFzdGVib2FyZChjb25zdCBTdHJpbmcmKSBPVkVSUklERSB7IH07Ci0gICAgdmlydHVh
bCBOU1VSTCAqY2Fub25pY2FsaXplVVJMKE5TVVJMKikgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQot
ICAgIHZpcnR1YWwgTlNVUkwgKmNhbm9uaWNhbGl6ZVVSTFN0cmluZyhOU1N0cmluZyopIE9WRVJS
SURFIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIE5TU3RyaW5nKiB1c2VyVmlzaWJsZVN0cmlu
ZyhOU1VSTCopIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIERvY3VtZW50RnJh
Z21lbnQqIGRvY3VtZW50RnJhZ21lbnRGcm9tQXR0cmlidXRlZFN0cmluZyhOU0F0dHJpYnV0ZWRT
dHJpbmcqLCBWZWN0b3I8UmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4+Jikgb3ZlcnJpZGUgeyByZXR1
cm4gMDsgfTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SW5zZXJ0aW9uUGFzdGVib2FyZChjb25zdCBT
dHJpbmcmKSBvdmVycmlkZSB7IH07CisgICAgdmlydHVhbCBOU1VSTCAqY2Fub25pY2FsaXplVVJM
KE5TVVJMKikgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgTlNVUkwgKmNhbm9u
aWNhbGl6ZVVSTFN0cmluZyhOU1N0cmluZyopIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KICNlbmRp
ZgogCiAjaWYgVVNFKEFQUEtJVCkKLSAgICB2aXJ0dWFsIHZvaWQgdXBwZXJjYXNlV29yZCgpIE9W
RVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBsb3dlcmNhc2VXb3JkKCkgT1ZFUlJJREUgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIGNhcGl0YWxpemVXb3JkKCkgT1ZFUlJJREUgeyB9CisgICAgdmly
dHVhbCB2b2lkIHVwcGVyY2FzZVdvcmQoKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
bG93ZXJjYXNlV29yZCgpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjYXBpdGFsaXpl
V29yZCgpIG92ZXJyaWRlIHsgfQogI2VuZGlmCiAKICNpZiBVU0UoQVVUT01BVElDX1RFWFRfUkVQ
TEFDRU1FTlQpCi0gICAgdmlydHVhbCB2b2lkIHNob3dTdWJzdGl0dXRpb25zUGFuZWwoYm9vbCkg
T1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCBib29sIHN1YnN0aXR1dGlvbnNQYW5lbElzU2hvd2lu
ZygpIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHRvZ2dsZVNt
YXJ0SW5zZXJ0RGVsZXRlKCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCBib29sIGlzQXV0b21h
dGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkKCkgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb24oKSBPVkVS
UklERSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxl
ZCgpIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHRvZ2dsZUF1
dG9tYXRpY0xpbmtEZXRlY3Rpb24oKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNB
dXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCgpIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNl
OyB9Ci0gICAgdmlydHVhbCB2b2lkIHRvZ2dsZUF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb24oKSBP
VkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRF
bmFibGVkKCkgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdG9n
Z2xlQXV0b21hdGljVGV4dFJlcGxhY2VtZW50KCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCBi
b29sIGlzQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCgpIE9WRVJSSURFIHsgcmV0
dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHRvZ2dsZUF1dG9tYXRpY1NwZWxsaW5nQ29y
cmVjdGlvbigpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzaG93U3Vic3RpdHV0aW9u
c1BhbmVsKGJvb2wpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgYm9vbCBzdWJzdGl0dXRpb25z
UGFuZWxJc1Nob3dpbmcoKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
dm9pZCB0b2dnbGVTbWFydEluc2VydERlbGV0ZSgpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwg
Ym9vbCBpc0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCgpIG92ZXJyaWRlIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUF1dG9tYXRpY1F1b3RlU3Vic3Rp
dHV0aW9uKCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCBib29sIGlzQXV0b21hdGljTGlua0Rl
dGVjdGlvbkVuYWJsZWQoKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
dm9pZCB0b2dnbGVBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uKCkgb3ZlcnJpZGUgeyB9CisgICAgdmly
dHVhbCBib29sIGlzQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJsZWQoKSBvdmVycmlkZSB7
IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVBdXRvbWF0aWNEYXNoU3Vi
c3RpdHV0aW9uKCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCBib29sIGlzQXV0b21hdGljVGV4
dFJlcGxhY2VtZW50RW5hYmxlZCgpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCB2b2lkIHRvZ2dsZUF1dG9tYXRpY1RleHRSZXBsYWNlbWVudCgpIG92ZXJyaWRlIHsgfQor
ICAgIHZpcnR1YWwgYm9vbCBpc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQoKSBv
dmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVBdXRvbWF0
aWNTcGVsbGluZ0NvcnJlY3Rpb24oKSBvdmVycmlkZSB7IH0KICNlbmRpZgogCiAjaWYgRU5BQkxF
KERFTEVUSU9OX1VJKQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTaG93RGVsZXRlSW50ZXJmYWNl
KEhUTUxFbGVtZW50KikgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkU2hvd0RlbGV0ZUludGVyZmFjZShIVE1MRWxlbWVudCopIG92ZXJyaWRlIHsgcmV0
dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykKLSAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkU2hvd1VuaWNvZGVNZW51KCkgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2hvd1VuaWNvZGVNZW51KCkgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0KICNlbmRpZgotICAgIHZpcnR1YWwgVGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVj
a2VyKCkgT1ZFUlJJREUgeyByZXR1cm4gJm1fdGV4dENoZWNrZXJDbGllbnQ7IH0KKyAgICB2aXJ0
dWFsIFRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIG92ZXJyaWRlIHsgcmV0dXJuICZt
X3RleHRDaGVja2VyQ2xpZW50OyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdV
SVdpdGhHcmFtbWFyU3RyaW5nKGNvbnN0IFN0cmluZyYsIGNvbnN0IEdyYW1tYXJEZXRhaWwmKSBP
VkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVs
bGVkV29yZChjb25zdCBTdHJpbmcmKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2hv
d1NwZWxsaW5nVUkoYm9vbCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCBib29sIHNwZWxsaW5n
VUlJc1Nob3dpbmcoKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVTcGVsbGluZ1VJV2l0aEdyYW1tYXJTdHJpbmcoY29uc3QgU3RyaW5nJiwgY29uc3Qg
R3JhbW1hckRldGFpbCYpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTcGVs
bGluZ1VJV2l0aE1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBzaG93U3BlbGxpbmdVSShib29sKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
CiAKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKSBPVkVSUklERSB7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sKSBPVkVSUklERSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKSBvdmVycmlkZSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sKSBvdmVycmlkZSB7
IH0KIAogcHJpdmF0ZToKICAgICBFbXB0eVRleHRDaGVja2VyQ2xpZW50IG1fdGV4dENoZWNrZXJD
bGllbnQ7CkBAIC01NTYsMjggKzU1NiwyOCBAQCBjbGFzcyBFbXB0eUNvbnRleHRNZW51Q2xpZW50
IDogcHVibGljIENvbnRleHRNZW51Q2xpZW50IHsKIHB1YmxpYzoKICAgICBFbXB0eUNvbnRleHRN
ZW51Q2xpZW50KCkgeyB9CiAgICAgdmlydHVhbCB+RW1wdHlDb250ZXh0TWVudUNsaWVudCgpIHsg
IH0KLSAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVEZXN0cm95ZWQoKSBPVkVSUklERSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVEZXN0cm95ZWQoKSBvdmVycmlkZSB7IH0KIAog
I2lmIFVTRShDUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTKQotICAgIHZpcnR1YWwgUGFzc093
blB0cjxDb250ZXh0TWVudT4gY3VzdG9taXplTWVudShQYXNzT3duUHRyPENvbnRleHRNZW51Pikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzT3duUHRyPENvbnRleHRNZW51PiBjdXN0b21pemVN
ZW51KFBhc3NPd25QdHI8Q29udGV4dE1lbnU+KSBvdmVycmlkZTsKICNlbHNlCi0gICAgdmlydHVh
bCBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJdGVtcyhD
b250ZXh0TWVudSopIE9WRVJSSURFIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIFBsYXRmb3Jt
TWVudURlc2NyaXB0aW9uIGdldEN1c3RvbU1lbnVGcm9tRGVmYXVsdEl0ZW1zKENvbnRleHRNZW51
Kikgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQogI2VuZGlmCi0gICAgdmlydHVhbCB2b2lkIGNvbnRl
eHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51SXRlbSosIGNvbnN0IENvbnRleHRNZW51Kikg
T1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENv
bnRleHRNZW51SXRlbSosIGNvbnN0IENvbnRleHRNZW51Kikgb3ZlcnJpZGUgeyB9CiAKLSAgICB2
aXJ0dWFsIHZvaWQgZG93bmxvYWRVUkwoY29uc3QgVVJMJikgT1ZFUlJJREUgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIHNlYXJjaFdpdGhHb29nbGUoY29uc3QgRnJhbWUqKSBPVkVSUklERSB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgbG9va1VwSW5EaWN0aW9uYXJ5KEZyYW1lKikgT1ZFUlJJREUgeyB9Ci0g
ICAgdmlydHVhbCBib29sIGlzU3BlYWtpbmcoKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQot
ICAgIHZpcnR1YWwgdm9pZCBzcGVhayhjb25zdCBTdHJpbmcmKSBPVkVSUklERSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgc3RvcFNwZWFraW5nKCkgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lk
IGRvd25sb2FkVVJMKGNvbnN0IFVSTCYpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBz
ZWFyY2hXaXRoR29vZ2xlKGNvbnN0IEZyYW1lKikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2
b2lkIGxvb2tVcEluRGljdGlvbmFyeShGcmFtZSopIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwg
Ym9vbCBpc1NwZWFraW5nKCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgc3BlYWsoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lk
IHN0b3BTcGVha2luZygpIG92ZXJyaWRlIHsgfQogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHZp
cnR1YWwgdm9pZCBzZWFyY2hXaXRoU3BvdGxpZ2h0KCkgT1ZFUlJJREUgeyB9CisgICAgdmlydHVh
bCB2b2lkIHNlYXJjaFdpdGhTcG90bGlnaHQoKSBvdmVycmlkZSB7IH0KICNlbmRpZgogCiAjaWYg
VVNFKEFDQ0VTU0lCSUxJVFlfQ09OVEVYVF9NRU5VUykKLSAgICB2aXJ0dWFsIHZvaWQgc2hvd0Nv
bnRleHRNZW51KCkgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIHNob3dDb250ZXh0TWVu
dSgpIG92ZXJyaWRlIHsgfQogI2VuZGlmCiB9OwogI2VuZGlmIC8vIEVOQUJMRShDT05URVhUX01F
TlVTKQpAQCAtNTg4LDEyICs1ODgsMTIgQEAgY2xhc3MgRW1wdHlEcmFnQ2xpZW50IDogcHVibGlj
IERyYWdDbGllbnQgewogcHVibGljOgogICAgIEVtcHR5RHJhZ0NsaWVudCgpIHsgfQogICAgIHZp
cnR1YWwgfkVtcHR5RHJhZ0NsaWVudCgpIHt9Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxQZXJmb3Jt
RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKERyYWdEZXN0aW5hdGlvbkFjdGlvbiwgRHJhZ0RhdGEmKSBP
VkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9u
KERyYWdTb3VyY2VBY3Rpb24sIGNvbnN0IEludFBvaW50JiwgQ2xpcGJvYXJkJikgT1ZFUlJJREUg
eyB9Ci0gICAgdmlydHVhbCBEcmFnRGVzdGluYXRpb25BY3Rpb24gYWN0aW9uTWFza0ZvckRyYWco
RHJhZ0RhdGEmKSBPVkVSUklERSB7IHJldHVybiBEcmFnRGVzdGluYXRpb25BY3Rpb25Ob25lOyB9
Ci0gICAgdmlydHVhbCBEcmFnU291cmNlQWN0aW9uIGRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9p
bnQoY29uc3QgSW50UG9pbnQmKSBPVkVSUklERSB7IHJldHVybiBEcmFnU291cmNlQWN0aW9uTm9u
ZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzdGFydERyYWcoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRQ
b2ludCYsIGNvbnN0IEludFBvaW50JiwgQ2xpcGJvYXJkJiwgRnJhbWUmLCBib29sKSBPVkVSUklE
RSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZHJhZ0NvbnRyb2xsZXJEZXN0cm95ZWQoKSBPVkVSUklE
RSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFBlcmZvcm1EcmFnRGVzdGluYXRpb25BY3Rpb24o
RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLCBEcmFnRGF0YSYpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1
YWwgdm9pZCB3aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24oRHJhZ1NvdXJjZUFjdGlvbiwgY29u
c3QgSW50UG9pbnQmLCBDbGlwYm9hcmQmKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIERyYWdE
ZXN0aW5hdGlvbkFjdGlvbiBhY3Rpb25NYXNrRm9yRHJhZyhEcmFnRGF0YSYpIG92ZXJyaWRlIHsg
cmV0dXJuIERyYWdEZXN0aW5hdGlvbkFjdGlvbk5vbmU7IH0KKyAgICB2aXJ0dWFsIERyYWdTb3Vy
Y2VBY3Rpb24gZHJhZ1NvdXJjZUFjdGlvbk1hc2tGb3JQb2ludChjb25zdCBJbnRQb2ludCYpIG92
ZXJyaWRlIHsgcmV0dXJuIERyYWdTb3VyY2VBY3Rpb25Ob25lOyB9CisgICAgdmlydHVhbCB2b2lk
IHN0YXJ0RHJhZyhEcmFnSW1hZ2VSZWYsIGNvbnN0IEludFBvaW50JiwgY29uc3QgSW50UG9pbnQm
LCBDbGlwYm9hcmQmLCBGcmFtZSYsIGJvb2wpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBkcmFnQ29udHJvbGxlckRlc3Ryb3llZCgpIG92ZXJyaWRlIHsgfQogfTsKICNlbmRpZiAvLyBF
TkFCTEUoRFJBR19TVVBQT1JUKQogCkBAIC02MDMsNDMgKzYwMyw0MyBAQCBwdWJsaWM6CiAgICAg
RW1wdHlJbnNwZWN0b3JDbGllbnQoKSB7IH0KICAgICB2aXJ0dWFsIH5FbXB0eUluc3BlY3RvckNs
aWVudCgpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGluc3BlY3RvckRlc3Ryb3llZCgpIE9WRVJS
SURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0b3JEZXN0cm95ZWQoKSBvdmVycmlkZSB7
IH0KICAgICAKLSAgICB2aXJ0dWFsIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogb3Blbkluc3Bl
Y3RvckZyb250ZW5kKEluc3BlY3RvckNvbnRyb2xsZXIqKSBPVkVSUklERSB7IHJldHVybiAwOyB9
Ci0gICAgdmlydHVhbCB2b2lkIGNsb3NlSW5zcGVjdG9yRnJvbnRlbmQoKSBPVkVSUklERSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgYnJpbmdGcm9udGVuZFRvRnJvbnQoKSBPVkVSUklERSB7IH0KKyAg
ICB2aXJ0dWFsIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogb3Blbkluc3BlY3RvckZyb250ZW5k
KEluc3BlY3RvckNvbnRyb2xsZXIqKSBvdmVycmlkZSB7IHJldHVybiAwOyB9CisgICAgdmlydHVh
bCB2b2lkIGNsb3NlSW5zcGVjdG9yRnJvbnRlbmQoKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgYnJpbmdGcm9udGVuZFRvRnJvbnQoKSBvdmVycmlkZSB7IH0KIAotICAgIHZpcnR1YWwg
dm9pZCBoaWdobGlnaHQoKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgaGlkZUhpZ2hs
aWdodCgpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBoaWdobGlnaHQoKSBvdmVycmlk
ZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGlkZUhpZ2hsaWdodCgpIG92ZXJyaWRlIHsgfQogfTsK
IAogY2xhc3MgRW1wdHlEZXZpY2VDbGllbnQgOiBwdWJsaWMgRGV2aWNlQ2xpZW50IHsKIHB1Ymxp
YzoKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpIE9WRVJSSURFIHsgfQotICAgIHZp
cnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
c3RhcnRVcGRhdGluZygpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRp
bmcoKSBvdmVycmlkZSB7IH0KIH07CiAKIGNsYXNzIEVtcHR5RGV2aWNlTW90aW9uQ2xpZW50IDog
cHVibGljIERldmljZU1vdGlvbkNsaWVudCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIHNl
dENvbnRyb2xsZXIoRGV2aWNlTW90aW9uQ29udHJvbGxlciopIE9WRVJSSURFIHsgfQotICAgIHZp
cnR1YWwgRGV2aWNlTW90aW9uRGF0YSogbGFzdE1vdGlvbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3ll
ZCgpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU1v
dGlvbkNvbnRyb2xsZXIqKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIERldmljZU1vdGlvbkRh
dGEqIGxhc3RNb3Rpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CisgICAgdmlydHVh
bCB2b2lkIGRldmljZU1vdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBvdmVycmlkZSB7IH0KIH07
CiAKIGNsYXNzIEVtcHR5RGV2aWNlT3JpZW50YXRpb25DbGllbnQgOiBwdWJsaWMgRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQgewogcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVy
KERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwg
RGV2aWNlT3JpZW50YXRpb25EYXRhKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdCBPVkVSUklERSB7
IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ckRlc3Ryb3llZCgpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVy
KERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwg
RGV2aWNlT3JpZW50YXRpb25EYXRhKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiAwOyB9CisgICAgdmlydHVhbCB2b2lkIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ckRlc3Ryb3llZCgpIG92ZXJyaWRlIHsgfQogfTsKIAogY2xhc3MgRW1wdHlQcm9ncmVzc1RyYWNr
ZXJDbGllbnQgOiBwdWJsaWMgUHJvZ3Jlc3NUcmFja2VyQ2xpZW50IHsKLSAgICB2aXJ0dWFsIHZv
aWQgd2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIGRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCkgT1ZFUlJJREUgeyB9CisgICAgdmly
dHVhbCB2b2lkIHdpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpIG92ZXJyaWRlIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpIG92ZXJyaWRlIHsgfQog
Ci0gICAgdmlydHVhbCB2b2lkIHByb2dyZXNzU3RhcnRlZChGcmFtZSYpIE9WRVJSSURFIHsgfQot
ICAgIHZpcnR1YWwgdm9pZCBwcm9ncmVzc0VzdGltYXRlQ2hhbmdlZChGcmFtZSYpIE9WRVJSSURF
IHsgfQotICAgIHZpcnR1YWwgdm9pZCBwcm9ncmVzc0ZpbmlzaGVkKEZyYW1lJikgT1ZFUlJJREUg
eyB9CisgICAgdmlydHVhbCB2b2lkIHByb2dyZXNzU3RhcnRlZChGcmFtZSYpIG92ZXJyaWRlIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBwcm9ncmVzc0VzdGltYXRlQ2hhbmdlZChGcmFtZSYpIG92ZXJy
aWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBwcm9ncmVzc0ZpbmlzaGVkKEZyYW1lJikgb3ZlcnJp
ZGUgeyB9CiB9OwogCiB2b2lkIGZpbGxXaXRoRW1wdHlDbGllbnRzKFBhZ2U6OlBhZ2VDbGllbnRz
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApp
bmRleCBjZTEyY2I0Li43MjQxNWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHJvdGVjdGVkOgogICAgIEZy
YW1lKiBmcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWU7IH0KIAogcHJpdmF0ZToKLSAgICB2
aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fZnJhbWU7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fZnJh
bWU7IH0KIAogICAgIEZyYW1lKiBtX2ZyYW1lOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9JbWFnZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9h
ZGVyLmgKaW5kZXggNWNmN2QxMi4uZDc2ZmEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ltYWdlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9h
ZGVyLmgKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRpc3BhdGNo
UGVuZGluZ0Vycm9yRXZlbnRzKCk7CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hMb2FkRXZlbnQoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKaW5kZXggZTI1MWUwNy4uN2E2MzUxNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcApAQCAt
MTA2LDEzICsxMDYsMTMgQEAgcHJvdGVjdGVkOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFs
IHZvaWQgZmlyZShGcmFtZSYgZnJhbWUpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIGZpcmUo
RnJhbWUmIGZyYW1lKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0
b3IgZ2VzdHVyZUluZGljYXRvcih3YXNVc2VyR2VzdHVyZSgpID8gRGVmaW5pdGVseVByb2Nlc3Np
bmdVc2VyR2VzdHVyZSA6IERlZmluaXRlbHlOb3RQcm9jZXNzaW5nVXNlckdlc3R1cmUpOwogICAg
ICAgICBmcmFtZS5sb2FkZXIoKS5jaGFuZ2VMb2NhdGlvbihtX3NlY3VyaXR5T3JpZ2luLmdldCgp
LCBVUkwoUGFyc2VkVVJMU3RyaW5nLCBtX3VybCksIG1fcmVmZXJyZXIsIGxvY2tIaXN0b3J5KCks
IGxvY2tCYWNrRm9yd2FyZExpc3QoKSwgZmFsc2UpOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9p
ZCBkaWRTdGFydFRpbWVyKEZyYW1lJiBmcmFtZSwgVGltZXI8TmF2aWdhdGlvblNjaGVkdWxlcj4m
IHRpbWVyKSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydFRpbWVyKEZyYW1lJiBm
cmFtZSwgVGltZXI8TmF2aWdhdGlvblNjaGVkdWxlcj4mIHRpbWVyKSBvdmVycmlkZQogICAgIHsK
ICAgICAgICAgaWYgKG1faGF2ZVRvbGRDbGllbnQpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0x
MjIsNyArMTIyLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBmcmFtZS5sb2FkZXIoKS5jbGllbnRS
ZWRpcmVjdGVkKFVSTChQYXJzZWRVUkxTdHJpbmcsIG1fdXJsKSwgZGVsYXkoKSwgY3VycmVudFRp
bWUoKSArIHRpbWVyLm5leHRGaXJlSW50ZXJ2YWwoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpKTsK
ICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcFRpbWVyKEZyYW1lJiBmcmFtZSwgYm9v
bCBuZXdMb2FkSW5Qcm9ncmVzcykgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcFRp
bWVyKEZyYW1lJiBmcmFtZSwgYm9vbCBuZXdMb2FkSW5Qcm9ncmVzcykgb3ZlcnJpZGUKICAgICB7
CiAgICAgICAgIGlmICghbV9oYXZlVG9sZENsaWVudCkKICAgICAgICAgICAgIHJldHVybjsKQEAg
LTE1NSwxMiArMTU1LDEyIEBAIHB1YmxpYzoKICAgICAgICAgY2xlYXJVc2VyR2VzdHVyZSgpOwog
ICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdGFydFRpbWVyKEZyYW1lJiBmcmFtZSkg
T1ZFUlJJREUKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3RhcnRUaW1lcihGcmFtZSYgZnJhbWUp
IG92ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gZnJhbWUubG9hZGVyKCkuYWxsQW5jZXN0
b3JzQXJlQ29tcGxldGUoKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZmlyZShGcmFtZSYg
ZnJhbWUpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIGZpcmUoRnJhbWUmIGZyYW1lKSBvdmVy
cmlkZQogICAgIHsKICAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgZ2VzdHVyZUluZGljYXRv
cih3YXNVc2VyR2VzdHVyZSgpID8gRGVmaW5pdGVseVByb2Nlc3NpbmdVc2VyR2VzdHVyZSA6IERl
ZmluaXRlbHlOb3RQcm9jZXNzaW5nVXNlckdlc3R1cmUpOwogICAgICAgICBib29sIHJlZnJlc2gg
PSBlcXVhbElnbm9yaW5nRnJhZ21lbnRJZGVudGlmaWVyKGZyYW1lLmRvY3VtZW50KCktPnVybCgp
LCBVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwoKSkpOwpAQCAtMTgxLDcgKzE4MSw3IEBAIHB1Ymxp
YzoKICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGZpcmUoRnJhbWUmIGZyYW1lKSBP
VkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBmaXJlKEZyYW1lJiBmcmFtZSkgb3ZlcnJpZGUKICAg
ICB7CiAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3Iod2FzVXNl
ckdlc3R1cmUoKSA/IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUgOiBEZWZpbml0ZWx5
Tm90UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTsKICAgICAgICAgZnJhbWUubG9hZGVyKCkuY2hhbmdl
TG9jYXRpb24oc2VjdXJpdHlPcmlnaW4oKSwgVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKCkpLCBy
ZWZlcnJlcigpLCBsb2NrSGlzdG9yeSgpLCBsb2NrQmFja0ZvcndhcmRMaXN0KCksIHRydWUpOwpA
QCAtMTk2LDcgKzE5Niw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCB2
b2lkIGZpcmUoRnJhbWUmIGZyYW1lKSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBmaXJlKEZy
YW1lJiBmcmFtZSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9y
IGdlc3R1cmVJbmRpY2F0b3Iod2FzVXNlckdlc3R1cmUoKSA/IERlZmluaXRlbHlQcm9jZXNzaW5n
VXNlckdlc3R1cmUgOiBEZWZpbml0ZWx5Tm90UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTsKIApAQCAt
MjI2LDcgKzIyNiw3IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKG1fc3VibWlzc2lvbi0+c3Rh
dGUoKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGZpcmUoRnJhbWUmIGZyYW1lKSBPVkVS
UklERQorICAgIHZpcnR1YWwgdm9pZCBmaXJlKEZyYW1lJiBmcmFtZSkgb3ZlcnJpZGUKICAgICB7
CiAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3Iod2FzVXNlckdl
c3R1cmUoKSA/IERlZmluaXRlbHlQcm9jZXNzaW5nVXNlckdlc3R1cmUgOiBEZWZpbml0ZWx5Tm90
UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTsKIApAQCAtMjQyLDcgKzI0Miw3IEBAIHB1YmxpYzoKICAg
ICAgICAgZnJhbWUubG9hZGVyKCkubG9hZEZyYW1lUmVxdWVzdChmcmFtZVJlcXVlc3QsIGxvY2tI
aXN0b3J5KCksIGxvY2tCYWNrRm9yd2FyZExpc3QoKSwgbV9zdWJtaXNzaW9uLT5ldmVudCgpLCBt
X3N1Ym1pc3Npb24tPnN0YXRlKCksIE1heWJlU2VuZFJlZmVycmVyKTsKICAgICB9CiAgICAgCi0g
ICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0VGltZXIoRnJhbWUmIGZyYW1lLCBUaW1lcjxOYXZpZ2F0
aW9uU2NoZWR1bGVyPiYgdGltZXIpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0
VGltZXIoRnJhbWUmIGZyYW1lLCBUaW1lcjxOYXZpZ2F0aW9uU2NoZWR1bGVyPiYgdGltZXIpIG92
ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAobV9oYXZlVG9sZENsaWVudCkKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTI1Miw3ICsyNTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIGZyYW1lLmxvYWRl
cigpLmNsaWVudFJlZGlyZWN0ZWQobV9zdWJtaXNzaW9uLT5yZXF1ZXN0VVJMKCksIGRlbGF5KCks
IGN1cnJlbnRUaW1lKCkgKyB0aW1lci5uZXh0RmlyZUludGVydmFsKCksIGxvY2tCYWNrRm9yd2Fy
ZExpc3QoKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpZFN0b3BUaW1lcihGcmFtZSYg
ZnJhbWUsIGJvb2wgbmV3TG9hZEluUHJvZ3Jlc3MpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lk
IGRpZFN0b3BUaW1lcihGcmFtZSYgZnJhbWUsIGJvb2wgbmV3TG9hZEluUHJvZ3Jlc3MpIG92ZXJy
aWRlCiAgICAgewogICAgICAgICBpZiAoIW1faGF2ZVRvbGRDbGllbnQpCiAgICAgICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5T
dHJlYW1Mb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVh
bUxvYWRlci5oCmluZGV4IDYwODkyNWEuLmJlNWFjOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oCkBAIC01NiwxOCArNTYsMTgg
QEAgcHVibGljOgogICAgIGJvb2wgaXNEb25lKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqLCB1bnNp
Z25lZCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFBhc3NSZWZQdHI8U2hhcmVk
QnVmZmVyPiwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hU
aW1lKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChjb25zdCBSZXNvdXJjZUVy
cm9yJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVEYXRhKGNvbnN0IGNoYXIqLCB1bnNpZ25lZCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3Ro
LCBEYXRhUGF5bG9hZFR5cGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
QnVmZmVyKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVu
Z3RoLCBEYXRhUGF5bG9hZFR5cGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5p
c2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgcmVsZWFzZVJlc291cmNlcygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZWxlYXNl
UmVzb3VyY2VzKCkgb3ZlcnJpZGU7CiAKICAgICBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcihG
cmFtZSosIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyQ2xpZW50Kik7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgd2lsbENhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGRpZENhbmNlbChjb25zdCBSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHdpbGxDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIG92ZXJyaWRl
OwogCiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YU9yQnVmZmVyKGNvbnN0IGNoYXIqLCBpbnQsIFBh
c3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRh
UGF5bG9hZFR5cGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xv
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaAppbmRleCAzZDMxMTI3
Li4yOTVlMmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKQEAgLTY0LDExICs2NCwx
MSBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGNyZWF0ZVBpbmdMb2FkZXIoRnJhbWUqLCBS
ZXNvdXJjZVJlcXVlc3QmKTsKICAgICBQaW5nTG9hZGVyKEZyYW1lKiwgUmVzb3VyY2VSZXF1ZXN0
Jik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxl
KiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIE9WRVJSSURFIHsgZGVsZXRlIHRoaXM7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFy
KiwgdW5zaWduZWQsIGludCkgT1ZFUlJJREUgeyBkZWxldGUgdGhpczsgfQotICAgIHZpcnR1YWwg
dm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlKSBPVkVSUklERSB7
IGRlbGV0ZSB0aGlzOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBSZXNvdXJjZUVycm9yJikgT1ZFUlJJREUgeyBkZWxldGUgdGhpczsgfQotICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShSZXNvdXJjZUhhbmRsZSopICBP
VkVSUklERSB7IHJldHVybiBtX3Nob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlOyB9CisgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKSBvdmVycmlkZSB7IGRlbGV0ZSB0aGlzOyB9CisgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVuc2lnbmVkLCBp
bnQpIG92ZXJyaWRlIHsgZGVsZXRlIHRoaXM7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNo
TG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSkgb3ZlcnJpZGUgeyBkZWxldGUgdGhpczsg
fQorICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3Vy
Y2VFcnJvciYpIG92ZXJyaWRlIHsgZGVsZXRlIHRoaXM7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VIYW5kbGUqKSAgb3ZlcnJpZGUgeyByZXR1
cm4gbV9zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZTsgfQogICAgIHZvaWQgdGltZW91dFRpbWVy
RmlyZWQoVGltZXI8UGluZ0xvYWRlcj4mKSB7IGRlbGV0ZSB0aGlzOyB9CiAKICAgICBSZWZQdHI8
UmVzb3VyY2VIYW5kbGU+IG1faGFuZGxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
ZXIuaAppbmRleCA4NGFlYmVlLi42YjA3NWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkZXIuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdmlydHVh
bCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGlPU09yaWdpbmFsUmVxdWVzdCgpIGNvbnN0IHsgcmV0
dXJuIHJlcXVlc3QoKTsgfQotICAgIHZpcnR1YWwgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4g
Y29ubmVjdGlvblByb3BlcnRpZXMoUmVzb3VyY2VIYW5kbGUqKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGNvbm5lY3Rpb25Qcm9wZXJ0aWVzKFJlc291
cmNlSGFuZGxlKikgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIEZyYW1lTG9hZGVyKiBmcmFtZUxv
YWRlcigpIGNvbnN0OwpAQCAtMTExLDM4ICsxMTEsMzggQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCByZWNlaXZlZENhbmNlbGxhdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYp
OwogCiAgICAgLy8gUmVzb3VyY2VIYW5kbGVDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFNl
bmRSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGRpZFNlbmREYXRhKFJlc291cmNlSGFuZGxlKiwgdW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2Vu
dCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURh
dGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQsIGludCBlbmNvZGVkRGF0
YUxlbmd0aCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVCdWZmZXIoUmVz
b3VyY2VIYW5kbGUqLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGludCBlbmNvZGVkRGF0YUxl
bmd0aCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3Vy
Y2VIYW5kbGUqLCBkb3VibGUgZmluaXNoVGltZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIHdhc0Jsb2NrZWQoUmVzb3VyY2VIYW5kbGUqKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSopIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VIYW5kbGUqLCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU2VuZERhdGEoUmVzb3VyY2VIYW5kbGUqLCB1
bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRl
c1RvQmVTZW50KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIq
LCB1bnNpZ25lZCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZUJ1ZmZlcihSZXNvdXJjZUhhbmRsZSosIFBhc3NSZWZQdHI8U2hhcmVk
QnVmZmVyPiwgaW50IGVuY29kZWREYXRhTGVuZ3RoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSBmaW5pc2hUaW1lKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0
IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2FzQmxvY2tlZChS
ZXNvdXJjZUhhbmRsZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjYW5ub3RTaG93VVJM
KFJlc291cmNlSGFuZGxlKikgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oTUFDKSAmJiAhVVNFKENG
TkVUV09SSykKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFN0b3BCdWZmZXJpbmdEYXRhKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBPVkVSUklERSB7IHdp
bGxTdG9wQnVmZmVyaW5nRGF0YShkYXRhLCBsZW5ndGgpOyB9CisgICAgdmlydHVhbCB2b2lkIHdp
bGxTdG9wQnVmZmVyaW5nRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIHVu
c2lnbmVkIGxlbmd0aCkgb3ZlcnJpZGUgeyB3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEoZGF0YSwgbGVu
Z3RoKTsgfQogI2VuZGlmCi0gICAgdmlydHVhbCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9y
YWdlKFJlc291cmNlSGFuZGxlKikgT1ZFUlJJREUgeyByZXR1cm4gc2hvdWxkVXNlQ3JlZGVudGlh
bFN0b3JhZ2UoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYg
Y2hhbGxlbmdlKSBPVkVSUklERSB7IGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShj
aGFsbGVuZ2UpOyB9IAotICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBj
aGFsbGVuZ2UpIE9WRVJSSURFIHsgZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY2hh
bGxlbmdlKTsgfSAKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2Uo
UmVzb3VyY2VIYW5kbGUqKSBvdmVycmlkZSB7IHJldHVybiBzaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZSgpOyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFs
bGVuZ2UpIG92ZXJyaWRlIHsgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNoYWxs
ZW5nZSk7IH0gCisgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxs
ZW5nZSkgb3ZlcnJpZGUgeyBkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjaGFsbGVu
Z2UpOyB9IAogI2lmIFVTRShORVRXT1JLX0NGREFUQV9BUlJBWV9DQUxMQkFDSykKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGFBcnJheShSZXNvdXJjZUhhbmRsZSosIENGQXJyYXlSZWYg
ZGF0YUFycmF5KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGFBcnJh
eShSZXNvdXJjZUhhbmRsZSosIENGQXJyYXlSZWYgZGF0YUFycmF5KSBvdmVycmlkZTsKICNlbmRp
ZgogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCi0gICAgdmlydHVhbCBi
b29sIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSkgT1ZFUlJJREUgeyByZXR1
cm4gY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShwcm90ZWN0aW9uU3BhY2Up
OyB9CisgICAgdmlydHVhbCBib29sIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3Bh
Y2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFj
ZSkgb3ZlcnJpZGUgeyByZXR1cm4gY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFj
ZShwcm90ZWN0aW9uU3BhY2UpOyB9CiAjZW5kaWYKLSAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRD
YW5jZWxsYXRpb24oUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYgY2hhbGxlbmdlKSBPVkVSUklERSB7IHJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNoYWxsZW5nZSk7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRDYW5jZWxsYXRpb24oUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKSBvdmVycmlkZSB7IHJl
Y2VpdmVkQ2FuY2VsbGF0aW9uKGNoYWxsZW5nZSk7IH0KICNpZiBQTEFURk9STShNQUMpCiAjaWYg
VVNFKENGTkVUV09SSykKLSAgICB2aXJ0dWFsIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgd2lsbENh
Y2hlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgd2lsbENhY2hlUmVzcG9u
c2UoUmVzb3VyY2VIYW5kbGUqLCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKSBvdmVycmlkZTsKICNl
bHNlCi0gICAgdmlydHVhbCBOU0NhY2hlZFVSTFJlc3BvbnNlKiB3aWxsQ2FjaGVSZXNwb25zZShS
ZXNvdXJjZUhhbmRsZSosIE5TQ2FjaGVkVVJMUmVzcG9uc2UqKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHdpbGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxl
KiwgTlNDYWNoZWRVUkxSZXNwb25zZSopIG92ZXJyaWRlOwogI2VuZGlmCiAjZW5kaWYgLy8gUExB
VEZPUk0oTUFDKQogI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKENGTkVUV09SSykKICAgICAvLyBG
SVhNRTogV2luZG93cyBzaG91bGQgdXNlIHdpbGxDYWNoZVJlc3BvbnNlIC0gPGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzI1Nz4uCi0gICAgdmlydHVhbCBib29sIHNo
b3VsZENhY2hlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVm
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShSZXNvdXJj
ZUhhbmRsZSosIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpIG92ZXJyaWRlOwogI2VuZGlmCiAKICAg
ICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdC51cmwoKTsgfSAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgKaW5kZXggODlmNGYyOS4uNThh
NzgxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgKQEAgLTQ5
LDM5ICs0OSwzOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+U3VicmVzb3VyY2VMb2FkZXIoKTsK
IAogICAgIHZvaWQgY2FuY2VsSWZOb3RGaW5pc2hpbmcoKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNT
dWJyZXNvdXJjZUxvYWRlcigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc1N1YnJlc291
cmNlTG9hZGVyKCkgb3ZlcnJpZGU7CiAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNl
KCk7CiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgdmlydHVhbCBib29sIHN0YXJ0TG9hZGluZygp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzdGFydExvYWRpbmcoKSBvdmVycmlkZTsKIAog
ICAgIC8vIEZJWE1FOiBXaGF0IGlzIGFuICJpT1MiIG9yaWdpbmFsIHJlcXVlc3Q/IFdoeSBpcyBp
dCBuZWNlc3Nhcnk/Ci0gICAgdmlydHVhbCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGlPU09yaWdp
bmFsUmVxdWVzdCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1faU9TT3JpZ2luYWxSZXF1ZXN0
OyB9CisgICAgdmlydHVhbCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGlPU09yaWdpbmFsUmVxdWVz
dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faU9TT3JpZ2luYWxSZXF1ZXN0OyB9CiAjZW5k
aWYKIAogcHJpdmF0ZToKICAgICBTdWJyZXNvdXJjZUxvYWRlcihGcmFtZSosIENhY2hlZFJlc291
cmNlKiwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJik7CiAKLSAgICB2aXJ0dWFsIGJvb2wg
aW5pdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wg
aW5pdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9p
ZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVkaXJlY3RSZXNwb25zZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFNlbmRE
YXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3Rh
bEJ5dGVzVG9CZVNlbnQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVz
cG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiwgdW5zaWduZWQsIGxvbmcgbG9uZyBlbmNvZGVk
RGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZUJ1ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNv
ZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoTG9hZGluZyhkb3VibGUgZmluaXNoVGltZSkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCB3aWxsQ2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsKGNvbnN0IFJlc291cmNlRXJyb3ImKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25l
ZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIHVuc2lnbmVkLCBs
b25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkVHlwZSkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVCdWZmZXIoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+
LCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkVHlwZSkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbENhbmNlbChjb25zdCBSZXNvdXJjZUVycm9y
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbChjb25zdCBSZXNvdXJjZUVy
cm9yJikgb3ZlcnJpZGU7CiAKICNpZiBVU0UoTkVUV09SS19DRkRBVEFfQVJSQVlfQ0FMTEJBQ0sp
Ci0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzRGF0YUFycmF5KCkgT1ZFUlJJREUgeyByZXR1cm4g
dHJ1ZTsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YUFycmF5KENGQXJyYXlSZWYp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0RhdGFBcnJheSgpIG92ZXJyaWRl
IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGFBcnJheShD
RkFycmF5UmVmKSBvdmVycmlkZTsKICNlbmRpZgotICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlUmVz
b3VyY2VzKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VSZXNvdXJjZXMoKSBv
dmVycmlkZTsKIAogI2lmIFVTRShTT1VQKQotICAgIHZpcnR1YWwgY2hhciogZ2V0T3JDcmVhdGVS
ZWFkQnVmZmVyKHNpemVfdCByZXF1ZXN0ZWRTaXplLCBzaXplX3QmIGFjdHVhbFNpemUpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgY2hhciogZ2V0T3JDcmVhdGVSZWFkQnVmZmVyKHNpemVfdCByZXF1
ZXN0ZWRTaXplLCBzaXplX3QmIGFjdHVhbFNpemUpIG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICBi
b29sIGNoZWNrRm9ySFRUUFN0YXR1c0NvZGVFcnJvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Xb3JrZXJUaHJlYWRhYmxlTG9hZGVyLmgKaW5kZXggY2M3MjNiNC4uNGRiMGY0NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRlci5oCkBAIC02
Miw3ICs2Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB+V29ya2VyVGhyZWFk
YWJsZUxvYWRlcigpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoKSBPVkVSUklERTsK
KyAgICAgICAgdmlydHVhbCB2b2lkIGNhbmNlbCgpIG92ZXJyaWRlOwogCiAgICAgICAgIGJvb2wg
ZG9uZSgpIGNvbnN0IHsgcmV0dXJuIG1fd29ya2VyQ2xpZW50V3JhcHBlci0+ZG9uZSgpOyB9CiAK
QEAgLTcwLDggKzcwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB1c2luZyBSZWZD
b3VudGVkPFdvcmtlclRocmVhZGFibGVMb2FkZXI+OjpkZXJlZjsKIAogICAgIHByb3RlY3RlZDoK
LSAgICAgICAgdmlydHVhbCB2b2lkIHJlZlRocmVhZGFibGVMb2FkZXIoKSBPVkVSUklERSB7IHJl
ZigpOyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkZXJlZlRocmVhZGFibGVMb2FkZXIoKSBPVkVS
UklERSB7IGRlcmVmKCk7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIHJlZlRocmVhZGFibGVMb2Fk
ZXIoKSBvdmVycmlkZSB7IHJlZigpOyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBkZXJlZlRocmVh
ZGFibGVMb2FkZXIoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIC8vIENyZWF0ZXMgYSBsb2FkZXIgb24gdGhlIG1haW4gdGhyZWFkIGFuZCBicmlkZ2VzIGNv
bW11bmljYXRpb24gYmV0d2VlbgpAQCAtMTEwLDEzICsxMTAsMTMgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgICAgICAgICBzdGF0aWMgdm9pZCBtYWluVGhyZWFkQ3JlYXRlTG9hZGVyKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBNYWluVGhyZWFkQnJpZGdlKiwgUGFzc093blB0cjxDcm9z
c1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+LCBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucywgY29u
c3QgU3RyaW5nJiBvdXRnb2luZ1JlZmVycmVyKTsKICAgICAgICAgICAgIHN0YXRpYyB2b2lkIG1h
aW5UaHJlYWRDYW5jZWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIE1haW5UaHJlYWRCcmlkZ2Uq
KTsKLSAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxv
bmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KSBPVkVS
UklERTsKLSAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJREU7Ci0g
ICAgICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIGludCBk
YXRhTGVuZ3RoKSBPVkVSUklERTsKLSAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hM
b2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRpbWUpIE9WRVJS
SURFOwotICAgICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJv
ciYpIE9WRVJSSURFOwotICAgICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWxBY2Nlc3NDb250
cm9sQ2hlY2soY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwotICAgICAgICAgICAgdmly
dHVhbCB2b2lkIGRpZEZhaWxSZWRpcmVjdENoZWNrKCkgT1ZFUlJJREU7CisgICAgICAgICAgICB2
aXJ0dWFsIHZvaWQgZGlkU2VuZERhdGEodW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5z
aWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkgb3ZlcnJpZGU7CisgICAgICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOworICAgICAgICAgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqLCBpbnQgZGF0YUxlbmd0aCkgb3ZlcnJp
ZGU7CisgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKSBvdmVycmlkZTsKKyAgICAgICAgICAg
IHZpcnR1YWwgdm9pZCBkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKKyAg
ICAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsQWNjZXNzQ29udHJvbENoZWNrKGNvbnN0IFJl
c291cmNlRXJyb3ImKSBvdmVycmlkZTsKKyAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWls
UmVkaXJlY3RDaGVjaygpIG92ZXJyaWRlOwogCiAgICAgICAgICAgICAvLyBPbmx5IHRvIGJlIHVz
ZWQgb24gdGhlIG1haW4gdGhyZWFkLgogICAgICAgICAgICAgUmVmUHRyPFRocmVhZGFibGVMb2Fk
ZXI+IG1fbWFpblRocmVhZExvYWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXggYWE3NTMyZi4uMTc2
M2YwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVHcm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKQEAgLTEwNzgsNyArMTA3OCw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgT1ZFUlJJREUKKyAgICB2
aXJ0dWFsIHZvaWQgZmlyZWQoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgbV9jYWNoZUdyb3Vw
LT5kaWRSZWFjaE1heEFwcENhY2hlU2l6ZSgpOwogICAgICAgICBkZWxldGUgdGhpczsKQEAgLTEx
MDQsNyArMTEwNCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDYWxs
Q2FjaGVMaXN0ZW5lclRhc2sobG9hZGVyLCBldmVudElELCBwcm9ncmVzc1RvdGFsLCBwcm9ncmVz
c0RvbmUpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRhc2soU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCkgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIHZvaWQgcGVyZm9y
bVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkgb3ZlcnJpZGUKICAgICB7CiAg
ICAgICAgIAogICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQtPmlzRG9jdW1l
bnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZUdyb3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZUdyb3VwLmgKaW5kZXggNDUxNmQyZC4uZTFmYjE5OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaApA
QCAtMTA3LDEyICsxMDcsMTIgQEAgcHJpdmF0ZToKIAogICAgIC8vIEZvciBub3JtYWwgcmVzb3Vy
Y2UgbG9hZGluZywgV2ViS2l0IGNsaWVudCBpcyBhc2tlZCBhYm91dCBlYWNoIHJlc291cmNlIGlu
ZGl2aWR1YWxseS4gU2luY2UgYXBwbGljYXRpb24gY2FjaGUgZG9lcyBub3QgYmVsb25nIHRvIGFu
eSBwYXJ0aWN1bGFyIGRvY3VtZW50LAogICAgIC8vIHRoZSBleGlzdGluZyBjbGllbnQgY2FsbGJh
Y2sgY2Fubm90IGJlIHVzZWQsIHNvIGFzc3VtZSB0aGF0IGFueSBjbGllbnQgdGhhdCBlbmFibGVz
IGFwcGxpY2F0aW9uIGNhY2hlIGFsc28gd2FudHMgaXQgdG8gdXNlIGNyZWRlbnRpYWwgc3RvcmFn
ZS4KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VI
YW5kbGUqKSBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHNob3Vs
ZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFJlc291cmNlSGFuZGxlKikgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQg
bGVuZ3RoLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIGZpbmlzaFRpbWUpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
UmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVz
cG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
Y2hhciosIHVuc2lnbmVkIGxlbmd0aCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJs
ZSBmaW5pc2hUaW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZGlk
UmVjZWl2ZU1hbmlmZXN0UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZv
aWQgZGlkUmVjZWl2ZU1hbmlmZXN0RGF0YShjb25zdCBjaGFyKiwgaW50KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5oCmluZGV4
IGQ2NjExODAuLjRlYzA5ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBj
YWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Fw
cGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaApAQCAtNDgsOSArNDgsOSBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NQXBwbGljYXRpb25DYWNoZT4gY3JlYXRlKEZyYW1lKiBm
cmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERPTUFwcGxpY2F0aW9uQ2FjaGUoZnJhbWUpKTsg
fQogICAgIHZpcnR1YWwgfkRPTUFwcGxpY2F0aW9uQ2FjaGUoKSB7IEFTU0VSVCghbV9mcmFtZSk7
IH0KIAotICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0RnJhbWVGb3JQYWdlQ2FjaGUoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVjb25uZWN0RnJhbWVGcm9tUGFnZUNhY2hlKEZyYW1l
KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95R2xvYmFsT2JqZWN0SW5G
cmFtZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0RnJhbWVGb3JQYWdl
Q2FjaGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVjb25uZWN0RnJhbWVGcm9tUGFn
ZUNhY2hlKEZyYW1lKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95R2xv
YmFsT2JqZWN0SW5GcmFtZSgpIG92ZXJyaWRlOwogCiAgICAgdW5zaWduZWQgc2hvcnQgc3RhdHVz
KCkgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGUoRXhjZXB0aW9uQ29kZSYpOwpAQCAtNzEsMTYgKzcx
LDE2IEBAIHB1YmxpYzoKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGNhY2hl
ZCk7CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihvYnNvbGV0ZSk7CiAKLSAg
ICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gRE9NQXBwbGljYXRpb25DYWNoZUV2ZW50VGFyZ2V0SW50ZXJm
YWNlVHlwZTsgfQotICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJ
bnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBE
T01BcHBsaWNhdGlvbkNhY2hlRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgdmlydHVh
bCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qg
b3ZlcnJpZGU7CiAKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiB0b0V2ZW50VHlwZShB
cHBsaWNhdGlvbkNhY2hlSG9zdDo6RXZlbnRJRCBpZCk7CiAKIHByaXZhdGU6CiAgICAgZXhwbGlj
aXQgRE9NQXBwbGljYXRpb25DYWNoZShGcmFtZSopOwogCi0gICAgdmlydHVhbCB2b2lkIHJlZkV2
ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyByZWYoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2
ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyBkZXJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIHJlZkV2
ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2
ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9CiAKICAgICBBcHBsaWNhdGlvbkNhY2hl
SG9zdCogYXBwbGljYXRpb25DYWNoZUhvc3QoKSBjb25zdDsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9jZi9MZWdhY3lXZWJBcmNoaXZlLmgKaW5kZXggZjY3MGM2
Ni4uYzRkYzgxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvY2Yv
TGVnYWN5V2ViQXJjaGl2ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL2Nm
L0xlZ2FjeVdlYkFyY2hpdmUuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8TGVnYWN5V2ViQXJjaGl2ZT4gY3JlYXRlRnJvbVNlbGVjdGlvbihGcmFtZSop
OwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+IGNyZWF0ZShSYW5nZSop
OwogCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4g
cmF3RGF0YVJlcHJlc2VudGF0aW9uKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oCmluZGV4IDE3ZWU5ODQuLmU4NzU1ZDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaApA
QCAtNDgsMTggKzQ4LDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIHByaXZhdGU6CiAg
ICAgICAgIGJvb2wgY2FuVXNlU2hlZXQoYm9vbCBlbmZvcmNlTUlNRVR5cGUsIGJvb2wqIGhhc1Zh
bGlkTUlNRVR5cGUpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIFB1cmdlUHJpb3JpdHkgcHVyZ2VQ
cmlvcml0eSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFB1cmdlTGFzdDsgfQotICAgICAgICB2
aXJ0dWFsIGJvb2wgbWF5VHJ5UmVwbGFjZUVuY29kZWREYXRhKCkgY29uc3QgT1ZFUlJJREUgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgICAgICB2aXJ0dWFsIFB1cmdlUHJpb3JpdHkgcHVyZ2VQcmlvcml0
eSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFB1cmdlTGFzdDsgfQorICAgICAgICB2aXJ0dWFs
IGJvb2wgbWF5VHJ5UmVwbGFjZUVuY29kZWREYXRhKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRDbGllbnQoQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQqKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEFkZENsaWVudChD
YWNoZWRSZXNvdXJjZUNsaWVudCopIG92ZXJyaWRlOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBz
ZXRFbmNvZGluZyhjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKLSAgICAgICAgdmlydHVhbCBTdHJp
bmcgZW5jb2RpbmcoKSBjb25zdCBPVkVSUklERTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGZpbmlz
aExvYWRpbmcoUmVzb3VyY2VCdWZmZXIqKSBPVkVSUklERTsKLSAgICAgICAgdmlydHVhbCB2b2lk
IGRlc3Ryb3lEZWNvZGVkRGF0YSgpIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0
RW5jb2RpbmcoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwgU3RyaW5n
IGVuY29kaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hM
b2FkaW5nKFJlc291cmNlQnVmZmVyKikgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBk
ZXN0cm95RGVjb2RlZERhdGEoKSBvdmVycmlkZTsKIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAg
dmlydHVhbCB2b2lkIGNoZWNrTm90aWZ5KCkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgdm9p
ZCBjaGVja05vdGlmeSgpIG92ZXJyaWRlOwogCiAgICAgICAgIFJlZlB0cjxUZXh0UmVzb3VyY2VE
ZWNvZGVyPiBtX2RlY29kZXI7CiAgICAgICAgIFN0cmluZyBtX2RlY29kZWRTaGVldFRleHQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuaAppbmRleCBjYTQzM2I2Li4zZjE0
MTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmgKQEAgLTQ2LDcg
KzQ2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkNhY2hlZEZvbnQoKTsKIAogICAgIHZvaWQg
YmVnaW5Mb2FkSWZOZWVkZWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGRsKTsKLSAgICB2aXJ0dWFs
IGJvb2wgc3RpbGxOZWVkc0xvYWQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAhbV9sb2FkSW5p
dGlhdGVkOyB9CisgICAgdmlydHVhbCBib29sIHN0aWxsTmVlZHNMb2FkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gIW1fbG9hZEluaXRpYXRlZDsgfQogCiAgICAgYm9vbCBlbnN1cmVDdXN0b21G
b250RGF0YSgpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEgcGxhdGZvcm1EYXRhRnJvbUN1c3RvbURh
dGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgRm9udE9yaWVudGF0aW9uID0g
SG9yaXpvbnRhbCwgRm9udFdpZHRoVmFyaWFudCA9IFJlZ3VsYXJXaWR0aCwgRm9udFJlbmRlcmlu
Z01vZGUgPSBOb3JtYWxSZW5kZXJpbmdNb2RlKTsKQEAgLTU3LDE1ICs1NywxNSBAQCBwdWJsaWM6
CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tOb3RpZnkoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGJvb2wgbWF5VHJ5UmVwbGFjZUVuY29kZWREYXRhKCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNoZWNrTm90aWZ5KCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBib29sIG1heVRyeVJlcGxhY2VFbmNvZGVkRGF0YSgpIGNvbnN0IG92ZXJyaWRlOwog
Ci0gICAgdmlydHVhbCB2b2lkIGxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBSZXNv
dXJjZUxvYWRlck9wdGlvbnMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZChDYWNo
ZWRSZXNvdXJjZUxvYWRlciosIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpIG92ZXJyaWRl
OwogCi0gICAgdmlydHVhbCB2b2lkIGRpZEFkZENsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVudCop
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hMb2FkaW5nKFJlc291cmNlQnVmZmVy
KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZENsaWVudChDYWNoZWRSZXNvdXJj
ZUNsaWVudCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hMb2FkaW5nKFJlc291
cmNlQnVmZmVyKikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWxsQ2xpZW50c1JlbW92
ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYWxsQ2xpZW50c1JlbW92ZWQoKSBvdmVy
cmlkZTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiBtX2Zv
bnREYXRhOwogICAgIGJvb2wgbV9sb2FkSW5pdGlhdGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnRDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRGb250Q2xpZW50LmgKaW5kZXggZDhmNDFiNi4uZTg3MDQwZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnRDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udENsaWVudC5oCkBAIC0z
Niw3ICszNiw3IEBAIGNsYXNzIENhY2hlZEZvbnRDbGllbnQgOiBwdWJsaWMgQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkNhY2hlZEZvbnRDbGllbnQoKSB7IH0K
ICAgICBzdGF0aWMgQ2FjaGVkUmVzb3VyY2VDbGllbnRUeXBlIGV4cGVjdGVkVHlwZSgpIHsgcmV0
dXJuIEZvbnRUeXBlOyB9Ci0gICAgdmlydHVhbCBDYWNoZWRSZXNvdXJjZUNsaWVudFR5cGUgcmVz
b3VyY2VDbGllbnRUeXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZXhwZWN0ZWRUeXBlKCk7
IH0KKyAgICB2aXJ0dWFsIENhY2hlZFJlc291cmNlQ2xpZW50VHlwZSByZXNvdXJjZUNsaWVudFR5
cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBleHBlY3RlZFR5cGUoKTsgfQogICAgIHZpcnR1
YWwgdm9pZCBmb250TG9hZGVkKENhY2hlZEZvbnQqKSB7IH0KIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKaW5kZXggOTI2MjBhZi4uMTJiNzdjYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKQEAgLTY4LDggKzY4LDggQEAg
cHVibGljOgogICAgIGJvb2wgaW1hZ2VIYXNSZWxhdGl2ZVdpZHRoKCkgY29uc3Q7CiAgICAgYm9v
bCBpbWFnZUhhc1JlbGF0aXZlSGVpZ2h0KCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRk
RGF0YUJ1ZmZlcihSZXNvdXJjZUJ1ZmZlciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBm
aW5pc2hMb2FkaW5nKFJlc291cmNlQnVmZmVyKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGFkZERhdGFCdWZmZXIoUmVzb3VyY2VCdWZmZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgZmluaXNoTG9hZGluZyhSZXNvdXJjZUJ1ZmZlciopIG92ZXJyaWRlOwogCiAgICAgZW51bSBT
aXplVHlwZSB7CiAgICAgICAgIFVzZWRTaXplLApAQCAtODcsMTQgKzg3LDE0IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgdm9pZCByZXN1bWVBbmltYXRpbmdJbWFnZXNGb3JMb2FkZXIoQ2FjaGVkUmVz
b3VyY2VMb2FkZXIqKTsKIAogI2lmIEVOQUJMRShESVNLX0lNQUdFX0NBQ0hFKQotICAgIHZpcnR1
YWwgYm9vbCBjYW5Vc2VEaXNrSW1hZ2VDYWNoZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCB1c2VEaXNrSW1hZ2VDYWNoZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBj
YW5Vc2VEaXNrSW1hZ2VDYWNoZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB1
c2VEaXNrSW1hZ2VDYWNoZSgpIG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICBib29sIGlzT3JpZ2lu
Q2xlYW4oU2VjdXJpdHlPcmlnaW4qKTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgbG9h
ZChDYWNoZWRSZXNvdXJjZUxvYWRlciosIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyKiwgY29u
c3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGNsZWFyKCk7
CiAKQEAgLTEwMywzNSArMTAzLDM1IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjYW5CZURyYXduKCkg
Y29uc3Q7CiAgICAgLy8gSWYgbm90IG51bGwsIGNoYW5nZVJlY3QgaXMgdGhlIGNoYW5nZWQgcGFy
dCBvZiB0aGUgaW1hZ2UuCiAgICAgdm9pZCBub3RpZnlPYnNlcnZlcnMoY29uc3QgSW50UmVjdCog
Y2hhbmdlUmVjdCA9IDApOwotICAgIHZpcnR1YWwgUHVyZ2VQcmlvcml0eSBwdXJnZVByaW9yaXR5
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gUHVyZ2VGaXJzdDsgfQorICAgIHZpcnR1YWwgUHVy
Z2VQcmlvcml0eSBwdXJnZVByaW9yaXR5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUHVyZ2VG
aXJzdDsgfQogICAgIHZvaWQgY2hlY2tTaG91bGRQYWludEJyb2tlbkltYWdlKCk7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgc3dpdGNoQ2xpZW50c1RvUmV2YWxpZGF0ZWRSZXNvdXJjZSgpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgYm9vbCBtYXlUcnlSZXBsYWNlRW5jb2RlZERhdGEoKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCB2b2lkIHN3aXRjaENsaWVudHNUb1Jl
dmFsaWRhdGVkUmVzb3VyY2UoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgbWF5VHJ5UmVw
bGFjZUVuY29kZWREYXRhKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAg
dmlydHVhbCB2b2lkIGRpZEFkZENsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVudCopIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQq
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkQ2xpZW50KENhY2hlZFJlc291cmNl
Q2xpZW50Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZUNsaWVudChDYWNo
ZWRSZXNvdXJjZUNsaWVudCopIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGFsbENsaWVu
dHNSZW1vdmVkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0
YSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhbGxDbGllbnRzUmVtb3ZlZCgpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95RGVjb2RlZERhdGEoKSBvdmVycmlkZTsKIAot
ICAgIHZpcnR1YWwgdm9pZCBhZGREYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0
aCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGVycm9yKENhY2hlZFJlc291cmNlOjpTdGF0
dXMpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YShjb25z
dCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBlcnJvcihDYWNoZWRSZXNvdXJjZTo6U3RhdHVzKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7CiAK
ICAgICAvLyBGb3IgY29tcGF0aWJpbGl0eSwgaW1hZ2VzIGtlZXAgbG9hZGluZyBldmVuIGlmIHRo
ZXJlIGFyZSBIVFRQIGVycm9ycy4KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSWdub3JlSFRUUFN0
YXR1c0NvZGVFcnJvcnMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmly
dHVhbCBib29sIHNob3VsZElnbm9yZUhUVFBTdGF0dXNDb2RlRXJyb3JzKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBib29sIGlzSW1hZ2UoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIHN0aWxsTmVlZHNMb2Fk
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gIWVycm9yT2NjdXJyZWQoKSAmJiBzdGF0dXMoKSA9
PSBVbmtub3duICYmICFpc0xvYWRpbmcoKTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzdGlsbE5l
ZWRzTG9hZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICFlcnJvck9jY3VycmVkKCkgJiYgc3Rh
dHVzKCkgPT0gVW5rbm93biAmJiAhaXNMb2FkaW5nKCk7IH0KIAogICAgIC8vIEltYWdlT2JzZXJ2
ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGVjb2RlZFNpemVDaGFuZ2VkKGNvbnN0IEltYWdlKiwgaW50
IGRlbHRhKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRHJhdyhjb25zdCBJbWFnZSop
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkZWNvZGVkU2l6ZUNoYW5nZWQoY29uc3QgSW1h
Z2UqLCBpbnQgZGVsdGEpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWREcmF3KGNvbnN0
IEltYWdlKikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGF1c2VBbmltYXRp
b24oY29uc3QgSW1hZ2UqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uQWR2
YW5jZWQoY29uc3QgSW1hZ2UqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2hhbmdlZElu
UmVjdChjb25zdCBJbWFnZSosIGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkUGF1c2VBbmltYXRpb24oY29uc3QgSW1hZ2UqKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgYW5pbWF0aW9uQWR2YW5jZWQoY29uc3QgSW1hZ2UqKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2hhbmdlZEluUmVjdChjb25zdCBJbWFnZSosIGNvbnN0IEludFJlY3Qm
KSBvdmVycmlkZTsKIAogICAgIHZvaWQgYWRkSW5jcmVtZW50YWxEYXRhQnVmZmVyKFJlc291cmNl
QnVmZmVyKik7CiAKQEAgLTE1NSw3ICsxNTUsNyBAQCBwdWJsaWM6CiAgICAgQ2FjaGVkSW1hZ2VN
YW51YWwoY29uc3QgVVJMJiwgSW1hZ2UqKTsKICAgICB2b2lkIGFkZEZha2VDbGllbnQoKSB7IGFk
ZENsaWVudChtX2Zha2VDbGllbnQuZ2V0KCkpOyB9CiAgICAgdm9pZCByZW1vdmVGYWtlQ2xpZW50
KCkgeyByZW1vdmVDbGllbnQobV9mYWtlQ2xpZW50LmdldCgpKTsgfQotICAgIHZpcnR1YWwgYm9v
bCBpc01hbnVhbCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaXNNYW51YWwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmly
dHVhbCBib29sIG11c3RSZXZhbGlkYXRlRHVlVG9DYWNoZUhlYWRlcnMoQ2FjaGVQb2xpY3kpIGNv
bnN0OwogcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUmVzb3VyY2VDbGllbnQ+
IG1fZmFrZUNsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRJbWFnZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZElt
YWdlQ2xpZW50LmgKaW5kZXggNWJiY2IyYS4uMWMzZmFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlQ2xpZW50LmgKQEAgLTM0LDcgKzM0LDcgQEAgY2xh
c3MgQ2FjaGVkSW1hZ2VDbGllbnQgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewogcHVi
bGljOgogICAgIHZpcnR1YWwgfkNhY2hlZEltYWdlQ2xpZW50KCkgeyB9CiAgICAgc3RhdGljIENh
Y2hlZFJlc291cmNlQ2xpZW50VHlwZSBleHBlY3RlZFR5cGUoKSB7IHJldHVybiBJbWFnZVR5cGU7
IH0KLSAgICB2aXJ0dWFsIENhY2hlZFJlc291cmNlQ2xpZW50VHlwZSByZXNvdXJjZUNsaWVudFR5
cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBleHBlY3RlZFR5cGUoKTsgfQorICAgIHZpcnR1
YWwgQ2FjaGVkUmVzb3VyY2VDbGllbnRUeXBlIHJlc291cmNlQ2xpZW50VHlwZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGV4cGVjdGVkVHlwZSgpOyB9CiAKICAgICAvLyBDYWxsZWQgd2hlbmV2
ZXIgYSBmcmFtZSBvZiBhbiBpbWFnZSBjaGFuZ2VzLCBlaXRoZXIgYmVjYXVzZSB3ZSBnb3QgbW9y
ZSBkYXRhIGZyb20gdGhlIG5ldHdvcmsgb3IKICAgICAvLyBiZWNhdXNlIHdlIGFyZSBhbmltYXRp
bmcuIElmIG5vdCBudWxsLCB0aGUgSW50UmVjdCBpcyB0aGUgY2hhbmdlZCByZWN0IG9mIHRoZSBp
bWFnZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdS
ZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNl
LmgKaW5kZXggMjQ0NTAyNS4uY2Q4YTFjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmgKQEAgLTQ3LDIyICs0NywyMiBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjbGVhcigpOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRDbGll
bnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYWRk
RGF0YUJ1ZmZlcihSZXNvdXJjZUJ1ZmZlciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBh
ZGREYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCkgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIGZpbmlzaExvYWRpbmcoUmVzb3VyY2VCdWZmZXIqKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkQWRkQ2xpZW50KENhY2hlZFJlc291cmNlQ2xpZW50Kikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGFkZERhdGFCdWZmZXIoUmVzb3VyY2VCdWZmZXIqKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25l
ZCBsZW5ndGgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hMb2FkaW5nKFJlc291
cmNlQnVmZmVyKikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSWdub3JlSFRU
UFN0YXR1c0NvZGVFcnJvcnMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAg
dmlydHVhbCB2b2lkIGFsbENsaWVudHNSZW1vdmVkKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBi
b29sIHNob3VsZElnbm9yZUhUVFBTdGF0dXNDb2RlRXJyb3JzKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBhbGxDbGllbnRzUmVtb3ZlZCgpIG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJl
c3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50LCB1bnNp
Z25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFNlbmRE
YXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3Rh
bEJ5dGVzVG9CZVNlbnQpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHN3aXRjaENsaWVu
dHNUb1JldmFsaWRhdGVkUmVzb3VyY2UoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgbWF5
VHJ5UmVwbGFjZUVuY29kZWREYXRhKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZpcnR1YWwgdm9pZCBzd2l0Y2hDbGllbnRzVG9SZXZhbGlkYXRlZFJlc291cmNlKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBib29sIG1heVRyeVJlcGxhY2VFbmNvZGVkRGF0YSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBjYW5SZXVzZShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wg
Y2FuUmV1c2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBj
b25zdCBjaGFyKiBjYWxjdWxhdGVJbmNyZW1lbnRhbERhdGFDaHVuayhSZXNvdXJjZUJ1ZmZlcios
IHVuc2lnbmVkJiBpbmNyZW1lbnRhbERhdGFMZW5ndGgpOwogICAgIHZvaWQgbm90aWZ5Q2xpZW50
c0RhdGFXYXNSZWNlaXZlZChjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2VDbGll
bnQuaAppbmRleCBkZTdhNDU5Li4zZDdmZDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2VDbGllbnQuaApAQCAtMzUsNyArMzUsNyBA
QCBjbGFzcyBDYWNoZWRSYXdSZXNvdXJjZUNsaWVudCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZUNs
aWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+Q2FjaGVkUmF3UmVzb3VyY2VDbGllbnQoKSB7
IH0KICAgICBzdGF0aWMgQ2FjaGVkUmVzb3VyY2VDbGllbnRUeXBlIGV4cGVjdGVkVHlwZSgpIHsg
cmV0dXJuIFJhd1Jlc291cmNlVHlwZTsgfQotICAgIHZpcnR1YWwgQ2FjaGVkUmVzb3VyY2VDbGll
bnRUeXBlIHJlc291cmNlQ2xpZW50VHlwZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGV4cGVj
dGVkVHlwZSgpOyB9CisgICAgdmlydHVhbCBDYWNoZWRSZXNvdXJjZUNsaWVudFR5cGUgcmVzb3Vy
Y2VDbGllbnRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZXhwZWN0ZWRUeXBlKCk7IH0K
IAogICAgIHZpcnR1YWwgdm9pZCBkYXRhU2VudChDYWNoZWRSZXNvdXJjZSosIHVuc2lnbmVkIGxv
bmcgbG9uZyAvKiBieXRlc1NlbnQgKi8sIHVuc2lnbmVkIGxvbmcgbG9uZyAvKiB0b3RhbEJ5dGVz
VG9CZVNlbnQgKi8pIHsgfQogICAgIHZpcnR1YWwgdm9pZCByZXNwb25zZVJlY2VpdmVkKENhY2hl
ZFJlc291cmNlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIHsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuaAppbmRleCBiNTdmOWQ2Li43YWUy
OWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9j
dW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1l
bnQuaApAQCAtNDMsMTAgKzQzLDEwIEBAIHByb3RlY3RlZDoKICAgICBSZWZQdHI8VGV4dFJlc291
cmNlRGVjb2Rlcj4gbV9kZWNvZGVyOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBtYXlU
cnlSZXBsYWNlRW5jb2RlZERhdGEoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0g
ICAgdmlydHVhbCB2b2lkIHNldEVuY29kaW5nKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgU3RyaW5nIGVuY29kaW5nKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIGZpbmlzaExvYWRpbmcoUmVzb3VyY2VCdWZmZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IGJvb2wgbWF5VHJ5UmVwbGFjZUVuY29kZWREYXRhKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRFbmNvZGluZyhjb25zdCBTdHJpbmcmKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBlbmNvZGluZygpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBmaW5pc2hMb2FkaW5nKFJlc291cmNlQnVmZmVyKikgb3ZlcnJpZGU7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudENsaWVudC5oCmluZGV4IDkwNDkzN2UuLmEwMWUw
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1
bWVudENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdE
b2N1bWVudENsaWVudC5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIENhY2hlZFNWR0RvY3VtZW50
Q2xpZW50IDogcHVibGljIENhY2hlZFJlc291cmNlQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5DYWNoZWRTVkdEb2N1bWVudENsaWVudCgpIHsgfQogICAgIHN0YXRpYyBDYWNoZWRSZXNv
dXJjZUNsaWVudFR5cGUgZXhwZWN0ZWRUeXBlKCkgeyByZXR1cm4gU1ZHRG9jdW1lbnRUeXBlOyB9
Ci0gICAgdmlydHVhbCBDYWNoZWRSZXNvdXJjZUNsaWVudFR5cGUgcmVzb3VyY2VDbGllbnRUeXBl
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZXhwZWN0ZWRUeXBlKCk7IH0KKyAgICB2aXJ0dWFs
IENhY2hlZFJlc291cmNlQ2xpZW50VHlwZSByZXNvdXJjZUNsaWVudFR5cGUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBleHBlY3RlZFR5cGUoKTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlw
dC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oCmluZGV4IDcz
M2I1MzUuLmU5ZjM3YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRTY3JpcHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2Ny
aXB0LmgKQEAgLTQ3LDE2ICs0NywxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKIAog
ICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgUHVyZ2VQcmlvcml0eSBwdXJnZVByaW9yaXR5
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gUHVyZ2VMYXN0OyB9Ci0gICAgICAgIHZpcnR1YWwg
Ym9vbCBtYXlUcnlSZXBsYWNlRW5jb2RlZERhdGEoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0
cnVlOyB9CisgICAgICAgIHZpcnR1YWwgUHVyZ2VQcmlvcml0eSBwdXJnZVByaW9yaXR5KCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gUHVyZ2VMYXN0OyB9CisgICAgICAgIHZpcnR1YWwgYm9vbCBt
YXlUcnlSZXBsYWNlRW5jb2RlZERhdGEoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9
CiAKLSAgICAgICAgdmlydHVhbCBib29sIHNob3VsZElnbm9yZUhUVFBTdGF0dXNDb2RlRXJyb3Jz
KCkgY29uc3QgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJZ25vcmVIVFRQ
U3RhdHVzQ29kZUVycm9ycygpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgICAgIHZpcnR1YWwgdm9p
ZCBzZXRFbmNvZGluZyhjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKLSAgICAgICAgdmlydHVhbCBT
dHJpbmcgZW5jb2RpbmcoKSBjb25zdCBPVkVSUklERTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGZp
bmlzaExvYWRpbmcoUmVzb3VyY2VCdWZmZXIqKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCB2
b2lkIHNldEVuY29kaW5nKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFs
IFN0cmluZyBlbmNvZGluZygpIGNvbnN0IG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIHZvaWQg
ZmluaXNoTG9hZGluZyhSZXNvdXJjZUJ1ZmZlciopIG92ZXJyaWRlOwogCi0gICAgICAgIHZpcnR1
YWwgdm9pZCBkZXN0cm95RGVjb2RlZERhdGEoKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCB2
b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YSgpIG92ZXJyaWRlOwogCiAgICAgICAgIFN0cmluZyBtX3Nj
cmlwdDsKICAgICAgICAgUmVmUHRyPFRleHRSZXNvdXJjZURlY29kZXI+IG1fZGVjb2RlcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuaAppbmRleCAyM2M4OThhLi5k
ZWNmYTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2hh
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5oCkBA
IC00Niw4ICs0Niw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIHNoYWRlclN0cmluZygp
OwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBtYXlUcnlSZXBsYWNlRW5jb2RlZERhdGEo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCB2b2lkIGZpbmlz
aExvYWRpbmcoUmVzb3VyY2VCdWZmZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgbWF5
VHJ5UmVwbGFjZUVuY29kZWREYXRhKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hMb2FkaW5nKFJlc291cmNlQnVmZmVyKikgb3ZlcnJpZGU7
CiAKICAgICBSZWZQdHI8VGV4dFJlc291cmNlRGVjb2Rlcj4gbV9kZWNvZGVyOwogICAgIFN0cmlu
ZyBtX3NoYWRlclN0cmluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRTdHlsZVNoZWV0Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkU3R5bGVTaGVldENsaWVudC5oCmluZGV4IDJmNTQ5OTQuLmVlZDJkM2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTdHlsZVNoZWV0Q2xpZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFN0eWxlU2hlZXRDbGllbnQu
aApAQCAtMzgsNyArMzgsNyBAQCBjbGFzcyBDYWNoZWRTdHlsZVNoZWV0Q2xpZW50IDogcHVibGlj
IENhY2hlZFJlc291cmNlQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5DYWNoZWRTdHls
ZVNoZWV0Q2xpZW50KCkgeyB9CiAgICAgc3RhdGljIENhY2hlZFJlc291cmNlQ2xpZW50VHlwZSBl
eHBlY3RlZFR5cGUoKSB7IHJldHVybiBTdHlsZVNoZWV0VHlwZTsgfQotICAgIHZpcnR1YWwgQ2Fj
aGVkUmVzb3VyY2VDbGllbnRUeXBlIHJlc291cmNlQ2xpZW50VHlwZSgpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIGV4cGVjdGVkVHlwZSgpOyB9CisgICAgdmlydHVhbCBDYWNoZWRSZXNvdXJjZUNs
aWVudFR5cGUgcmVzb3VyY2VDbGllbnRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZXhw
ZWN0ZWRUeXBlKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Q1NTU3R5bGVTaGVldChjb25zdCBT
dHJpbmcmIC8qIGhyZWYgKi8sIGNvbnN0IFVSTCYgLyogYmFzZVVSTCAqLywgY29uc3QgU3RyaW5n
JiAvKiBjaGFyc2V0ICovLCBjb25zdCBDYWNoZWRDU1NTdHlsZVNoZWV0KikgeyB9CiAgICAgdmly
dHVhbCB2b2lkIHNldFhTTFN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiAvKiBocmVmICovLCBjb25z
dCBVUkwmIC8qIGJhc2VVUkwgKi8sIGNvbnN0IFN0cmluZyYgLyogc2hlZXQgKi8pIHsgfQogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2su
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suaAppbmRleCBl
MGE4NWNhLi4wNmEzYzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFRleHRUcmFjay5oCkBAIC0zOSw5ICszOSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5DYWNo
ZWRUZXh0VHJhY2soKTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgbWF5VHJ5UmVwbGFj
ZUVuY29kZWREYXRhKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1
YWwgdm9pZCBhZGREYXRhQnVmZmVyKFJlc291cmNlQnVmZmVyKikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGZpbmlzaExvYWRpbmcoUmVzb3VyY2VCdWZmZXIqKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGJvb2wgbWF5VHJ5UmVwbGFjZUVuY29kZWREYXRhKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBhZGREYXRhQnVmZmVyKFJlc291cmNlQnVm
ZmVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGZpbmlzaExvYWRpbmcoUmVzb3VyY2VC
dWZmZXIqKSBvdmVycmlkZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oCmluZGV4IDliOGFhMGUuLjM3NjlmZmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaApA
QCAtNDIsMTkgKzQyLDE5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgY29uc3QgU3Ry
aW5nJiBzaGVldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hlZXQ7IH0KIAogICAgIHByb3RlY3RlZDoK
LSAgICAgICAgdmlydHVhbCB2b2lkIGNoZWNrTm90aWZ5KCkgT1ZFUlJJREU7CisgICAgICAgIHZp
cnR1YWwgdm9pZCBjaGVja05vdGlmeSgpIG92ZXJyaWRlOwogCiAgICAgICAgIFN0cmluZyBtX3No
ZWV0OwogICAgICAgICBSZWZQdHI8VGV4dFJlc291cmNlRGVjb2Rlcj4gbV9kZWNvZGVyOwogCiAg
ICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBib29sIG1heVRyeVJlcGxhY2VFbmNvZGVkRGF0
YSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgdmlydHVhbCBib29s
IG1heVRyeVJlcGxhY2VFbmNvZGVkRGF0YSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7
IH0KIAotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkQ2xpZW50KENhY2hlZFJlc291cmNlQ2xp
ZW50KikgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRDbGllbnQoQ2FjaGVk
UmVzb3VyY2VDbGllbnQqKSBvdmVycmlkZTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0RW5j
b2RpbmcoY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgICAgIHZpcnR1YWwgU3RyaW5nIGVu
Y29kaW5nKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hMb2Fk
aW5nKFJlc291cmNlQnVmZmVyKikgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRF
bmNvZGluZyhjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICAgICAgdmlydHVhbCBTdHJpbmcg
ZW5jb2RpbmcoKSBjb25zdCBvdmVycmlkZTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGZpbmlzaExv
YWRpbmcoUmVzb3VyY2VCdWZmZXIqKSBvdmVycmlkZTsKICAgICB9OwogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuaAppbmRleCBmNGQ5YmFmLi44MjhiNmIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5oCkBAIC00Nyw3ICs0Nyw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHN0b3BMb2FkaW5nKCk7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVh
bCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgb3ZlcnJpZGU7CiAKICAg
ICBGcmFtZSYgbV9mcmFtZTsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNv
dXJjZT4gbV9yZXNvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRo
TUxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5oCmluZGV4
IGRmMmNhNTcuLmRkODBlNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRo
TUxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuaApA
QCAtNTcsMTMgKzU3LDEzIEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBNYXRoTUxFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0
cmluZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRl
cmVyKGNvbnN0IE5vZGUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiBuZXdW
YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0
cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRl
cmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiBuZXdW
YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKIAogcHJpdmF0ZTog
ICAgCi0gICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxl
Rm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
aWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9u
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRh
YmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
U2VsZWN0ZWRDaGlsZCgpIHsgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRo
bWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1s
L01hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuaAppbmRleCA3YmUyZmZlLi5lYjdiM2Q2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MSW5saW5lQ29udGFpbmVyRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxJbmxpbmVDb250YWluZXJF
bGVtZW50LmgKQEAgLTM2LDEzICszNiwxMyBAQCBjbGFzcyBNYXRoTUxJbmxpbmVDb250YWluZXJF
bGVtZW50IDogcHVibGljIE1hdGhNTEVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBib29sIGlzUHJlc2Vu
dGF0aW9uTWF0aE1MKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1
YWwgYm9vbCBpc1ByZXNlbnRhdGlvbk1hdGhNTCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KIAogcHJvdGVjdGVkOgogICAgIE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICB2
aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFz
c1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgb3Zl
cnJpZGU7CiB9OwogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTE1hdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1l
bnQuaAppbmRleCBlYmRkMzgwLi4yMzg3M2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9t
YXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MTWF0aEVsZW1lbnQuaApAQCAtMzksOCArMzksOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IE1hdGhNTE1hdGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
Jik7CiAKLSAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJ
bnRvKENvbnRhaW5lck5vZGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9W
RVJSSURFOworICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRl
ZEludG8oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikg
b3ZlcnJpZGU7CiB9OwogICAgIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1s
L01hdGhNTFNlbGVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxl
Y3RFbGVtZW50LmgKaW5kZXggYTc1YzU4Ni4uMzI3NjkyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9t
YXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5oCkBAIC0zNywyMiArMzcsMjIgQEAgcHVibGljOgog
CiBwcml2YXRlOgogICAgIE1hdGhNTFNlbGVjdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmKTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihQYXNzUmVmPFJlbmRlclN0eWxlPikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2hp
bGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0
IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGZpbmlzaFBhcnNpbmdDaGlsZHJlbigpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFu
Z2UmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgQXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uID0gTW9kaWZpZWREaXJlY3RseSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRl
ZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgd2ls
bFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNoaWxk
cmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJp
bmcmLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gPSBNb2RpZmllZERpcmVjdGx5KSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIG92
ZXJyaWRlOwogCiAgICAgdm9pZCB0b2dnbGUoKTsKICAgICBpbnQgZ2V0U2VsZWN0ZWRBY3Rpb25D
aGlsZEFuZEluZGV4KEVsZW1lbnQqJiBzZWxlY3RlZENoaWxkKTsKICAgICBFbGVtZW50KiBnZXRT
ZWxlY3RlZEFjdGlvbkNoaWxkKCk7CiAgICAgRWxlbWVudCogZ2V0U2VsZWN0ZWRTZW1hbnRpY3ND
aGlsZCgpOwogCi0gICAgdm9pZCB1cGRhdGVTZWxlY3RlZENoaWxkKCkgT1ZFUlJJREU7CisgICAg
dm9pZCB1cGRhdGVTZWxlY3RlZENoaWxkKCkgb3ZlcnJpZGU7CiAgICAgRWxlbWVudCogbV9zZWxl
Y3RlZENoaWxkOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TFRleHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQu
aAppbmRleCBlMWMzZDM0Li40MTM1MTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRo
bWwvTWF0aE1MVGV4dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1M
VGV4dEVsZW1lbnQuaApAQCAtMzUsMTcgKzM1LDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIE1hdGhNTFRleHRFbGVtZW50IDogcHVibGljIE1hdGhNTEVsZW1lbnQgewogcHVibGljOgog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1hdGhNTFRleHRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQXR0
YWNoUmVuZGVyZXJzKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRl
cmVycygpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uTWF0aE1M
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1By
ZXNlbnRhdGlvbk1hdGhNTCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogcHJp
dmF0ZToKICAgICBNYXRoTUxUZXh0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxl
bWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJp
ZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdl
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGls
ZENoYW5nZSYpIG92ZXJyaWRlOwogfTsKICAgICAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuaAppbmRleCBiOWJmMmRmLi44MjNm
OGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5j
ZXNNZWRpYUFGLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWVkaWFBRi5oCkBAIC00MSwzMCArNDEsMzAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkNh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGKCk7CiAKICNpZiBIQVZFKE1FRElBX0FDQ0VTU0lC
SUxJVFlfRlJBTUVXT1JLKQotICAgIHZpcnR1YWwgQ2FwdGlvbkRpc3BsYXlNb2RlIGNhcHRpb25E
aXNwbGF5TW9kZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDYXB0aW9u
RGlzcGxheU1vZGUoQ2FwdGlvbkRpc3BsYXlNb2RlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIENh
cHRpb25EaXNwbGF5TW9kZSBjYXB0aW9uRGlzcGxheU1vZGUoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q2FwdGlvbkRpc3BsYXlNb2RlKENhcHRpb25EaXNwbGF5TW9kZSkg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgdXNlclByZWZlcnNDYXB0aW9ucygpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCB1c2VyUHJlZmVyc1N1YnRpdGxlcygpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCB1c2VyUHJlZmVyc0NhcHRpb25zKCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHVzZXJQcmVmZXJzU3VidGl0bGVzKCkgY29uc3Qg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGZsb2F0IGNhcHRpb25Gb250U2l6ZVNjYWxlQW5kSW1w
b3J0YW5jZShib29sJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBmbG9hdCBjYXB0aW9u
Rm9udFNpemVTY2FsZUFuZEltcG9ydGFuY2UoYm9vbCYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAg
dmlydHVhbCB2b2lkIHNldEludGVyZXN0ZWRJbkNhcHRpb25QcmVmZXJlbmNlQ2hhbmdlcygpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRJbnRlcmVzdGVkSW5DYXB0aW9uUHJlZmVyZW5j
ZUNoYW5nZXMoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRQcmVmZXJyZWRMYW5n
dWFnZShjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+
IHByZWZlcnJlZExhbmd1YWdlcygpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRQcmVmZXJyZWRMYW5ndWFnZShjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IFZlY3RvcjxTdHJpbmc+IHByZWZlcnJlZExhbmd1YWdlcygpIGNvbnN0IG92ZXJyaWRlOwogCi0g
ICAgdmlydHVhbCB2b2lkIGNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpIG92ZXJyaWRlOwogCiAg
ICAgYm9vbCBzaG91bGRGaWx0ZXJUcmFja01lbnUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAj
ZWxzZQogICAgIGJvb2wgc2hvdWxkRmlsdGVyVHJhY2tNZW51KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICNlbmRpZgogCi0gICAgdmlydHVhbCBTdHJpbmcgY2FwdGlvbnNTdHlsZVNoZWV0T3Zl
cnJpZGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGludCB0ZXh0VHJhY2tTZWxlY3Rp
b25TY29yZShUZXh0VHJhY2sqLCBIVE1MTWVkaWFFbGVtZW50KikgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBWZWN0b3I8UmVmUHRyPFRleHRUcmFjaz4+IHNvcnRlZFRyYWNrTGlzdEZvck1l
bnUoVGV4dFRyYWNrTGlzdCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIGRpc3BsYXlO
YW1lRm9yVHJhY2soVGV4dFRyYWNrKikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBTdHJp
bmcgY2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGludCB0ZXh0VHJhY2tTZWxlY3Rpb25TY29yZShUZXh0VHJhY2sqLCBIVE1MTWVkaWFFbGVt
ZW50KikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBWZWN0b3I8UmVmUHRyPFRleHRUcmFj
az4+IHNvcnRlZFRyYWNrTGlzdEZvck1lbnUoVGV4dFRyYWNrTGlzdCopIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgU3RyaW5nIGRpc3BsYXlOYW1lRm9yVHJhY2soVGV4dFRyYWNrKikgY29uc3Qgb3Zl
cnJpZGU7CiAKIHByaXZhdGU6CiAjaWYgSEFWRShNRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09S
SykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5oCmluZGV4IDUyOWMxNTIuLjcxODUyY2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWUuaApAQCAtNjksMjYgKzY5LDI2IEBAIHB1YmxpYzoKICAgICBDaHJvbWVDbGllbnQmIGNsaWVu
dCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKICAgICAvLyBIb3N0V2luZG93IG1ldGhvZHMuCi0g
ICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JiwgYm9vbCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3
KGNvbnN0IEludFJlY3QmLCBib29sKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxp
ZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiwgYm9vbCkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYs
IGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJv
b3RWaWV3KGNvbnN0IEludFJlY3QmLCBib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYsIGJvb2wpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNv
bnN0IEludFJlY3QmLCBib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNv
bnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOwog
I2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotICAgIHZpcnR1YWwgdm9pZCBkZWxlZ2F0ZWRT
Y3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvaW50KSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0IEludFBvaW50JiBz
Y3JvbGxQb2ludCkgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICB2aXJ0dWFsIEludFBvaW50IHNjcmVl
blRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IEludFJlY3Qgcm9vdFZpZXdUb1NjcmVlbihjb25zdCBJbnRSZWN0JikgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3Im
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1v
dmVzKGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9Sb290Vmll
dyhjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW50UmVjdCBy
b290Vmlld1RvU2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkg
b3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCi0gICAgdmly
dHVhbCB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHNjaGVkdWxlQW5pbWF0aW9uKCkgb3ZlcnJpZGU7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgUGxh
dGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHdpbmRvd1NjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQoKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgd2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlE
KSBvdmVycmlkZTsKIAogICAgIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IEludFJlY3Qm
KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCmluZGV4IDQ2YzRlY2EuLjFiNWIzZDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVRpbWVyLmgKQEAgLTUwLDE4ICs1MCwxOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICBwcml2YXRlOgogICAgICAgICBET01UaW1lcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgUGFzc093blB0cjxTY2hlZHVsZWRBY3Rpb24+LCBpbnQgaW50ZXJ2YWwsIGJvb2wgc2lu
Z2xlU2hvdCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpIE9WRVJSSURFOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSBvdmVycmlkZTsKIAogICAgICAgICAvLyBBY3RpdmVET01P
YmplY3QKLSAgICAgICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBPVkVSUklERTsK
KyAgICAgICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBvdmVycmlkZTsKIAogICAg
ICAgICAvLyBTdXNwZW5kYWJsZVRpbWVyCi0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wKCkg
T1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wKCkgb3ZlcnJpZGU7CiAKICAg
ICAgICAgZG91YmxlIGludGVydmFsQ2xhbXBlZFRvTWluaW11bShpbnQgdGltZW91dCwgZG91Ymxl
IG1pbmltdW1UaW1lckludGVydmFsKSBjb25zdDsKIAogICAgICAgICAvLyBSZXR1bnMgdGltZXIg
ZmlyZSB0aW1lIHJvdW5kZWQgdG8gdGhlIG5leHQgbXVsdGlwbGUgb2YgdGltZXIgYWxpZ25tZW50
IGludGVydmFsLgotICAgICAgICB2aXJ0dWFsIGRvdWJsZSBhbGlnbmVkRmlyZVRpbWUoZG91Ymxl
KSBjb25zdCBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCBkb3VibGUgYWxpZ25lZEZpcmVUaW1l
KGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAgICAgaW50IG1fdGltZW91dElkOwogICAg
ICAgICBpbnQgbV9uZXN0aW5nTGV2ZWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCAxNWM1
ZGI1Li43NjRjODBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTEwNSwxMCArMTA1LDEw
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gdGhlIG5ldHdvcmsgbG9hZC4gU2Vl
IGFsc28gU2VjdXJpdHlDb250ZXh0Ojppc1NlY3VyZVRyYW5zaXRpb25Uby4KICAgICAgICAgdm9p
ZCBkaWRTZWN1cmVUcmFuc2l0aW9uVG8oRG9jdW1lbnQqKTsKIAotICAgICAgICB2aXJ0dWFsIEV2
ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gRE9NV2luZG93RXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9Ci0gICAgICAgIHZp
cnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7IH0KKyAgICAgICAgdmlydHVhbCBFdmVudFRhcmdldEludGVyZmFj
ZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIERPTVdpbmRv
d0V2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAgICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
OyB9CiAKLSAgICAgICAgdmlydHVhbCBET01XaW5kb3cqIHRvRE9NV2luZG93KCkgT1ZFUlJJREU7
CisgICAgICAgIHZpcnR1YWwgRE9NV2luZG93KiB0b0RPTVdpbmRvdygpIG92ZXJyaWRlOwogCiAg
ICAgICAgIHZvaWQgcmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSopOwogICAgICAg
ICB2b2lkIHVucmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSopOwpAQCAtMjcwLDkg
KzI3MCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICAvLyBFdmVudHMKICAgICAg
ICAgLy8gRXZlbnRUYXJnZXQgQVBJCi0gICAgICAgIHZpcnR1YWwgYm9vbCBhZGRFdmVudExpc3Rl
bmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEV2ZW50TGlzdGVu
ZXI+LCBib29sIHVzZUNhcHR1cmUpIE9WRVJSSURFOwotICAgICAgICB2aXJ0dWFsIGJvb2wgcmVt
b3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0
ZW5lciosIGJvb2wgdXNlQ2FwdHVyZSkgT1ZFUlJJREU7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVBbGxFdmVudExpc3RlbmVycygpIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIGJvb2wg
YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0
cjxFdmVudExpc3RlbmVyPiwgYm9vbCB1c2VDYXB0dXJlKSBvdmVycmlkZTsKKyAgICAgICAgdmly
dHVhbCBib29sIHJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUsIEV2ZW50TGlzdGVuZXIqLCBib29sIHVzZUNhcHR1cmUpIG92ZXJyaWRlOworICAgICAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKSBvdmVycmlkZTsKIAogICAgICAg
ICB1c2luZyBFdmVudFRhcmdldDo6ZGlzcGF0Y2hFdmVudDsKICAgICAgICAgYm9vbCBkaXNwYXRj
aEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IHBycEV2ZW50LCBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0
PiBwcnBUYXJnZXQpOwpAQCAtNDM2LDExICs0MzYsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBQYWdlKiBwYWdlKCk7CiAgICAgICAgIGJvb2wgYWxsb3dlZFRvQ2hhbmdlV2luZG93
R2VvbWV0cnkoKSBjb25zdDsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgZnJhbWVEZXN0cm95ZWQo
KSBPVkVSUklERTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hQYWdlKCkgT1ZFUlJJ
REU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBmcmFtZURlc3Ryb3llZCgpIG92ZXJyaWRlOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgd2lsbERldGFjaFBhZ2UoKSBvdmVycmlkZTsKIAotICAgICAgICB2
aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSB7IHJlZigpOyB9Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyBkZXJlZigpOyB9Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0K
KyAgICAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVm
KCk7IH0KIAogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxGcmFtZT4gY3JlYXRlV2luZG93KGNv
bnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9taWNTdHJpbmcmIGZyYW1lTmFtZSwgY29u
c3QgV2luZG93RmVhdHVyZXMmLCBET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgRnJhbWUqIGZpcnN0
RnJhbWUsIEZyYW1lKiBvcGVuZXJGcmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkIChET01XaW5kb3cm
KT4gcHJlcGFyZURpYWxvZ0Z1bmN0aW9uID0gbnVsbHB0cik7CiAgICAgICAgIGJvb2wgaXNJbnNl
Y3VyZVNjcmlwdEFjY2VzcyhET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgY29uc3QgU3RyaW5nJiB1
cmxTdHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dFeHRl
bnNpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93RXh0ZW5zaW9uLmgKaW5kZXgg
YTBiYzU0NC4uYzE4NGEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3dFeHRlbnNpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd0V4dGVuc2lv
bi5oCkBAIC00NCwxMSArNDQsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IERPTVdpbmRvd0V4dGVuc2lvbihmcmFtZSwgd29ybGQpKTsKICAgICB9CiAKLSAgICB2aXJ0
dWFsIHZvaWQgZGlzY29ubmVjdEZyYW1lRm9yUGFnZUNhY2hlKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHJlY29ubmVjdEZyYW1lRnJvbVBhZ2VDYWNoZShGcmFtZSopIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluQ2FjaGVkRnJhbWUoKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lHbG9iYWxPYmplY3RJbkZyYW1l
KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hHbG9iYWxPYmplY3RGcm9t
RnJhbWUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdEZyYW1lRm9yUGFn
ZUNhY2hlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlY29ubmVjdEZyYW1lRnJvbVBh
Z2VDYWNoZShGcmFtZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUds
b2JhbE9iamVjdEluQ2FjaGVkRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2ls
bERlc3Ryb3lHbG9iYWxPYmplY3RJbkZyYW1lKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHdpbGxEZXRhY2hHbG9iYWxPYmplY3RGcm9tRnJhbWUoKSBvdmVycmlkZTsKIAogICAgIERPTVdy
YXBwZXJXb3JsZCYgd29ybGQoKSBjb25zdCB7IHJldHVybiAqbV93b3JsZDsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50U291cmNlLmgKaW5kZXggM2YwMDJlYi4uNGU3NzJlMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRTb3VyY2UuaApAQCAtNzUsMjMgKzc1LDIzIEBAIHB1YmxpYzoKICAgICB1c2luZyBSZWZD
b3VudGVkPEV2ZW50U291cmNlPjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8RXZlbnRTb3Vy
Y2U+OjpkZXJlZjsKIAotICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJn
ZXRJbnRlcmZhY2UoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBFdmVudFNvdXJjZUV2ZW50VGFy
Z2V0SW50ZXJmYWNlVHlwZTsgfQotICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIEFjdGl2ZURP
TU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisgICAgdmlydHVhbCBFdmVudFRh
cmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIEV2ZW50U291cmNlRXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgdmlydHVhbCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7
IH0KIAogcHJpdmF0ZToKICAgICBFdmVudFNvdXJjZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
Y29uc3QgVVJMJiwgY29uc3QgRGljdGlvbmFyeSYpOwogCi0gICAgdmlydHVhbCB2b2lkIHJlZkV2
ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyByZWYoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2
ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyBkZXJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIHJlZkV2
ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2
ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIGlu
dCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQg
bG9uZywgZG91YmxlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChjb25zdCBS
ZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZhaWxBY2Nlc3ND
b250cm9sQ2hlY2soY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBkaWRGYWlsUmVkaXJlY3RDaGVjaygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiwg
aW50KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyh1bnNpZ25l
ZCBsb25nLCBkb3VibGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKGNvbnN0
IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbEFjY2Vz
c0NvbnRyb2xDaGVjayhjb25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGRpZEZhaWxSZWRpcmVjdENoZWNrKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgc3RvcCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAK
ICAgICB2b2lkIGNvbm5lY3QoKTsKICAgICB2b2lkIG5ldHdvcmtSZXF1ZXN0RW5kZWQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuaAppbmRleCBmNTVlYWFmLi40MzY2MjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCkBAIC0z
NDksMTIgKzM0OSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBwcml2YXRlOgogICAg
ICAgICAvLyBUaWxlZEJhY2tpbmdTdG9yZUNsaWVudCBpbnRlcmZhY2UKLSAgICAgICAgdmlydHVh
bCB2b2lkIHRpbGVkQmFja2luZ1N0b3JlUGFpbnRCZWdpbigpIE9WRVJSSURFIEZJTkFMOwotICAg
ICAgICB2aXJ0dWFsIHZvaWQgdGlsZWRCYWNraW5nU3RvcmVQYWludChHcmFwaGljc0NvbnRleHQq
LCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJREUgRklOQUw7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB0
aWxlZEJhY2tpbmdTdG9yZVBhaW50RW5kKGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYgcGFpbnRlZEFy
ZWEpIE9WRVJSSURFIEZJTkFMOwotICAgICAgICB2aXJ0dWFsIEludFJlY3QgdGlsZWRCYWNraW5n
U3RvcmVDb250ZW50c1JlY3QoKSBPVkVSUklERSBGSU5BTDsKLSAgICAgICAgdmlydHVhbCBJbnRS
ZWN0IHRpbGVkQmFja2luZ1N0b3JlVmlzaWJsZVJlY3QoKSBPVkVSUklERSBGSU5BTDsKLSAgICAg
ICAgdmlydHVhbCBDb2xvciB0aWxlZEJhY2tpbmdTdG9yZUJhY2tncm91bmRDb2xvcigpIGNvbnN0
IE9WRVJSSURFIEZJTkFMOworICAgICAgICB2aXJ0dWFsIHZvaWQgdGlsZWRCYWNraW5nU3RvcmVQ
YWludEJlZ2luKCkgb3ZlcnJpZGUgRklOQUw7CisgICAgICAgIHZpcnR1YWwgdm9pZCB0aWxlZEJh
Y2tpbmdTdG9yZVBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKSBvdmVycmlk
ZSBGSU5BTDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHRpbGVkQmFja2luZ1N0b3JlUGFpbnRFbmQo
Y29uc3QgVmVjdG9yPEludFJlY3Q+JiBwYWludGVkQXJlYSkgb3ZlcnJpZGUgRklOQUw7CisgICAg
ICAgIHZpcnR1YWwgSW50UmVjdCB0aWxlZEJhY2tpbmdTdG9yZUNvbnRlbnRzUmVjdCgpIG92ZXJy
aWRlIEZJTkFMOworICAgICAgICB2aXJ0dWFsIEludFJlY3QgdGlsZWRCYWNraW5nU3RvcmVWaXNp
YmxlUmVjdCgpIG92ZXJyaWRlIEZJTkFMOworICAgICAgICB2aXJ0dWFsIENvbG9yIHRpbGVkQmFj
a2luZ1N0b3JlQmFja2dyb3VuZENvbG9yKCkgY29uc3Qgb3ZlcnJpZGUgRklOQUw7CiAKICAgICAg
ICAgT3duUHRyPFRpbGVkQmFja2luZ1N0b3JlPiBtX3RpbGVkQmFja2luZ1N0b3JlOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBiZDM0ZTc4Li5kZjJiZWM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmgKQEAgLTcyLDEzICs3MiwxMyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IH5GcmFtZVZpZXcoKTsKIAotICAgIHZpcnR1YWwgSG9zdFdpbmRvdyogaG9zdFdpbmRvdygpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgSG9zdFdpbmRvdyogaG9zdFdpbmRvdygpIGNvbnN0
IG92ZXJyaWRlOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUmVjdChjb25zdCBJ
bnRSZWN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldEZyYW1lUmVjdChjb25zdCBJ
bnRSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSZWN0KGNvbnN0
IEludFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJhbWVSZWN0KGNvbnN0
IEludFJlY3QmKSBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFN
RSkKLSAgICB2aXJ0dWFsIGJvb2wgc2NoZWR1bGVBbmltYXRpb24oKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGJvb2wgc2NoZWR1bGVBbmltYXRpb24oKSBvdmVycmlkZTsKICNlbmRpZgogCiAgICAg
RnJhbWUmIGZyYW1lKCkgY29uc3QgeyByZXR1cm4gKm1fZnJhbWU7IH0KQEAgLTkzLDE0ICs5Mywx
NCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNYXJnaW5XaWR0aChMYXlvdXRVbml0KTsKICAgICB2
b2lkIHNldE1hcmdpbkhlaWdodChMYXlvdXRVbml0KTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRD
YW5IYXZlU2Nyb2xsYmFycyhib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2Fu
SGF2ZVNjcm9sbGJhcnMoYm9vbCkgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVDYW5IYXZlU2Ny
b2xsYmFycygpOwogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFNjcm9sbGJhcj4gY3JlYXRlU2Ny
b2xsYmFyKFNjcm9sbGJhck9yaWVudGF0aW9uKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8U2Nyb2xsYmFyPiBjcmVhdGVTY3JvbGxiYXIoU2Nyb2xsYmFyT3JpZW50YXRpb24pIG92
ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGF2b2lkU2Nyb2xsYmFyQ3JlYXRpb24oKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgYXZvaWRTY3JvbGxiYXJDcmVhdGlvbigpIGNv
bnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzU2l6ZShjb25zdCBJ
bnRTaXplJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzU2l6ZShjb25z
dCBJbnRTaXplJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGxheW91dChib29sIGFsbG93U3VidHJl
ZSA9IHRydWUpOwogICAgIGJvb2wgZGlkRmlyc3RMYXlvdXQoKSBjb25zdDsKQEAgLTE1MCw3ICsx
NTAsNyBAQCBwdWJsaWM6CiAgICAgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllckZvclBsYXRm
b3JtV2lkZ2V0KFBsYXRmb3JtV2lkZ2V0KTsKICAgICB2b2lkIHNjaGVkdWxlTGF5ZXJGbHVzaEFs
bG93aW5nVGhyb3R0bGluZygpOwogCi0gICAgdmlydHVhbCBUaWxlZEJhY2tpbmcqIHRpbGVkQmFj
a2luZygpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgVGlsZWRCYWNraW5nKiB0aWxlZEJh
Y2tpbmcoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIEluIHRoZSBmdXR1cmUgd2hlbiBhbnkg
U2Nyb2xsYWJsZUFyZWEgY2FuIGhhdmUgYSBub2RlIGluIHRoIFNjcm9sbGluZ1RyZWUsIHRoaXMg
c2hvdWxkCiAgICAgLy8gYmVjb21lIGEgdmlydHVhbCBmdW5jdGlvbiBvbiBTY3JvbGxhYmxlQXJl
YS4KQEAgLTIwMywyNCArMjAzLDI0IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRqdXN0Vmlld1Np
emUoKTsKICAgICAKLSAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93Q2xpcFJlY3QoYm9vbCBjbGlw
VG9Db250ZW50cyA9IHRydWUpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgSW50UmVjdCB3
aW5kb3dDbGlwUmVjdChib29sIGNsaXBUb0NvbnRlbnRzID0gdHJ1ZSkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgSW50UmVjdCB3aW5kb3dDbGlwUmVjdEZvckZyYW1lT3duZXIoY29uc3QgSFRNTEZyYW1l
T3duZXJFbGVtZW50KiwgYm9vbCBjbGlwVG9MYXllckNvbnRlbnRzKSBjb25zdDsKIAotICAgIHZp
cnR1YWwgSW50UmVjdCB3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgSW50UmVjdCB3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAg
dmlydHVhbCBmbG9hdCB2aXNpYmxlQ29udGVudFNjYWxlRmFjdG9yKCkgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBmbG9hdCB2aXNpYmxlQ29udGVudFNjYWxlRmFjdG9yKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKICNpZiAhUExBVEZPUk0oSU9TKQotICAgIHZpcnR1YWwgdm9pZCBzZXRGaXhlZFZp
c2libGVDb250ZW50UmVjdChjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIHNldEZpeGVkVmlzaWJsZUNvbnRlbnRSZWN0KGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsK
ICNlbmRpZgotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2lu
dCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBJ
bnRQb2ludCYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2Nyb2xsUG9zaXRpb25DaGFuZ2VkVmlhUGxh
dGZvcm1XaWRnZXQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRl
clNjcm9sbGluZygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb21wb3NpdGlu
Z0xheWVyc0FmdGVyU2Nyb2xsaW5nKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHJlcXVl
c3RTY3JvbGxQb3NpdGlvblVwZGF0ZShjb25zdCBJbnRQb2ludCYpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgYm9vbCBpc1J1YmJlckJhbmRJblByb2dyZXNzKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBJbnRQb2ludCBtaW5pbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIEludFBvaW50IG1heGltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyU2Nyb2xsaW5n
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0
ZXJTY3JvbGxpbmcoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWVzdFNjcm9sbFBv
c2l0aW9uVXBkYXRlKGNvbnN0IEludFBvaW50Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IGlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIElu
dFBvaW50IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgSW50UG9pbnQgbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAg
ICAvLyBUaGlzIGlzIGRpZmZlcmVudCB0aGFuIHZpc2libGVDb250ZW50UmVjdCgpIGluIHRoYXQg
aXQgaWdub3JlcyBuZWdhdGl2ZSAob3Igb3Zlcmx5IHBvc2l0aXZlKQogICAgIC8vIG9mZnNldHMg
ZnJvbSBydWJiZXItYmFuZGluZywgYW5kIGl0IHRha2VzIHpvb21pbmcgaW50byBhY2NvdW50LiAK
QEAgLTI4NCw3ICsyODQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRFbWJlZGRlZE9iamVjdFRv
VXBkYXRlKFJlbmRlckVtYmVkZGVkT2JqZWN0Jik7CiAgICAgdm9pZCByZW1vdmVFbWJlZGRlZE9i
amVjdFRvVXBkYXRlKFJlbmRlckVtYmVkZGVkT2JqZWN0Jik7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRDb250ZW50cyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhHcmFwaGljc0NvbnRl
eHQqLCBjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0KSBvdmVycmlkZTsKICAgICB2b2lkIHNldFBh
aW50QmVoYXZpb3IoUGFpbnRCZWhhdmlvcik7CiAgICAgUGFpbnRCZWhhdmlvciBwYWludEJlaGF2
aW9yKCkgY29uc3Q7CiAgICAgYm9vbCBpc1BhaW50aW5nKCkgY29uc3Q7CkBAIC0yOTYsOSArMjk2
LDkgQEAgcHVibGljOgogICAgIGVudW0gQ29vcmRpbmF0ZVNwYWNlRm9yU25hcHNob3QgeyBEb2N1
bWVudENvb3JkaW5hdGVzLCBWaWV3Q29vcmRpbmF0ZXMgfTsKICAgICB2b2lkIHBhaW50Q29udGVu
dHNGb3JTbmFwc2hvdChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JiBpbWFnZVJlY3Qs
IFNlbGVjdGlvbkluU25hcHNob3Qgc2hvdWxkUGFpbnRTZWxlY3Rpb24sIENvb3JkaW5hdGVTcGFj
ZUZvclNuYXBzaG90KTsKIAotICAgIHZpcnR1YWwgdm9pZCBwYWludE92ZXJoYW5nQXJlYXMoR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYgaG9yaXpvbnRhbE92ZXJoYW5nQXJlYSwgY29u
c3QgSW50UmVjdCYgdmVydGljYWxPdmVyaGFuZ0FyZWEsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVj
dCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50U2Nyb2xsQ29ybmVyKEdyYXBoaWNz
Q29udGV4dCosIGNvbnN0IEludFJlY3QmIGNvcm5lclJlY3QpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBwYWludFNjcm9sbGJhcihHcmFwaGljc0NvbnRleHQqLCBTY3JvbGxiYXIqLCBjb25z
dCBJbnRSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhaW50T3ZlcmhhbmdBcmVh
cyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JiBob3Jpem9udGFsT3ZlcmhhbmdBcmVh
LCBjb25zdCBJbnRSZWN0JiB2ZXJ0aWNhbE92ZXJoYW5nQXJlYSwgY29uc3QgSW50UmVjdCYgZGly
dHlSZWN0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRTY3JvbGxDb3JuZXIoR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYgY29ybmVyUmVjdCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHBhaW50U2Nyb2xsYmFyKEdyYXBoaWNzQ29udGV4dCosIFNjcm9sbGJhcios
IGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKIAogICAgIENvbG9yIGRvY3VtZW50QmFja2dyb3Vu
ZENvbG9yKCkgY29uc3Q7CiAKQEAgLTM2NCwxNSArMzY0LDE1IEBAIHB1YmxpYzoKICAgICAvLyBP
biBlYWNoIHJlcGFpbnQgdGhlIGRlbGF5IGluY3Jlc2VzIGJ5IHRoaXMgYW1vdW50CiAgICAgc3Rh
dGljIHZvaWQgc2V0UmVwYWludFRocm90dGxpbmdEZWZlcnJlZFJlcGFpbnREZWxheUluY3JlbWVu
dER1cmluZ0xvYWRpbmcoZG91YmxlIHApOwogCi0gICAgdmlydHVhbCBJbnRQb2ludCBsYXN0S25v
d25Nb3VzZVBvc2l0aW9uKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzSGFu
ZGxpbmdXaGVlbEV2ZW50KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBJbnRQb2ludCBs
YXN0S25vd25Nb3VzZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IGlzSGFuZGxpbmdXaGVlbEV2ZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBzaG91bGRT
ZXRDdXJzb3IoKSBjb25zdDsKIAogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2Qgb25j
ZSBwbHVnaW4gbG9hZGluZyBpcyBkZWNvdXBsZWQgZnJvbSBsYXlvdXQuCiAgICAgdm9pZCBmbHVz
aEFueVBlbmRpbmdQb3N0TGF5b3V0VGFza3MoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRT
dXNwZW5kU2Nyb2xsQW5pbWF0aW9ucygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBzY3JvbGxiYXJTdHlsZUNoYW5nZWQoaW50IG5ld1N0eWxlLCBib29sIGZvcmNlVXBkYXRlKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3VzcGVuZFNjcm9sbEFuaW1hdGlvbnMo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyU3R5bGVDaGFuZ2Vk
KGludCBuZXdTdHlsZSwgYm9vbCBmb3JjZVVwZGF0ZSkgb3ZlcnJpZGU7CiAKICAgICBSZW5kZXJC
b3gqIGVtYmVkZGVkQ29udGVudEJveCgpIGNvbnN0OwogICAgIApAQCAtMzkwLDcgKzM5MCw3IEBA
IHB1YmxpYzoKICAgICBib29sIGNvbnRhaW5zU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEq
KSBjb25zdDsKICAgICBjb25zdCBTY3JvbGxhYmxlQXJlYVNldCogc2Nyb2xsYWJsZUFyZWFzKCkg
Y29uc3QgeyByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYXMuZ2V0KCk7IH0KIAotICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVDaGlsZChXaWRnZXQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVt
b3ZlQ2hpbGQoV2lkZ2V0Kikgb3ZlcnJpZGU7CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGV4aXN0
cyBmb3IgcG9ydHMgdGhhdCBuZWVkIHRvIGhhbmRsZSB3aGVlbCBldmVudHMgbWFudWFsbHkuCiAg
ICAgLy8gT24gTWFjIFdlYktpdDEgdGhlIHVuZGVybHlpbmcgTlNTY3JvbGxWaWV3IGp1c3QgZG9l
cyB0aGUgc2Nyb2xsaW5nLCBidXQgb24gbW9zdCBvdGhlciBwbGF0Zm9ybXMKQEAgLTQxNiwyMSAr
NDE2LDIxIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEluaXRpYWxWaWV3cG9ydFNpemUoY29uc3Qg
SW50U2l6ZSYgc2l6ZSkgeyBtX2luaXRpYWxWaWV3cG9ydFNpemUgPSBzaXplOyB9CiAjZW5kaWYK
IAotICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgYm9vbCB1cGRhdGVzU2Nyb2xsTGF5ZXJQb3NpdGlvbk9uTWFpblRocmVhZCgpIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCB1cGRhdGVzU2Nyb2xsTGF5ZXJQb3NpdGlvbk9uTWFpblRocmVhZCgpIGNv
bnN0IG92ZXJyaWRlOwogCiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAgIEdyYXBoaWNz
TGF5ZXIqIHNldFdhbnRzTGF5ZXJGb3JUb3BPdmVySGFuZ0FyZWEoYm9vbCkgY29uc3Q7CiAgICAg
R3JhcGhpY3NMYXllciogc2V0V2FudHNMYXllckZvckJvdHRvbU92ZXJIYW5nQXJlYShib29sKSBj
b25zdDsKICNlbmRpZgogCi0gICAgdmlydHVhbCBpbnQgaGVhZGVySGVpZ2h0KCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gbV9oZWFkZXJIZWlnaHQ7IH0KKyAgICB2aXJ0dWFsIGludCBoZWFkZXJI
ZWlnaHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2hlYWRlckhlaWdodDsgfQogICAgIHZv
aWQgc2V0SGVhZGVySGVpZ2h0KGludCk7Ci0gICAgdmlydHVhbCBpbnQgZm9vdGVySGVpZ2h0KCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9mb290ZXJIZWlnaHQ7IH0KKyAgICB2aXJ0dWFsIGlu
dCBmb290ZXJIZWlnaHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Zvb3RlckhlaWdodDsg
fQogICAgIHZvaWQgc2V0Rm9vdGVySGVpZ2h0KGludCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgd2ls
bFN0YXJ0TGl2ZVJlc2l6ZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRW5kTGl2
ZVJlc2l6ZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RhcnRMaXZlUmVzaXpl
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxFbmRMaXZlUmVzaXplKCkgb3ZlcnJp
ZGU7CiAKICAgICB2b2lkIGFkZFBhaW50UGVuZGluZ01pbGVzdG9uZXMoTGF5b3V0TWlsZXN0b25l
cyk7CiAgICAgdm9pZCBmaXJlUGFpbnRSZWxhdGVkTWlsZXN0b25lcygpOwpAQCAtNDU3LDEzICs0
NTcsMTMgQEAgcHVibGljOgogICAgIEZsb2F0UmVjdCBleHBvc2VkUmVjdCgpIGNvbnN0IHsgcmV0
dXJuIG1fZXhwb3NlZFJlY3Q7IH0KIAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgYm9vbCBzY3Jv
bGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRS
ZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRSZWN0JiB1cGRh
dGVSZWN0KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsQ29udGVudHNGYXN0UGF0
aChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xs
LCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNj
cm9sbENvbnRlbnRzU2xvd1BhdGgoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkgb3ZlcnJpZGU7
CiAgICAgCiAgICAgdm9pZCByZXBhaW50U2xvd1JlcGFpbnRPYmplY3RzKCk7CiAKLSAgICB2aXJ0
dWFsIGJvb2wgaXNWZXJ0aWNhbERvY3VtZW50KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBib29sIGlzRmxpcHBlZERvY3VtZW50KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBi
b29sIGlzVmVydGljYWxEb2N1bWVudCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9v
bCBpc0ZsaXBwZWREb2N1bWVudCgpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIGV4
cGxpY2l0IEZyYW1lVmlldyhGcmFtZSYpOwpAQCAtNDgzLDcgKzQ4Myw3IEBAIHByaXZhdGU6CiAK
ICAgICBib29sIGluUHJlTGF5b3V0U3R5bGVVcGRhdGUoKSBjb25zdCB7IHJldHVybiBtX2xheW91
dFBoYXNlID09IEluUHJlTGF5b3V0U3R5bGVVcGRhdGU7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBp
c0ZyYW1lVmlldygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaXNGcmFtZVZpZXcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAg
ICBmcmllbmQgY2xhc3MgUmVuZGVyV2lkZ2V0OwogICAgIGJvb2wgdXNlU2xvd1JlcGFpbnRzKGJv
b2wgY29uc2lkZXJPdmVybGFwID0gdHJ1ZSkgY29uc3Q7CkBAIC01MDQsNDggKzUwNCw0OCBAQCBw
cml2YXRlOgogICAgIHZvaWQgcGVyZm9ybVBvc3RMYXlvdXRUYXNrcygpOwogICAgIHZvaWQgYXV0
b1NpemVJZkVuYWJsZWQoKTsKIAotICAgIHZpcnR1YWwgdm9pZCByZXBhaW50Q29udGVudFJlY3Rh
bmdsZShjb25zdCBJbnRSZWN0JiwgYm9vbCBpbW1lZGlhdGUpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBjb250ZW50c1Jlc2l6ZWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdmlz
aWJsZUNvbnRlbnRzUmVzaXplZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBhZGRlZE9y
UmVtb3ZlZFNjcm9sbGJhcigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBmaXhlZExheW91
dFNpemVDaGFuZ2VkKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlcGFpbnRDb250ZW50
UmVjdGFuZ2xlKGNvbnN0IEludFJlY3QmLCBib29sIGltbWVkaWF0ZSkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGNvbnRlbnRzUmVzaXplZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCB2aXNpYmxlQ29udGVudHNSZXNpemVkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFk
ZGVkT3JSZW1vdmVkU2Nyb2xsYmFyKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGZpeGVk
TGF5b3V0U2l6ZUNoYW5nZWQoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBkZWxlZ2F0
ZXNTY3JvbGxpbmdEaWRDaGFuZ2UoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZWdh
dGVzU2Nyb2xsaW5nRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAKICAgICAvLyBPdmVycmlkZSBTY3Jv
bGxWaWV3IG1ldGhvZHMgdG8gZG8gcG9pbnQgY29udmVyc2lvbiB2aWEgcmVuZGVyZXJzLCBpbiBv
cmRlciB0bwogICAgIC8vIHRha2UgdHJhbnNmb3JtcyBpbnRvIGFjY291bnQuCi0gICAgdmlydHVh
bCBJbnRSZWN0IGNvbnZlcnRUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIEludFJlY3QgY29udmVydEZyb21Db250YWluaW5nVmlldyhj
b25zdCBJbnRSZWN0JikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJbnRQb2ludCBjb252
ZXJ0VG9Db250YWluaW5nVmlldyhjb25zdCBJbnRQb2ludCYpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgSW50UG9pbnQgY29udmVydEZyb21Db250YWluaW5nVmlldyhjb25zdCBJbnRQb2lu
dCYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgSW50UmVjdCBjb252ZXJ0VG9Db250YWlu
aW5nVmlldyhjb25zdCBJbnRSZWN0JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBJbnRS
ZWN0IGNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXcoY29uc3QgSW50UmVjdCYpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgSW50UG9pbnQgY29udmVydFRvQ29udGFpbmluZ1ZpZXcoY29uc3Qg
SW50UG9pbnQmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEludFBvaW50IGNvbnZlcnRG
cm9tQ29udGFpbmluZ1ZpZXcoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZTsKIAogICAg
IC8vIFNjcm9sbGFibGVBcmVhIGludGVyZmFjZQotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
U2Nyb2xsYmFyUmVjdChTY3JvbGxiYXIqLCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIHNjcm9sbFRvKGNvbnN0IEludFNpemUmKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgc2V0VmlzaWJsZVNjcm9sbGVyVGh1bWJSZWN0KGNvbnN0IEludFJlY3QmKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIFNjcm9sbGFibGVBcmVhKiBlbmNsb3NpbmdTY3JvbGxhYmxlQXJl
YSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgSW50UmVjdCBzY3JvbGxhYmxlQXJlYUJv
dW5kaW5nQm94KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNjcm9sbEFuaW1h
dG9yRW5hYmxlZCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
U2Nyb2xsYmFyUmVjdChTY3JvbGxiYXIqLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHNjcm9sbFRvKGNvbnN0IEludFNpemUmKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0VmlzaWJsZVNjcm9sbGVyVGh1bWJSZWN0KGNvbnN0IEludFJlY3QmKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIFNjcm9sbGFibGVBcmVhKiBlbmNsb3NpbmdTY3JvbGxhYmxlQXJl
YSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW50UmVjdCBzY3JvbGxhYmxlQXJlYUJv
dW5kaW5nQm94KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHNjcm9sbEFuaW1h
dG9yRW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRlOwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKLSAgICB2aXJ0dWFsIGJvb2wgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5ZXIqIGxheWVyRm9yU2Nyb2xsaW5nKCkg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBHcmFwaGljc0xheWVyKiBsYXllckZvckhvcml6
b250YWxTY3JvbGxiYXIoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5
ZXIqIGxheWVyRm9yVmVydGljYWxTY3JvbGxiYXIoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIEdyYXBoaWNzTGF5ZXIqIGxheWVyRm9yU2Nyb2xsQ29ybmVyKCkgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBib29sIHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBHcmFwaGljc0xheWVyKiBsYXllckZvclNjcm9sbGluZygpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllciogbGF5ZXJGb3JIb3Jpem9udGFs
U2Nyb2xsYmFyKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBHcmFwaGljc0xheWVyKiBs
YXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBH
cmFwaGljc0xheWVyKiBsYXllckZvclNjcm9sbENvcm5lcigpIGNvbnN0IG92ZXJyaWRlOwogI2lm
IEVOQUJMRShSVUJCRVJfQkFORElORykKLSAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5ZXIqIGxheWVy
Rm9yT3ZlcmhhbmdBcmVhcygpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgR3JhcGhpY3NM
YXllciogbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzKCkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKICNl
bmRpZgogCiAgICAgLy8gT3ZlcnJpZGUgc2Nyb2xsYmFyIG5vdGlmaWNhdGlvbnMgdG8gdXBkYXRl
IHRoZSBBWE9iamVjdCBjYWNoZS4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkU2Nyb2xsYmFyKFNj
cm9sbGJhciosIFNjcm9sbGJhck9yaWVudGF0aW9uKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgd2lsbFJlbW92ZVNjcm9sbGJhcihTY3JvbGxiYXIqLCBTY3JvbGxiYXJPcmllbnRhdGlvbikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZFNjcm9sbGJhcihTY3JvbGxiYXIqLCBT
Y3JvbGxiYXJPcmllbnRhdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1v
dmVTY3JvbGxiYXIoU2Nyb2xsYmFyKiwgU2Nyb2xsYmFyT3JpZW50YXRpb24pIG92ZXJyaWRlOwog
CiAgICAgdm9pZCBzZW5kUmVzaXplRXZlbnRJZk5lZWRlZCgpOwogCiAgICAgdm9pZCB1cGRhdGVT
Y3JvbGxhYmxlQXJlYVNldCgpOwogCi0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVBhZ2VUaGF0Q29u
dGVudEFyZWFXaWxsUGFpbnQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5UGFnZVRoYXRDb250ZW50QXJlYVdpbGxQYWludCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
Ym9vbCBzaG91bGRVc2VMb2FkVGltZURlZmVycmVkUmVwYWludERlbGF5KCkgY29uc3Q7CiAgICAg
dm9pZCBkZWZlcnJlZFJlcGFpbnRUaW1lckZpcmVkKFRpbWVyPEZyYW1lVmlldz4mKTsKQEAgLTU2
MCw3ICs1NjAsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBoYXNDdXN0b21TY3JvbGxiYXJzKCkg
Y29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU2Nyb2xsQ29ybmVyKCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNjcm9sbENvcm5lcigpIG92ZXJyaWRlOwogCiAgICAg
RnJhbWVWaWV3KiBwYXJlbnRGcmFtZVZpZXcoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
RGVidWdnYWJsZS5oCmluZGV4IGM5OTI5NGQuLjNmYmI5OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VEZWJ1Z2dhYmxlLmgKQEAgLTQxLDE3ICs0MSwxNyBAQCBwdWJsaWM6CiAgICAgUGFnZURlYnVn
Z2FibGUoUGFnZSYpOwogICAgIH5QYWdlRGVidWdnYWJsZSgpIHsgfQogCi0gICAgdmlydHVhbCBJ
bnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvckRlYnVnZ2FibGU6OkRlYnVnZ2FibGVUeXBlIHR5cGUo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3RvckRlYnVn
Z2FibGU6OldlYjsgfQorICAgIHZpcnR1YWwgSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JEZWJ1
Z2dhYmxlOjpEZWJ1Z2dhYmxlVHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gSW5z
cGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JEZWJ1Z2dhYmxlOjpXZWI7IH0KIAotICAgIHZpcnR1YWwg
U3RyaW5nIG5hbWUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyB1cmwoKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaGFzTG9jYWxEZWJ1Z2dlcigpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgcGlkX3QgcGFyZW50UHJvY2Vzc0lkZW50aWZpZXIoKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBuYW1lKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBTdHJpbmcgdXJsKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBi
b29sIGhhc0xvY2FsRGVidWdnZXIoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHBpZF90
IHBhcmVudFByb2Nlc3NJZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgY29ubmVjdChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCopIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGVGcm9udGVuZChjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRpY2F0aW5nKGJvb2wpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0KEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJv
bnRlbmRDaGFubmVsKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3QoKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZUZyb250
ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNl
dEluZGljYXRpbmcoYm9vbCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgUGFnZSYgbV9wYWdl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAppbmRleCAwOTNkYjg4Li42ZTUx
MmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcApAQCAtMTA0LDEwICsx
MDQsMTAgQEAgcHJpdmF0ZToKICAgICBQYWdlU2VyaWFsaXplciYgbV9zZXJpYWxpemVyOwogICAg
IERvY3VtZW50JiBtX2RvY3VtZW50OwogCi0gICAgdmlydHVhbCB2b2lkIGFwcGVuZFRleHQoU3Ry
aW5nQnVpbGRlciYsIGNvbnN0IFRleHQmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYXBw
ZW5kRWxlbWVudChTdHJpbmdCdWlsZGVyJiwgY29uc3QgRWxlbWVudCYsIE5hbWVzcGFjZXMqKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kQ3VzdG9tQXR0cmlidXRlcyhTdHJpbmdC
dWlsZGVyJiwgY29uc3QgRWxlbWVudCYsIE5hbWVzcGFjZXMqKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgYXBwZW5kRW5kVGFnKGNvbnN0IE5vZGUmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgYXBwZW5kVGV4dChTdHJpbmdCdWlsZGVyJiwgY29uc3QgVGV4dCYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRFbGVtZW50KFN0cmluZ0J1aWxkZXImLCBjb25zdCBFbGVt
ZW50JiwgTmFtZXNwYWNlcyopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRDdXN0
b21BdHRyaWJ1dGVzKFN0cmluZ0J1aWxkZXImLCBjb25zdCBFbGVtZW50JiwgTmFtZXNwYWNlcyop
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRFbmRUYWcoY29uc3QgTm9kZSYpIG92
ZXJyaWRlOwogfTsKIAogU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjpTZXJpYWxpemVyTWFy
a3VwQWNjdW11bGF0b3IoUGFnZVNlcmlhbGl6ZXImIHNlcmlhbGl6ZXIsIERvY3VtZW50JiBkb2N1
bWVudCwgVmVjdG9yPE5vZGUqPiogbm9kZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BlcmZvcm1hbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKaW5k
ZXggNWE1M2I0Yi4uN2U3YTY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaApAQCAtNTcs
OCArNTcsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UGVyZm9ybWFuY2U+IGNy
ZWF0ZShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBQZXJmb3JtYW5jZShmcmFt
ZSkpOyB9CiAgICAgflBlcmZvcm1hbmNlKCk7CiAKLSAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50
ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gUGVy
Zm9ybWFuY2VFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KLSAgICB2aXJ0dWFsIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUGVyZm9ybWFuY2VFdmVudFRhcmdldEludGVyZmFjZVR5
cGU7IH0KKyAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFBlcmZvcm1hbmNlTmF2aWdhdGlvbiog
bmF2aWdhdGlvbigpIGNvbnN0OwogICAgIFBlcmZvcm1hbmNlVGltaW5nKiB0aW1pbmcoKSBjb25z
dDsKQEAgLTkzLDggKzkzLDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBQZXJm
b3JtYW5jZShGcmFtZSopOwogCi0gICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgT1ZF
UlJJREUgeyByZWYoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgT1ZF
UlJJREUgeyBkZXJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3Zl
cnJpZGUgeyByZWYoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3Zl
cnJpZGUgeyBkZXJlZigpOyB9CiAgICAgYm9vbCBpc1Jlc291cmNlVGltaW5nQnVmZmVyRnVsbCgp
OwogCiAgICAgbXV0YWJsZSBSZWZQdHI8UGVyZm9ybWFuY2VOYXZpZ2F0aW9uPiBtX25hdmlnYXRp
b247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1lci5oCmluZGV4IGUwZTUxNDEuLjMw
MmNjNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1lci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1lci5oCkBAIC01OCwxMSAr
NTgsMTEgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSA9IDA7CiAKICAgICAv
LyBBY3RpdmVET01PYmplY3QKLSAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3QgRklOQUwgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3AoKSBGSU5BTCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0IEZJTkFMIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIEZJTkFMIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKSBGSU5BTCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgRklOQUwgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHN0b3AoKSBGSU5BTCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
Y2FuU3VzcGVuZCgpIGNvbnN0IEZJTkFMIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdXNw
ZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pIEZJTkFMIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCByZXN1bWUoKSBGSU5BTCBvdmVycmlkZTsKIAogICAgIGJvb2wgbV9zdXNwZW5kZWQ7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5oCmlu
ZGV4IGYzMTQ5YzAuLmRmNjUxMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vSW1wbGljaXRBbmltYXRpb24uaApAQCAtNDksMTkgKzQ5LDE5IEBAIHB1YmxpYzoKICAg
ICBDU1NQcm9wZXJ0eUlEIHRyYW5zaXRpb25Qcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJh
bnNpdGlvblByb3BlcnR5OyB9CiAgICAgQ1NTUHJvcGVydHlJRCBhbmltYXRpbmdQcm9wZXJ0eSgp
IGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0aW5nUHJvcGVydHk7IH0KIAotICAgIHZpcnR1YWwgdm9p
ZCBvbkFuaW1hdGlvbkVuZChkb3VibGUgZWxhcHNlZFRpbWUpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgYm9vbCBzdGFydEFuaW1hdGlvbihkb3VibGUgdGltZU9mZnNldCkgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIHBhdXNlQW5pbWF0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0KSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgZW5kQW5pbWF0aW9uKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIG9uQW5pbWF0aW9uRW5kKGRvdWJsZSBlbGFwc2VkVGltZSkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIHN0YXJ0QW5pbWF0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0KSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcGF1c2VBbmltYXRpb24oZG91YmxlIHRpbWVPZmZzZXQpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBlbmRBbmltYXRpb24oKSBvdmVycmlkZTsKIAotICAgIHZpcnR1
YWwgdm9pZCBhbmltYXRlKENvbXBvc2l0ZUFuaW1hdGlvbiosIFJlbmRlckVsZW1lbnQqLCBjb25z
dCBSZW5kZXJTdHlsZSogY3VycmVudFN0eWxlLCBSZW5kZXJTdHlsZSogdGFyZ2V0U3R5bGUsIFJl
ZlB0cjxSZW5kZXJTdHlsZT4mIGFuaW1hdGVkU3R5bGUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBnZXRBbmltYXRlZFN0eWxlKFJlZlB0cjxSZW5kZXJTdHlsZT4mIGFuaW1hdGVkU3R5bGUp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlKENvbXBvc2l0ZUFuaW1hdGlvbios
IFJlbmRlckVsZW1lbnQqLCBjb25zdCBSZW5kZXJTdHlsZSogY3VycmVudFN0eWxlLCBSZW5kZXJT
dHlsZSogdGFyZ2V0U3R5bGUsIFJlZlB0cjxSZW5kZXJTdHlsZT4mIGFuaW1hdGVkU3R5bGUpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBnZXRBbmltYXRlZFN0eWxlKFJlZlB0cjxSZW5kZXJT
dHlsZT4mIGFuaW1hdGVkU3R5bGUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZXNldChS
ZW5kZXJTdHlsZSogdG8pOwogCiAgICAgdm9pZCBzZXRPdmVycmlkZGVuKGJvb2wpOwotICAgIHZp
cnR1YWwgYm9vbCBvdmVycmlkZGVuKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9vdmVycmlk
ZGVuOyB9CisgICAgdmlydHVhbCBib29sIG92ZXJyaWRkZW4oKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX292ZXJyaWRkZW47IH0KIAotICAgIHZpcnR1YWwgYm9vbCBhZmZlY3RzUHJvcGVydHko
Q1NTUHJvcGVydHlJRCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGFmZmVjdHNQ
cm9wZXJ0eShDU1NQcm9wZXJ0eUlEKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wgaGFzU3R5
bGUoKSBjb25zdCB7IHJldHVybiBtX2Zyb21TdHlsZSAmJiBtX3RvU3R5bGU7IH0KIApAQCAtNjks
NyArNjksNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGJsZW5kUHJvcGVydHlWYWx1ZUluU3R5bGUo
Q1NTUHJvcGVydHlJRCwgUmVuZGVyU3R5bGUqKTsKIAotICAgIHZpcnR1YWwgZG91YmxlIHRpbWVU
b05leHRTZXJ2aWNlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBkb3VibGUgdGltZVRvTmV4dFNl
cnZpY2UoKSBvdmVycmlkZTsKICAgICAKICAgICBib29sIGFjdGl2ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fYWN0aXZlOyB9CiAgICAgdm9pZCBzZXRBY3RpdmUoYm9vbCBiKSB7IG1fYWN0aXZlID0gYjsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmlt
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9u
LmgKaW5kZXggNDcwYjE5MC4uMWE4Njc0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5oCkBAIC00NSw4ICs0NSw4IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBLZXlmcmFtZUFuaW1hdGlvbihhbmltYXRpb24s
IHJlbmRlcmVyLCBpbmRleCwgY29tcG9zaXRlQW5pbWF0aW9uLCB1bmFuaW1hdGVkU3R5bGUpKTsK
ICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZShDb21wb3NpdGVBbmltYXRpb24qLCBS
ZW5kZXJFbGVtZW50KiwgY29uc3QgUmVuZGVyU3R5bGUqIGN1cnJlbnRTdHlsZSwgUmVuZGVyU3R5
bGUqIHRhcmdldFN0eWxlLCBSZWZQdHI8UmVuZGVyU3R5bGU+JiBhbmltYXRlZFN0eWxlKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0QW5pbWF0ZWRTdHlsZShSZWZQdHI8UmVuZGVyU3R5
bGU+JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGFuaW1hdGUoQ29tcG9zaXRlQW5pbWF0
aW9uKiwgUmVuZGVyRWxlbWVudCosIGNvbnN0IFJlbmRlclN0eWxlKiBjdXJyZW50U3R5bGUsIFJl
bmRlclN0eWxlKiB0YXJnZXRTdHlsZSwgUmVmUHRyPFJlbmRlclN0eWxlPiYgYW5pbWF0ZWRTdHls
ZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGdldEFuaW1hdGVkU3R5bGUoUmVmUHRyPFJl
bmRlclN0eWxlPiYpIG92ZXJyaWRlOwogCiAgICAgY29uc3QgS2V5ZnJhbWVMaXN0JiBrZXlmcmFt
ZXMoKSBjb25zdCB7IHJldHVybiBtX2tleWZyYW1lczsgfQogCkBAIC01OSwyMyArNTksMjMgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0VW5hbmltYXRlZFN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5
bGU+IHN0eWxlKSB7IG1fdW5hbmltYXRlZFN0eWxlID0gc3R5bGU7IH0KICAgICBSZW5kZXJTdHls
ZSogdW5hbmltYXRlZFN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV91bmFuaW1hdGVkU3R5bGUuZ2V0
KCk7IH0KIAotICAgIHZpcnR1YWwgZG91YmxlIHRpbWVUb05leHRTZXJ2aWNlKCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBkb3VibGUgdGltZVRvTmV4dFNlcnZpY2UoKSBvdmVycmlkZTsKIAogcHJv
dGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCBvbkFuaW1hdGlvblN0YXJ0KGRvdWJsZSBlbGFwc2Vk
VGltZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG9uQW5pbWF0aW9uSXRlcmF0aW9uKGRv
dWJsZSBlbGFwc2VkVGltZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG9uQW5pbWF0aW9u
RW5kKGRvdWJsZSBlbGFwc2VkVGltZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHN0YXJ0
QW5pbWF0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
cGF1c2VBbmltYXRpb24oZG91YmxlIHRpbWVPZmZzZXQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBlbmRBbmltYXRpb24oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgb25BbmltYXRp
b25TdGFydChkb3VibGUgZWxhcHNlZFRpbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBv
bkFuaW1hdGlvbkl0ZXJhdGlvbihkb3VibGUgZWxhcHNlZFRpbWUpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBvbkFuaW1hdGlvbkVuZChkb3VibGUgZWxhcHNlZFRpbWUpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgYm9vbCBzdGFydEFuaW1hdGlvbihkb3VibGUgdGltZU9mZnNldCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHBhdXNlQW5pbWF0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0KSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5kQW5pbWF0aW9uKCkgb3ZlcnJpZGU7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgb3ZlcnJpZGVBbmltYXRpb25zKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHJlc3VtZU92ZXJyaWRkZW5BbmltYXRpb25zKCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIG92ZXJyaWRlQW5pbWF0aW9ucygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBy
ZXN1bWVPdmVycmlkZGVuQW5pbWF0aW9ucygpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzaG91bGRT
ZW5kRXZlbnRGb3JMaXN0ZW5lcihEb2N1bWVudDo6TGlzdGVuZXJUeXBlIGluTGlzdGVuZXJUeXBl
KSBjb25zdDsKICAgICBib29sIHNlbmRBbmltYXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcm
LCBkb3VibGUgZWxhcHNlZFRpbWUpOwogCi0gICAgdmlydHVhbCBib29sIGFmZmVjdHNQcm9wZXJ0
eShDU1NQcm9wZXJ0eUlEKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgYWZmZWN0
c1Byb3BlcnR5KENTU1Byb3BlcnR5SUQpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCB2YWxp
ZGF0ZVRyYW5zZm9ybUZ1bmN0aW9uTGlzdCgpOwogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaAppbmRleCA1NWI0OWIxLi4xNmMxOWI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5o
CkBAIC02NiwzMSArNjYsMzEgQEAgcHJvdGVjdGVkOgogICAgIFBhc3NSZWZQdHI8U2Nyb2xsaW5n
VHJlZT4gcmVsZWFzZVNjcm9sbGluZ1RyZWUoKSB7IHJldHVybiBtX3Njcm9sbGluZ1RyZWUucmVs
ZWFzZSgpOyB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGlzQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaXNBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzRml4ZWRQb3NpdGlvbkxheWVy
cygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaGFz
VmlzaWJsZVNsb3dSZXBhaW50Vmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMoRnJhbWVWaWV3Kikg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9y
dHNGaXhlZFBvc2l0aW9uTGF5ZXJzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBoYXNWaXNpYmxlU2xvd1JlcGFpbnRWaWV3cG9ydENvbnN0cmFpbmVk
T2JqZWN0cyhGcmFtZVZpZXcqKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCi0g
ICAgdmlydHVhbCB2b2lkIGZyYW1lVmlld0xheW91dFVwZGF0ZWQoRnJhbWVWaWV3KikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGZyYW1lVmlld1Jvb3RMYXllckRpZENoYW5nZShGcmFtZVZp
ZXcqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZnJhbWVWaWV3TGF5b3V0VXBkYXRlZChG
cmFtZVZpZXcqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZnJhbWVWaWV3Um9vdExheWVy
RGlkQ2hhbmdlKEZyYW1lVmlldyopIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIHJlcXVl
c3RTY3JvbGxQb3NpdGlvblVwZGF0ZShGcmFtZVZpZXcqLCBjb25zdCBJbnRQb2ludCYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgYm9vbCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoRnJhbWVW
aWV3KiwgY29uc3QgSW50UG9pbnQmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgU2Nyb2xsaW5n
Tm9kZUlEIGF0dGFjaFRvU3RhdGVUcmVlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2Rl
SUQgbmV3Tm9kZUlELCBTY3JvbGxpbmdOb2RlSUQgcGFyZW50SUQpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBkZXRhY2hGcm9tU3RhdGVUcmVlKFNjcm9sbGluZ05vZGVJRCkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyU3RhdGVUcmVlKCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBTY3JvbGxpbmdOb2RlSUQgYXR0YWNoVG9TdGF0ZVRyZWUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNj
cm9sbGluZ05vZGVJRCBuZXdOb2RlSUQsIFNjcm9sbGluZ05vZGVJRCBwYXJlbnRJRCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGRldGFjaEZyb21TdGF0ZVRyZWUoU2Nyb2xsaW5nTm9kZUlE
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJTdGF0ZVRyZWUoKSBvdmVycmlkZTsK
IAotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWV3cG9ydENvbnN0cmFpbmVkTm9kZShTY3JvbGxp
bmdOb2RlSUQsIGNvbnN0IFZpZXdwb3J0Q29uc3RyYWludHMmLCBHcmFwaGljc0xheWVyKikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNjcm9sbGluZ05vZGUoU2Nyb2xsaW5nTm9k
ZUlELCBHcmFwaGljc0xheWVyKiBzY3JvbGxMYXllciwgR3JhcGhpY3NMYXllciogY291bnRlclNj
cm9sbGluZ0xheWVyKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBzY3JvbGxpbmdTdGF0
ZVRyZWVBc1RleHQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNSdWJiZXJC
YW5kSW5Qcm9ncmVzcygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3Jv
bGxQaW5uaW5nQmVoYXZpb3IoU2Nyb2xsUGlubmluZ0JlaGF2aW9yKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlVmlld3BvcnRDb25zdHJhaW5lZE5vZGUoU2Nyb2xsaW5nTm9kZUlE
LCBjb25zdCBWaWV3cG9ydENvbnN0cmFpbnRzJiwgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTY3JvbGxpbmdOb2RlKFNjcm9sbGluZ05vZGVJRCwgR3Jh
cGhpY3NMYXllciogc2Nyb2xsTGF5ZXIsIEdyYXBoaWNzTGF5ZXIqIGNvdW50ZXJTY3JvbGxpbmdM
YXllcikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgc2Nyb2xsaW5nU3RhdGVUcmVlQXNU
ZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzUnViYmVyQmFuZEluUHJv
Z3Jlc3MoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUGlubmlu
Z0JlaGF2aW9yKFNjcm9sbFBpbm5pbmdCZWhhdmlvcikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgc3luY0NoaWxkUG9zaXRpb25zKGNvbnN0IExheW91dFJlY3QmIHZpZXdwb3J0UmVjdCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNjcm9sbGFibGVBcmVhU2Nyb2xsYmFyTGF5ZXJE
aWRDaGFuZ2UoU2Nyb2xsYWJsZUFyZWEqLCBTY3JvbGxiYXJPcmllbnRhdGlvbikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIHN5bmNDaGlsZFBvc2l0aW9ucyhjb25zdCBMYXlvdXRSZWN0JiB2
aWV3cG9ydFJlY3QpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxhYmxlQXJlYVNj
cm9sbGJhckxheWVyRGlkQ2hhbmdlKFNjcm9sbGFibGVBcmVhKiwgU2Nyb2xsYmFyT3JpZW50YXRp
b24pIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHJlY29tcHV0ZVdoZWVsRXZlbnRIYW5k
bGVyQ291bnRGb3JGcmFtZVZpZXcoRnJhbWVWaWV3KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHNldFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucyhTeW5jaHJvbm91c1Njcm9sbGluZ1Jl
YXNvbnMpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZWNvbXB1dGVXaGVlbEV2ZW50SGFu
ZGxlckNvdW50Rm9yRnJhbWVWaWV3KEZyYW1lVmlldyopIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzZXRTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMoU3luY2hyb25vdXNTY3JvbGxpbmdS
ZWFzb25zKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVRyZWVTdGF0ZUNv
bW1pdCgpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nQ29uc3RyYWludHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ0NvbnN0cmFpbnRzLmgKaW5kZXggZWY5YTI0Yi4uZDRjMWRkNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29uc3RyYWludHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb25zdHJhaW50cy5oCkBA
IC0xMDQsNyArMTA0LDcgQEAgcHVibGljOgogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBGaXhl
ZFBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50cyYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuICEoKnRo
aXMgPT0gb3RoZXIpOyB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBDb25zdHJhaW50VHlwZSBj
b25zdHJhaW50VHlwZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIEZpeGVkUG9zaXRpb25Db25z
dHJhaW50OyB9OworICAgIHZpcnR1YWwgQ29uc3RyYWludFR5cGUgY29uc3RyYWludFR5cGUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBGaXhlZFBvc2l0aW9uQ29uc3RyYWludDsgfTsKIAogICAg
IEZsb2F0UmVjdCBtX3ZpZXdwb3J0UmVjdEF0TGFzdExheW91dDsKICAgICBGbG9hdFBvaW50IG1f
bGF5ZXJQb3NpdGlvbkF0TGFzdExheW91dDsKQEAgLTE4MCw3ICsxODAsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50
cyYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOyB9CiAKIHByaXZhdGU6
Ci0gICAgdmlydHVhbCBDb25zdHJhaW50VHlwZSBjb25zdHJhaW50VHlwZSgpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIFN0aWNreVBvc2l0aW9uQ29uc3RyYWludDsgfTsKKyAgICB2aXJ0dWFsIENv
bnN0cmFpbnRUeXBlIGNvbnN0cmFpbnRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gU3Rp
Y2t5UG9zaXRpb25Db25zdHJhaW50OyB9OwogCiAgICAgZmxvYXQgbV9sZWZ0T2Zmc2V0OwogICAg
IGZsb2F0IG1fcmlnaHRPZmZzZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUuaAppbmRleCAzMDgzNTY4Li4xMTVjMzQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0
ZUZpeGVkTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1N0YXRlRml4ZWROb2RlLmgKQEAgLTU2LDkgKzU2LDkgQEAgcHJpdmF0ZToKICAgICBTY3JvbGxp
bmdTdGF0ZUZpeGVkTm9kZShTY3JvbGxpbmdTdGF0ZVRyZWUmLCBTY3JvbGxpbmdOb2RlSUQpOwog
ICAgIFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlKGNvbnN0IFNjcm9sbGluZ1N0YXRlRml4ZWROb2Rl
JiwgU2Nyb2xsaW5nU3RhdGVUcmVlJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3luY0xheWVyUG9z
aXRpb25Gb3JWaWV3cG9ydFJlY3QoY29uc3QgTGF5b3V0UmVjdCYgdmlld3BvcnRSZWN0KSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3luY0xheWVyUG9zaXRpb25Gb3JWaWV3cG9ydFJlY3Qo
Y29uc3QgTGF5b3V0UmVjdCYgdmlld3BvcnRSZWN0KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwg
dm9pZCBkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiwgaW50IGluZGVudCkgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mLCBpbnQgaW5k
ZW50KSBjb25zdCBvdmVycmlkZTsKIAogICAgIEZpeGVkUG9zaXRpb25WaWV3cG9ydENvbnN0cmFp
bnRzIG1fY29uc3RyYWludHM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAppbmRleCAyZWY1MzMx
Li4yZDc5ZjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaApAQCAtMTI0LDcgKzEyNCw3IEBAIHB1
YmxpYzoKIAogICAgIGJvb2wgcmVxdWVzdGVkU2Nyb2xsUG9zaXRpb25SZXByZXNlbnRzUHJvZ3Jh
bW1hdGljU2Nyb2xsKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxQb3NpdGlvblJl
cHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGw7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBkdW1wUHJv
cGVydGllcyhUZXh0U3RyZWFtJiwgaW50IGluZGVudCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50KSBjb25zdCBv
dmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoU2Ny
b2xsaW5nU3RhdGVUcmVlJiwgU2Nyb2xsaW5nTm9kZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmgKaW5kZXgg
MThjMjk1Yi4uZTA5MTIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmgKQEAgLTU2LDkgKzU2LDkgQEAgcHJp
dmF0ZToKICAgICBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUoU2Nyb2xsaW5nU3RhdGVUcmVlJiwg
U2Nyb2xsaW5nTm9kZUlEKTsKICAgICBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUoY29uc3QgU2Ny
b2xsaW5nU3RhdGVTdGlja3lOb2RlJiwgU2Nyb2xsaW5nU3RhdGVUcmVlJik7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgc3luY0xheWVyUG9zaXRpb25Gb3JWaWV3cG9ydFJlY3QoY29uc3QgTGF5b3V0UmVj
dCYgdmlld3BvcnRSZWN0KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3luY0xheWVyUG9z
aXRpb25Gb3JWaWV3cG9ydFJlY3QoY29uc3QgTGF5b3V0UmVjdCYgdmlld3BvcnRSZWN0KSBvdmVy
cmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiwgaW50
IGluZGVudCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGR1bXBQcm9wZXJ0aWVz
KFRleHRTdHJlYW0mLCBpbnQgaW5kZW50KSBjb25zdCBvdmVycmlkZTsKIAogICAgIFN0aWNreVBv
c2l0aW9uVmlld3BvcnRDb25zdHJhaW50cyBtX2NvbnN0cmFpbnRzOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZS5oCmluZGV4IGRlMGM4YTAuLjM2NWJiZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaApAQCAt
NDQsMTAgKzQ0LDEwIEBAIGNsYXNzIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlIDogcHVibGlj
IFNjcm9sbGluZ1RyZWVOb2RlIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZSgpOwogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJlZm9yZUNoaWxkcmVu
KGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsK
IAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaW1wbGVtZW50IHRoaXMgd2hlbiB3ZSBzdXBwb3J0
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlcyBhcyBjaGlsZHJlbi4KLSAgICB2aXJ0dWFsIHZv
aWQgcGFyZW50U2Nyb2xsUG9zaXRpb25EaWRDaGFuZ2UoY29uc3QgSW50UmVjdCYgLyp2aWV3cG9y
dFJlY3QqLywgY29uc3QgRmxvYXRTaXplJiAvKmN1bXVsYXRpdmVEZWx0YSovKSBPVkVSUklERSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGFyZW50U2Nyb2xsUG9zaXRpb25EaWRDaGFuZ2UoY29uc3Qg
SW50UmVjdCYgLyp2aWV3cG9ydFJlY3QqLywgY29uc3QgRmxvYXRTaXplJiAvKmN1bXVsYXRpdmVE
ZWx0YSovKSBvdmVycmlkZSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Ny
b2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDk0NGUyY2Iu
LjcyNGFmZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVh
ZGVkU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Ro
cmVhZGVkU2Nyb2xsaW5nVHJlZS5oCkBAIC00NywyNiArNDcsMjYgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCB+VGhyZWFkZWRTY3JvbGxpbmdUcmVlKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY29t
bWl0TmV3VHJlZVN0YXRlKFBhc3NPd25QdHI8U2Nyb2xsaW5nU3RhdGVUcmVlPikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGNvbW1pdE5ld1RyZWVTdGF0ZShQYXNzT3duUHRyPFNjcm9sbGlu
Z1N0YXRlVHJlZT4pIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGhhbmRsZVdoZWVsRXZl
bnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGU7CiAK
ICAgICAvLyBDYW4gYmUgY2FsbGVkIGZyb20gYW55IHRocmVhZC4gV2lsbCB0cnkgdG8gaGFuZGxl
IHRoZSB3aGVlbCBldmVudCBvbiB0aGUgc2Nyb2xsaW5nIHRocmVhZC4KICAgICAvLyBSZXR1cm5z
IHRydWUgaWYgdGhlIHdoZWVsIGV2ZW50IGNhbiBiZSBoYW5kbGVkIG9uIHRoZSBzY3JvbGxpbmcg
dGhyZWFkIGFuZCBmYWxzZSBpZiB0aGUKICAgICAvLyBldmVudCBtdXN0IGJlIHNlbnQgYWdhaW4g
dG8gdGhlIFdlYkNvcmUgZXZlbnQgaGFuZGxlci4KLSAgICB2aXJ0dWFsIEV2ZW50UmVzdWx0IHRy
eVRvSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIEV2ZW50UmVzdWx0IHRyeVRvSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGUoKSBvdmVycmlkZTsKIAog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBUaHJlYWRlZFNjcm9sbGluZ1RyZWUoQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvciopOwotICAgIHZpcnR1YWwgYm9vbCBpc1RocmVhZGVkU2Nyb2xsaW5nVHJl
ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNU
aHJlYWRlZFNjcm9sbGluZ1RyZWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAK
LSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZU5vZGUoU2Ny
b2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQ
YXNzT3duUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVOb2RlKFNjcm9sbGluZ05vZGVUeXBl
LCBTY3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZU1h
aW5GcmFtZVNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgU2V0
T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbiA9IFN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9u
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRp
b24oY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBTZXRPclN5bmNTY3JvbGxpbmdMYXll
clBvc2l0aW9uID0gU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24pIG92ZXJyaWRlOwogI2lmIFBM
QVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRm
b3JtV2hlZWxFdmVudFBoYXNlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlV2hl
ZWxFdmVudFBoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlKSBvdmVycmlkZTsKICNlbmRpZgog
CiAgICAgUmVmUHRyPEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I+IG1fc2Nyb2xsaW5nQ29vcmRp
bmF0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jb29yZGlu
YXRlZGdyYXBoaWNzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxp
bmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuaAppbmRleCA2ZTg0YmMwLi5jYWQyNjc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jb29yZGluYXRlZGdy
YXBoaWNzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5n
Q29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzLmgKQEAgLTM5LDE2ICszOSwxNiBAQCBwdWJs
aWM6CiAgICAgZXhwbGljaXQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNz
KFBhZ2UqKTsKICAgICB2aXJ0dWFsIH5TY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3Jh
cGhpY3MoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZpeGVkUG9zaXRpb25MYXllcnMo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBv
cnRzRml4ZWRQb3NpdGlvbkxheWVycygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
IAotICAgIHZpcnR1YWwgU2Nyb2xsaW5nTm9kZUlEIGF0dGFjaFRvU3RhdGVUcmVlKFNjcm9sbGlu
Z05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbmV3Tm9kZUlELCBTY3JvbGxpbmdOb2RlSUQgcGFy
ZW50SUQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hGcm9tU3RhdGVUcmVlKFNj
cm9sbGluZ05vZGVJRCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyU3RhdGVUcmVl
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBTY3JvbGxpbmdOb2RlSUQgYXR0YWNoVG9TdGF0ZVRy
ZWUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBuZXdOb2RlSUQsIFNjcm9sbGlu
Z05vZGVJRCBwYXJlbnRJRCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRldGFjaEZyb21T
dGF0ZVRyZWUoU2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xl
YXJTdGF0ZVRyZWUoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWV3cG9y
dENvbnN0cmFpbmVkTm9kZShTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFZpZXdwb3J0Q29uc3RyYWlu
dHMmLCBHcmFwaGljc0xheWVyKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVZp
ZXdwb3J0Q29uc3RyYWluZWROb2RlKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgVmlld3BvcnRDb25z
dHJhaW50cyYsIEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGxhYmxlQXJlYVNjcm9sbExheWVyRGlkQ2hhbmdlKFNjcm9sbGFibGVBcmVhKikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95U2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJs
ZUFyZWEqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYWJsZUFyZWFTY3JvbGxM
YXllckRpZENoYW5nZShTY3JvbGxhYmxlQXJlYSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRGVzdHJveVNjcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVhKikgb3ZlcnJpZGU7CiAK
IHByaXZhdGU6CiAgICAgT3duUHRyPFNjcm9sbGluZ1N0YXRlVHJlZT4gbV9zY3JvbGxpbmdTdGF0
ZVRyZWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Ny
b2xsaW5nQ29vcmRpbmF0b3JJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lv
cy9TY3JvbGxpbmdDb29yZGluYXRvcklPUy5oCmluZGV4IGI0M2FlYTAuLmM5NTk4ZTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdDb29yZGlu
YXRvcklPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxp
bmdDb29yZGluYXRvcklPUy5oCkBAIC00NSwxNCArNDUsMTQgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB2b2lkIHBhZ2VEZXN0cm95ZWQoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBjb21taXRUcmVl
U3RhdGVJZk5lZWRlZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb21taXRUcmVlU3Rh
dGVJZk5lZWRlZCgpIG92ZXJyaWRlOwogCiAgICAgLy8gSGFuZGxlIHRoZSB3aGVlbCBldmVudCBv
biB0aGUgc2Nyb2xsaW5nIHRocmVhZC4gUmV0dXJucyB3aGV0aGVyIHRoZSBldmVudCB3YXMgaGFu
ZGxlZCBvciBub3QuCi0gICAgdmlydHVhbCBib29sIGhhbmRsZVdoZWVsRXZlbnQoRnJhbWVWaWV3
KiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlV2hlZWxFdmVudChGcmFtZVZpZXcqLCBjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiBwcml2YXRlOgot
ICAgIHZpcnR1YWwgUGFzc093blB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5n
VHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlVHJlZVN0YXRlQ29tbWl0KCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBQYXNzT3duUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVl
Tm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2NoZWR1bGVUcmVlU3RhdGVDb21taXQoKSBvdmVycmlkZTsKIAogICAgIHZv
aWQgc2Nyb2xsaW5nU3RhdGVUcmVlQ29tbWl0dGVyVGltZXJGaXJlZChUaW1lcjxTY3JvbGxpbmdD
b29yZGluYXRvcklPUz4qKTsKICAgICB2b2lkIGNvbW1pdFRyZWVTdGF0ZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmgKaW5k
ZXggZGYyOTQzOS4uODQ5MTE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5oCkBAIC00MiwyMyArNDIsMjMgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBSZWZQdHI8U2Nyb2xsaW5nVHJlZUlPUz4gY3JlYXRlKEFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IqKTsKICAgICB2aXJ0dWFsIH5TY3JvbGxpbmdUcmVlSU9TKCk7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgY29tbWl0TmV3VHJlZVN0YXRlKFBhc3NPd25QdHI8U2Nyb2xsaW5nU3Rh
dGVUcmVlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNvbW1pdE5ld1RyZWVTdGF0ZShQ
YXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlVHJlZT4pIG92ZXJyaWRlOwogCiAgICAgLy8gTm8gd2hl
ZWwgZXZlbnRzIG9uIGlPUwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgRXZlbnRSZXN1
bHQgdHJ5VG9IYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIE9WRVJS
SURFIHsgcmV0dXJuIERpZE5vdEhhbmRsZUV2ZW50OyB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRs
ZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGUgeyB9CisgICAg
dmlydHVhbCBFdmVudFJlc3VsdCB0cnlUb0hhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50Jikgb3ZlcnJpZGUgeyByZXR1cm4gRGlkTm90SGFuZGxlRXZlbnQ7IH0KIAotICAg
IHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGlu
dmFsaWRhdGUoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBTY3JvbGxpbmdU
cmVlSU9TKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNT
Y3JvbGxpbmdUcmVlSU9TKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBpc1Njcm9sbGluZ1RyZWVJT1MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CiAKLSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0
ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBQYXNzT3duUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVOb2RlKFNjcm9sbGlu
Z05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lk
IHVwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBzY3JvbGxQb3Np
dGlvbiwgU2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbiA9IFN5bmNTY3JvbGxpbmdMYXll
clBvc2l0aW9uKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTWFpbkZyYW1lU2Ny
b2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBTZXRPclN5bmNTY3Jv
bGxpbmdMYXllclBvc2l0aW9uID0gU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24pIG92ZXJyaWRl
OwogI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlV2hlZWxFdmVudFBo
YXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlKSBvdmVycmlk
ZSB7IH0KICNlbmRpZgogCiAgICAgUmVmUHRyPEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I+IG1f
c2Nyb2xsaW5nQ29vcmRpbmF0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1MuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUy5oCmlu
ZGV4IDFmYWRhMGYuLjg1OWZhNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUy5o
CkBAIC00NCw5ICs0NCw5IEBAIHByaXZhdGU6CiAgICAgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVJT1MoU2Nyb2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVJRCk7CiAKICAgICAvLyBTY3JvbGxp
bmdUcmVlTm9kZSBtZW1iZXIgZnVuY3Rpb25zLgotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVCZWZv
cmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQmVmb3Jl
Q2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50Jikgb3ZlcnJpZGUgeyB9CiAKICAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbigp
IGNvbnN0OwogICAgIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29y
ZGluYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjLmgKaW5kZXggZTQ4YThmZC4uMDhjMTViOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjLmgKQEAgLTQ1LDE0ICs0NSwxNCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQg
cGFnZURlc3Ryb3llZCgpOwogCi0gICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyZWVTdGF0ZUlmTmVl
ZGVkKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyZWVTdGF0ZUlmTmVlZGVk
KCkgb3ZlcnJpZGU7CiAKICAgICAvLyBIYW5kbGUgdGhlIHdoZWVsIGV2ZW50IG9uIHRoZSBzY3Jv
bGxpbmcgdGhyZWFkLiBSZXR1cm5zIHdoZXRoZXIgdGhlIGV2ZW50IHdhcyBoYW5kbGVkIG9yIG5v
dC4KLSAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlV2hlZWxFdmVudChGcmFtZVZpZXcqLCBjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbnQmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlV2hl
ZWxFdmVudChGcmFtZVZpZXcqLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZTsK
IAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IGNy
ZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgUGFzc093blB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRl
U2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlVHJlZVN0YXRlQ29tbWl0KCkgb3ZlcnJp
ZGU7CiAKICAgICB2b2lkIHNjcm9sbGluZ1N0YXRlVHJlZUNvbW1pdHRlclRpbWVyRmlyZWQoVGlt
ZXI8U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM+Kik7CiAgICAgdm9pZCBjb21taXRUcmVlU3RhdGUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlRml4ZWROb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZUZpeGVkTm9kZS5oCmluZGV4IDk3MjYyMGUuLjI5ZTU3NWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRml4ZWROb2Rl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVG
aXhlZE5vZGUuaApAQCAtNDcsOCArNDcsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNjcm9s
bGluZ1RyZWVGaXhlZE5vZGUoU2Nyb2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVJRCk7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVO
b2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHBhcmVudFNjcm9sbFBvc2l0aW9uRGlk
Q2hhbmdlKGNvbnN0IEludFJlY3QmIHZpZXdwb3J0UmVjdCwgY29uc3QgRmxvYXRTaXplJiBjdW11
bGF0aXZlRGVsdGEpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVCZWZvcmVDaGls
ZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgcGFyZW50U2Nyb2xsUG9zaXRpb25EaWRDaGFuZ2UoY29uc3QgSW50UmVjdCYgdmlld3BvcnRS
ZWN0LCBjb25zdCBGbG9hdFNpemUmIGN1bXVsYXRpdmVEZWx0YSkgb3ZlcnJpZGU7CiAKICAgICBG
aXhlZFBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50cyBtX2NvbnN0cmFpbnRzOwogICAgIFJldGFp
blB0cjxDQUxheWVyPiBtX2xheWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMuaApp
bmRleCBiYWE5ZWEzLi4zYzEwMTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMu
aApAQCAtNDYsMjQgKzQ2LDI0IEBAIHByaXZhdGU6CiAgICAgU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVNYWMoU2Nyb2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVJRCk7CiAKICAgICAvLyBTY3Jv
bGxpbmdUcmVlTm9kZSBtZW1iZXIgZnVuY3Rpb25zLgotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVC
ZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUm
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQmVmb3Jl
Q2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZUFmdGVyQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50Jikgb3ZlcnJpZGU7CiAKICAgICAvLyBTY3JvbGxFbGFzdGljaXR5Q29udHJvbGxl
ciBtZW1iZXIgZnVuY3Rpb25zLgotICAgIHZpcnR1YWwgYm9vbCBhbGxvd3NIb3Jpem9udGFsU3Ry
ZXRjaGluZygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBhbGxvd3NWZXJ0aWNhbFN0cmV0
Y2hpbmcoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEludFNpemUgc3RyZXRjaEFtb3VudCgpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBwaW5uZWRJbkRpcmVjdGlvbihjb25zdCBGbG9hdFNp
emUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgY2FuU2Nyb2xsSG9yaXpvbnRhbGx5KCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNhblNjcm9sbFZlcnRpY2FsbHkoKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbERp
cmVjdGlvbikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJbnRQb2ludCBhYnNvbHV0ZVNjcm9sbFBv
c2l0aW9uKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGltbWVkaWF0ZVNjcm9sbEJ5KGNv
bnN0IEZsb2F0U2l6ZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBpbW1lZGlhdGVTY3Jv
bGxCeVdpdGhvdXRDb250ZW50RWRnZUNvbnN0cmFpbnRzKGNvbnN0IEZsb2F0U2l6ZSYpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBzdGFydFNuYXBSdWJiZXJiYW5kVGltZXIoKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcFNuYXBSdWJiZXJiYW5kVGltZXIoKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2Nyb2xsUG9zaXRpb25Ub0JvdW5kc0lmTmVjZXNzYXJ5
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGFsbG93c0hvcml6b250YWxTdHJldGNoaW5n
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGFsbG93c1ZlcnRpY2FsU3RyZXRjaGluZygp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW50U2l6ZSBzdHJldGNoQW1vdW50KCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIHBpbm5lZEluRGlyZWN0aW9uKGNvbnN0IEZsb2F0U2l6ZSYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjYW5TY3JvbGxIb3Jpem9udGFsbHkoKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuU2Nyb2xsVmVydGljYWxseSgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oU2Nyb2xsRGlyZWN0aW9u
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEludFBvaW50IGFic29sdXRlU2Nyb2xsUG9zaXRpb24o
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW1tZWRpYXRlU2Nyb2xsQnkoY29uc3QgRmxv
YXRTaXplJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGltbWVkaWF0ZVNjcm9sbEJ5V2l0
aG91dENvbnRlbnRFZGdlQ29uc3RyYWludHMoY29uc3QgRmxvYXRTaXplJikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHN0YXJ0U25hcFJ1YmJlcmJhbmRUaW1lcigpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBzdG9wU25hcFJ1YmJlcmJhbmRUaW1lcigpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBhZGp1c3RTY3JvbGxQb3NpdGlvblRvQm91bmRzSWZOZWNlc3NhcnkoKSBvdmVy
cmlkZTsKIAogICAgIEludFBvaW50IHNjcm9sbFBvc2l0aW9uKCkgY29uc3Q7CiAgICAgdm9pZCBz
ZXRTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTdGlja3lOb2RlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUuaApp
bmRleCBjZGE4OTQ4Li5kNjM3NWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUuaApAQCAtNDcsOCAr
NDcsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlKFNj
cm9sbGluZ1RyZWUmLCBTY3JvbGxpbmdOb2RlSUQpOwogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBwYXJlbnRTY3JvbGxQb3NpdGlvbkRpZENoYW5nZShjb25zdCBJbnRSZWN0
JiB2aWV3cG9ydFJlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgY3VtdWxhdGl2ZURlbHRhKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5n
U3RhdGVOb2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBhcmVudFNjcm9sbFBvc2l0
aW9uRGlkQ2hhbmdlKGNvbnN0IEludFJlY3QmIHZpZXdwb3J0UmVjdCwgY29uc3QgRmxvYXRTaXpl
JiBjdW11bGF0aXZlRGVsdGEpIG92ZXJyaWRlOwogCiAgICAgU3RpY2t5UG9zaXRpb25WaWV3cG9y
dENvbnN0cmFpbnRzIG1fY29uc3RyYWludHM7CiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fbGF5
ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wZGYvaW9zL1BERkRvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BkZi9pb3MvUERGRG9jdW1lbnQuY3BwCmluZGV4IDdkZDgyZjUuLjc2
ZDRkZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BkZi9pb3MvUERGRG9jdW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BkZi9pb3MvUERGRG9jdW1lbnQuY3BwCkBAIC01MCw3ICs1
MCw3IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRC
eXRlcyhEb2N1bWVudFdyaXRlciYsIGNvbnN0IGNoYXIqLCBzaXplX3QpIE9WRVJSSURFCisgICAg
dmlydHVhbCB2b2lkIGFwcGVuZEJ5dGVzKERvY3VtZW50V3JpdGVyJiwgY29uc3QgY2hhciosIHNp
emVfdCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIC8vIElnbm9yZSBhbGwgY2FsbHMKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wZGYvaW9zL1BERkRvY3VtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wZGYvaW9zL1BERkRvY3VtZW50LmgKaW5kZXggOTZiYzc2Mi4uMTEyYzIyYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGRmL2lvcy9QREZEb2N1bWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BkZi9pb3MvUERGRG9jdW1lbnQuaApAQCAtNDMsNyArNDMsNyBAQCBwcml2
YXRlOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RG9jdW1lbnRQYXJz
ZXI+IGNyZWF0ZVBhcnNlcigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxEb2N1
bWVudFBhcnNlcj4gY3JlYXRlUGFyc2VyKCkgb3ZlcnJpZGU7CiB9OwogICAgIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2FsY3VsYXRpb25WYWx1ZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQ2FsY3VsYXRpb25WYWx1ZS5oCmluZGV4IDNkY2JmMWIuLjM2ZmJj
NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NhbGN1bGF0aW9uVmFsdWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DYWxjdWxhdGlvblZhbHVlLmgKQEAgLTEx
OCwxMiArMTE4LDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fdmFsdWUgPT0gby5tX3Zh
bHVlOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENhbGNFeHBy
ZXNzaW9uTm9kZSYgbykgY29uc3QgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBDYWxjRXhwcmVzc2lvbk5vZGUmIG8pIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAg
ICAgICByZXR1cm4gdHlwZSgpID09IG8udHlwZSgpICYmICp0aGlzID09IHN0YXRpY19jYXN0PGNv
bnN0IENhbGNFeHByZXNzaW9uTnVtYmVyJj4obyk7CiAgICAgfQogCi0gICAgdmlydHVhbCBmbG9h
dCBldmFsdWF0ZShmbG9hdCkgY29uc3QgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIGZsb2F0IGV2YWx1
YXRlKGZsb2F0KSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgcmV0dXJuIG1fdmFsdWU7
CiAgICAgfQpAQCAtMTUzLDEyICsxNTMsMTIgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9s
ZW5ndGggPT0gby5tX2xlbmd0aDsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBDYWxjRXhwcmVzc2lvbk5vZGUmIG8pIGNvbnN0IE9WRVJSSURFCisgICAgdmlydHVh
bCBib29sIG9wZXJhdG9yPT0oY29uc3QgQ2FsY0V4cHJlc3Npb25Ob2RlJiBvKSBjb25zdCBvdmVy
cmlkZQogICAgIHsKICAgICAgICAgcmV0dXJuIHR5cGUoKSA9PSBvLnR5cGUoKSAmJiAqdGhpcyA9
PSBzdGF0aWNfY2FzdDxjb25zdCBDYWxjRXhwcmVzc2lvbkxlbmd0aCY+KG8pOwogICAgIH0KIAot
ICAgIHZpcnR1YWwgZmxvYXQgZXZhbHVhdGUoZmxvYXQgbWF4VmFsdWUpIGNvbnN0IE9WRVJSSURF
CisgICAgdmlydHVhbCBmbG9hdCBldmFsdWF0ZShmbG9hdCBtYXhWYWx1ZSkgY29uc3Qgb3ZlcnJp
ZGUKICAgICB7CiAgICAgICAgIHJldHVybiBmbG9hdFZhbHVlRm9yTGVuZ3RoKG1fbGVuZ3RoLCBt
YXhWYWx1ZSk7CiAgICAgfQpAQCAtMTkwLDEyICsxOTAsMTIgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gbV9vcGVyYXRvciA9PSBvLm1fb3BlcmF0b3IgJiYgKm1fbGVmdFNpZGUgPT0gKm8ubV9s
ZWZ0U2lkZSAmJiAqbV9yaWdodFNpZGUgPT0gKm8ubV9yaWdodFNpZGU7CiAgICAgfQogCi0gICAg
dmlydHVhbCBib29sIG9wZXJhdG9yPT0oY29uc3QgQ2FsY0V4cHJlc3Npb25Ob2RlJiBvKSBjb25z
dCBPVkVSUklERQorICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENhbGNFeHByZXNz
aW9uTm9kZSYgbykgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiB0eXBlKCkg
PT0gby50eXBlKCkgJiYgKnRoaXMgPT0gc3RhdGljX2Nhc3Q8Y29uc3QgQ2FsY0V4cHJlc3Npb25C
aW5hcnlPcGVyYXRpb24mPihvKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGZsb2F0IGV2YWx1YXRl
KGZsb2F0KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGZsb2F0IGV2YWx1YXRlKGZsb2F0
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIGNvbnN0IENhbGNFeHByZXNzaW9uTm9kZSogbGVmdFNp
ZGUoKSBjb25zdCB7IHJldHVybiBtX2xlZnRTaWRlLmdldCgpOyB9CiAgICAgY29uc3QgQ2FsY0V4
cHJlc3Npb25Ob2RlKiByaWdodFNpZGUoKSBjb25zdCB7IHJldHVybiBtX3JpZ2h0U2lkZS5nZXQo
KTsgfQpAQCAtMjI4LDEyICsyMjgsMTIgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9wcm9n
cmVzcyA9PSBvLm1fcHJvZ3Jlc3MgJiYgbV9mcm9tID09IG8ubV9mcm9tICYmIG1fdG8gPT0gby5t
X3RvOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENhbGNFeHBy
ZXNzaW9uTm9kZSYgbykgY29uc3QgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBDYWxjRXhwcmVzc2lvbk5vZGUmIG8pIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAg
ICAgICByZXR1cm4gdHlwZSgpID09IG8udHlwZSgpICYmICp0aGlzID09IHN0YXRpY19jYXN0PGNv
bnN0IENhbGNFeHByZXNzaW9uQmxlbmRMZW5ndGgmPihvKTsKICAgICB9CiAKLSAgICB2aXJ0dWFs
IGZsb2F0IGV2YWx1YXRlKGZsb2F0IG1heFZhbHVlKSBjb25zdCBPVkVSUklERQorICAgIHZpcnR1
YWwgZmxvYXQgZXZhbHVhdGUoZmxvYXQgbWF4VmFsdWUpIGNvbnN0IG92ZXJyaWRlCiAgICAgewog
ICAgICAgICByZXR1cm4gKDEuMGYgLSBtX3Byb2dyZXNzKSAqIGZsb2F0VmFsdWVGb3JMZW5ndGgo
bV9mcm9tLCBtYXhWYWx1ZSkgKyBtX3Byb2dyZXNzICogZmxvYXRWYWx1ZUZvckxlbmd0aChtX3Rv
LCBtYXhWYWx1ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Q2xvY2tHZW5lcmljLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9ja0dlbmVyaWMuaApp
bmRleCBlZDllODE0Li5jMzI3ZTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9DbG9ja0dlbmVyaWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DbG9ja0dlbmVy
aWMuaApAQCAtMzUsMTUgKzM1LDE1IEBAIHB1YmxpYzoKICAgICBDbG9ja0dlbmVyaWMoKTsKIAog
cHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q3VycmVudFRpbWUoZG91YmxlKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGRvdWJsZSBjdXJyZW50VGltZSgpIGNvbnN0IE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBzZXRDdXJyZW50VGltZShkb3VibGUpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgZG91YmxlIGN1cnJlbnRUaW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0UGxheVJhdGUoZG91YmxlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGRvdWJsZSBwbGF5
UmF0ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fcmF0ZTsgfQorICAgIHZpcnR1YWwgdm9p
ZCBzZXRQbGF5UmF0ZShkb3VibGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgZG91YmxlIHBsYXlS
YXRlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9yYXRlOyB9CiAKLSAgICB2aXJ0dWFsIHZv
aWQgc3RhcnQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgYm9vbCBpc1J1bm5pbmcoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3J1
bm5pbmc7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1J1bm5pbmcoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX3J1bm5pbmc7IH0KIAogICAgIGRvdWJsZSBub3coKSBjb25z
dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFRhc2su
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRUYXNrLmgKaW5kZXggMjYyMDM5
Ny4uZTBiZWViNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVh
ZFRhc2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkVGFzay5oCkBA
IC04NSw3ICs4NSw3IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgdm9p
ZCBwZXJmb3JtVGFzaygpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKCkg
b3ZlcnJpZGUKICAgICB7CiAgICAgICAgICgqbV9tZXRob2QpKG1fcGFyYW1ldGVyMSk7CiAgICAg
fQpAQCAtMTE2LDcgKzExNiw3IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1
YWwgdm9pZCBwZXJmb3JtVGFzaygpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1U
YXNrKCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgICgqbV9tZXRob2QpKG1fcGFyYW1ldGVyMSwg
bV9wYXJhbWV0ZXIyKTsKICAgICB9CkBAIC0xNTAsNyArMTUwLDcgQEAgcHJpdmF0ZToKICAgICB7
CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKCkgT1ZFUlJJREUKKyAgICB2
aXJ0dWFsIHZvaWQgcGVyZm9ybVRhc2soKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgKCptX21l
dGhvZCkobV9wYXJhbWV0ZXIxLCBtX3BhcmFtZXRlcjIsIG1fcGFyYW1ldGVyMyk7CiAgICAgfQpA
QCAtMTg3LDcgKzE4Nyw3IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwg
dm9pZCBwZXJmb3JtVGFzaygpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNr
KCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgICgqbV9tZXRob2QpKG1fcGFyYW1ldGVyMSwgbV9w
YXJhbWV0ZXIyLCBtX3BhcmFtZXRlcjMsIG1fcGFyYW1ldGVyNCk7CiAgICAgfQpAQCAtMjI3LDcg
KzIyNyw3IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBwZXJm
b3JtVGFzaygpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKCkgb3ZlcnJp
ZGUKICAgICB7CiAgICAgICAgICgqbV9tZXRob2QpKG1fcGFyYW1ldGVyMSwgbV9wYXJhbWV0ZXIy
LCBtX3BhcmFtZXRlcjMsIG1fcGFyYW1ldGVyNCwgbV9wYXJhbWV0ZXI1KTsKICAgICB9CkBAIC0y
NzAsNyArMjcwLDcgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lk
IHBlcmZvcm1UYXNrKCkgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRhc2soKSBv
dmVycmlkZQogICAgIHsKICAgICAgICAgKCptX21ldGhvZCkobV9wYXJhbWV0ZXIxLCBtX3BhcmFt
ZXRlcjIsIG1fcGFyYW1ldGVyMywgbV9wYXJhbWV0ZXI0LCBtX3BhcmFtZXRlcjUsIG1fcGFyYW1l
dGVyNik7CiAgICAgfQpAQCAtMzE2LDcgKzMxNiw3IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0K
IAotICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzaygpIE9WRVJSSURFCisgICAgdmlydHVhbCB2
b2lkIHBlcmZvcm1UYXNrKCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgICgqbV9tZXRob2QpKG1f
cGFyYW1ldGVyMSwgbV9wYXJhbWV0ZXIyLCBtX3BhcmFtZXRlcjMsIG1fcGFyYW1ldGVyNCwgbV9w
YXJhbWV0ZXI1LCBtX3BhcmFtZXRlcjYsIG1fcGFyYW1ldGVyNyk7CiAgICAgfQpAQCAtMzY1LDcg
KzM2NSw3IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KICAgICAKLSAgICB2aXJ0dWFsIHZvaWQg
cGVyZm9ybVRhc2soKSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzaygpIG92
ZXJyaWRlCiAgICAgewogICAgICAgICAoKm1fbWV0aG9kKShtX3BhcmFtZXRlcjEsIG1fcGFyYW1l
dGVyMiwgbV9wYXJhbWV0ZXIzLCBtX3BhcmFtZXRlcjQsIG1fcGFyYW1ldGVyNSwgbV9wYXJhbWV0
ZXI2LCBtX3BhcmFtZXRlcjcsIG1fcGFyYW1ldGVyOCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9ESW50ZXJ2YWxUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QT0RJbnRlcnZhbFRyZWUuaAppbmRleCBjOGMzMzgzLi4wYWY5YjAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RJbnRlcnZhbFRyZWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RJbnRlcnZhbFRyZWUuaApAQCAtMTI3LDcgKzEyNyw3IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIEludGVydmFsVHlwZShsb3csIGhpZ2gsIGRhdGEpOwog
ICAgIH0KIAotICAgIHZpcnR1YWwgYm9vbCBjaGVja0ludmFyaWFudHMoKSBjb25zdCBPVkVSUklE
RQorICAgIHZpcnR1YWwgYm9vbCBjaGVja0ludmFyaWFudHMoKSBjb25zdCBvdmVycmlkZQogICAg
IHsKICAgICAgICAgaWYgKCFQT0RSZWRCbGFja1RyZWU8SW50ZXJ2YWxUeXBlPjo6Y2hlY2tJbnZh
cmlhbnRzKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNzcsNyArMTc3LDcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIHNlYXJjaEZvck92ZXJsYXBzRnJvbTxBZGFwdGVyVHlwZT4o
bm9kZS0+cmlnaHQoKSwgYWRhcHRlcik7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIHVwZGF0
ZU5vZGUoSW50ZXJ2YWxOb2RlKiBub2RlKSBPVkVSUklERQorICAgIHZpcnR1YWwgYm9vbCB1cGRh
dGVOb2RlKEludGVydmFsTm9kZSogbm9kZSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIC8vIFdv
dWxkIHVzZSBjb25zdCBUJiwgYnV0IG5lZWQgdG8gcmVhc3NpZ24gdGhpcyByZWZlcmVuY2UgaW4g
dGhpcwogICAgICAgICAvLyBmdW5jdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BPRFJlZEJsYWNrVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9EUmVk
QmxhY2tUcmVlLmgKaW5kZXggZDVmYjkxMS4uNDg0ZjQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUE9EUmVkQmxhY2tUcmVlLmgKQEAgLTczMCw3ICs3MzAsNyBAQCBwcml2YXRlOgogICAg
ICAgICBDb3VudGVyKCkKICAgICAgICAgICAgIDogbV9jb3VudCgwKSB7IH0KIAotICAgICAgICB2
aXJ0dWFsIHZvaWQgdmlzaXQoY29uc3QgVCYpIE9WRVJSSURFIHsgKyttX2NvdW50OyB9CisgICAg
ICAgIHZpcnR1YWwgdm9pZCB2aXNpdChjb25zdCBUJikgb3ZlcnJpZGUgeyArK21fY291bnQ7IH0K
ICAgICAgICAgaW50IGNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9jb3VudDsgfQogCiAgICAgcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlZkNvdW50ZWRTdXBw
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZWZDb3VudGVkU3VwcGxlbWVudC5o
CmluZGV4IDU0MDIzOTAuLjBjY2FmZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1JlZkNvdW50ZWRTdXBwbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UmVmQ291bnRlZFN1cHBsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgICAg
IGV4cGxpY2l0IFdyYXBwZXIoUGFzc1JlZlB0cjxUaGlzVHlwZT4gd3JhcHBlZCkgOiBtX3dyYXBw
ZWQod3JhcHBlZCkgeyB9CiAgICAgICAgIHZpcnR1YWwgfldyYXBwZXIoKSB7IG1fd3JhcHBlZC0+
aG9zdERlc3Ryb3llZCgpOyAgfQogI2lmICFBU1NFUlRfRElTQUJMRUQgfHwgZGVmaW5lZChBRERS
RVNTX1NBTklUSVpFUikKLSAgICAgICAgdmlydHVhbCBib29sIGlzUmVmQ291bnRlZFdyYXBwZXIo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIHZpcnR1YWwgYm9vbCBp
c1JlZkNvdW50ZWRXcmFwcGVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogI2Vu
ZGlmCiAgICAgICAgIFRoaXNUeXBlKiB3cmFwcGVkKCkgY29uc3QgeyByZXR1cm4gbV93cmFwcGVk
LmdldCgpOyB9CiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbFZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaApp
bmRleCBlNTI4NWY0Li5jMTdjMjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5o
CkBAIC02OCwxMSArNjgsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflNjcm9sbFZpZXcoKTsK
IAogICAgIC8vIFNjcm9sbGFibGVBcmVhIGZ1bmN0aW9ucy4KLSAgICB2aXJ0dWFsIGludCBzY3Jv
bGxTaXplKFNjcm9sbGJhck9yaWVudGF0aW9uKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IGludCBzY3JvbGxQb3NpdGlvbihTY3JvbGxiYXIqKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgc2V0U2Nyb2xsT2Zmc2V0KGNvbnN0IEludFBvaW50JikgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIGlzU2Nyb2xsQ29ybmVyVmlzaWJsZSgpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJTdHlsZUNoYW5nZWQoaW50IG5ld1N0eWxlLCBib29sIGZv
cmNlVXBkYXRlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGludCBzY3JvbGxTaXplKFNjcm9sbGJh
ck9yaWVudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGludCBzY3JvbGxQb3Np
dGlvbihTY3JvbGxiYXIqKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Ny
b2xsT2Zmc2V0KGNvbnN0IEludFBvaW50Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlz
U2Nyb2xsQ29ybmVyVmlzaWJsZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGxiYXJTdHlsZUNoYW5nZWQoaW50IG5ld1N0eWxlLCBib29sIGZvcmNlVXBkYXRlKSBvdmVy
cmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlQYWdlVGhhdENvbnRlbnRBcmVhV2lsbFBh
aW50KCkgY29uc3Q7CiAKQEAgLTkzLDggKzkzLDggQEAgcHVibGljOgogCiAgICAgLy8gSWYgdGhl
IHNjcm9sbCB2aWV3IGRvZXMgbm90IHVzZSBhIG5hdGl2ZSB3aWRnZXQsIHRoZW4gaXQgd2lsbCBo
YXZlIGNyb3NzLXBsYXRmb3JtIFNjcm9sbGJhcnMuIFRoZXNlIGZ1bmN0aW9ucwogICAgIC8vIGNh
biBiZSB1c2VkIHRvIG9idGFpbiB0aG9zZSBzY3JvbGxiYXJzLgotICAgIHZpcnR1YWwgU2Nyb2xs
YmFyKiBob3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9ob3Jp
em9udGFsU2Nyb2xsYmFyLmdldCgpOyB9Ci0gICAgdmlydHVhbCBTY3JvbGxiYXIqIHZlcnRpY2Fs
U2Nyb2xsYmFyKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV92ZXJ0aWNhbFNjcm9sbGJhci5n
ZXQoKTsgfQorICAgIHZpcnR1YWwgU2Nyb2xsYmFyKiBob3Jpem9udGFsU2Nyb2xsYmFyKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9ob3Jpem9udGFsU2Nyb2xsYmFyLmdldCgpOyB9CisgICAg
dmlydHVhbCBTY3JvbGxiYXIqIHZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV92ZXJ0aWNhbFNjcm9sbGJhci5nZXQoKTsgfQogICAgIGJvb2wgaXNTY3JvbGxWaWV3
U2Nyb2xsYmFyKGNvbnN0IFdpZGdldCogY2hpbGQpIGNvbnN0IHsgcmV0dXJuIGhvcml6b250YWxT
Y3JvbGxiYXIoKSA9PSBjaGlsZCB8fCB2ZXJ0aWNhbFNjcm9sbGJhcigpID09IGNoaWxkOyB9CiAK
ICAgICB2b2lkIHBvc2l0aW9uU2Nyb2xsYmFyTGF5ZXJzKCk7CkBAIC0xMjMsNyArMTIzLDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGF2b2lkU2Nyb2xsYmFyQ3JlYXRpb24oKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbGJhck92ZXJs
YXlTdHlsZShTY3JvbGxiYXJPdmVybGF5U3R5bGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRTY3JvbGxiYXJPdmVybGF5U3R5bGUoU2Nyb2xsYmFyT3ZlcmxheVN0eWxlKSBvdmVycmlk
ZTsKIAogICAgIC8vIEJ5IGRlZmF1bHQgeW91IG9ubHkgcmVjZWl2ZSBwYWludCBldmVudHMgZm9y
IHRoZSBhcmVhIHRoYXQgaXMgdmlzaWJsZS4gSW4gdGhlIGNhc2Ugb2YgdXNpbmcgYQogICAgIC8v
IHRpbGVkIGJhY2tpbmcgc3RvcmUsIHRoaXMgZnVuY3Rpb24gY2FuIGJlIHNldCwgc28gdGhhdCB0
aGUgdmlldyBwYWludHMgdGhlIGVudGlyZSBjb250ZW50cy4KQEAgLTE1OSw3ICsxNTksNyBAQCBw
dWJsaWM6CiAgICAgLy8gSW4gdGhlIHNpdHVhdGlvbiB0aGUgY2xpZW50IGlzIHJlc3BvbnNpYmxl
IGZvciB0aGUgc2Nyb2xsaW5nIChpZS4gd2l0aCBhIHRpbGVkIGJhY2tpbmcgc3RvcmUpIGl0IGlz
IHBvc3NpYmxlIHRvIHVzZQogICAgIC8vIHRoZSBzZXRGaXhlZFZpc2libGVDb250ZW50UmVjdCBp
bnN0ZWFkIGZvciB0aGUgbWFpbmZyYW1lLCB0aG91Z2ggdGhpcyBtdXN0IGJlIHVwZGF0ZWQgbWFu
dWFsbHksIGUuZyBqdXN0IGJlZm9yZSByZXN1bWluZyB0aGUgcGFnZQogICAgIC8vIHdoaWNoIHVz
dWFsbHkgd2lsbCBoYXBwZW4gd2hlbiBwYW5uaW5nLCBwaW5jaGluZyBhbmQgcm90YXRpb24gZW5k
cywgb3Igd2hlbiBzY2FsZSBvciBwb3NpdGlvbiBhcmUgY2hhbmdlZCBtYW51YWxseS4KLSAgICB2
aXJ0dWFsIEludFJlY3QgdmlzaWJsZUNvbnRlbnRSZWN0KFZpc2libGVDb250ZW50UmVjdEluY2x1
ZGVzU2Nyb2xsYmFycyA9IEV4Y2x1ZGVTY3JvbGxiYXJzKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIEludFJlY3QgdmlzaWJsZUNvbnRlbnRSZWN0KFZpc2libGVDb250ZW50UmVjdEluY2x1
ZGVzU2Nyb2xsYmFycyA9IEV4Y2x1ZGVTY3JvbGxiYXJzKSBjb25zdCBvdmVycmlkZTsKICNpZiAh
UExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgdm9pZCBzZXRGaXhlZFZpc2libGVDb250ZW50UmVj
dChjb25zdCBJbnRSZWN0JiB2aXNpYmxlQ29udGVudFJlY3QpIHsgbV9maXhlZFZpc2libGVDb250
ZW50UmVjdCA9IHZpc2libGVDb250ZW50UmVjdDsgfQogICAgIEludFJlY3QgZml4ZWRWaXNpYmxl
Q29udGVudFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2ZpeGVkVmlzaWJsZUNvbnRlbnRSZWN0OyB9
CkBAIC0xNzQsOCArMTc0LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWN0dWFsU2Nyb2xsUG9z
aXRpb24oY29uc3QgSW50UG9pbnQmKTsKICAgICBUaWxlQ2FjaGUqIHRpbGVDYWNoZSgpOwogI2Vu
ZGlmCi0gICAgdmlydHVhbCBpbnQgdmlzaWJsZVdpZHRoKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gdmlzaWJsZUNvbnRlbnRSZWN0KCkud2lkdGgoKTsgfQotICAgIHZpcnR1YWwgaW50IHZpc2li
bGVIZWlnaHQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB2aXNpYmxlQ29udGVudFJlY3QoKS5o
ZWlnaHQoKTsgfQorICAgIHZpcnR1YWwgaW50IHZpc2libGVXaWR0aCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIHZpc2libGVDb250ZW50UmVjdCgpLndpZHRoKCk7IH0KKyAgICB2aXJ0dWFsIGlu
dCB2aXNpYmxlSGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdmlzaWJsZUNvbnRlbnRS
ZWN0KCkuaGVpZ2h0KCk7IH0KIAogICAgIC8vIHZpc2libGVDb250ZW50UmVjdCgpLnNpemUoKSBp
cyBjb21wdXRlZCBmcm9tIHVuc2NhbGVkVmlzaWJsZUNvbnRlbnRTaXplKCkgZGl2aWRlZCBieSB0
aGUgdmFsdWUgb2YgdmlzaWJsZUNvbnRlbnRTY2FsZUZhY3Rvci4KICAgICAvLyB2aXNpYmxlQ29u
dGVudFNjYWxlRmFjdG9yIGlzIHVzdWFsbHkgMSwgZXhjZXB0IHdoZW4gdGhlIHNldHRpbmcgZGVs
ZWdhdGVzUGFnZVNjYWxpbmcgaXMgdHJ1ZSBhbmQgdGhlCkBAIC0xOTYsMTYgKzE5NiwxNiBAQCBw
dWJsaWM6CiAKICAgICAvLyBGdW5jdGlvbnMgZm9yIGdldHRpbmcvc2V0dGluZyB0aGUgc2l6ZSBv
ZiB0aGUgZG9jdW1lbnQgY29udGFpbmVkIGluc2lkZSB0aGUgU2Nyb2xsVmlldyAoYXMgYW4gSW50
U2l6ZSBvciBhcyBpbmRpdmlkdWFsIHdpZHRoIGFuZCBoZWlnaHQKICAgICAvLyB2YWx1ZXMpLgot
ICAgIHZpcnR1YWwgSW50U2l6ZSBjb250ZW50c1NpemUoKSBjb25zdCBPVkVSUklERTsgLy8gQWx3
YXlzIGF0IGxlYXN0IGFzIGJpZyBhcyB0aGUgdmlzaWJsZVdpZHRoKCkvdmlzaWJsZUhlaWdodCgp
LgorICAgIHZpcnR1YWwgSW50U2l6ZSBjb250ZW50c1NpemUoKSBjb25zdCBvdmVycmlkZTsgLy8g
QWx3YXlzIGF0IGxlYXN0IGFzIGJpZyBhcyB0aGUgdmlzaWJsZVdpZHRoKCkvdmlzaWJsZUhlaWdo
dCgpLgogICAgIGludCBjb250ZW50c1dpZHRoKCkgY29uc3QgeyByZXR1cm4gY29udGVudHNTaXpl
KCkud2lkdGgoKTsgfQogICAgIGludCBjb250ZW50c0hlaWdodCgpIGNvbnN0IHsgcmV0dXJuIGNv
bnRlbnRzU2l6ZSgpLmhlaWdodCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzU2l6
ZShjb25zdCBJbnRTaXplJik7CiAKICAgICAvLyBGdW5jdGlvbnMgZm9yIHF1ZXJ5aW5nIHRoZSBj
dXJyZW50IHNjcm9sbGVkIHBvc2l0aW9uIChib3RoIGFzIGEgcG9pbnQsIGEgc2l6ZSwgb3IgYXMg
aW5kaXZpZHVhbCBYIGFuZCBZIHZhbHVlcykuCi0gICAgdmlydHVhbCBJbnRQb2ludCBzY3JvbGxQ
b3NpdGlvbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHZpc2libGVDb250ZW50UmVjdCgpLmxv
Y2F0aW9uKCk7IH0KKyAgICB2aXJ0dWFsIEludFBvaW50IHNjcm9sbFBvc2l0aW9uKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdmlzaWJsZUNvbnRlbnRSZWN0KCkubG9jYXRpb24oKTsgfQogICAg
IEludFNpemUgc2Nyb2xsT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gdG9JbnRTaXplKHZpc2libGVD
b250ZW50UmVjdCgpLmxvY2F0aW9uKCkpOyB9IC8vIEdldHMgdGhlIHNjcm9sbGVkIHBvc2l0aW9u
IGFzIGFuIEludFNpemUuIENvbnZlbmllbnQgZm9yIGFkZGluZyB0byBvdGhlciBzaXplcy4KLSAg
ICB2aXJ0dWFsIEludFBvaW50IG1heGltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0IE9WRVJSSURF
OyAvLyBUaGUgbWF4aW11bSBwb3NpdGlvbiB3ZSBjYW4gYmUgc2Nyb2xsZWQgdG8uCi0gICAgdmly
dHVhbCBJbnRQb2ludCBtaW5pbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdCBPVkVSUklERTsgLy8g
VGhlIG1pbmltdW0gcG9zaXRpb24gd2UgY2FuIGJlIHNjcm9sbGVkIHRvLgorICAgIHZpcnR1YWwg
SW50UG9pbnQgbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7IC8vIFRoZSBt
YXhpbXVtIHBvc2l0aW9uIHdlIGNhbiBiZSBzY3JvbGxlZCB0by4KKyAgICB2aXJ0dWFsIEludFBv
aW50IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOyAvLyBUaGUgbWluaW11
bSBwb3NpdGlvbiB3ZSBjYW4gYmUgc2Nyb2xsZWQgdG8uCiAgICAgLy8gQWRqdXN0IHRoZSBwYXNz
ZWQgaW4gc2Nyb2xsIHBvc2l0aW9uIHRvIGtlZXAgaXQgYmV0d2VlbiB0aGUgbWluaW11bSBhbmQg
bWF4aW11bSBwb3NpdGlvbnMuCiAgICAgSW50UG9pbnQgYWRqdXN0U2Nyb2xsUG9zaXRpb25XaXRo
aW5SYW5nZShjb25zdCBJbnRQb2ludCYpIGNvbnN0OyAKICAgICBpbnQgc2Nyb2xsWCgpIGNvbnN0
IHsgcmV0dXJuIHNjcm9sbFBvc2l0aW9uKCkueCgpOyB9CkBAIC0yMjMsNyArMjIzLDcgQEAgcHVi
bGljOgogICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0UmVsYXRpdmVUb0RvY3VtZW50KCkgY29uc3Q7
CiAgICAgSW50UG9pbnQgc2Nyb2xsUG9zaXRpb25SZWxhdGl2ZVRvRG9jdW1lbnQoKSBjb25zdDsK
IAotICAgIHZpcnR1YWwgSW50U2l6ZSBvdmVyaGFuZ0Ftb3VudCgpIGNvbnN0IE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgSW50U2l6ZSBvdmVyaGFuZ0Ftb3VudCgpIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgdm9pZCBjYWNoZUN1cnJlbnRTY3JvbGxQb3NpdGlvbigpIHsgbV9jYWNoZWRTY3JvbGxQb3Np
dGlvbiA9IHNjcm9sbFBvc2l0aW9uKCk7IH0KICAgICBJbnRQb2ludCBjYWNoZWRTY3JvbGxQb3Np
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkU2Nyb2xsUG9zaXRpb247IH0KQEAgLTI3NSwx
NiArMjc1LDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkanVzdFNjcm9sbGJhcnNBdm9pZGluZ1Jl
c2l6ZXJDb3VudChpbnQgb3ZlcmxhcERlbHRhKTsKICAgICB2b2lkIHdpbmRvd1Jlc2l6ZXJSZWN0
Q2hhbmdlZCgpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldFBhcmVudChTY3JvbGxWaWV3KikgT1ZF
UlJJREU7IC8vIE92ZXJyaWRkZW4gdG8gdXBkYXRlIHRoZSBvdmVybGFwcGluZyBzY3JvbGxiYXIg
Y291bnQuCisgICAgdmlydHVhbCB2b2lkIHNldFBhcmVudChTY3JvbGxWaWV3Kikgb3ZlcnJpZGU7
IC8vIE92ZXJyaWRkZW4gdG8gdXBkYXRlIHRoZSBvdmVybGFwcGluZyBzY3JvbGxiYXIgY291bnQu
CiAKICAgICAvLyBDYWxsZWQgd2hlbiBvdXIgZnJhbWUgcmVjdCBjaGFuZ2VzIChvciB0aGUgcmVj
dC9zY3JvbGwgcG9zaXRpb24gb2YgYW4gYW5jZXN0b3IgY2hhbmdlcykuCi0gICAgdmlydHVhbCB2
b2lkIGZyYW1lUmVjdHNDaGFuZ2VkKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGZyYW1l
UmVjdHNDaGFuZ2VkKCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgLy8gV2lkZ2V0IG92ZXJyaWRlIHRv
IHVwZGF0ZSBvdXIgc2Nyb2xsYmFycyBhbmQgbm90aWZ5IG91ciBjb250ZW50cyBvZiB0aGUgcmVz
aXplLgotICAgIHZpcnR1YWwgdm9pZCBzZXRGcmFtZVJlY3QoY29uc3QgSW50UmVjdCYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRGcmFtZVJlY3QoY29uc3QgSW50UmVjdCYpIG92ZXJy
aWRlOwogCiAgICAgLy8gV2lkZ2V0IG92ZXJyaWRlIHRvIG5vdGlmeSBvdXIgY29udGVudHMgb2Yg
YSBjbGlwcmVjdCBjaGFuZ2UuCi0gICAgdmlydHVhbCB2b2lkIGNsaXBSZWN0Q2hhbmdlZCgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjbGlwUmVjdENoYW5nZWQoKSBvdmVycmlkZTsKIAog
ICAgIC8vIEZvciBwbGF0Zm9ybXMgdGhhdCBuZWVkIHRvIGhpdCB0ZXN0IHNjcm9sbGJhcnMgZnJv
bSB3aXRoaW4gdGhlIGVuZ2luZSdzIGV2ZW50IGhhbmRsZXJzIChsaWtlIFdpbjMyKS4KICAgICBT
Y3JvbGxiYXIqIHNjcm9sbGJhckF0UG9pbnQoY29uc3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KTsK
QEAgLTMwOCwxMyArMzA4LDEzIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICAvLyBXaWRnZXQgb3Zl
cnJpZGUuIEhhbmRsZXMgcGFpbnRpbmcgb2YgdGhlIGNvbnRlbnRzIG9mIHRoZSB2aWV3IGFzIHdl
bGwgYXMgdGhlIHNjcm9sbGJhcnMuCi0gICAgdmlydHVhbCB2b2lkIHBhaW50KEdyYXBoaWNzQ29u
dGV4dCosIGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQo
R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOwogICAgIHZvaWQgcGFp
bnRTY3JvbGxiYXJzKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKTsKIAogICAgIC8v
IFdpZGdldCBvdmVycmlkZXMgdG8gZW5zdXJlIHRoYXQgb3VyIGNoaWxkcmVuJ3MgdmlzaWJpbGl0
eSBzdGF0dXMgaXMga2VwdCB1cCB0byBkYXRlIHdoZW4gd2UgZ2V0IHNob3duIGFuZCBoaWRkZW4u
Ci0gICAgdmlydHVhbCB2b2lkIHNob3coKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgaGlk
ZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRQYXJlbnRWaXNpYmxlKGJvb2wpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzaG93KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGhpZGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UGFyZW50VmlzaWJsZShi
b29sKSBvdmVycmlkZTsKICAgICAKICAgICAvLyBQYW4gc2Nyb2xsaW5nLgogICAgIHN0YXRpYyBj
b25zdCBpbnQgbm9QYW5TY3JvbGxSYWRpdXMgPSAxNTsKQEAgLTMyNCwxOCArMzI0LDE4IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc1BvaW50SW5TY3JvbGxiYXJDb3JuZXIoY29uc3Qg
SW50UG9pbnQmKTsKICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsYmFyQ29ybmVyUHJlc2VudCgpIGNv
bnN0OwotICAgIHZpcnR1YWwgSW50UmVjdCBzY3JvbGxDb3JuZXJSZWN0KCkgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBJbnRSZWN0IHNjcm9sbENvcm5lclJlY3QoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRTY3JvbGxDb3JuZXIoR3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgSW50UmVjdCYgY29ybmVyUmVjdCk7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50U2Nyb2xs
YmFyKEdyYXBoaWNzQ29udGV4dCosIFNjcm9sbGJhciosIGNvbnN0IEludFJlY3QmKTsKIAotICAg
IHZpcnR1YWwgSW50UmVjdCBjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29u
c3QgU2Nyb2xsYmFyKiwgY29uc3QgSW50UmVjdCYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgSW50UmVjdCBjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3JvbGxiYXIoY29uc3QgU2Ny
b2xsYmFyKiwgY29uc3QgSW50UmVjdCYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgSW50
UG9pbnQgY29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJh
ciosIGNvbnN0IEludFBvaW50JikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJbnRQb2lu
dCBjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFyKiwg
Y29uc3QgSW50UG9pbnQmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEludFJlY3QgY29u
dmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJhciosIGNvbnN0
IEludFJlY3QmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEludFJlY3QgY29udmVydEZy
b21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciosIGNvbnN0IEludFJl
Y3QmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEludFBvaW50IGNvbnZlcnRGcm9tU2Ny
b2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXIqLCBjb25zdCBJbnRQb2ludCYp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW50UG9pbnQgY29udmVydEZyb21Db250YWlu
aW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciosIGNvbnN0IEludFBvaW50JikgY29u
c3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGNhbGN1bGF0ZUFuZFBhaW50T3ZlcmhhbmdBcmVhcyhH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpOwogCi0gICAgdmlydHVh
bCBib29sIGlzU2Nyb2xsVmlldygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxWaWV3KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsVmlldygpOwpAQCAtMzU2LDcgKzM1Niw3IEBA
IHByb3RlY3RlZDoKICAgICBib29sIHNldEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKGJvb2wsIGJvb2wq
IGNvbnRlbnRTaXplQWZmZWN0ZWQgPSAwKTsKIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTY3Jv
bGxDb3JuZXIoKTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVNjcm9sbENvcm5lclJlY3Qo
Y29uc3QgSW50UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlU2Ny
b2xsQ29ybmVyUmVjdChjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAKICAgICAvLyBTY3JvbGwg
dGhlIGNvbnRlbnQgYnkgYmxpdHRpbmcgdGhlIHBpeGVscy4KICAgICB2aXJ0dWFsIGJvb2wgc2Ny
b2xsQ29udGVudHNGYXN0UGF0aChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50
UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGJhci5oCmluZGV4IDM0MGNmZDEuLmIzNmQzMWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGJhci5oCkBAIC01MSw0OCArNTEsNDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgflNjcm9sbGJhcigpOwogCiAgICAgLy8gU2Nyb2xsYmFyVGhlbWVDbGllbnQgaW1wbGVtZW50
YXRpb24uCi0gICAgdmlydHVhbCBpbnQgeCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFdpZGdl
dDo6eCgpOyB9Ci0gICAgdmlydHVhbCBpbnQgeSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFdp
ZGdldDo6eSgpOyB9Ci0gICAgdmlydHVhbCBpbnQgd2lkdGgoKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiBXaWRnZXQ6OndpZHRoKCk7IH0KLSAgICB2aXJ0dWFsIGludCBoZWlnaHQoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBXaWRnZXQ6OmhlaWdodCgpOyB9Ci0gICAgdmlydHVhbCBJbnRTaXpl
IHNpemUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBXaWRnZXQ6OnNpemUoKTsgfQotICAgIHZp
cnR1YWwgSW50UG9pbnQgbG9jYXRpb24oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBXaWRnZXQ6
OmxvY2F0aW9uKCk7IH0KKyAgICB2aXJ0dWFsIGludCB4KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gV2lkZ2V0Ojp4KCk7IH0KKyAgICB2aXJ0dWFsIGludCB5KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gV2lkZ2V0Ojp5KCk7IH0KKyAgICB2aXJ0dWFsIGludCB3aWR0aCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIFdpZGdldDo6d2lkdGgoKTsgfQorICAgIHZpcnR1YWwgaW50IGhlaWdodCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdpZGdldDo6aGVpZ2h0KCk7IH0KKyAgICB2aXJ0dWFs
IEludFNpemUgc2l6ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdpZGdldDo6c2l6ZSgpOyB9
CisgICAgdmlydHVhbCBJbnRQb2ludCBsb2NhdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IFdpZGdldDo6bG9jYXRpb24oKTsgfQogCi0gICAgdmlydHVhbCBTY3JvbGxWaWV3KiBwYXJlbnQo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBXaWRnZXQ6OnBhcmVudCgpOyB9Ci0gICAgdmlydHVh
bCBTY3JvbGxWaWV3KiByb290KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gV2lkZ2V0Ojpyb290
KCk7IH0KKyAgICB2aXJ0dWFsIFNjcm9sbFZpZXcqIHBhcmVudCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIFdpZGdldDo6cGFyZW50KCk7IH0KKyAgICB2aXJ0dWFsIFNjcm9sbFZpZXcqIHJvb3Qo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBXaWRnZXQ6OnJvb3QoKTsgfQogCi0gICAgdmlydHVh
bCB2b2lkIHNldEZyYW1lUmVjdChjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBJbnRSZWN0IGZyYW1lUmVjdCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFdpZGdldDo6ZnJh
bWVSZWN0KCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0RnJhbWVSZWN0KGNvbnN0IEludFJlY3Qm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEludFJlY3QgZnJhbWVSZWN0KCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gV2lkZ2V0OjpmcmFtZVJlY3QoKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGlu
dmFsaWRhdGUoKSBPVkVSUklERSB7IFdpZGdldDo6aW52YWxpZGF0ZSgpOyB9Ci0gICAgdmlydHVh
bCB2b2lkIGludmFsaWRhdGVSZWN0KGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgaW52YWxpZGF0ZSgpIG92ZXJyaWRlIHsgV2lkZ2V0OjppbnZhbGlkYXRlKCk7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYpIG92ZXJyaWRl
OwogCi0gICAgdmlydHVhbCBTY3JvbGxiYXJPdmVybGF5U3R5bGUgc2Nyb2xsYmFyT3ZlcmxheVN0
eWxlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzU2Nyb2xsYWJsZUFyZWFB
Y3RpdmUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxWaWV3U2Ny
b2xsYmFyKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBTY3JvbGxiYXJPdmVybGF5U3R5
bGUgc2Nyb2xsYmFyT3ZlcmxheVN0eWxlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBi
b29sIGlzU2Nyb2xsYWJsZUFyZWFBY3RpdmUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IGJvb2wgaXNTY3JvbGxWaWV3U2Nyb2xsYmFyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0
dWFsIEludFBvaW50IGNvbnZlcnRGcm9tQ29udGFpbmluZ1dpbmRvdyhjb25zdCBJbnRQb2ludCYg
d2luZG93UG9pbnQpIE9WRVJSSURFIHsgcmV0dXJuIFdpZGdldDo6Y29udmVydEZyb21Db250YWlu
aW5nV2luZG93KHdpbmRvd1BvaW50KTsgfQorICAgIHZpcnR1YWwgSW50UG9pbnQgY29udmVydEZy
b21Db250YWluaW5nV2luZG93KGNvbnN0IEludFBvaW50JiB3aW5kb3dQb2ludCkgb3ZlcnJpZGUg
eyByZXR1cm4gV2lkZ2V0Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cod2luZG93UG9pbnQp
OyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNDdXN0b21TY3JvbGxiYXIoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgU2Nyb2xsYmFyT3JpZW50YXRpb24gb3Jp
ZW50YXRpb24oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX29yaWVudGF0aW9uOyB9CisgICAg
dmlydHVhbCBib29sIGlzQ3VzdG9tU2Nyb2xsYmFyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2aXJ0dWFsIFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9vcmllbnRhdGlvbjsgfQogCi0gICAgdmlydHVhbCBp
bnQgdmFsdWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBscm91bmRmKG1fY3VycmVudFBvcyk7
IH0KLSAgICB2aXJ0dWFsIGZsb2F0IGN1cnJlbnRQb3MoKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biBtX2N1cnJlbnRQb3M7IH0KLSAgICB2aXJ0dWFsIGludCB2aXNpYmxlU2l6ZSgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIG1fdmlzaWJsZVNpemU7IH0KLSAgICB2aXJ0dWFsIGludCB0b3RhbFNp
emUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3RvdGFsU2l6ZTsgfQotICAgIHZpcnR1YWwg
aW50IG1heGltdW0oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3RvdGFsU2l6ZSAtIG1fdmlz
aWJsZVNpemU7IH0KLSAgICB2aXJ0dWFsIFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xTaXpl
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9jb250cm9sU2l6ZTsgfQorICAgIHZpcnR1YWwg
aW50IHZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbHJvdW5kZihtX2N1cnJlbnRQb3Mp
OyB9CisgICAgdmlydHVhbCBmbG9hdCBjdXJyZW50UG9zKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9jdXJyZW50UG9zOyB9CisgICAgdmlydHVhbCBpbnQgdmlzaWJsZVNpemUoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX3Zpc2libGVTaXplOyB9CisgICAgdmlydHVhbCBpbnQgdG90YWxT
aXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV90b3RhbFNpemU7IH0KKyAgICB2aXJ0dWFs
IGludCBtYXhpbXVtKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV90b3RhbFNpemUgLSBtX3Zp
c2libGVTaXplOyB9CisgICAgdmlydHVhbCBTY3JvbGxiYXJDb250cm9sU2l6ZSBjb250cm9sU2l6
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY29udHJvbFNpemU7IH0KIAotICAgIHZpcnR1
YWwgaW50IGxpbmVTdGVwKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9saW5lU3RlcDsgfQot
ICAgIHZpcnR1YWwgaW50IHBhZ2VTdGVwKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9wYWdl
U3RlcDsgfQorICAgIHZpcnR1YWwgaW50IGxpbmVTdGVwKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9saW5lU3RlcDsgfQorICAgIHZpcnR1YWwgaW50IHBhZ2VTdGVwKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9wYWdlU3RlcDsgfQogCi0gICAgdmlydHVhbCBTY3JvbGxiYXJQYXJ0IHBy
ZXNzZWRQYXJ0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9wcmVzc2VkUGFydDsgfQotICAg
IHZpcnR1YWwgU2Nyb2xsYmFyUGFydCBob3ZlcmVkUGFydCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIG1faG92ZXJlZFBhcnQ7IH0KKyAgICB2aXJ0dWFsIFNjcm9sbGJhclBhcnQgcHJlc3NlZFBh
cnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3ByZXNzZWRQYXJ0OyB9CisgICAgdmlydHVh
bCBTY3JvbGxiYXJQYXJ0IGhvdmVyZWRQYXJ0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9o
b3ZlcmVkUGFydDsgfQogCi0gICAgdmlydHVhbCB2b2lkIHN0eWxlQ2hhbmdlZCgpIE9WRVJSSURF
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBzdHlsZUNoYW5nZWQoKSBvdmVycmlkZSB7IH0KIAotICAg
IHZpcnR1YWwgYm9vbCBlbmFibGVkKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9lbmFibGVk
OyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldEVuYWJsZWQoYm9vbCkgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBib29sIGVuYWJsZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2VuYWJsZWQ7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlZChib29sKSBvdmVycmlkZTsKIAogICAgIC8vIENh
bGxlZCBieSB0aGUgU2Nyb2xsYWJsZUFyZWEgd2hlbiB0aGUgc2Nyb2xsIG9mZnNldCBjaGFuZ2Vz
LgogICAgIHZvaWQgb2Zmc2V0RGlkQ2hhbmdlKCk7CkBAIC0xMTUsOSArMTE1LDkgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0UHJvcG9ydGlvbihpbnQgdmlzaWJsZVNpemUsIGludCB0b3RhbFNpemUp
OwogICAgIHZvaWQgc2V0UHJlc3NlZFBvcyhpbnQgcCkgeyBtX3ByZXNzZWRQb3MgPSBwOyB9CiAK
LSAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYg
ZGFtYWdlUmVjdCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhaW50KEdyYXBoaWNzQ29u
dGV4dCosIGNvbnN0IEludFJlY3QmIGRhbWFnZVJlY3QpIG92ZXJyaWRlOwogCi0gICAgdmlydHVh
bCBib29sIGlzT3ZlcmxheVNjcm9sbGJhcigpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwg
Ym9vbCBpc092ZXJsYXlTY3JvbGxiYXIoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHNob3Vs
ZFBhcnRpY2lwYXRlSW5IaXRUZXN0aW5nKCk7CiAKICAgICBib29sIGlzV2luZG93QWN0aXZlKCkg
Y29uc3Q7CkBAIC0xMzgsMjEgKzEzOCwyMSBAQCBwdWJsaWM6CiAKICAgICBTY3JvbGxiYXJUaGVt
ZSogdGhlbWUoKSBjb25zdCB7IHJldHVybiBtX3RoZW1lOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0UGFyZW50KFNjcm9sbFZpZXcqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UGFy
ZW50KFNjcm9sbFZpZXcqKSBvdmVycmlkZTsKIAogICAgIGJvb2wgc3VwcHJlc3NJbnZhbGlkYXRp
b24oKSBjb25zdCB7IHJldHVybiBtX3N1cHByZXNzSW52YWxpZGF0aW9uOyB9CiAgICAgdm9pZCBz
ZXRTdXBwcmVzc0ludmFsaWRhdGlvbihib29sIHMpIHsgbV9zdXBwcmVzc0ludmFsaWRhdGlvbiA9
IHM7IH0KIAotICAgIHZpcnR1YWwgSW50UmVjdCBjb252ZXJ0VG9Db250YWluaW5nVmlldyhjb25z
dCBJbnRSZWN0JikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJbnRSZWN0IGNvbnZlcnRG
cm9tQ29udGFpbmluZ1ZpZXcoY29uc3QgSW50UmVjdCYpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgSW50UmVjdCBjb252ZXJ0VG9Db250YWluaW5nVmlldyhjb25zdCBJbnRSZWN0JikgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBJbnRSZWN0IGNvbnZlcnRGcm9tQ29udGFpbmluZ1Zp
ZXcoY29uc3QgSW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBJbnRQb2lu
dCBjb252ZXJ0VG9Db250YWluaW5nVmlldyhjb25zdCBJbnRQb2ludCYpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgSW50UG9pbnQgY29udmVydEZyb21Db250YWluaW5nVmlldyhjb25zdCBJ
bnRQb2ludCYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgSW50UG9pbnQgY29udmVydFRv
Q29udGFpbmluZ1ZpZXcoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIEludFBvaW50IGNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXcoY29uc3QgSW50UG9pbnQmKSBj
b25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgbW92ZVRodW1iKGludCBwb3MsIGJvb2wgZHJhZ2dp
bmdEb2N1bWVudCA9IGZhbHNlKTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc0FscGhhTG9ja2VkKCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9pc0FscGhhTG9ja2VkOyB9Ci0gICAgdmlydHVhbCB2
b2lkIHNldElzQWxwaGFMb2NrZWQoYm9vbCBmbGFnKSBPVkVSUklERSB7IG1faXNBbHBoYUxvY2tl
ZCA9IGZsYWc7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNBbHBoYUxvY2tlZCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1faXNBbHBoYUxvY2tlZDsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRJc0Fs
cGhhTG9ja2VkKGJvb2wgZmxhZykgb3ZlcnJpZGUgeyBtX2lzQWxwaGFMb2NrZWQgPSBmbGFnOyB9
CiAKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNVcGRhdGVPblNlY29uZGFyeVRocmVhZCgpIGNv
bnN0OwogCkBAIC0yMDAsNyArMjAwLDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9pc0FscGhh
TG9ja2VkOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBpc1Njcm9sbGJhcigpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxiYXIo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiB9OwogCiBXSURHRVRfVFlQRV9DQVNU
UyhTY3JvbGxiYXIsIGlzU2Nyb2xsYmFyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVGltZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmgKaW5kZXgg
MTQxODkyNi4uZjQ1Y2I5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGlt
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oCkBAIC0xMjUsNyArMTI1
LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgZmlyZWQo
KSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpIG92ZXJyaWRlCiAgICAgewogICAg
ICAgICBtX2Z1bmN0aW9uKCk7CiAgICAgfQpAQCAtMTg0LDcgKzE4NCw3IEBAIHB1YmxpYzoKICAg
ICB1c2luZyBUaW1lckJhc2U6OmlzQWN0aXZlOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9p
ZCBmaXJlZCgpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgb3ZlcnJpZGUKICAg
ICB7CiAgICAgICAgIGlmIChtX3Nob3VsZFJlc3RhcnRXaGVuVGltZXJGaXJlcykgewogICAgICAg
ICAgICAgbV9zaG91bGRSZXN0YXJ0V2hlblRpbWVyRmlyZXMgPSBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmgKaW5kZXggZWFh
YzdlYS4uNjExMzk5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0
aW9uL1RpbWluZ0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0
aW9uL1RpbWluZ0Z1bmN0aW9uLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIAogICAg
IHZpcnR1YWwgfkxpbmVhclRpbWluZ0Z1bmN0aW9uKCkgeyB9CiAgICAgCi0gICAgdmlydHVhbCBi
b29sIG9wZXJhdG9yPT0oY29uc3QgVGltaW5nRnVuY3Rpb24mIG90aGVyKSBPVkVSUklERQorICAg
IHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFRpbWluZ0Z1bmN0aW9uJiBvdGhlcikgb3Zl
cnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiBvdGhlci5pc0xpbmVhclRpbWluZ0Z1bmN0aW9u
KCk7CiAgICAgfQpAQCAtMTE1LDcgKzExNSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfkN1
YmljQmV6aWVyVGltaW5nRnVuY3Rpb24oKSB7IH0KICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBUaW1pbmdGdW5jdGlvbiYgb3RoZXIpIE9WRVJSSURFCisgICAgdmlydHVh
bCBib29sIG9wZXJhdG9yPT0oY29uc3QgVGltaW5nRnVuY3Rpb24mIG90aGVyKSBvdmVycmlkZQog
ICAgIHsKICAgICAgICAgaWYgKG90aGVyLmlzQ3ViaWNCZXppZXJUaW1pbmdGdW5jdGlvbigpKSB7
CiAgICAgICAgICAgICBjb25zdCBDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uKiBjdGYgPSBzdGF0
aWNfY2FzdDxjb25zdCBDdWJpY0JlemllclRpbWluZ0Z1bmN0aW9uKj4oJm90aGVyKTsKQEAgLTE3
Miw3ICsxNzIsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB+U3RlcHNUaW1pbmdGdW5j
dGlvbigpIHsgfQogICAgIAotICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFRpbWlu
Z0Z1bmN0aW9uJiBvdGhlcikgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBUaW1pbmdGdW5jdGlvbiYgb3RoZXIpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAo
b3RoZXIuaXNTdGVwc1RpbWluZ0Z1bmN0aW9uKCkpIHsKICAgICAgICAgICAgIGNvbnN0IFN0ZXBz
VGltaW5nRnVuY3Rpb24qIHN0ZiA9IHN0YXRpY19jYXN0PGNvbnN0IFN0ZXBzVGltaW5nRnVuY3Rp
b24qPigmb3RoZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
QXVkaW9EU1BLZXJuZWxQcm9jZXNzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0F1ZGlvRFNQS2VybmVsUHJvY2Vzc29yLmgKaW5kZXggZjZjYWQ4ZS4uOTgzMGU0YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EU1BLZXJuZWxQcm9jZXNz
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0RTUEtlcm5lbFBy
b2Nlc3Nvci5oCkBAIC01NywxNSArNTcsMTUgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc093
blB0cjxBdWRpb0RTUEtlcm5lbD4gY3JlYXRlS2VybmVsKCkgPSAwOwogCiAgICAgLy8gQXVkaW9Q
cm9jZXNzb3IgbWV0aG9kcwotICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplKCkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIHVuaW5pdGlhbGl6ZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBwcm9jZXNzKGNvbnN0IEF1ZGlvQnVzKiBzb3VyY2UsIEF1ZGlvQnVzKiBkZXN0aW5hdGlv
biwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJl
c2V0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldE51bWJlck9mQ2hhbm5lbHModW5z
aWduZWQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscygp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fbnVtYmVyT2ZDaGFubmVsczsgfQorICAgIHZpcnR1
YWwgdm9pZCBpbml0aWFsaXplKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVuaW5pdGlh
bGl6ZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzKGNvbnN0IEF1ZGlvQnVz
KiBzb3VyY2UsIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbiwgc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcykg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlc2V0KCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHNldE51bWJlck9mQ2hhbm5lbHModW5zaWduZWQpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
bnVtYmVyT2ZDaGFubmVsczsgfQogCi0gICAgdmlydHVhbCBkb3VibGUgdGFpbFRpbWUoKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGRvdWJsZSBsYXRlbmN5VGltZSgpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgZG91YmxlIHRhaWxUaW1lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBkb3VibGUgbGF0ZW5jeVRpbWUoKSBjb25zdCBvdmVycmlkZTsKIAogcHJvdGVjdGVk
OgogICAgIFZlY3RvcjxPd25QdHI8QXVkaW9EU1BLZXJuZWw+PiBtX2tlcm5lbHM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9FcXVhbFBvd2VyUGFubmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9FcXVhbFBvd2VyUGFubmVyLmgKaW5kZXggMDEy
ZTIxNC4uMTczMzMzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
RXF1YWxQb3dlclBhbm5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0Vx
dWFsUG93ZXJQYW5uZXIuaApAQCAtMzksOCArMzksOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgcmVzZXQoKSB7IG1faXNGaXJzdFJlbmRlciA9IHRydWU7IH0KIAotICAgIHZpcnR1YWwg
ZG91YmxlIHRhaWxUaW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1
YWwgZG91YmxlIGxhdGVuY3lUaW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQorICAg
IHZpcnR1YWwgZG91YmxlIHRhaWxUaW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQor
ICAgIHZpcnR1YWwgZG91YmxlIGxhdGVuY3lUaW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
MDsgfQogCiBwcml2YXRlOgogICAgIC8vIEZvciBzbW9vdGhpbmcgLyBkZS16aXBwZXJpbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZQYW5uZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZQYW5uZXIuaAppbmRleCAwYmYwOWY1Li5k
OTZhNzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGUGFu
bmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURlBhbm5lci5oCkBA
IC0zOCwxNiArMzgsMTYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkhSVEZQYW5uZXIoKTsKIAog
ICAgIC8vIFBhbm5lcgotICAgIHZpcnR1YWwgdm9pZCBwYW4oZG91YmxlIGF6aW11dGgsIGRvdWJs
ZSBlbGV2YXRpb24sIGNvbnN0IEF1ZGlvQnVzKiBpbnB1dEJ1cywgQXVkaW9CdXMqIG91dHB1dEJ1
cywgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJl
c2V0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhbihkb3VibGUgYXppbXV0aCwgZG91
YmxlIGVsZXZhdGlvbiwgY29uc3QgQXVkaW9CdXMqIGlucHV0QnVzLCBBdWRpb0J1cyogb3V0cHV0
QnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVzZXQoKSBvdmVycmlkZTsKIAogICAgIHNpemVfdCBmZnRTaXplKCkgY29uc3QgeyByZXR1cm4g
ZmZ0U2l6ZUZvclNhbXBsZVJhdGUobV9zYW1wbGVSYXRlKTsgfQogICAgIHN0YXRpYyBzaXplX3Qg
ZmZ0U2l6ZUZvclNhbXBsZVJhdGUoZmxvYXQgc2FtcGxlUmF0ZSk7CiAKICAgICBmbG9hdCBzYW1w
bGVSYXRlKCkgY29uc3QgeyByZXR1cm4gbV9zYW1wbGVSYXRlOyB9CiAKLSAgICB2aXJ0dWFsIGRv
dWJsZSB0YWlsVGltZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgZG91YmxlIGxhdGVu
Y3lUaW1lKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBkb3VibGUgdGFpbFRpbWUoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGRvdWJsZSBsYXRlbmN5VGltZSgpIGNvbnN0IG92
ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIC8vIEdpdmVuIGFuIGF6aW11dGggYW5nbGUgaW4gdGhl
IHJhbmdlIC0xODAgLT4gKzE4MCwgcmV0dXJucyB0aGUgY29ycmVzcG9uZGluZyBhemltdXRoIGlu
ZGV4IGZvciB0aGUgZGF0YWJhc2UsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9pb3MvQXVkaW9EZXN0aW5hdGlvbklPUy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vaW9zL0F1ZGlvRGVzdGluYXRpb25JT1MuaAppbmRleCA4YjY4YTZhLi5hMGM4N2Y2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvQXVkaW9EZXN0
aW5hdGlvbklPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9BdWRp
b0Rlc3RpbmF0aW9uSU9TLmgKQEAgLTUzLDggKzUzLDggQEAgcHVibGljOgogCiBwcml2YXRlOgog
ICAgIHZvaWQgY29uZmlndXJlKCk7Ci0gICAgdmlydHVhbCB2b2lkIGJlZ2FuQXVkaW9JbnRlcnJ1
cHRpb24oKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZW5kZWRBdWRpb0ludGVycnVwdGlv
bigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBiZWdhbkF1ZGlvSW50ZXJydXB0aW9uKCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGVuZGVkQXVkaW9JbnRlcnJ1cHRpb24oKSBvdmVy
cmlkZTsKIAogICAgIC8vIERlZmF1bHRPdXRwdXRVbml0IGNhbGxiYWNrCiAgICAgc3RhdGljIE9T
U3RhdHVzIGlucHV0UHJvYyh2b2lkKiB1c2VyRGF0YSwgQXVkaW9Vbml0UmVuZGVyQWN0aW9uRmxh
Z3MqLCBjb25zdCBBdWRpb1RpbWVTdGFtcCosIFVJbnQzMiBidXNOdW1iZXIsIFVJbnQzMiBudW1i
ZXJPZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRGVzdGluYXRpb25NYWMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmgKaW5kZXgg
NzkwNThlYi4uZTFmNDBlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbWFjL0F1ZGlvRGVzdGluYXRpb25NYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5oCkBAIC00NSwxMiArNDUsMTIgQEAgcHVi
bGljOgogICAgIEF1ZGlvRGVzdGluYXRpb25NYWMoQXVkaW9JT0NhbGxiYWNrJiwgZmxvYXQgc2Ft
cGxlUmF0ZSk7CiAgICAgdmlydHVhbCB+QXVkaW9EZXN0aW5hdGlvbk1hYygpOwogCi0gICAgdmly
dHVhbCB2b2lkIHN0YXJ0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNQbGF5aW5nKCkgT1ZFUlJJREUgeyByZXR1cm4gbV9p
c1BsYXlpbmc7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcGF1c2VQbGF5YmFjaygpIE9WRVJSSURFIHsg
c3RvcCgpOyB9CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0KCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNQbGF5aW5nKCkgb3Zl
cnJpZGUgeyByZXR1cm4gbV9pc1BsYXlpbmc7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGF1c2VQbGF5
YmFjaygpIG92ZXJyaWRlIHsgc3RvcCgpOyB9CiAKLSAgICB2aXJ0dWFsIGZsb2F0IHNhbXBsZVJh
dGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3NhbXBsZVJhdGU7IH0KKyAgICB2aXJ0dWFs
IGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3NhbXBsZVJhdGU7
IH0KIAogcHJpdmF0ZToKICAgICB2b2lkIGNvbmZpZ3VyZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbml4L0F1ZGlvRGVzdGluYXRpb25OaXguaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL25peC9BdWRpb0Rlc3RpbmF0aW9uTml4LmgKaW5kZXgg
MGUwZDBlYS4uYzUxMGNhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vbml4L0F1ZGlvRGVzdGluYXRpb25OaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9uaXgvQXVkaW9EZXN0aW5hdGlvbk5peC5oCkBAIC00NywxNiArNDcsMTYgQEAgcHVi
bGljOgogICAgIEF1ZGlvRGVzdGluYXRpb25OaXgoQXVkaW9JT0NhbGxiYWNrJiwgY29uc3QgU3Ry
aW5nJiBpbnB1dERldmljZUlkLCB1bnNpZ25lZCBudW1iZXJPZklucHV0Q2hhbm5lbHMsIHVuc2ln
bmVkIG51bWJlck9mT3V0cHV0Q2hhbm5lbHMsIGZsb2F0IHNhbXBsZVJhdGUpOwogICAgIHZpcnR1
YWwgfkF1ZGlvRGVzdGluYXRpb25OaXgoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzdGFydCgpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIGlzUGxheWluZygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgZmxvYXQgc2FtcGxlUmF0ZSgp
IGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdGFydCgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzUGxheWlu
ZygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgLy8gV2ViS2l0OjpXZWJBdWRpb0RldmljZTo6UmVuZGVyQ2FsbGJhY2sKLSAg
ICB2aXJ0dWFsIHZvaWQgcmVuZGVyKGNvbnN0IHN0ZDo6dmVjdG9yPGZsb2F0Kj4mIHNvdXJjZURh
dGEsIGNvbnN0IHN0ZDo6dmVjdG9yPGZsb2F0Kj4mIGF1ZGlvRGF0YSwgc2l6ZV90IG51bWJlck9m
RnJhbWVzKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyKGNvbnN0IHN0ZDo6dmVj
dG9yPGZsb2F0Kj4mIHNvdXJjZURhdGEsIGNvbnN0IHN0ZDo6dmVjdG9yPGZsb2F0Kj4mIGF1ZGlv
RGF0YSwgc2l6ZV90IG51bWJlck9mRnJhbWVzKSBvdmVycmlkZTsKIAogICAgIC8vIFdlYkNvcmU6
OkF1ZGlvU291cmNlUHJvdmlkZXIKLSAgICB2aXJ0dWFsIHZvaWQgcHJvdmlkZUlucHV0KEF1ZGlv
QnVzKiwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHByb3ZpZGVJbnB1dChBdWRpb0J1cyosIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpIG92ZXJyaWRl
OwogCiBwcml2YXRlOgogICAgIEF1ZGlvSU9DYWxsYmFjayYgbV9jYWxsYmFjazsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmgKaW5kZXggYzRjMmZjYy4uYTk2
ZjY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1l
RWZsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmgK
QEAgLTE2MywxMiArMTYzLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2xp
ZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0OwogCiAjaWYgRU5BQkxF
KERBVEFMSVNUX0VMRU1FTlQpCi0gICAgdmlydHVhbCBJbnRTaXplIHNsaWRlclRpY2tTaXplKCkg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBpbnQgc2xpZGVyVGlja09mZnNldEZyb21UcmFj
a0NlbnRlcigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBzbGlkZXJU
aWNrU25hcHBpbmdUaHJlc2hvbGQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEludFNp
emUgc2xpZGVyVGlja1NpemUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGludCBzbGlk
ZXJUaWNrT2Zmc2V0RnJvbVRyYWNrQ2VudGVyKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBMYXlvdXRVbml0IHNsaWRlclRpY2tTbmFwcGluZ1RocmVzaG9sZCgpIGNvbnN0IG92ZXJyaWRl
OwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNEYXRhTGlzdFVJKGNvbnN0IEF0
b21pY1N0cmluZyYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Rh
dGFMaXN0VUkoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0
dWFsIGJvb2wgcGFpbnRTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8m
LCBjb25zdCBJbnRSZWN0Jik7CiAKQEAgLTIwNSwxMCArMjA1LDEwIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYUN1cnJlbnRUaW1lKFJlbmRlck9iamVjdCosIGNvbnN0IFBh
aW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICNlbmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFD
SykKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNDbG9zZWRDYXB0aW9uaW5nKCkgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFUb2dnbGVDbG9zZWRDYXB0aW9uc0J1
dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQ2xvc2VkQ2FwdGlvbmluZygpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhVG9nZ2xlQ2xvc2VkQ2FwdGlv
bnNCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYp
IG92ZXJyaWRlOwogI2VuZGlmCi0gICAgdmlydHVhbCBib29sIHNob3VsZFNob3dQbGFjZWhvbGRl
cldoZW5Gb2N1c2VkKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRTaG93UGxhY2Vob2xkZXJXaGVuRm9jdXNlZCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZvaWQgc2V0VGhlbWVQYXRoKGNvbnN0IFN0cmluZyYp
OwogICAgIFN0cmluZyB0aGVtZVBhdGgoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9TY3JvbGxiYXJFZmwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9TY3JvbGxiYXJFZmwuaAppbmRleCBjZWM1YjIwLi4zNTlmZjBiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvU2Nyb2xsYmFyRWZsLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJhckVmbC5oCkBAIC00OSw3ICs0OSw3IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgdm9pZCBmcmFtZVJlY3RzQ2hhbmdlZCgpOwogCi0gICAgdmlydHVh
bCB2b2lkIGludmFsaWRhdGUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0
ZSgpIG92ZXJyaWRlOwogcHJvdGVjdGVkOgogICAgIFNjcm9sbGJhckVmbChTY3JvbGxhYmxlQXJl
YSosIFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxiYXJDb250cm9sU2l6ZSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9TY3JvbGxiYXJUaGVtZUVmbC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9sbGJhclRoZW1lRWZsLmgKaW5kZXggODc1
OTJhNy4uOWI3ZTcxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Nj
cm9sbGJhclRoZW1lRWZsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1Njcm9s
bGJhclRoZW1lRWZsLmgKQEAgLTM3LDEwICszNywxMCBAQCBjbGFzcyBTY3JvbGxiYXJUaGVtZUVm
bCBGSU5BTCA6IHB1YmxpYyBTY3JvbGxiYXJUaGVtZSB7CiBwdWJsaWM6CiAgICAgU2Nyb2xsYmFy
VGhlbWVFZmwoKSA6IG1fc2Nyb2xsYmFyVGhpY2tuZXNzKDApIHsgfQogICAgIHZvaWQgc2V0U2Ny
b2xsYmFyVGhpY2tuZXNzKGludCB0aGlja25lc3MpIHsgbV9zY3JvbGxiYXJUaGlja25lc3MgPSB0
aGlja25lc3M7IH0KLSAgICB2aXJ0dWFsIGludCBzY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFy
Q29udHJvbFNpemUgPSBSZWd1bGFyU2Nyb2xsYmFyKSBPVkVSUklERSB7IHJldHVybiBtX3Njcm9s
bGJhclRoaWNrbmVzczsgfQorICAgIHZpcnR1YWwgaW50IHNjcm9sbGJhclRoaWNrbmVzcyhTY3Jv
bGxiYXJDb250cm9sU2l6ZSA9IFJlZ3VsYXJTY3JvbGxiYXIpIG92ZXJyaWRlIHsgcmV0dXJuIG1f
c2Nyb2xsYmFyVGhpY2tuZXNzOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJTY3JvbGxi
YXIoU2Nyb2xsYmFyVGhlbWVDbGllbnQqKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
dW5yZWdpc3RlclNjcm9sbGJhcihTY3JvbGxiYXJUaGVtZUNsaWVudCopIE9WRVJSSURFIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclNjcm9sbGJhcihTY3JvbGxiYXJUaGVtZUNsaWVudCop
IG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyU2Nyb2xsYmFyKFNjcm9s
bGJhclRoZW1lQ2xpZW50Kikgb3ZlcnJpZGUgeyB9CiBwcml2YXRlOgogICAgIGludCBtX3Njcm9s
bGJhclRoaWNrbmVzczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQXVkaW9UcmFja1ByaXZhdGUuaAppbmRleCBlNTBiMGQxLi5lZDAyMTI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BdWRpb1RyYWNrUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0F1ZGlvVHJhY2tQcml2YXRl
LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHZvaWQgc2V0Q2xpZW50
KEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0K
LSAgICB2aXJ0dWFsIEF1ZGlvVHJhY2tQcml2YXRlQ2xpZW50KiBjbGllbnQoKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiBtX2NsaWVudDsgfQorICAgIHZpcnR1YWwgQXVkaW9UcmFja1ByaXZhdGVD
bGllbnQqIGNsaWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKaW5kZXggMTZkYWY0Ny4u
YTRkNGQ3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0
bWFwSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJ
bWFnZS5oCkBAIC0xMjksNjQgKzEyOSw2NCBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB2aXJ0dWFs
IH5CaXRtYXBJbWFnZSgpOwogICAgIAotICAgIHZpcnR1YWwgYm9vbCBpc0JpdG1hcEltYWdlKCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0JpdG1h
cEltYWdlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBi
b29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2
aXJ0dWFsIEludFNpemUgc2l6ZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgSW50U2l6
ZSBzaXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgSW50U2l6ZSBzaXplUmVzcGVjdGluZ09yaWVu
dGF0aW9uKEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiA9IEltYWdlT3JpZW50YXRpb25EZXNj
cmlwdGlvbigpKSBjb25zdDsKICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCBJbnRTaXpl
IG9yaWdpbmFsU2l6ZSgpIGNvbnN0OwogICAgIEludFNpemUgb3JpZ2luYWxTaXplUmVzcGVjdGlu
Z09yaWVudGF0aW9uKCkgY29uc3Q7CiAjZW5kaWYKICAgICBJbnRTaXplIGN1cnJlbnRGcmFtZVNp
emUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0SG90U3BvdChJbnRQb2ludCYpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBnZXRIb3RTcG90KEludFBvaW50JikgY29uc3Qg
b3ZlcnJpZGU7CiAKICAgICB1bnNpZ25lZCBkZWNvZGVkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGVjb2RlZFNpemU7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBkYXRhQ2hhbmdlZChib29sIGFsbERh
dGFSZWNlaXZlZCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgZmlsZW5hbWVFeHRlbnNp
b24oKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgZGF0YUNoYW5nZWQoYm9vbCBh
bGxEYXRhUmVjZWl2ZWQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVuYW1lRXh0
ZW5zaW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBJdCBtYXkgbG9vayB1bnVzdWFsIHRo
YXQgdGhlcmUgaXMgbm8gc3RhcnQgYW5pbWF0aW9uIGNhbGwgYXMgcHVibGljIEFQSS4gIFRoaXMg
aXMgYmVjYXVzZQogICAgIC8vIHdlIHN0YXJ0IGFuZCBzdG9wIGFuaW1hdGluZyBsYXppbHkuICBB
bmltYXRpb24gYmVnaW5zIHdoZW5ldmVyIHNvbWVvbmUgZHJhd3MgdGhlIGltYWdlLiAgSXQgd2ls
bAogICAgIC8vIGF1dG9tYXRpY2FsbHkgcGF1c2Ugb25jZSBhbGwgb2JzZXJ2ZXJzIG5vIGxvbmdl
ciB3YW50IHRvIHJlbmRlciB0aGUgaW1hZ2UgYW55d2hlcmUuCi0gICAgdmlydHVhbCB2b2lkIHN0
b3BBbmltYXRpb24oKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmltYXRpb24o
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcEFuaW1hdGlvbigpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCByZXNldEFuaW1hdGlvbigpIG92ZXJyaWRlOwogCiAgICAgdmlydHVh
bCB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAotICAgICAgICBj
b25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBv
c2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBCbGVuZE1vZGUgPSBCbGVu
ZE1vZGVOb3JtYWwpIE9WRVJSSURFOworICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwg
Q29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBCbGVuZE1vZGUgPSBCbGVuZE1vZGVOb3JtYWwpIG92ZXJyaWRlOwog
CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIC8vIEFjY2Vzc29ycyBmb3IgbmF0aXZlIGltYWdlIGZv
cm1hdHMuCiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICB2aXJ0dWFsIE5TSW1hZ2UqIGdldE5TSW1h
Z2UoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIE5TSW1hZ2UqIGdldE5TSW1hZ2UoKSBvdmVycmlk
ZTsKICNlbmRpZgotICAgIHZpcnR1YWwgQ0ZEYXRhUmVmIGdldFRJRkZSZXByZXNlbnRhdGlvbigp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgQ0ZEYXRhUmVmIGdldFRJRkZSZXByZXNlbnRhdGlvbigp
IG92ZXJyaWRlOwogI2VuZGlmCiAKICNpZiBVU0UoQ0cpCi0gICAgdmlydHVhbCBDR0ltYWdlUmVm
IGdldENHSW1hZ2VSZWYoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIENHSW1hZ2VSZWYgZ2V0Rmly
c3RDR0ltYWdlUmVmT2ZTaXplKGNvbnN0IEludFNpemUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IFJldGFpblB0cjxDRkFycmF5UmVmPiBnZXRDR0ltYWdlQXJyYXkoKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIENHSW1hZ2VSZWYgZ2V0Q0dJbWFnZVJlZigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
Q0dJbWFnZVJlZiBnZXRGaXJzdENHSW1hZ2VSZWZPZlNpemUoY29uc3QgSW50U2l6ZSYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgUmV0YWluUHRyPENGQXJyYXlSZWY+IGdldENHSW1hZ2VBcnJheSgp
IG92ZXJyaWRlOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShXSU4pCi0gICAgdmlydHVhbCBib29s
IGdldEhCSVRNQVAoSEJJVE1BUCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGdldEhCSVRN
QVBPZlNpemUoSEJJVE1BUCwgY29uc3QgSW50U2l6ZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwg
Ym9vbCBnZXRIQklUTUFQKEhCSVRNQVApIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBnZXRI
QklUTUFQT2ZTaXplKEhCSVRNQVAsIGNvbnN0IEludFNpemUqKSBvdmVycmlkZTsKICNlbmRpZgog
CiAjaWYgUExBVEZPUk0oR1RLKQotICAgIHZpcnR1YWwgR2RrUGl4YnVmKiBnZXRHZGtQaXhidWYo
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEdka1BpeGJ1ZiogZ2V0R2RrUGl4YnVmKCkgb3ZlcnJp
ZGU7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEVGTCkKLSAgICB2aXJ0dWFsIEV2YXNfT2JqZWN0
KiBnZXRFdmFzT2JqZWN0KEV2YXMqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEV2YXNfT2JqZWN0
KiBnZXRFdmFzT2JqZWN0KEV2YXMqKSBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgdmlydHVhbCBQ
YXNzTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb25Gb3JDdXJyZW50RnJhbWUo
KSBPVkVSUklERSB7IHJldHVybiBmcmFtZU9yaWVudGF0aW9uQXRJbmRleChjdXJyZW50RnJhbWUo
KSk7IH0KKyAgICB2aXJ0dWFsIFBhc3NOYXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFnZUZvckN1cnJl
bnRGcmFtZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRh
dGlvbkZvckN1cnJlbnRGcmFtZSgpIG92ZXJyaWRlIHsgcmV0dXJuIGZyYW1lT3JpZW50YXRpb25B
dEluZGV4KGN1cnJlbnRGcmFtZSgpKTsgfQogCi0gICAgdmlydHVhbCBib29sIGN1cnJlbnRGcmFt
ZUtub3duVG9CZU9wYXF1ZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjdXJyZW50RnJh
bWVLbm93blRvQmVPcGFxdWUoKSBvdmVycmlkZTsKICAgICAKICAgICBib29sIGNhbkFuaW1hdGUo
KTsKIApAQCAtMjA0LDkgKzIwNCw5IEBAIHByb3RlY3RlZDoKICAgICBCaXRtYXBJbWFnZShJbWFn
ZU9ic2VydmVyKiA9IDApOwogCiAjaWYgUExBVEZPUk0oV0lOKQotICAgIHZpcnR1YWwgdm9pZCBk
cmF3RnJhbWVNYXRjaGluZ1NvdXJjZVNpemUoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRS
ZWN0JiBkc3RSZWN0LCBjb25zdCBJbnRTaXplJiBzcmNTaXplLCBDb2xvclNwYWNlIHN0eWxlQ29s
b3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBk
cmF3RnJhbWVNYXRjaGluZ1NvdXJjZVNpemUoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRS
ZWN0JiBkc3RSZWN0LCBjb25zdCBJbnRTaXplJiBzcmNTaXplLCBDb2xvclNwYWNlIHN0eWxlQ29s
b3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgdmlydHVh
bCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21w
b3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZs
b2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0
eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgSW1hZ2VPcmllbnRh
dGlvbkRlc2NyaXB0aW9uKSBvdmVycmlkZTsKIAogI2lmIFVTRShXSU5HREkpCiAgICAgdmlydHVh
bCB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLApAQCAtMjQ1LDcg
KzI0NSw3IEBAIHByb3RlY3RlZDoKICAgICAvLyBjYWNoZS4gIElmIHxkZXN0cm95QWxsfCBpcyBm
YWxzZSwgd2Ugb25seSBkZWxldGUgZnJhbWVzIHVwIHRvIHRoZSBjdXJyZW50CiAgICAgLy8gb25l
OyB0aGlzIGlzIHVzZWQgd2hpbGUgYW5pbWF0aW5nIGxhcmdlIGltYWdlcyB0byBrZWVwIG1lbW9y
eSBmb290cHJpbnQKICAgICAvLyBsb3cgd2l0aG91dCByZWRlY29kaW5nIHRoZSB3aG9sZSBpbWFn
ZSBvbiBldmVyeSBmcmFtZS4KLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveURlY29kZWREYXRhKGJv
b2wgZGVzdHJveUFsbCA9IHRydWUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95
RGVjb2RlZERhdGEoYm9vbCBkZXN0cm95QWxsID0gdHJ1ZSkgb3ZlcnJpZGU7CiAKICAgICAvLyBJ
ZiB0aGUgaW1hZ2UgaXMgbGFyZ2UgZW5vdWdoLCBjYWxscyBkZXN0cm95RGVjb2RlZERhdGEoKSBh
bmQgcGFzc2VzCiAgICAgLy8gfGRlc3Ryb3lBbGx8IGFsb25nLgpAQCAtMjY4LDcgKzI2OCw3IEBA
IHByb3RlY3RlZDoKICAgICAvLyBBbmltYXRpb24uCiAgICAgaW50IHJlcGV0aXRpb25Db3VudChi
b29sIGltYWdlS25vd25Ub0JlQ29tcGxldGUpOyAgLy8gfGltYWdlS25vd25Ub0JlQ29tcGxldGV8
IHNob3VsZCBiZSBzZXQgaWYgdGhlIGNhbGxlciBrbm93cyB0aGUgZW50aXJlIGltYWdlIGhhcyBi
ZWVuIGRlY29kZWQuCiAgICAgYm9vbCBzaG91bGRBbmltYXRlKCk7Ci0gICAgdmlydHVhbCB2b2lk
IHN0YXJ0QW5pbWF0aW9uKGJvb2wgY2F0Y2hVcElmTmVjZXNzYXJ5ID0gdHJ1ZSkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0QW5pbWF0aW9uKGJvb2wgY2F0Y2hVcElmTmVjZXNzYXJ5
ID0gdHJ1ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBhZHZhbmNlQW5pbWF0aW9uKFRpbWVyPEJpdG1h
cEltYWdlPiYpOwogCiAgICAgLy8gRnVuY3Rpb24gdGhhdCBkb2VzIHRoZSByZWFsIHdvcmsgb2Yg
YWR2YW5jaW5nIHRoZSBhbmltYXRpb24uICBXaGVuCkBAIC0yODYsMTEgKzI4NiwxMSBAQCBwcm90
ZWN0ZWQ6CiAgICAgLy8gY2hhbmdlZC4KICAgICB2b2lkIGNoZWNrRm9yU29saWRDb2xvcigpOwog
Ci0gICAgdmlydHVhbCBib29sIG1heUZpbGxXaXRoU29saWRDb2xvcigpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgQ29sb3Igc29saWRDb2xvcigpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwg
Ym9vbCBtYXlGaWxsV2l0aFNvbGlkQ29sb3IoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIENvbG9y
IHNvbGlkQ29sb3IoKSBjb25zdCBvdmVycmlkZTsKIAogI2lmICFBU1NFUlRfRElTQUJMRUQKLSAg
ICB2aXJ0dWFsIGJvb2wgbm90U29saWRDb2xvcigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9v
bCBub3RTb2xpZENvbG9yKCkgb3ZlcnJpZGU7CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZElt
YWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0
ZWRJbWFnZS5oCmluZGV4IDI0OTljM2UuLmJlZDY5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaApA
QCAtNDMsMTYgKzQzLDE2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBD
cm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZShmcm9tSW1hZ2UsIHRvSW1hZ2UsIHBlcmNlbnRhZ2UsIGNy
b3NzZmFkZVNpemUsIHNpemUpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGFp
bmVyU2l6ZShjb25zdCBJbnRTaXplJikgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCBib29sIHVz
ZXNDb250YWluZXJTaXplKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVXaWR0aCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZh
bHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGhhc1JlbGF0aXZlSGVpZ2h0KCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGFpbmVyU2l6ZShj
b25zdCBJbnRTaXplJikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCBib29sIHVzZXNDb250YWlu
ZXJTaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgaGFzUmVsYXRpdmVXaWR0aCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgdmlydHVhbCBib29sIGhhc1JlbGF0aXZlSGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgSW50U2l6ZSBzaXplKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gbV9jcm9zc2ZhZGVTaXplOyB9CisgICAgdmlydHVhbCBJbnRTaXplIHNpemUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Nyb3NzZmFkZVNpemU7IH0KIAogcHJvdGVjdGVkOgot
ICAgIHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYg
ZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JT
cGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2Ny
aXB0aW9uKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3ND
b250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
IHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0
eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVj
dCwgQmxlbmRNb2RlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0Nv
bnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1v
ZGUsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBv
aW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9y
LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIEJsZW5kTW9kZSkgb3ZlcnJpZGU7CiAKICAgICBD
cm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZShJbWFnZSogZnJvbUltYWdlLCBJbWFnZSogdG9JbWFnZSwg
ZmxvYXQgcGVyY2VudGFnZSwgSW50U2l6ZSBjcm9zc2ZhZGVTaXplLCBjb25zdCBJbnRTaXplJik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9s
eWdvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2x5Z29uLmgK
aW5kZXggMjg4ZGFiZC4uNTY2NjU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRmxvYXRQb2x5Z29uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRmxvYXRQb2x5Z29uLmgKQEAgLTk1LDEzICs5NSwxMyBAQCBwdWJsaWM6CiBjbGFz
cyBGbG9hdFBvbHlnb25FZGdlIDogcHVibGljIFZlcnRleFBhaXIgewogICAgIGZyaWVuZCBjbGFz
cyBGbG9hdFBvbHlnb247CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBjb25zdCBGbG9hdFBvaW50JiB2
ZXJ0ZXgxKCkgY29uc3QgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIGNvbnN0IEZsb2F0UG9pbnQmIHZl
cnRleDEoKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fcG9seWdvbik7
CiAgICAgICAgIHJldHVybiBtX3BvbHlnb24tPnZlcnRleEF0KG1fdmVydGV4SW5kZXgxKTsKICAg
ICB9CiAKLSAgICB2aXJ0dWFsIGNvbnN0IEZsb2F0UG9pbnQmIHZlcnRleDIoKSBjb25zdCBPVkVS
UklERQorICAgIHZpcnR1YWwgY29uc3QgRmxvYXRQb2ludCYgdmVydGV4MigpIGNvbnN0IG92ZXJy
aWRlCiAgICAgewogICAgICAgICBBU1NFUlQobV9wb2x5Z29uKTsKICAgICAgICAgcmV0dXJuIG1f
cG9seWdvbi0+dmVydGV4QXQobV92ZXJ0ZXhJbmRleDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRlZEltYWdlLmgKaW5kZXggYTQ0MDk1ZS4uNDQ2Mzg4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVk
SW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJ
bWFnZS5oCkBAIC0zNSwyNiArMzUsMjYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBH
ZW5lcmF0ZWRJbWFnZSA6IHB1YmxpYyBJbWFnZSB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCBib29s
IGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsg
fQorICAgIHZpcnR1YWwgYm9vbCBoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250YWluZXJTaXpl
KGNvbnN0IEludFNpemUmIHNpemUpIE9WRVJSSURFIHsgbV9zaXplID0gc2l6ZTsgfQotICAgIHZp
cnR1YWwgYm9vbCB1c2VzQ29udGFpbmVyU2l6ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRy
dWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVXaWR0aCgpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVIZWlnaHQoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVJ
bnRyaW5zaWNEaW1lbnNpb25zKExlbmd0aCYgaW50cmluc2ljV2lkdGgsIExlbmd0aCYgaW50cmlu
c2ljSGVpZ2h0LCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0Q29udGFpbmVyU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKSBvdmVycmlkZSB7
IG1fc2l6ZSA9IHNpemU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgdXNlc0NvbnRhaW5lclNpemUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGhhc1JlbGF0
aXZlV2lkdGgoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBi
b29sIGhhc1JlbGF0aXZlSGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGludHJp
bnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5zaWNS
YXRpbykgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIEludFNpemUgc2l6ZSgpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIG1fc2l6ZTsgfQorICAgIHZpcnR1YWwgSW50U2l6ZSBzaXplKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9zaXplOyB9CiAKICAgICAvLyBBc3N1bWUgdGhhdCBnZW5lcmF0
ZWQgY29udGVudCBoYXMgbm8gZGVjb2RlZCBkYXRhIHdlIG5lZWQgdG8gd29ycnkgYWJvdXQKLSAg
ICB2aXJ0dWFsIHZvaWQgZGVzdHJveURlY29kZWREYXRhKGJvb2wgLypkZXN0cm95QWxsKi8gPSB0
cnVlKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveURlY29kZWREYXRhKGJv
b2wgLypkZXN0cm95QWxsKi8gPSB0cnVlKSBvdmVycmlkZSB7IH0KIAogcHJvdGVjdGVkOgotICAg
IHZpcnR1YWwgdm9pZCBkcmF3KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UmVjdCYgZHN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFj
ZSwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0
aW9uKSBPVkVSUklERSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0
KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENv
bG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBJ
bWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pIG92ZXJyaWRlID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCi0gICAgICAgIGNvbnN0
IEZsb2F0UG9pbnQmIHBoYXNlLCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRl
T3BlcmF0b3IsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIEJsZW5kTW9kZSkgT1ZFUlJJREUg
PSAwOworICAgICAgICBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNv
bG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBC
bGVuZE1vZGUpIG92ZXJyaWRlID0gMDsKIAogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcyB0
byBiZSBsZXNzIGNvbnNlcnZhdGl2ZS4KLSAgICB2aXJ0dWFsIGJvb2wgY3VycmVudEZyYW1lS25v
d25Ub0JlT3BhcXVlKCkgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgY3VycmVudEZyYW1lS25vd25Ub0JlT3BhcXVlKCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7
IH0KIAogICAgIEdlbmVyYXRlZEltYWdlKCkgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuaAppbmRleCAxNGM4MmE4Li5mZmIzZjM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5o
CkBAIC00NSw5ICs0NSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5HcmFkaWVudEltYWdlKCkg
eyB9CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQq
LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29s
b3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIElt
YWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRy
YXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVy
YXRvciwgQmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwK
LSAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNw
YWNlLCBDb21wb3NpdGVPcGVyYXRvciwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgQmxlbmRN
b2RlKSBPVkVSUklERTsKKyAgICAgICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIENvbG9yU3Bh
Y2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgQmxlbmRNb2RlKSBvdmVycmlkZTsKIAogICAgIEdyYWRpZW50SW1hZ2UoUGFzc1Jl
ZlB0cjxHcmFkaWVudD4gZ2VuZXJhdG9yLCBjb25zdCBJbnRTaXplJiBzaXplKQogICAgICAgICA6
IG1fZ3JhZGllbnQoZ2VuZXJhdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5oCmluZGV4IDY3MTcxNDYuLjNkNTdlODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKQEAgLTEwNCw3
ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRmxvYXRBbmlt
YXRpb25WYWx1ZShrZXlUaW1lLCB2YWx1ZSwgdGltaW5nRnVuY3Rpb24pKTsKICAgICB9CiAKLSAg
ICB2aXJ0dWFsIFBhc3NPd25QdHI8QW5pbWF0aW9uVmFsdWU+IGNsb25lKCkgY29uc3QgT1ZFUlJJ
REUKKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8QW5pbWF0aW9uVmFsdWU+IGNsb25lKCkgY29uc3Qg
b3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRmxvYXRBbmltYXRp
b25WYWx1ZSgqdGhpcykpOwogICAgIH0KQEAgLTEzMCw3ICsxMzAsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUoa2V5VGltZSwg
dmFsdWUsIHRpbWluZ0Z1bmN0aW9uKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBQYXNzT3duUHRy
PEFuaW1hdGlvblZhbHVlPiBjbG9uZSgpIGNvbnN0IE9WRVJSSURFCisgICAgdmlydHVhbCBQYXNz
T3duUHRyPEFuaW1hdGlvblZhbHVlPiBjbG9uZSgpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAg
ICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKCp0aGlzKSk7
CiAgICAgfQpAQCAtMTU3LDcgKzE1Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBGaWx0ZXJBbmltYXRpb25WYWx1ZShrZXlUaW1lLCB2YWx1ZSwgdGltaW5nRnVuY3Rp
b24pKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8QW5pbWF0aW9uVmFsdWU+IGNs
b25lKCkgY29uc3QgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8QW5pbWF0aW9uVmFs
dWU+IGNsb25lKCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0
cihuZXcgRmlsdGVyQW5pbWF0aW9uVmFsdWUoKnRoaXMpKTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRl
LmgKaW5kZXggN2Q3YTQ4OC4uZTdlOTE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0luYmFuZFRleHRUcmFja1ByaXZhdGUuaApAQCAtNDIsNyAr
NDIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSgpIHsg
fQogCiAgICAgdm9pZCBzZXRDbGllbnQoSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCogY2xp
ZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9Ci0gICAgdmlydHVhbCBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlQ2xpZW50KiBjbGllbnQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2NsaWVudDsg
fQorICAgIHZpcnR1YWwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAogICAgIGVudW0gTW9kZSB7CiAgICAg
ICAgIERpc2FibGVkLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCmluZGV4IDcxNjFkOWMuLjMxYjRjMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTE1MSw5ICsxNTEsOSBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICB2
aXJ0dWFsIE1lZGlhUGxheWVyOjpNZWRpYUtleUV4Y2VwdGlvbiBnZW5lcmF0ZUtleVJlcXVlc3Qo
Y29uc3QgU3RyaW5nJiwgY29uc3QgdW5zaWduZWQgY2hhciosIHVuc2lnbmVkKSBPVkVSUklERSB7
IHJldHVybiBNZWRpYVBsYXllcjo6SW52YWxpZFBsYXllclN0YXRlOyB9Ci0gICAgdmlydHVhbCBN
ZWRpYVBsYXllcjo6TWVkaWFLZXlFeGNlcHRpb24gYWRkS2V5KGNvbnN0IFN0cmluZyYsIGNvbnN0
IHVuc2lnbmVkIGNoYXIqLCB1bnNpZ25lZCwgY29uc3QgdW5zaWduZWQgY2hhciosIHVuc2lnbmVk
LCBjb25zdCBTdHJpbmcmKSBPVkVSUklERSB7IHJldHVybiBNZWRpYVBsYXllcjo6SW52YWxpZFBs
YXllclN0YXRlOyB9Ci0gICAgdmlydHVhbCBNZWRpYVBsYXllcjo6TWVkaWFLZXlFeGNlcHRpb24g
Y2FuY2VsS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBPVkVSUklERSB7
IHJldHVybiBNZWRpYVBsYXllcjo6SW52YWxpZFBsYXllclN0YXRlOyB9CisgICAgdmlydHVhbCBN
ZWRpYVBsYXllcjo6TWVkaWFLZXlFeGNlcHRpb24gZ2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0
cmluZyYsIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCB1bnNpZ25lZCkgb3ZlcnJpZGUgeyByZXR1cm4g
TWVkaWFQbGF5ZXI6OkludmFsaWRQbGF5ZXJTdGF0ZTsgfQorICAgIHZpcnR1YWwgTWVkaWFQbGF5
ZXI6Ok1lZGlhS2V5RXhjZXB0aW9uIGFkZEtleShjb25zdCBTdHJpbmcmLCBjb25zdCB1bnNpZ25l
ZCBjaGFyKiwgdW5zaWduZWQsIGNvbnN0IHVuc2lnbmVkIGNoYXIqLCB1bnNpZ25lZCwgY29uc3Qg
U3RyaW5nJikgb3ZlcnJpZGUgeyByZXR1cm4gTWVkaWFQbGF5ZXI6OkludmFsaWRQbGF5ZXJTdGF0
ZTsgfQorICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXI6Ok1lZGlhS2V5RXhjZXB0aW9uIGNhbmNlbEtl
eVJlcXVlc3QoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyByZXR1cm4g
TWVkaWFQbGF5ZXI6OkludmFsaWRQbGF5ZXJTdGF0ZTsgfQogI2VuZGlmCiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaAppbmRleCA5
Y2QzMTZmLi44MzFhZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9TaW1wbGVGb250RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1NpbXBsZUZvbnREYXRhLmgKQEAgLTE1OCw4ICsxNTgsOCBAQCBwdWJsaWM6CiAgICAgR2x5
cGggemVyb0dseXBoKCkgY29uc3QgeyByZXR1cm4gbV96ZXJvR2x5cGg7IH0KICAgICB2b2lkIHNl
dFplcm9HbHlwaChHbHlwaCB6ZXJvR2x5cGgpIHsgbV96ZXJvR2x5cGggPSB6ZXJvR2x5cGg7IH0K
IAotICAgIHZpcnR1YWwgY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnREYXRhRm9yQ2hhcmFjdGVy
KFVDaGFyMzIpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBjb250YWluc0NoYXJh
Y3RlcnMoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBmb250RGF0YUZvckNoYXJhY3RlcihVQ2hhcjMyKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnNDaGFyYWN0ZXJzKGNvbnN0
IFVDaGFyKiwgaW50IGxlbmd0aCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBHbHlwaCBnbHlwaEZv
ckNoYXJhY3RlcihVQ2hhcjMyKSBjb25zdDsKIApAQCAtMTY5LDE1ICsxNjksMTUgQEAgcHVibGlj
OgogICAgIEFkZGl0aW9uYWxGb250RGF0YSogZm9udERhdGEoKSBjb25zdCB7IHJldHVybiBtX2Zv
bnREYXRhLmdldCgpOyB9CiAgICAgYm9vbCBpc1NWR0ZvbnQoKSBjb25zdCB7IHJldHVybiBtX2Zv
bnREYXRhICE9IG51bGxwdHI7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBpc0N1c3RvbUZvbnQoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiBtX2lzQ3VzdG9tRm9udDsgfQotICAgIHZpcnR1YWwgYm9v
bCBpc0xvYWRpbmcoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2lzTG9hZGluZzsgfQotICAg
IHZpcnR1YWwgYm9vbCBpc1NlZ21lbnRlZCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwg
Ym9vbCBpc0N1c3RvbUZvbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lzQ3VzdG9tRm9u
dDsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0xvYWRpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX2lzTG9hZGluZzsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1NlZ21lbnRlZCgpIGNvbnN0IG92
ZXJyaWRlOwogCiAgICAgY29uc3QgR2x5cGhEYXRhJiBtaXNzaW5nR2x5cGhEYXRhKCkgY29uc3Qg
eyByZXR1cm4gbV9taXNzaW5nR2x5cGhEYXRhOyB9CiAgICAgdm9pZCBzZXRNaXNzaW5nR2x5cGhE
YXRhKGNvbnN0IEdseXBoRGF0YSYgZ2x5cGhEYXRhKSB7IG1fbWlzc2luZ0dseXBoRGF0YSA9IGds
eXBoRGF0YTsgfQogCiAjaWZuZGVmIE5ERUJVRwotICAgIHZpcnR1YWwgU3RyaW5nIGRlc2NyaXB0
aW9uKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBTdHJpbmcgZGVzY3JpcHRpb24oKSBj
b25zdCBvdmVycmlkZTsKICNlbmRpZgogCiAjaWYgVVNFKEFQUEtJVCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvVHJhY2tQcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1RyYWNrUHJpdmF0ZS5oCmluZGV4IDk4
MWRkMDQuLjkxN2ViOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1ZpZGVvVHJhY2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVmlkZW9UcmFja1ByaXZhdGUuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAg
fQogCiAgICAgdm9pZCBzZXRDbGllbnQoVmlkZW9UcmFja1ByaXZhdGVDbGllbnQqIGNsaWVudCkg
eyBtX2NsaWVudCA9IGNsaWVudDsgfQotICAgIHZpcnR1YWwgVmlkZW9UcmFja1ByaXZhdGVDbGll
bnQqIGNsaWVudCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fY2xpZW50OyB9CisgICAgdmly
dHVhbCBWaWRlb1RyYWNrUHJpdmF0ZUNsaWVudCogY2xpZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9jbGllbnQ7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZChib29sIHNl
bGVjdGVkKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUFWRi5oCmluZGV4IDM0MjEzYTAuLjZjMTgyNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZG
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0lu
YmFuZFRleHRUcmFja1ByaXZhdGVBVkYuaApAQCAtNDUsOSArNDUsOSBAQCBjbGFzcyBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQVZGIDogcHVibGljIEluYmFuZFRleHRUcmFja1ByaXZhdGUgewogcHVi
bGljOgogICAgIHZpcnR1YWwgfkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkYoKTsKIAotICAgIHZp
cnR1YWwgdm9pZCBzZXRNb2RlKEluYmFuZFRleHRUcmFja1ByaXZhdGU6Ok1vZGUpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBzZXRNb2RlKEluYmFuZFRleHRUcmFja1ByaXZhdGU6Ok1vZGUp
IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBpbnQgdHJhY2tJbmRleCgpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIG1faW5kZXg7IH0KKyAgICB2aXJ0dWFsIGludCB0cmFja0luZGV4KCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9pbmRleDsgfQogICAgIHZvaWQgc2V0VGV4dFRyYWNrSW5kZXgo
aW50IGluZGV4KSB7IG1faW5kZXggPSBpbmRleDsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpc2Nv
bm5lY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb24uaAppbmRleCA4MGUyOTkwLi4xOTJlYzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCkBAIC0xNDQsNDkgKzE0NCw0
OSBAQCBwcm90ZWN0ZWQ6CiAgICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKTsgfQogCiAgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlUHJpdmF0ZUludGVyZmFjZSBvdmVy
cmlkZXMuCi0gICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiB1cmwpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgdXJsKSBvdmVycmlkZTsKICNp
ZiBFTkFCTEUoTUVESUFfU09VUkNFKQogICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmlu
ZyYsIFBhc3NSZWZQdHI8SFRNTE1lZGlhU291cmNlPik7CiAjZW5kaWYKICAgICB2aXJ0dWFsIHZv
aWQgY2FuY2VsTG9hZCgpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVG9QbGF5KCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1BsYXkoKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIFBsYXRmb3JtTWVkaWEgcGxhdGZvcm1NZWRpYSgpIGNvbnN0ID0gMDsKIAotICAg
IHZpcnR1YWwgdm9pZCBwbGF5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHBhdXNlKCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBsYXkoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgcGF1c2UoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgSW50U2l6ZSBuYXR1cmFsU2l6
ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBoYXNWaWRlbygpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIG1fY2FjaGVkSGFzVmlkZW87IH0KLSAgICB2aXJ0dWFsIGJvb2wgaGFz
QXVkaW8oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2NhY2hlZEhhc0F1ZGlvOyB9Ci0gICAg
dmlydHVhbCB2b2lkIHNldFZpc2libGUoYm9vbCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBmbG9h
dCBkdXJhdGlvbigpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgSW50U2l6ZSBuYXR1cmFs
U2l6ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBoYXNWaWRlbygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2FjaGVkSGFzVmlkZW87IH0KKyAgICB2aXJ0dWFsIGJvb2wg
aGFzQXVkaW8oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NhY2hlZEhhc0F1ZGlvOyB9Cisg
ICAgdmlydHVhbCB2b2lkIHNldFZpc2libGUoYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBm
bG9hdCBkdXJhdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgZmxvYXQgY3VycmVu
dFRpbWUoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNlZWsoZmxvYXQpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBzZWVrV2l0aFRvbGVyYW5jZShkb3VibGUsIGRvdWJsZSwgZG91
YmxlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2Vla2luZygpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBzZXRSYXRlKGZsb2F0KSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IGJvb2wgcGF1c2VkKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNlZWsoZmxv
YXQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZWVrV2l0aFRvbGVyYW5jZShkb3VibGUs
IGRvdWJsZSwgZG91YmxlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2Vla2luZygpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRSYXRlKGZsb2F0KSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGJvb2wgcGF1c2VkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIHNldFZvbHVtZShmbG9hdCkgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBoYXNDbG9zZWRDYXB0
aW9ucygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fY2FjaGVkSGFzQ2FwdGlvbnM7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgaGFzQ2xvc2VkQ2FwdGlvbnMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX2NhY2hlZEhhc0NhcHRpb25zOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldENsb3NlZENhcHRp
b25zVmlzaWJsZShib29sKSA9IDA7Ci0gICAgdmlydHVhbCBNZWRpYVBsYXllcjo6TmV0d29ya1N0
YXRlIG5ldHdvcmtTdGF0ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fbmV0d29ya1N0YXRl
OyB9Ci0gICAgdmlydHVhbCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gbV9yZWFkeVN0YXRlOyB9Ci0gICAgdmlydHVhbCBkb3VibGUg
bWF4VGltZVNlZWthYmxlRG91YmxlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBkb3Vi
bGUgbWluVGltZVNlZWthYmxlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQYXNzUmVm
UHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIGRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBzZXRTaXplKGNvbnN0IEludFNpemUmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIE1lZGlhUGxh
eWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9uZXR3b3JrU3RhdGU7IH0KKyAgICB2aXJ0dWFsIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJl
YWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3JlYWR5U3RhdGU7IH0KKyAgICB2
aXJ0dWFsIGRvdWJsZSBtYXhUaW1lU2Vla2FibGVEb3VibGUoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGRvdWJsZSBtaW5UaW1lU2Vla2FibGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGJvb2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHNldFNpemUoY29uc3QgSW50U2l6ZSYpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRl
eHQqLCBjb25zdCBJbnRSZWN0JikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRQcmVsb2FkKE1l
ZGlhUGxheWVyOjpQcmVsb2FkKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlbG9h
ZChNZWRpYVBsYXllcjo6UHJlbG9hZCkgb3ZlcnJpZGU7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNv
bnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJl
bmRlcmluZygpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYWNjZWxlcmF0ZWRSZW5kZXJp
bmdTdGF0ZUNoYW5nZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYWNjZWxlcmF0ZWRS
ZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKSBvdmVycmlkZTsKICNlbmRpZgotICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRNYWludGFpbkFzcGVjdFJhdGlvKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9z
aG91bGRNYWludGFpbkFzcGVjdFJhdGlvOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldFNob3VsZE1h
aW50YWluQXNwZWN0UmF0aW8oYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNob3Vs
ZE1haW50YWluQXNwZWN0UmF0aW8oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Nob3VsZE1h
aW50YWluQXNwZWN0UmF0aW87IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkTWFpbnRhaW5B
c3BlY3RSYXRpbyhib29sKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXI6Ok1v
dmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBwcmVw
YXJlRm9yUmVuZGVyaW5nKCk7CkBAIC0yODksOSArMjg5LDkgQEAgcHJvdGVjdGVkOgogCiAgICAg
dmlydHVhbCBTdHJpbmcgZW5naW5lRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiAiQVZGb3Vu
ZGF0aW9uIjsgfQogCi0gICAgdmlydHVhbCBzaXplX3QgZXh0cmFNZW1vcnlDb3N0KCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBzaXplX3QgZXh0cmFNZW1vcnlDb3N0KCkgY29uc3Qgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgdHJhY2tNb2RlQ2hhbmdlZCgpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCB0cmFja01vZGVDaGFuZ2VkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBw
cm9jZXNzTmV3QW5kUmVtb3ZlZFRleHRUcmFja3MoY29uc3QgVmVjdG9yPFJlZlB0cjxJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQVZGPj4mKTsKICAgICB2b2lkIGNsZWFyVGV4dFRyYWNrcygpOwogICAg
IFZlY3RvcjxSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRj4+IG1fdGV4dFRyYWNrczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9WaWRlb1RyYWNrUHJpdmF0ZUFWRi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL1ZpZGVvVHJhY2tQcml2YXRlQVZGLmgKaW5kZXggNjM1MDQzOS4uYmYz
NTY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL1ZpZGVvVHJhY2tQcml2YXRlQVZGLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1ZpZGVvVHJhY2tQcml2YXRlQVZGLmgKQEAgLTM2LDEw
ICszNiwxMCBAQCBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUFWRiA6IHB1YmxpYyBWaWRlb1RyYWNr
UHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVmlkZW9UcmFja1ByaXZhdGVBVkYp
CiBwdWJsaWM6CiAKLSAgICB2aXJ0dWFsIEtpbmQga2luZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIG1fa2luZDsgfQotICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIGlkKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gbV9pZDsgfQotICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIGxhYmVsKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gbV9sYWJlbDsgfQotICAgIHZpcnR1YWwgQXRvbWljU3RyaW5n
IGxhbmd1YWdlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9sYW5ndWFnZTsgfQorICAgIHZp
cnR1YWwgS2luZCBraW5kKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9raW5kOyB9CisgICAg
dmlydHVhbCBBdG9taWNTdHJpbmcgaWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lkOyB9
CisgICAgdmlydHVhbCBBdG9taWNTdHJpbmcgbGFiZWwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX2xhYmVsOyB9CisgICAgdmlydHVhbCBBdG9taWNTdHJpbmcgbGFuZ3VhZ2UoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX2xhbmd1YWdlOyB9CiAKIHByb3RlY3RlZDoKICAgICB2b2lkIHNl
dEtpbmQoS2luZCBraW5kKSB7IG1fa2luZCA9IGtpbmQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9JbmJhbmRUZXh0VHJhY2tQ
cml2YXRlQVZDRi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkNGLmgKaW5kZXggZDlkNzBiMy4uYjQ4Mzg5
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkNGLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL0luYmFuZFRleHRUcmFja1ByaXZhdGVB
VkNGLmgKQEAgLTQzLDE5ICs0MywxOSBAQCBwdWJsaWM6CiAKICAgICB+SW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUFWQ0YoKSB7IH0KIAotICAgIHZpcnR1YWwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZTo6
S2luZCBraW5kKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzQ2xvc2VkQ2Fw
dGlvbnMoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNTREgoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKCkg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzTWFpblByb2dyYW1Db250ZW50KCkg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzRWFzeVRvUmVhZCgpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIGxhYmVsKCkgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBBdG9taWNTdHJpbmcgbGFuZ3VhZ2UoKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNEZWZhdWx0KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlOjpLaW5kIGtpbmQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgYm9vbCBpc1NESCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjb250YWlu
c09ubHlGb3JjZWRTdWJ0aXRsZXMoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
aXNNYWluUHJvZ3JhbUNvbnRlbnQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
aXNFYXN5VG9SZWFkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBdG9taWNTdHJpbmcg
bGFiZWwoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyBsYW5ndWFn
ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc0RlZmF1bHQoKSBjb25zdCBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0KCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIGRpc2Nvbm5lY3QoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBp
c0xlZ2FjeUNsb3NlZENhcHRpb25zVHJhY2soKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0xlZ2FjeUNsb3NlZENhcHRpb25zVHJhY2soKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgQVZDRk1lZGlhU2VsZWN0aW9uT3B0
aW9uUmVmIG1lZGlhU2VsZWN0aW9uT3B0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVNlbGVj
dGlvbk9wdGlvbi5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFW
Q0YuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9J
bmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZDRi5oCmluZGV4IDI5Y2ZjNjEuLjYyOTgyYzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9jZi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZDRi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9JbmJhbmRUZXh0VHJhY2tQcml2
YXRlTGVnYWN5QVZDRi5oCkBAIC00NSwxNyArNDUsMTcgQEAgcHVibGljOgogCiAgICAgfkluYmFu
ZFRleHRUcmFja1ByaXZhdGVMZWdhY3lBVkNGKCkgeyB9CiAKLSAgICB2aXJ0dWFsIEluYmFuZFRl
eHRUcmFja1ByaXZhdGU6OktpbmQga2luZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
Ym9vbCBpc0Nsb3NlZENhcHRpb25zKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29s
IGNvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlcygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgYm9vbCBpc01haW5Qcm9ncmFtQ29udGVudCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgYm9vbCBpc0Vhc3lUb1JlYWQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEF0b21p
Y1N0cmluZyBsYWJlbCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgQXRvbWljU3RyaW5n
IGxhbmd1YWdlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlOjpLaW5kIGtpbmQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXND
bG9zZWRDYXB0aW9ucygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjb250YWlu
c09ubHlGb3JjZWRTdWJ0aXRsZXMoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
aXNNYWluUHJvZ3JhbUNvbnRlbnQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
aXNFYXN5VG9SZWFkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBdG9taWNTdHJpbmcg
bGFiZWwoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyBsYW5ndWFn
ZSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3QoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdCgpIG92ZXJyaWRlOwogCi0gICAgdmly
dHVhbCBib29sIGlzTGVnYWN5Q2xvc2VkQ2FwdGlvbnNUcmFjaygpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNMZWdhY3lDbG9zZWRDYXB0aW9uc1Ry
YWNrKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgQVZDRlBsYXllckl0
ZW1UcmFja1JlZiBhdlBsYXllckl0ZW1UcmFjaygpIGNvbnN0IHsgcmV0dXJuIG1fcGxheWVySXRl
bVRyYWNrLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKaW5kZXggZWI5NzlhMy4uMjBiNzRlNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2Nm
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbkNGLmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0YgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uIHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRigpOwog
Ci0gICAgdmlydHVhbCB2b2lkIHRyYWNrc0NoYW5nZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgdHJhY2tzQ2hhbmdlZCgpIG92ZXJyaWRlOwogCiAgICAgc3RhdGljIHZvaWQgcmVnaXN0
ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAKQEAgLTg1LDcgKzg1LDcgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIGZsb2F0IHBsYXRmb3JtTWF4VGltZUxvYWRlZCgpIGNvbnN0
OwogICAgIHZpcnR1YWwgdm9pZCBiZWdpbkxvYWRpbmdNZXRhZGF0YSgpOwogICAgIHZpcnR1YWwg
dm9pZCBzaXplQ2hhbmdlZCgpOwotICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0ltbWVkaWF0ZUNv
bXBvc2l0aW5nKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHJlcXVpcmVzSW1t
ZWRpYXRlQ29tcG9zaXRpbmcoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBo
YXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3Q7CiAKQEAgLTk4LDE4ICs5OCwxOCBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgYm9vbCBoYXNDb250ZXh0UmVuZGVyZXIoKSBjb25zdDsKICAgICB2
aXJ0dWFsIGJvb2wgaGFzTGF5ZXJSZW5kZXJlcigpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lk
IHVwZGF0ZVZpZGVvTGF5ZXJHcmF2aXR5KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZVZpZGVvTGF5ZXJHcmF2aXR5KCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgY29u
dGVudHNOZWVkc0Rpc3BsYXkoKTsKIAotICAgIHZpcnR1YWwgU3RyaW5nIGxhbmd1YWdlT2ZQcmlt
YXJ5QXVkaW9UcmFjaygpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIGxhbmd1
YWdlT2ZQcmltYXJ5QXVkaW9UcmFjaygpIGNvbnN0IG92ZXJyaWRlOwogCiAjaWYgSEFWRShBVkZP
VU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQKQogICAgIHZvaWQgcHJvY2Vzc01lZGlhU2Vs
ZWN0aW9uT3B0aW9ucygpOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q3VycmVudFRy
YWNrKEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkYqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIElu
YmFuZFRleHRUcmFja1ByaXZhdGVBVkYqIGN1cnJlbnRUcmFjaygpIGNvbnN0IE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJyZW50VHJhY2soSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFW
RiopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRiogY3Vy
cmVudFRyYWNrKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICNpZiAhSEFWRShBVkZPVU5EQVRJT05fTEVH
SUJMRV9PVVRQVVRfU1VQUE9SVCkKICAgICB2b2lkIHByb2Nlc3NMZWdhY3lDbG9zZWRDYXB0aW9u
c1RyYWNrcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0F1ZGlv
VHJhY2tQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggNTRiNDY5ZS4uZjhmYTRkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BdWRpb1RyYWNrUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC00Niw4ICs0Niw4IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qyh0cmFjaywgcGFyZW50KSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGVuYWJsZWQoKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlZChib29sKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBzZXRFbmFibGVkKGJvb2wpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzZXRBc3NldFRy
YWNrKEFWQXNzZXRUcmFjayopOwogICAgIEFWQXNzZXRUcmFjayogYXNzZXRUcmFjaygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkZP
YmpDLmgKaW5kZXggMGU1ZTZjYS4uMjczYWUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGT2JqQy5oCkBAIC00NCwxOSArNDQs
MTkgQEAgcHVibGljOgogCiAgICAgfkluYmFuZFRleHRUcmFja1ByaXZhdGVBVkZPYmpDKCkgeyB9
CiAKLSAgICB2aXJ0dWFsIEluYmFuZFRleHRUcmFja1ByaXZhdGU6OktpbmQga2luZCgpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc0Nsb3NlZENhcHRpb25zKCkgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzU0RIKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBib29sIGNvbnRhaW5zT25seUZvcmNlZFN1YnRpdGxlcygpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgYm9vbCBpc01haW5Qcm9ncmFtQ29udGVudCgpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgYm9vbCBpc0Vhc3lUb1JlYWQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIEF0b21pY1N0cmluZyBsYWJlbCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgQXRv
bWljU3RyaW5nIGxhbmd1YWdlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlz
RGVmYXVsdCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZTo6S2luZCBraW5kKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzQ2xv
c2VkQ2FwdGlvbnMoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTREgoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnNPbmx5Rm9yY2VkU3VidGl0
bGVzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzTWFpblByb2dyYW1Db250
ZW50KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzRWFzeVRvUmVhZCgpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIGxhYmVsKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBBdG9taWNTdHJpbmcgbGFuZ3VhZ2UoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNEZWZhdWx0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgZGlzY29ubmVjdCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNj
b25uZWN0KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNMZWdhY3lDbG9zZWRDYXB0
aW9uc1RyYWNrKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaXNMZWdhY3lDbG9zZWRDYXB0aW9uc1RyYWNrKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gZmFsc2U7IH0KIAogICAgIEFWTWVkaWFTZWxlY3Rpb25PcHRpb24gKm1lZGlhU2VsZWN0aW9u
T3B0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVNlbGVjdGlvbk9wdGlvbi5nZXQoKTsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2JqQy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUxlZ2FjeUFWRk9iakMuaAppbmRleCAzMmUwMTljLi5iNDlkZGQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbmJh
bmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0luYmFuZFRleHRUcmFja1ByaXZhdGVM
ZWdhY3lBVkZPYmpDLmgKQEAgLTQ2LDE3ICs0NiwxNyBAQCBwdWJsaWM6CiAKICAgICB+SW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWRk9iakMoKSB7IH0KIAotICAgIHZpcnR1YWwgSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZTo6S2luZCBraW5kKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBib29sIGlzQ2xvc2VkQ2FwdGlvbnMoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJv
b2wgY29udGFpbnNPbmx5Rm9yY2VkU3VidGl0bGVzKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBib29sIGlzTWFpblByb2dyYW1Db250ZW50KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBib29sIGlzRWFzeVRvUmVhZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgQXRv
bWljU3RyaW5nIGxhYmVsKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBBdG9taWNTdHJp
bmcgbGFuZ3VhZ2UoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEluYmFuZFRleHRUcmFj
a1ByaXZhdGU6OktpbmQga2luZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBp
c0Nsb3NlZENhcHRpb25zKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGNvbnRh
aW5zT25seUZvcmNlZFN1YnRpdGxlcygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9v
bCBpc01haW5Qcm9ncmFtQ29udGVudCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9v
bCBpc0Vhc3lUb1JlYWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEF0b21pY1N0cmlu
ZyBsYWJlbCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIGxhbmd1
YWdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdCgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0KCkgb3ZlcnJpZGU7CiAKLSAgICB2
aXJ0dWFsIGJvb2wgaXNMZWdhY3lDbG9zZWRDYXB0aW9uc1RyYWNrKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0xlZ2FjeUNsb3NlZENhcHRpb25z
VHJhY2soKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBBVlBsYXllckl0
ZW1UcmFjayAqYXZQbGF5ZXJJdGVtVHJhY2soKSBjb25zdCB7IHJldHVybiBtX3BsYXllckl0ZW1U
cmFjay5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggMDEzMzdjOS4uNmVkOTE4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAK
ICAgICB2b2lkIHNldEFzc2V0KGlkKTsKLSAgICB2aXJ0dWFsIHZvaWQgdHJhY2tzQ2hhbmdlZCgp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB0cmFja3NDaGFuZ2VkKCkgb3ZlcnJpZGU7CiAK
ICNpZiBIQVZFKEFWRk9VTkRBVElPTl9NRURJQV9TRUxFQ1RJT05fR1JPVVApCiAgICAgUmV0YWlu
UHRyPEFWUGxheWVySXRlbT4gcGxheWVySXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1fYXZQbGF5ZXJJ
dGVtOyB9CkBAIC0xNzAsNyArMTcwLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaGFz
Q29udGV4dFJlbmRlcmVyKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGhhc0xheWVyUmVuZGVy
ZXIoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWRlb0xheWVyR3Jhdml0eSgp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWRlb0xheWVyR3Jhdml0eSgpIG92
ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29u
c3Q7CiAgICAgCkBAIC0xODYsNyArMTg2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUxh
c3RJbWFnZSgpOwogICAgIGJvb2wgdmlkZW9PdXRwdXRIYXNBdmFpbGFibGVGcmFtZSgpOwogICAg
IHZvaWQgcGFpbnRXaXRoVmlkZW9PdXRwdXQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVj
dCYpOwotICAgIHZpcnR1YWwgUGFzc05hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9yQ3VycmVu
dFRpbWUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NOYXRpdmVJbWFnZVB0ciBuYXRpdmVJ
bWFnZUZvckN1cnJlbnRUaW1lKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCB3YWl0Rm9yVmlkZW9PdXRw
dXRNZWRpYURhdGFXaWxsQ2hhbmdlKCk7CiAjZW5kaWYKIApAQCAtMTk2LDE1ICsxOTYsMTUgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIE1lZGlhUGxheWVyOjpNZWRpYUtleUV4Y2VwdGlvbiBjYW5j
ZWxLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCiAKLSAg
ICB2aXJ0dWFsIFN0cmluZyBsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKSBj
b25zdCBvdmVycmlkZTsKIAogI2lmIEhBVkUoQVZGT1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9H
Uk9VUCkKICAgICB2b2lkIHByb2Nlc3NNZWRpYVNlbGVjdGlvbk9wdGlvbnMoKTsKICAgICBBVk1l
ZGlhU2VsZWN0aW9uR3JvdXAqIHNhZmVNZWRpYVNlbGVjdGlvbkdyb3VwRm9yTGVnaWJsZU1lZGlh
KCk7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJyZW50VHJhY2soSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUFWRiopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUFWRiogY3VycmVudFRyYWNrKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9jdXJy
ZW50VHJhY2s7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q3VycmVudFRyYWNrKEluYmFuZFRleHRU
cmFja1ByaXZhdGVBVkYqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEluYmFuZFRleHRUcmFja1By
aXZhdGVBVkYqIGN1cnJlbnRUcmFjaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY3VycmVu
dFRyYWNrOyB9CiAKICNpZiAhSEFWRShBVkZPVU5EQVRJT05fTEVHSUJMRV9PVVRQVVRfU1VQUE9S
VCkKICAgICB2b2lkIHByb2Nlc3NMZWdhY3lDbG9zZWRDYXB0aW9uc1RyYWNrcygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMuaAppbmRleCAyNzdlNWE4Li5iZTFjNTE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaApAQCAtNTgsOCArNTgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRBdWRpb1Jl
bmRlcmVyKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciopOwogICAgIHZvaWQgcmVtb3ZlQXVk
aW9SZW5kZXJlcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIqKTsKIAotICAgIHZpcnR1YWwg
TWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0
YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0
ZSByZWFkeVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1l
ZGlhUGxheWVyOjpSZWFkeVN0YXRlKTsKICAgICB2b2lkIHNldE5ldHdvcmtTdGF0ZShNZWRpYVBs
YXllcjo6TmV0d29ya1N0YXRlKTsKIApAQCAtNzMsODAgKzczLDgwIEBAIHB1YmxpYzoKIAogcHJp
dmF0ZToKICAgICAvLyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UKLSAgICB2aXJ0dWFsIHZv
aWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGxv
YWQoY29uc3QgU3RyaW5nJiB1cmwsIFBhc3NSZWZQdHI8SFRNTE1lZGlhU291cmNlPikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGNhbmNlbExvYWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IGxvYWQoY29uc3QgU3RyaW5nJiB1cmwsIFBhc3NSZWZQdHI8SFRNTE1lZGlhU291cmNlPikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbExvYWQoKSBvdmVycmlkZTsKIAotICAgIHZp
cnR1YWwgdm9pZCBwcmVwYXJlVG9QbGF5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQbGF0Zm9y
bU1lZGlhIHBsYXRmb3JtTWVkaWEoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
cHJlcGFyZVRvUGxheSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGxhdGZvcm1NZWRpYSBwbGF0
Zm9ybU1lZGlhKCkgY29uc3Qgb3ZlcnJpZGU7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQotICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0
IG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgcGxheSgpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBwbGF5KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBwbGF5SW50ZXJuYWwo
KTsKIAotICAgIHZpcnR1YWwgdm9pZCBwYXVzZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBwYXVzZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgcGF1c2VJbnRlcm5hbCgpOwogCi0gICAgdmly
dHVhbCBib29sIHBhdXNlZCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBwYXVz
ZWQoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRWb2x1bWUoZmxvYXQg
dm9sdW1lKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSBjb25z
dCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldE11dGVkKGJv
b2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCB2b2lkIHNldE11dGVkKGJvb2wpIG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzU2Nhbm5pbmcoKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNTY2FubmluZygpIGNvbnN0IG92ZXJyaWRlOwog
Ci0gICAgdmlydHVhbCBJbnRTaXplIG5hdHVyYWxTaXplKCkgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBJbnRTaXplIG5hdHVyYWxTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0
dWFsIGJvb2wgaGFzVmlkZW8oKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaGFz
QXVkaW8oKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzVmlkZW8oKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzQXVkaW8oKSBjb25zdCBvdmVycmlkZTsK
IAotICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlKGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBzZXRWaXNpYmxlKGJvb2wpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBkb3VibGUg
ZHVyYXRpb25Eb3VibGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGRvdWJsZSBjdXJy
ZW50VGltZURvdWJsZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgZG91YmxlIHN0YXJ0
VGltZURvdWJsZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgZG91YmxlIGluaXRpYWxU
aW1lKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBkb3VibGUgZHVyYXRpb25Eb3VibGUo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGRvdWJsZSBjdXJyZW50VGltZURvdWJsZSgp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgZG91YmxlIHN0YXJ0VGltZURvdWJsZSgpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgZG91YmxlIGluaXRpYWxUaW1lKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2Vla1dpdGhUb2xlcmFuY2UoZG91YmxlIHRpbWUs
IGRvdWJsZSBuZWdhdGl2ZVRocmVzaG9sZCwgZG91YmxlIHBvc2l0aXZlVGhyZXNob2xkKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2Vla2luZygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBzZXRSYXRlRG91YmxlKGRvdWJsZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIHNlZWtXaXRoVG9sZXJhbmNlKGRvdWJsZSB0aW1lLCBkb3VibGUgbmVnYXRpdmVUaHJlc2hv
bGQsIGRvdWJsZSBwb3NpdGl2ZVRocmVzaG9sZCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IHNlZWtpbmcoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmF0ZURvdWJs
ZShkb3VibGUpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+
IHNlZWthYmxlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBkb3VibGUgbWF4VGltZVNl
ZWthYmxlRG91YmxlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBkb3VibGUgbWluVGlt
ZVNlZWthYmxlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFRpbWVS
YW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFRpbWVSYW5nZXM+IHNlZWthYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBkb3Vi
bGUgbWF4VGltZVNlZWthYmxlRG91YmxlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBk
b3VibGUgbWluVGltZVNlZWthYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQYXNz
UmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0
dWFsIGJvb2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBib29sIGRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVh
bCB2b2lkIHNldFNpemUoY29uc3QgSW50U2l6ZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRTaXplKGNvbnN0IEludFNpemUmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBw
YWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IEludFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoR3JhcGhpY3ND
b250ZXh0KiwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwYWlu
dEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0Jikg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBoYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAg
dmlydHVhbCBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0
IG92ZXJyaWRlOwogICAgIC8vIGNhbGxlZCB3aGVuIHRoZSByZW5kZXJpbmcgc3lzdGVtIGZsaXBz
IHRoZSBpbnRvIG9yIG91dCBvZiBhY2NlbGVyYXRlZCByZW5kZXJpbmcgbW9kZS4KLSAgICB2aXJ0
dWFsIHZvaWQgYWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgYWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKSBvdmVycmlk
ZTsKICNlbmRpZgogCi0gICAgdmlydHVhbCBNZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBtb3Zp
ZUxvYWRUeXBlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBNZWRpYVBsYXllcjo6TW92
aWVMb2FkVHlwZSBtb3ZpZUxvYWRUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgcHJlcGFyZUZvclJlbmRlcmluZygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBw
cmVwYXJlRm9yUmVuZGVyaW5nKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFN0cmluZyBlbmdp
bmVEZXNjcmlwdGlvbigpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIGVuZ2lu
ZURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFN0cmluZyBsYW5n
dWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0
cmluZyBsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKSBjb25zdCBvdmVycmlkZTsKIAotICAg
IHZpcnR1YWwgc2l6ZV90IGV4dHJhTWVtb3J5Q29zdCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgc2l6ZV90IGV4dHJhTWVtb3J5Q29zdCgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmly
dHVhbCB1bnNpZ25lZCBsb25nIHRvdGFsVmlkZW9GcmFtZXMoKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHVuc2lnbmVkIGxvbmcgZHJvcHBlZFZpZGVvRnJhbWVzKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB1bnNpZ25lZCBsb25nIGNvcnJ1cHRlZFZpZGVvRnJhbWVzKCkgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBkb3VibGUgdG90YWxGcmFtZURlbGF5KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB1
bnNpZ25lZCBsb25nIHRvdGFsVmlkZW9GcmFtZXMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHVu
c2lnbmVkIGxvbmcgZHJvcHBlZFZpZGVvRnJhbWVzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB1
bnNpZ25lZCBsb25nIGNvcnJ1cHRlZFZpZGVvRnJhbWVzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBkb3VibGUgdG90YWxGcmFtZURlbGF5KCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGVuc3VyZUxh
eWVyKCk7CiAgICAgdm9pZCBkZXN0cm95TGF5ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0
ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMuaAppbmRleCBjNGZjMTdhLi5kZDhmMjFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZG
T2JqQy5oCkBAIC01NCwxMyArNTQsMTMgQEAgcHVibGljOgogICAgIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQyogcGxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9wbGF5ZXI7IH0K
ICAgICBjb25zdCBWZWN0b3I8U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqPiYgYWN0aXZlU291
cmNlQnVmZmVycygpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZlU291cmNlQnVmZmVyczsgfQogCi0g
ICAgdmlydHVhbCBBZGRTdGF0dXMgYWRkU291cmNlQnVmZmVyKGNvbnN0IENvbnRlbnRUeXBlJiwg
UmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZhdGU+JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBkb3Vi
bGUgZHVyYXRpb24oKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RHVyYXRpb24oZG91
YmxlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbWFya0VuZE9mU3RyZWFtKEVuZE9mU3Ry
ZWFtU3RhdHVzKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdW5tYXJrRW5kT2ZTdHJlYW0o
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3Rh
dGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRp
YVBsYXllcjo6UmVhZHlTdGF0ZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBBZGRTdGF0dXMgYWRk
U291cmNlQnVmZmVyKGNvbnN0IENvbnRlbnRUeXBlJiwgUmVmUHRyPFNvdXJjZUJ1ZmZlclByaXZh
dGU+Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBkb3VibGUgZHVyYXRpb24oKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0RHVyYXRpb24oZG91YmxlKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgbWFya0VuZE9mU3RyZWFtKEVuZE9mU3RyZWFtU3RhdHVzKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgdW5tYXJrRW5kT2ZTdHJlYW0oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSkgb3Zl
cnJpZGU7CiAKICAgICBib29sIGhhc0F1ZGlvKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNWaWRlbygp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDLmgKaW5kZXggODJjYTlhNC4uZThiMjI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCkBAIC04NSwxOSArODUs
MTkgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyhN
ZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDKik7CiAKICAgICAvLyBTb3VyY2VCdWZmZXJQcml2YXRl
IG92ZXJyaWRlcwotICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoU291cmNlQnVmZmVyUHJpdmF0
ZUNsaWVudCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgQXBwZW5kUmVzdWx0IGFwcGVuZChjb25z
dCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBhYm9ydCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJv
bU1lZGlhU291cmNlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBNZWRpYVBsYXllcjo6UmVhZHlT
dGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFJl
YWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBldmljdENvZGVkRnJhbWVzKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzRnVs
bCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBmbHVzaEFuZEVucXVldWVOb25EaXNwbGF5
aW5nU2FtcGxlcyhWZWN0b3I8UmVmUHRyPE1lZGlhU2FtcGxlPj4sIEF0b21pY1N0cmluZyB0cmFj
a0lEKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRy
PE1lZGlhU2FtcGxlPiwgQXRvbWljU3RyaW5nIHRyYWNrSUQpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgYm9vbCBpc1JlYWR5Rm9yTW9yZVNhbXBsZXMoQXRvbWljU3RyaW5nIHRyYWNrSUQpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIG5vdGlmeUNsaWVudFdoZW5SZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmlu
ZyB0cmFja0lEKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KFNvdXJjZUJ1
ZmZlclByaXZhdGVDbGllbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEFwcGVuZFJlc3VsdCBh
cHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuZ3RoKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgYWJvcnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgTWVkaWFQbGF5
ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZXZpY3RDb2RlZEZyYW1lcygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
Ym9vbCBpc0Z1bGwoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZmx1c2hBbmRFbnF1ZXVl
Tm9uRGlzcGxheWluZ1NhbXBsZXMoVmVjdG9yPFJlZlB0cjxNZWRpYVNhbXBsZT4+LCBBdG9taWNT
dHJpbmcgdHJhY2tJRCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGVucXVldWVTYW1wbGUo
UGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4sIEF0b21pY1N0cmluZyB0cmFja0lEKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZyB0cmFj
a0lEKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlDbGllbnRXaGVuUmVhZHlGb3JNb3JlU2FtcGxlcyhB
dG9taWNTdHJpbmcgdHJhY2tJRCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGZsdXNoQW5kRW5xdWV1
ZU5vbkRpc3BsYXlpbmdTYW1wbGVzKFZlY3RvcjxSZWZQdHI8TWVkaWFTYW1wbGU+PiwgQVZTYW1w
bGVCdWZmZXJBdWRpb1JlbmRlcmVyKik7CiAgICAgdm9pZCBmbHVzaEFuZEVucXVldWVOb25EaXNw
bGF5aW5nU2FtcGxlcyhWZWN0b3I8UmVmUHRyPE1lZGlhU2FtcGxlPj4sIEFWU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IGQ2Nzk5NDYuLmM5ZDM4NDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBA
IC0yMDcsMTMgKzIwNywxMyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxNZWRpYVNhbXBs
ZUFWRk9iakM+IGNyZWF0ZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsIGludCB0cmFja0lEKSB7
IHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFTYW1wbGVBVkZPYmpDKHNhbXBsZSwgdHJhY2tJRCkp
OyB9CiAgICAgdmlydHVhbCB+TWVkaWFTYW1wbGVBVkZPYmpDKCkgeyB9CiAKLSAgICB2aXJ0dWFs
IE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdG9N
ZWRpYVRpbWUoQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAobV9zYW1wbGUu
Z2V0KCkpKTsgfQotICAgIHZpcnR1YWwgTWVkaWFUaW1lIGRlY29kZVRpbWUoKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiB0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldERlY29kZVRpbWVTdGFt
cChtX3NhbXBsZS5nZXQoKSkpOyB9Ci0gICAgdmlydHVhbCBNZWRpYVRpbWUgZHVyYXRpb24oKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiB0b01lZGlhVGltZShDTVNhbXBsZUJ1ZmZlckdldER1cmF0
aW9uKG1fc2FtcGxlLmdldCgpKSk7IH0KLSAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyB0cmFja0lE
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9pZDsgfQorICAgIHZpcnR1YWwgTWVkaWFUaW1l
IHByZXNlbnRhdGlvblRpbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0b01lZGlhVGltZShD
TVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChtX3NhbXBsZS5nZXQoKSkpOyB9
CisgICAgdmlydHVhbCBNZWRpYVRpbWUgZGVjb2RlVGltZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1wKG1fc2FtcGxl
LmdldCgpKSk7IH0KKyAgICB2aXJ0dWFsIE1lZGlhVGltZSBkdXJhdGlvbigpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRvTWVkaWFUaW1lKENNU2FtcGxlQnVmZmVyR2V0RHVyYXRpb24obV9zYW1w
bGUuZ2V0KCkpKTsgfQorICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIHRyYWNrSUQoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX2lkOyB9CiAKLSAgICB2aXJ0dWFsIFNhbXBsZUZsYWdzIGZsYWdz
KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQbGF0Zm9ybVNhbXBsZSBwbGF0Zm9ybVNh
bXBsZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgU2FtcGxlRmxhZ3MgZmxhZ3MoKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIFBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlKCkgb3Zl
cnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICBNZWRpYVNhbXBsZUFWRk9iakMoQ01TYW1wbGVCdWZm
ZXJSZWYgc2FtcGxlLCBpbnQgdHJhY2tJRCkKQEAgLTI2NCwxMCArMjY0LDEwIEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmUHRyPE1lZGlhRGVzY3JpcHRpb25BVkZPYmpDPiBjcmVhdGUoQVZBc3Nl
dFRyYWNrKiB0cmFjaykgeyByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhRGVzY3JpcHRpb25BVkZP
YmpDKHRyYWNrKSk7IH0KICAgICB2aXJ0dWFsIH5NZWRpYURlc2NyaXB0aW9uQVZGT2JqQygpIHsg
fQogCi0gICAgdmlydHVhbCBBdG9taWNTdHJpbmcgY29kZWMoKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiBtX2NvZGVjOyB9Ci0gICAgdmlydHVhbCBib29sIGlzVmlkZW8oKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBtX2lzVmlkZW87IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNBdWRpbygpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIG1faXNBdWRpbzsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1RleHQo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2lzVGV4dDsgfQorICAgIHZpcnR1YWwgQXRvbWlj
U3RyaW5nIGNvZGVjKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb2RlYzsgfQorICAgIHZp
cnR1YWwgYm9vbCBpc1ZpZGVvKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc1ZpZGVvOyB9
CisgICAgdmlydHVhbCBib29sIGlzQXVkaW8oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lz
QXVkaW87IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9pc1RleHQ7IH0KICAgICAKIHByb3RlY3RlZDoKICAgICBNZWRpYURlc2NyaXB0aW9uQVZG
T2JqQyhBVkFzc2V0VHJhY2sqIHRyYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpD
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9W
aWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaAppbmRleCBlYzU2NTg1Li5lYWEyNzc2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9W
aWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaApAQCAt
NTAsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVmlkZW9U
cmFja1ByaXZhdGVBVkZPYmpDKHRyYWNrKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIHNl
dFNlbGVjdGVkKGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZChi
b29sKSBvdmVycmlkZTsKIAogICAgIHZvaWQgc2V0UGxheWVySXRlbVRyYWNrKEFWUGxheWVySXRl
bVRyYWNrKik7CiAgICAgQVZQbGF5ZXJJdGVtVHJhY2sqIHBsYXllckl0ZW1UcmFjaygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvVmlkZW9UcmFja1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1ZpZGVvVHJhY2tQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggYTVlMDkwZS4uMzc0ZGQyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvVmlkZW9UcmFj
a1ByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9WaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oCkBAIC00Nyw4ICs0Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQyh0cmFjaywgcGFyZW50
KSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIHNlbGVjdGVkKCkgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkKGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgYm9vbCBzZWxlY3RlZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRT
ZWxlY3RlZChib29sKSBvdmVycmlkZTsKIAogICAgIHZvaWQgc2V0QXNzZXRUcmFjayhBVkFzc2V0
VHJhY2sqKTsKICAgICBBVkFzc2V0VHJhY2sqIGFzc2V0VHJhY2soKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dl
YkNvcmVBVkZSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLmgKaW5kZXggMWE2
NWY1My4uYmFhMzljZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvV2ViQ29yZUFW
RlJlc291cmNlTG9hZGVyLmgKQEAgLTU2LDkgKzU2LDkgQEAgcHVibGljOgogCiBwcml2YXRlOgog
ICAgIC8vIENhY2hlZFJlc291cmNlQ2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIHJlc3BvbnNlUmVj
ZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIGRhdGFSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSosIGNvbnN0IGNo
YXIqLCBpbnQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNo
ZWRSZXNvdXJjZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXNwb25zZVJlY2VpdmVk
KENhY2hlZFJlc291cmNlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBkYXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqLCBjb25zdCBjaGFyKiwg
aW50KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVz
b3VyY2UqKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZnVsZmlsbFJlcXVlc3RXaXRoUmVzb3VyY2Uo
Q2FjaGVkUmVzb3VyY2UqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAppbmRleCBlYzhiYTgyLi5lM2U3OTI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xh
eWVyQ0EuaApAQCAtNTYsMTEgKzU2LDExIEBAIHB1YmxpYzoKICAgICBHcmFwaGljc0xheWVyQ0Eo
R3JhcGhpY3NMYXllckNsaWVudCopOwogICAgIHZpcnR1YWwgfkdyYXBoaWNzTGF5ZXJDQSgpOwog
Ci0gICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgaW5pdGlhbGl6ZSgpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHNldE5hbWUoY29u
c3QgU3RyaW5nJik7CiAKLSAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXJJRCBwcmltYXJ5TGF5ZXJJ
RCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllcklEIHByaW1hcnlM
YXllcklEKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBs
YXRmb3JtTGF5ZXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIFBsYXRmb3JtQ0FMYXllciogcGxhdGZv
cm1DQUxheWVyKCkgY29uc3QgeyByZXR1cm4gcHJpbWFyeUxheWVyKCk7IH0KQEAgLTEwNiw3ICsx
MDYsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCi0g
ICAgdmlydHVhbCB2b2lkIHNldEJsZW5kTW9kZShCbGVuZE1vZGUpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBzZXRCbGVuZE1vZGUoQmxlbmRNb2RlKSBvdmVycmlkZTsKICNlbmRpZgogCiAg
ICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheSgpOwpAQCAtMTE0LDcgKzExNCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKTsKICAgICAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNSZWN0KGNvbnN0IEludFJlY3QmKTsKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNDbGlwcGluZ1JlY3QoY29uc3QgSW50UmVjdCYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c0NsaXBwaW5nUmVjdChjb25zdCBJbnRS
ZWN0Jikgb3ZlcnJpZGU7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHN1c3BlbmRBbmltYXRpb25z
KGRvdWJsZSB0aW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lQW5pbWF0aW9ucygpOwpAQCAt
MTI2LDE1ICsxMjYsMTUgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1Rv
SW1hZ2UoSW1hZ2UqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb01lZGlhKFBsYXRm
b3JtTGF5ZXIqKTsKICNpZiBQTEFURk9STShJT1MpCi0gICAgdmlydHVhbCBQbGF0Zm9ybUxheWVy
KiBjb250ZW50c0xheWVyRm9yTWVkaWEoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBs
YXRmb3JtTGF5ZXIqIGNvbnRlbnRzTGF5ZXJGb3JNZWRpYSgpIGNvbnN0IG92ZXJyaWRlOwogI2Vu
ZGlmCiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9DYW52YXMoUGxhdGZvcm1MYXllciop
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvU29saWRDb2xvcihjb25zdCBDb2xvciYp
OwogCiAgICAgdmlydHVhbCBib29sIGhhc0NvbnRlbnRzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBt
X2NvbnRlbnRzTGF5ZXI7IH0KICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd0RlYnVnQm9y
ZGVyKGJvb2wpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93UmVwYWludENvdW50
ZXIoYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFNob3dEZWJ1Z0JvcmRlcihi
b29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd1JlcGFpbnRDb3VudGVyKGJv
b2wpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHNldERlYnVnQmFja2dyb3VuZENvbG9y
KGNvbnN0IENvbG9yJik7CiAgICAgdmlydHVhbCB2b2lkIHNldERlYnVnQm9yZGVyKGNvbnN0IENv
bG9yJiwgZmxvYXQgYm9yZGVyV2lkdGgpOwpAQCAtMTQ1LDcgKzE0NSw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBzZXRNYWludGFpbnNQaXhlbEFsaWdubWVudChib29sKTsKICNpZiBQ
TEFURk9STShJT1MpCi0gICAgdmlydHVhbCBGbG9hdFNpemUgcGl4ZWxBbGlnbm1lbnRPZmZzZXQo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3BpeGVsQWxpZ25tZW50T2Zmc2V0OyB9CisgICAg
dmlydHVhbCBGbG9hdFNpemUgcGl4ZWxBbGlnbm1lbnRPZmZzZXQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBtX3BpeGVsQWxpZ25tZW50T2Zmc2V0OyB9CiAjZW5kaWYKICAgICB2aXJ0dWFsIHZv
aWQgZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CiAKQEAgLTE2Miw5ICsxNjIsOSBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZShjb25zdCBG
bG9hdFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhp
c0xheWVyT25seSgpOwogCi0gICAgdmlydHVhbCBib29sIHZpc2libGVSZWN0Q2hhbmdlUmVxdWly
ZXNGbHVzaChjb25zdCBGbG9hdFJlY3QmIHZpc2libGVSZWN0KSBjb25zdCBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIGJvb2wgdmlzaWJsZVJlY3RDaGFuZ2VSZXF1aXJlc0ZsdXNoKGNvbnN0IEZsb2F0
UmVjdCYgdmlzaWJsZVJlY3QpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBUaWxlZEJh
Y2tpbmcqIHRpbGVkQmFja2luZygpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgVGlsZWRC
YWNraW5nKiB0aWxlZEJhY2tpbmcoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wgYWxsb3dU
aWxlZExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd1RpbGVkTGF5ZXI7IH0KICAgICB2aXJ0
dWFsIHZvaWQgc2V0QWxsb3dUaWxlZExheWVyKGJvb2wgYik7CkBAIC0xOTEsMTUgKzE5MSwxNSBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJDb250ZW50c09wYXF1
ZSgpIGNvbnN0IHsgcmV0dXJuIGNvbnRlbnRzT3BhcXVlKCk7IH0KICAgICB2aXJ0dWFsIGJvb2wg
cGxhdGZvcm1DQUxheWVyRHJhd3NDb250ZW50KCkgY29uc3QgeyByZXR1cm4gZHJhd3NDb250ZW50
KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1DQUxheWVyTGF5ZXJEaWREaXNwbGF5KFBs
YXRmb3JtTGF5ZXIqIGxheWVyKSB7IHJldHVybiBsYXllckRpZERpc3BsYXkobGF5ZXIpOyB9Ci0g
ICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQ0FMYXllclNldE5lZWRzVG9SZXZhbGlkYXRlVGlsZXMo
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGZsb2F0IHBsYXRmb3JtQ0FMYXllckRldmljZVNjYWxl
RmFjdG9yKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBmbG9hdCBwbGF0Zm9ybUNBTGF5
ZXJDb250ZW50c1NjYWxlTXVsdGlwbGllckZvck5ld1RpbGVzKFBsYXRmb3JtQ0FMYXllciopIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNBTGF5ZXJTZXROZWVkc1Rv
UmV2YWxpZGF0ZVRpbGVzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBmbG9hdCBwbGF0Zm9ybUNB
TGF5ZXJEZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgZmxv
YXQgcGxhdGZvcm1DQUxheWVyQ29udGVudHNTY2FsZU11bHRpcGxpZXJGb3JOZXdUaWxlcyhQbGF0
Zm9ybUNBTGF5ZXIqKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc0NvbW1p
dHRpbmdDaGFuZ2VzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9pc0NvbW1pdHRpbmdDaGFu
Z2VzOyB9CisgICAgdmlydHVhbCBib29sIGlzQ29tbWl0dGluZ0NoYW5nZXMoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX2lzQ29tbWl0dGluZ0NoYW5nZXM7IH0KIAogICAgIHZpcnR1YWwgZG91
YmxlIGJhY2tpbmdTdG9yZU1lbW9yeUVzdGltYXRlKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkUmVwYWludE9uU2l6ZUNoYW5nZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRSZXBhaW50T25TaXplQ2hhbmdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAg
ICB2b2lkIHVwZGF0ZU9wYWNpdHlPbkxheWVyKCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFj
LmgKaW5kZXggMGJiZTUyNi4uYjFlNmIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMuaApAQCAt
NDQsMTA3ICs0NCwxMDcgQEAgcHVibGljOgogCiAgICAgflBsYXRmb3JtQ0FMYXllck1hYygpOwog
Ci0gICAgdmlydHVhbCBib29sIHVzZXNUaWxlZEJhY2tpbmdMYXllcigpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIGxheWVyVHlwZSgpID09IExheWVyVHlwZVBhZ2VUaWxlZEJhY2tpbmdMYXllciB8
fCBsYXllclR5cGUoKSA9PSBMYXllclR5cGVUaWxlZEJhY2tpbmdMYXllcjsgfQorICAgIHZpcnR1
YWwgYm9vbCB1c2VzVGlsZWRCYWNraW5nTGF5ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBs
YXllclR5cGUoKSA9PSBMYXllclR5cGVQYWdlVGlsZWRCYWNraW5nTGF5ZXIgfHwgbGF5ZXJUeXBl
KCkgPT0gTGF5ZXJUeXBlVGlsZWRCYWNraW5nTGF5ZXI7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBz
ZXRPd25lcihQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0T3duZXIoUGxhdGZvcm1DQUxheWVyQ2xpZW50Kikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCogZGlydHlSZWN0ID0gMCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheShjb25zdCBGbG9hdFJl
Y3QqIGRpcnR5UmVjdCA9IDApIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRl
bnRzQ2hhbmdlZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c0NoYW5n
ZWQoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUGxhdGZvcm1DQUxheWVyKiBzdXBlcmxheWVy
KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUZyb21TdXBlcmxheWVy
KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFN1YmxheWVycyhjb25zdCBQbGF0Zm9y
bUNBTGF5ZXJMaXN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUFsbFN1Ymxh
eWVycygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRTdWJsYXllcihQbGF0Zm9y
bUNBTGF5ZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0U3VibGF5ZXIoUGxh
dGZvcm1DQUxheWVyKiwgc2l6ZV90IGluZGV4KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
cmVwbGFjZVN1YmxheWVyKFBsYXRmb3JtQ0FMYXllciogcmVmZXJlbmNlLCBQbGF0Zm9ybUNBTGF5
ZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGNvbnN0IFBsYXRmb3JtQ0FMYXllckxpc3QqIGN1
c3RvbVN1YmxheWVycygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fY3VzdG9tU3VibGF5ZXJz
LmdldCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGFkb3B0U3VibGF5ZXJzKFBsYXRmb3JtQ0FMYXll
ciogc291cmNlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBsYXRmb3JtQ0FMYXllciogc3VwZXJs
YXllcigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVGcm9tU3VwZXJs
YXllcigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRTdWJsYXllcnMoY29uc3QgUGxh
dGZvcm1DQUxheWVyTGlzdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbGxT
dWJsYXllcnMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kU3VibGF5ZXIoUGxh
dGZvcm1DQUxheWVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGluc2VydFN1YmxheWVy
KFBsYXRmb3JtQ0FMYXllciosIHNpemVfdCBpbmRleCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHJlcGxhY2VTdWJsYXllcihQbGF0Zm9ybUNBTGF5ZXIqIHJlZmVyZW5jZSwgUGxhdGZvcm1D
QUxheWVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBjb25zdCBQbGF0Zm9ybUNBTGF5ZXJMaXN0
KiBjdXN0b21TdWJsYXllcnMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2N1c3RvbVN1Ymxh
eWVycy5nZXQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBhZG9wdFN1YmxheWVycyhQbGF0Zm9ybUNB
TGF5ZXIqIHNvdXJjZSkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkQW5pbWF0aW9u
Rm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtl
eSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+
IGFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQoQ0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW1lKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkQW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5
LCBQbGF0Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlbW92
ZUFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FBbmltYXRpb24+IGFuaW1hdGlvbkZvcktleShjb25zdCBT
dHJpbmcmIGtleSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvblN0YXJ0ZWQo
Q0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW1lKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBz
ZXRNYXNrKFBsYXRmb3JtQ0FMYXllciopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRN
YXNrKFBsYXRmb3JtQ0FMYXllciopIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGlzT3Bh
cXVlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldE9wYXF1ZShib29sKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNPcGFxdWUoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0T3BhcXVlKGJvb2wpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBG
bG9hdFJlY3QgYm91bmRzKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldEJv
dW5kcyhjb25zdCBGbG9hdFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBi
b3VuZHMoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Qm91bmRzKGNvbnN0
IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBGbG9hdFBvaW50M0QgcG9zaXRp
b24oKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UG9zaXRpb24oY29uc3Qg
RmxvYXRQb2ludDNEJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBGbG9hdFBvaW50M0QgcG9zaXRp
b24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UG9zaXRpb24oY29uc3Qg
RmxvYXRQb2ludDNEJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIEZsb2F0UG9pbnQzRCBhbmNo
b3JQb2ludCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRBbmNob3JQb2lu
dChjb25zdCBGbG9hdFBvaW50M0QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEZsb2F0UG9pbnQz
RCBhbmNob3JQb2ludCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRBbmNo
b3JQb2ludChjb25zdCBGbG9hdFBvaW50M0QmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgVHJh
bnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHNldFRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBz
dWJsYXllclRyYW5zZm9ybSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRT
dWJsYXllclRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgVHJhbnNmb3JtYXRpb25NYXRyaXggc3VibGF5ZXJUcmFuc2Zvcm0oKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U3VibGF5ZXJUcmFuc2Zvcm0oY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRI
aWRkZW4oYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEhpZGRlbihib29sKSBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRHZW9tZXRyeUZsaXBwZWQoYm9vbCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEdlb21ldHJ5RmxpcHBlZChib29sKSBvdmVycmlk
ZTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc0RvdWJsZVNpZGVkKCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIHNldERvdWJsZVNpZGVkKGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgYm9vbCBpc0RvdWJsZVNpZGVkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHNldERvdWJsZVNpZGVkKGJvb2wpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIG1hc2tz
VG9Cb3VuZHMoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TWFza3NUb0Jv
dW5kcyhib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgbWFza3NUb0JvdW5kcygpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRNYXNrc1RvQm91bmRzKGJvb2wpIG92
ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGFjY2VsZXJhdGVzRHJhd2luZygpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlc0RyYXdpbmcoYm9vbCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBib29sIGFjY2VsZXJhdGVzRHJhd2luZygpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlc0RyYXdpbmcoYm9vbCkgb3ZlcnJp
ZGU7CiAKLSAgICB2aXJ0dWFsIENGVHlwZVJlZiBjb250ZW50cygpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50cyhDRlR5cGVSZWYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgQ0ZUeXBlUmVmIGNvbnRlbnRzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHNldENvbnRlbnRzKENGVHlwZVJlZikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0Q29udGVudHNSZWN0KGNvbnN0IEZsb2F0UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBzZXRDb250ZW50c1JlY3QoY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0TWluaWZpY2F0aW9uRmlsdGVyKEZpbHRlclR5cGUpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBzZXRNYWduaWZpY2F0aW9uRmlsdGVyKEZpbHRlclR5cGUpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRNaW5pZmljYXRpb25GaWx0ZXIoRmlsdGVyVHlwZSkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldE1hZ25pZmljYXRpb25GaWx0ZXIoRmlsdGVy
VHlwZSkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIENvbG9yIGJhY2tncm91bmRDb2xvcigpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRCYWNrZ3JvdW5kQ29sb3IoY29uc3Qg
Q29sb3ImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIENvbG9yIGJhY2tncm91bmRDb2xvcigpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRCYWNrZ3JvdW5kQ29sb3IoY29uc3Qg
Q29sb3ImKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRCb3JkZXJXaWR0aChmbG9h
dCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEJvcmRlcldpZHRoKGZsb2F0KSBvdmVy
cmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRCb3JkZXJDb2xvcihjb25zdCBDb2xvciYpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRCb3JkZXJDb2xvcihjb25zdCBDb2xvciYpIG92
ZXJyaWRlOwogCi0gICAgdmlydHVhbCBmbG9hdCBvcGFjaXR5KCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIHNldE9wYWNpdHkoZmxvYXQpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
ZmxvYXQgb3BhY2l0eSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRPcGFj
aXR5KGZsb2F0KSBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSAgICB2aXJ0
dWFsIHZvaWQgc2V0RmlsdGVycyhjb25zdCBGaWx0ZXJPcGVyYXRpb25zJikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHNldEZpbHRlcnMoY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYpIG92ZXJy
aWRlOwogICAgIHN0YXRpYyBib29sIGZpbHRlcnNDYW5CZUNvbXBvc2l0ZWQoY29uc3QgRmlsdGVy
T3BlcmF0aW9ucyYpOwotICAgIHZpcnR1YWwgdm9pZCBjb3B5RmlsdGVyc0Zyb20oY29uc3QgUGxh
dGZvcm1DQUxheWVyKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNvcHlGaWx0ZXJzRnJv
bShjb25zdCBQbGF0Zm9ybUNBTGF5ZXIqKSBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgdmlydHVh
bCB2b2lkIHNldE5hbWUoY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHNldE5hbWUoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
U3BlZWQoZmxvYXQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRTcGVlZChmbG9hdCkg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VGltZU9mZnNldChDRlRpbWVJbnRlcnZh
bCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFRpbWVPZmZzZXQoQ0ZUaW1lSW50ZXJ2
YWwpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBmbG9hdCBjb250ZW50c1NjYWxlKCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzU2NhbGUoZmxvYXQpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgZmxvYXQgY29udGVudHNTY2FsZSgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1NjYWxlKGZsb2F0KSBvdmVycmlkZTsKIAotICAg
IHZpcnR1YWwgdm9pZCBzZXRFZGdlQW50aWFsaWFzaW5nTWFzayh1bnNpZ25lZCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIHNldEVkZ2VBbnRpYWxpYXNpbmdNYXNrKHVuc2lnbmVkKSBvdmVy
cmlkZTsKIAotICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllcjo6Q3VzdG9tQXBwZWFyYW5jZSBjdXN0
b21BcHBlYXJhbmNlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9jdXN0b21BcHBlYXJhbmNl
OyB9Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUN1c3RvbUFwcGVhcmFuY2UoR3JhcGhpY3NMYXll
cjo6Q3VzdG9tQXBwZWFyYW5jZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBHcmFwaGljc0xheWVy
OjpDdXN0b21BcHBlYXJhbmNlIGN1c3RvbUFwcGVhcmFuY2UoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX2N1c3RvbUFwcGVhcmFuY2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ3VzdG9t
QXBwZWFyYW5jZShHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlKSBvdmVycmlkZTsKIAot
ICAgIHZpcnR1YWwgVGlsZWRCYWNraW5nKiB0aWxlZEJhY2tpbmcoKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBjbG9uZShQbGF0Zm9ybUNBTGF5ZXJDbGll
bnQqIG93bmVyKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UGxhdGZv
cm1DQUxheWVyPiBjbG9uZShQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyKSBjb25zdCBvdmVy
cmlkZTsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IGNyZWF0ZUNv
bXBhdGlibGVMYXllcihQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVy
Q2xpZW50KikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBsYXRmb3Jt
Q0FMYXllcj4gY3JlYXRlQ29tcGF0aWJsZUxheWVyKFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBl
LCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwg
dm9pZCBlbnVtZXJhdGVSZWN0c0JlaW5nRHJhd24oQ0dDb250ZXh0UmVmLCB2b2lkICheYmxvY2sp
KENHUmVjdCkpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBlbnVtZXJhdGVSZWN0c0JlaW5n
RHJhd24oQ0dDb250ZXh0UmVmLCB2b2lkICheYmxvY2spKENHUmVjdCkpIG92ZXJyaWRlOwogCiBw
cml2YXRlOgogICAgIFBsYXRmb3JtQ0FMYXllck1hYyhMYXllclR5cGUsIFBsYXRmb3JtQ0FMYXll
ckNsaWVudCogb3duZXIpOwpAQCAtMTUyLDcgKzE1Miw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lk
IGNvbW1vbkluaXQoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc1BsYXRmb3JtQ0FMYXllck1hYygp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNQbGF0
Zm9ybUNBTGF5ZXJNYWMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBi
b29sIHJlcXVpcmVzQ3VzdG9tQXBwZWFyYW5jZVVwZGF0ZU9uQm91bmRzQ2hhbmdlKCkgY29uc3Q7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9U
aWxlQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFj
L1RpbGVDb250cm9sbGVyLmgKaW5kZXggOTIyNzA2Ni4uZGU3YzA2YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDb250cm9sbGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDb250cm9sbGVy
LmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VGlsZURlYnVnQm9yZGVy
V2lkdGgoZmxvYXQpOwogICAgIHZvaWQgc2V0VGlsZURlYnVnQm9yZGVyQ29sb3IoQ29sb3IpOwog
Ci0gICAgdmlydHVhbCBGbG9hdFJlY3QgdmlzaWJsZVJlY3QoKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiBtX3Zpc2libGVSZWN0OyB9CisgICAgdmlydHVhbCBGbG9hdFJlY3QgdmlzaWJsZVJlY3Qo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Zpc2libGVSZWN0OyB9CiAKICAgICB1bnNpZ25l
ZCBibGFua1BpeGVsQ291bnQoKSBjb25zdDsKICAgICBzdGF0aWMgdW5zaWduZWQgYmxhbmtQaXhl
bENvdW50Rm9yVGlsZXMoY29uc3QgUGxhdGZvcm1MYXllckxpc3QmLCBjb25zdCBGbG9hdFJlY3Qm
LCBjb25zdCBJbnRQb2ludCYpOwpAQCAtMTA1LDUyICsxMDUsNTIgQEAgcHJpdmF0ZToKICAgICBU
aWxlQ29udHJvbGxlcihQbGF0Zm9ybUNBTGF5ZXIqKTsKIAogICAgIC8vIFRpbGVkQmFja2luZyBt
ZW1iZXIgZnVuY3Rpb25zLgotICAgIHZpcnR1YWwgdm9pZCBzZXRWaXNpYmxlUmVjdChjb25zdCBG
bG9hdFJlY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgdGlsZXNXb3VsZENoYW5nZUZv
clZpc2libGVSZWN0KGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBzZXRFeHBvc2VkUmVjdChjb25zdCBGbG9hdFJlY3QmKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgcHJlcG9wdWxhdGVSZWN0KGNvbnN0IEZsb2F0UmVjdCYpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBzZXRJc0luV2luZG93KGJvb2wpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBzZXRUaWxlQ292ZXJhZ2UoVGlsZUNvdmVyYWdlKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIFRpbGVDb3ZlcmFnZSB0aWxlQ292ZXJhZ2UoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBt
X3RpbGVDb3ZlcmFnZTsgfQotICAgIHZpcnR1YWwgdm9pZCByZXZhbGlkYXRlVGlsZXMoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZm9yY2VSZXBhaW50KCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBJbnRTaXplIHRpbGVTaXplKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV90aWxlU2l6
ZTsgfQotICAgIHZpcnR1YWwgSW50UmVjdCB0aWxlR3JpZEV4dGVudCgpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVk
KGJvb2wgZmxhZykgT1ZFUlJJREUgeyBtX3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJs
ZWQgPSBmbGFnOyB9Ci0gICAgdmlydHVhbCBib29sIHNjcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2lu
Z0VuYWJsZWQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3Njcm9sbGluZ1BlcmZvcm1hbmNl
TG9nZ2luZ0VuYWJsZWQ7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0QWdncmVzc2l2ZWx5UmV0YWlu
c1RpbGVzKGJvb2wgZmxhZykgT1ZFUlJJREUgeyBtX2FnZ3Jlc3NpdmVseVJldGFpbnNUaWxlcyA9
IGZsYWc7IH0KLSAgICB2aXJ0dWFsIGJvb2wgYWdncmVzc2l2ZWx5UmV0YWluc1RpbGVzKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gbV9hZ2dyZXNzaXZlbHlSZXRhaW5zVGlsZXM7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgc2V0VW5wYXJlbnRzT2Zmc2NyZWVuVGlsZXMoYm9vbCBmbGFnKSBPVkVSUklE
RSB7IG1fdW5wYXJlbnRzT2Zmc2NyZWVuVGlsZXMgPSBmbGFnOyB9Ci0gICAgdmlydHVhbCBib29s
IHVucGFyZW50c09mZnNjcmVlblRpbGVzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV91bnBh
cmVudHNPZmZzY3JlZW5UaWxlczsgfQotICAgIHZpcnR1YWwgZG91YmxlIHJldGFpbmVkVGlsZUJh
Y2tpbmdTdG9yZU1lbW9yeSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgSW50UmVjdCB0
aWxlQ292ZXJhZ2VSZWN0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQbGF0Zm9ybUNB
TGF5ZXIqIHRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yTGF5ZXIoKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgc2V0U2Nyb2xsaW5nTW9kZUluZGljYXRpb24oU2Nyb2xsaW5nTW9kZUluZGljYXRp
b24pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRUaWxlTWFyZ2lucyhpbnQgbWFyZ2lu
VG9wLCBpbnQgbWFyZ2luQm90dG9tLCBpbnQgbWFyZ2luTGVmdCwgaW50IG1hcmdpblJpZ2h0KSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaGFzTWFyZ2lucygpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgaW50IHRvcE1hcmdpbkhlaWdodCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgaW50IGJvdHRvbU1hcmdpbkhlaWdodCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgaW50IGxlZnRNYXJnaW5XaWR0aCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgaW50
IHJpZ2h0TWFyZ2luV2lkdGgoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
VmlzaWJsZVJlY3QoY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IHRpbGVzV291bGRDaGFuZ2VGb3JWaXNpYmxlUmVjdChjb25zdCBGbG9hdFJlY3QmKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RXhwb3NlZFJlY3QoY29uc3QgRmxvYXRSZWN0
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHByZXBvcHVsYXRlUmVjdChjb25zdCBGbG9h
dFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXNJbldpbmRvdyhib29sKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGlsZUNvdmVyYWdlKFRpbGVDb3ZlcmFnZSkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBUaWxlQ292ZXJhZ2UgdGlsZUNvdmVyYWdlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV90aWxlQ292ZXJhZ2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmV2
YWxpZGF0ZVRpbGVzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGZvcmNlUmVwYWludCgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW50U2l6ZSB0aWxlU2l6ZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fdGlsZVNpemU7IH0KKyAgICB2aXJ0dWFsIEludFJlY3QgdGlsZUdyaWRFeHRl
bnQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsaW5nUGVyZm9y
bWFuY2VMb2dnaW5nRW5hYmxlZChib29sIGZsYWcpIG92ZXJyaWRlIHsgbV9zY3JvbGxpbmdQZXJm
b3JtYW5jZUxvZ2dpbmdFbmFibGVkID0gZmxhZzsgfQorICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxp
bmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9z
Y3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkOyB9CisgICAgdmlydHVhbCB2b2lkIHNl
dEFnZ3Jlc3NpdmVseVJldGFpbnNUaWxlcyhib29sIGZsYWcpIG92ZXJyaWRlIHsgbV9hZ2dyZXNz
aXZlbHlSZXRhaW5zVGlsZXMgPSBmbGFnOyB9CisgICAgdmlydHVhbCBib29sIGFnZ3Jlc3NpdmVs
eVJldGFpbnNUaWxlcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fYWdncmVzc2l2ZWx5UmV0
YWluc1RpbGVzOyB9CisgICAgdmlydHVhbCB2b2lkIHNldFVucGFyZW50c09mZnNjcmVlblRpbGVz
KGJvb2wgZmxhZykgb3ZlcnJpZGUgeyBtX3VucGFyZW50c09mZnNjcmVlblRpbGVzID0gZmxhZzsg
fQorICAgIHZpcnR1YWwgYm9vbCB1bnBhcmVudHNPZmZzY3JlZW5UaWxlcygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fdW5wYXJlbnRzT2Zmc2NyZWVuVGlsZXM7IH0KKyAgICB2aXJ0dWFsIGRv
dWJsZSByZXRhaW5lZFRpbGVCYWNraW5nU3RvcmVNZW1vcnkoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIEludFJlY3QgdGlsZUNvdmVyYWdlUmVjdCgpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgUGxhdGZvcm1DQUxheWVyKiB0aWxlZFNjcm9sbGluZ0luZGljYXRvckxheWVyKCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbGluZ01vZGVJbmRpY2F0aW9uKFNj
cm9sbGluZ01vZGVJbmRpY2F0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGls
ZU1hcmdpbnMoaW50IG1hcmdpblRvcCwgaW50IG1hcmdpbkJvdHRvbSwgaW50IG1hcmdpbkxlZnQs
IGludCBtYXJnaW5SaWdodCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGhhc01hcmdpbnMo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGludCB0b3BNYXJnaW5IZWlnaHQoKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGludCBib3R0b21NYXJnaW5IZWlnaHQoKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGludCBsZWZ0TWFyZ2luV2lkdGgoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGludCByaWdodE1hcmdpbldpZHRoKCkgY29uc3Qgb3ZlcnJpZGU7CiAK
ICAgICAvLyBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1D
QUxheWVyTGF5b3V0U3VibGF5ZXJzT2ZMYXllcihQbGF0Zm9ybUNBTGF5ZXIqKSBPVkVSUklERSB7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1DQUxheWVyUmVzcG9uZHNUb0xheW91dENoYW5n
ZXMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBw
bGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkKENGVGltZUludGVydmFsKSBPVkVSUklERSB7
IH0KLSAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5ZXI6OkNvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmll
bnRhdGlvbiBwbGF0Zm9ybUNBTGF5ZXJDb250ZW50c09yaWVudGF0aW9uKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gR3JhcGhpY3NMYXllcjo6Q29tcG9zaXRpbmdDb29yZGluYXRlc1RvcERvd247
IH0KLSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1DQUxheWVyUGFpbnRDb250ZW50cyhQbGF0Zm9y
bUNBTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBib29sIHBsYXRmb3JtQ0FMYXllclNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1DQUxheWVyU2hvd1JlcGFpbnRDb3Vu
dGVyKFBsYXRmb3JtQ0FMYXllciopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgaW50IHBs
YXRmb3JtQ0FMYXllckluY3JlbWVudFJlcGFpbnRDb3VudChQbGF0Zm9ybUNBTGF5ZXIqKSBPVkVS
UklERTsKLQotICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJDb250ZW50c09wYXF1ZSgp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fdGlsZXNBcmVPcGFxdWU7IH0KLSAgICB2aXJ0dWFs
IGJvb2wgcGxhdGZvcm1DQUxheWVyRHJhd3NDb250ZW50KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNBTGF5ZXJMYXllckRpZERpc3Bs
YXkoUGxhdGZvcm1MYXllciopIE9WRVJSSURFIHsgfQotCi0gICAgdmlydHVhbCB2b2lkIHBsYXRm
b3JtQ0FMYXllclNldE5lZWRzVG9SZXZhbGlkYXRlVGlsZXMoKSBPVkVSUklERSB7IH0KLSAgICB2
aXJ0dWFsIGZsb2F0IHBsYXRmb3JtQ0FMYXllckRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QgT1ZF
UlJJREU7Ci0KLSAgICB2aXJ0dWFsIEludFJlY3QgYm91bmRzKCkgY29uc3QgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQ0FMYXllckxheW91dFN1YmxheWVyc09mTGF5ZXIoUGxh
dGZvcm1DQUxheWVyKikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCBib29sIHBsYXRmb3JtQ0FM
YXllclJlc3BvbmRzVG9MYXlvdXRDaGFuZ2VzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1DQUxheWVyQW5pbWF0aW9uU3RhcnRlZChD
RlRpbWVJbnRlcnZhbCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCBHcmFwaGljc0xheWVyOjpD
b21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gcGxhdGZvcm1DQUxheWVyQ29udGVudHNP
cmllbnRhdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEdyYXBoaWNzTGF5ZXI6OkNvbXBv
c2l0aW5nQ29vcmRpbmF0ZXNUb3BEb3duOyB9CisgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQ0FM
YXllclBhaW50Q29udGVudHMoUGxhdGZvcm1DQUxheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgY29u
c3QgSW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJT
aG93RGVidWdCb3JkZXJzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHBsYXRm
b3JtQ0FMYXllclNob3dSZXBhaW50Q291bnRlcihQbGF0Zm9ybUNBTGF5ZXIqKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGludCBwbGF0Zm9ybUNBTGF5ZXJJbmNyZW1lbnRSZXBhaW50Q291
bnQoUGxhdGZvcm1DQUxheWVyKikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIGJvb2wgcGxhdGZv
cm1DQUxheWVyQ29udGVudHNPcGFxdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3RpbGVz
QXJlT3BhcXVlOyB9CisgICAgdmlydHVhbCBib29sIHBsYXRmb3JtQ0FMYXllckRyYXdzQ29udGVu
dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGxh
dGZvcm1DQUxheWVyTGF5ZXJEaWREaXNwbGF5KFBsYXRmb3JtTGF5ZXIqKSBvdmVycmlkZSB7IH0K
KworICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNBTGF5ZXJTZXROZWVkc1RvUmV2YWxpZGF0ZVRp
bGVzKCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCBmbG9hdCBwbGF0Zm9ybUNBTGF5ZXJEZXZp
Y2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdmlydHVhbCBJbnRSZWN0IGJv
dW5kcygpIGNvbnN0IG92ZXJyaWRlOwogICAgIEludFJlY3QgYm91bmRzV2l0aG91dE1hcmdpbigp
IGNvbnN0OwogICAgIEludFJlY3QgYm91bmRzQXRMYXN0UmV2YWxpZGF0ZVdpdGhvdXRNYXJnaW4o
KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Evd2luL0xlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS93aW4vTGVnYWN5Q0FDRkxheWVyVHJlZUhvc3QuaAppbmRleCA1NjYyZmVk
Li41YTY3OGM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Evd2luL0xlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Evd2luL0xlZ2FjeUNBQ0ZMYXllclRyZWVIb3N0LmgKQEAgLTY1LDcg
KzY1LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyKGNvbnN0IFZlY3RvcjxD
R1JlY3Q+JiBkaXJ0eVJlY3RzID0gVmVjdG9yPENHUmVjdD4oKSk7CiAKICNpZiBVU0UoQVZGT1VO
REFUSU9OKQotICAgIHZpcnR1YWwgR3JhcGhpY3NEZXZpY2VBZGFwdGVyKiBncmFwaGljc0Rldmlj
ZUFkYXB0ZXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBHcmFw
aGljc0RldmljZUFkYXB0ZXIqIGdyYXBoaWNzRGV2aWNlQWRhcHRlcigpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIDA7IH0KICNlbmRpZgogCiAgICAgVGltZXI8TGVnYWN5Q0FDRkxheWVyVHJlZUhv
c3Q+IG1fcmVuZGVyVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luLmgKaW5kZXggNWZlOTc5NC4u
YWI2ZWFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
d2luL1BsYXRmb3JtQ0FMYXllcldpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW4uaApAQCAtMzksMTExICszOSwxMTEgQEAg
cHVibGljOgogICAgIAogICAgIH5QbGF0Zm9ybUNBTGF5ZXJXaW4oKTsKIAotICAgIHZpcnR1YWwg
Ym9vbCB1c2VzVGlsZWRCYWNraW5nTGF5ZXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCB1c2VzVGlsZWRCYWNraW5nTGF5ZXIoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxh
eShjb25zdCBGbG9hdFJlY3QqIGRpcnR5UmVjdCA9IDApIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBzZXROZWVkc0Rpc3BsYXkoY29uc3QgRmxvYXRSZWN0KiBkaXJ0eVJlY3QgPSAwKSBvdmVy
cmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c0NoYW5nZWQoKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNDaGFuZ2VkKCkgb3ZlcnJpZGU7CiAKLSAgICB2
aXJ0dWFsIFBsYXRmb3JtQ0FMYXllciogc3VwZXJsYXllcigpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVGcm9tU3VwZXJsYXllcigpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBzZXRTdWJsYXllcnMoY29uc3QgUGxhdGZvcm1DQUxheWVyTGlzdCYpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbGxTdWJsYXllcnMoKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgYXBwZW5kU3VibGF5ZXIoUGxhdGZvcm1DQUxheWVyKikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGluc2VydFN1YmxheWVyKFBsYXRmb3JtQ0FMYXllciosIHNpemVfdCBp
bmRleCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlcGxhY2VTdWJsYXllcihQbGF0Zm9y
bUNBTGF5ZXIqIHJlZmVyZW5jZSwgUGxhdGZvcm1DQUxheWVyKikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBjb25zdCBQbGF0Zm9ybUNBTGF5ZXJMaXN0KiBjdXN0b21TdWJsYXllcnMoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBudWxscHRyOyB9Ci0gICAgdmlydHVhbCB2b2lkIGFkb3B0U3VibGF5
ZXJzKFBsYXRmb3JtQ0FMYXllciogc291cmNlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBsYXRm
b3JtQ0FMYXllciogc3VwZXJsYXllcigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVGcm9tU3VwZXJsYXllcigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRT
dWJsYXllcnMoY29uc3QgUGxhdGZvcm1DQUxheWVyTGlzdCYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVBbGxTdWJsYXllcnMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
YXBwZW5kU3VibGF5ZXIoUGxhdGZvcm1DQUxheWVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGluc2VydFN1YmxheWVyKFBsYXRmb3JtQ0FMYXllciosIHNpemVfdCBpbmRleCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHJlcGxhY2VTdWJsYXllcihQbGF0Zm9ybUNBTGF5ZXIqIHJl
ZmVyZW5jZSwgUGxhdGZvcm1DQUxheWVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBjb25zdCBQ
bGF0Zm9ybUNBTGF5ZXJMaXN0KiBjdXN0b21TdWJsYXllcnMoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBudWxscHRyOyB9CisgICAgdmlydHVhbCB2b2lkIGFkb3B0U3VibGF5ZXJzKFBsYXRmb3Jt
Q0FMYXllciogc291cmNlKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBhZGRBbmltYXRp
b25Gb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIFBsYXRmb3JtQ0FBbmltYXRpb24qKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYg
a2V5KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlv
bj4gYW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgYW5pbWF0aW9uU3RhcnRlZChDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBhZGRBbmltYXRpb25Gb3JLZXkoY29uc3QgU3RyaW5nJiBr
ZXksIFBsYXRmb3JtQ0FBbmltYXRpb24qKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVt
b3ZlQW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gYW5pbWF0aW9uRm9yS2V5KGNvbnN0
IFN0cmluZyYga2V5KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uU3RhcnRl
ZChDRlRpbWVJbnRlcnZhbCBiZWdpblRpbWUpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lk
IHNldE1hc2soUGxhdGZvcm1DQUxheWVyKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNl
dE1hc2soUGxhdGZvcm1DQUxheWVyKikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNP
cGFxdWUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0T3BhcXVlKGJvb2wp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc09wYXF1ZSgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRPcGFxdWUoYm9vbCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFs
IEZsb2F0UmVjdCBib3VuZHMoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
Qm91bmRzKGNvbnN0IEZsb2F0UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgRmxvYXRSZWN0
IGJvdW5kcygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRCb3VuZHMoY29u
c3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIEZsb2F0UG9pbnQzRCBwb3Np
dGlvbigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRQb3NpdGlvbihjb25z
dCBGbG9hdFBvaW50M0QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEZsb2F0UG9pbnQzRCBwb3Np
dGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRQb3NpdGlvbihjb25z
dCBGbG9hdFBvaW50M0QmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgRmxvYXRQb2ludDNEIGFu
Y2hvclBvaW50KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldEFuY2hvclBv
aW50KGNvbnN0IEZsb2F0UG9pbnQzRCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgRmxvYXRQb2lu
dDNEIGFuY2hvclBvaW50KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEFu
Y2hvclBvaW50KGNvbnN0IEZsb2F0UG9pbnQzRCYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCB0cmFuc2Zvcm0oKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgc2V0VHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0cmFuc2Zvcm0oKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0
aW9uTWF0cml4Jikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFRyYW5zZm9ybWF0aW9uTWF0cml4
IHN1YmxheWVyVHJhbnNmb3JtKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNl
dFN1YmxheWVyVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBzdWJsYXllclRyYW5zZm9ybSgpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRTdWJsYXllclRyYW5zZm9ybShjb25z
dCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHNl
dEhpZGRlbihib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SGlkZGVuKGJvb2wp
IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHNldEdlb21ldHJ5RmxpcHBlZChib29sKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0R2VvbWV0cnlGbGlwcGVkKGJvb2wpIG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCBib29sIGlzRG91YmxlU2lkZWQoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0RG91YmxlU2lkZWQoYm9vbCkgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBib29sIGlzRG91YmxlU2lkZWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0RG91YmxlU2lkZWQoYm9vbCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgbWFz
a3NUb0JvdW5kcygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRNYXNrc1Rv
Qm91bmRzKGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBtYXNrc1RvQm91bmRzKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldE1hc2tzVG9Cb3VuZHMoYm9vbCkg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgYWNjZWxlcmF0ZXNEcmF3aW5nKCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldEFjY2VsZXJhdGVzRHJhd2luZyhib29sKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgYWNjZWxlcmF0ZXNEcmF3aW5nKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEFjY2VsZXJhdGVzRHJhd2luZyhib29sKSBvdmVy
cmlkZTsKIAotICAgIHZpcnR1YWwgQ0ZUeXBlUmVmIGNvbnRlbnRzKCkgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzKENGVHlwZVJlZikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBDRlR5cGVSZWYgY29udGVudHMoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0Q29udGVudHMoQ0ZUeXBlUmVmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9p
ZCBzZXRDb250ZW50c1JlY3QoY29uc3QgRmxvYXRSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHNldENvbnRlbnRzUmVjdChjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKIAotICAg
IHZpcnR1YWwgdm9pZCBzZXRNaW5pZmljYXRpb25GaWx0ZXIoRmlsdGVyVHlwZSkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIHNldE1hZ25pZmljYXRpb25GaWx0ZXIoRmlsdGVyVHlwZSkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldE1pbmlmaWNhdGlvbkZpbHRlcihGaWx0ZXJUeXBl
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TWFnbmlmaWNhdGlvbkZpbHRlcihGaWx0
ZXJUeXBlKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgQ29sb3IgYmFja2dyb3VuZENvbG9yKCkg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldEJhY2tncm91bmRDb2xvcihjb25z
dCBDb2xvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgQ29sb3IgYmFja2dyb3VuZENvbG9yKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEJhY2tncm91bmRDb2xvcihjb25z
dCBDb2xvciYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHNldEJvcmRlcldpZHRoKGZs
b2F0KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Qm9yZGVyV2lkdGgoZmxvYXQpIG92
ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHNldEJvcmRlckNvbG9yKGNvbnN0IENvbG9yJikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEJvcmRlckNvbG9yKGNvbnN0IENvbG9yJikg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGZsb2F0IG9wYWNpdHkoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0T3BhY2l0eShmbG9hdCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBmbG9hdCBvcGFjaXR5KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldE9w
YWNpdHkoZmxvYXQpIG92ZXJyaWRlOwogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQotICAgIHZp
cnR1YWwgdm9pZCBzZXRGaWx0ZXJzKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0RmlsdGVycyhjb25zdCBGaWx0ZXJPcGVyYXRpb25zJikgb3Zl
cnJpZGU7CiAgICAgc3RhdGljIGJvb2wgZmlsdGVyc0NhbkJlQ29tcG9zaXRlZChjb25zdCBGaWx0
ZXJPcGVyYXRpb25zJikgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgY29weUZp
bHRlcnNGcm9tKGNvbnN0IFBsYXRmb3JtQ0FMYXllciopIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBjb3B5RmlsdGVyc0Zyb20oY29uc3QgUGxhdGZvcm1DQUxheWVyKikgb3ZlcnJpZGU7CiAj
ZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogCi0g
ICAgdmlydHVhbCB2b2lkIHNldFNwZWVkKGZsb2F0KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0U3BlZWQoZmxvYXQpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHNldFRpbWVP
ZmZzZXQoQ0ZUaW1lSW50ZXJ2YWwpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRUaW1l
T2Zmc2V0KENGVGltZUludGVydmFsKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgZmxvYXQgY29u
dGVudHNTY2FsZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50
c1NjYWxlKGZsb2F0KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGZsb2F0IGNvbnRlbnRzU2NhbGUo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNTY2FsZShmbG9h
dCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RWRnZUFudGlhbGlhc2luZ01hc2so
dW5zaWduZWQpIE9WRVJSSURFIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgc2V0RWRnZUFudGlhbGlhc2luZ01hc2sodW5zaWduZWQpIG92ZXJyaWRlIHsgQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KIAotICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllcjo6Q3VzdG9tQXBw
ZWFyYW5jZSBjdXN0b21BcHBlYXJhbmNlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9jdXN0
b21BcHBlYXJhbmNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUN1c3RvbUFwcGVhcmFuY2Uo
R3JhcGhpY3NMYXllcjo6Q3VzdG9tQXBwZWFyYW5jZSBjdXN0b21BcHBlYXJhbmNlKSBPVkVSUklE
RSB7IG1fY3VzdG9tQXBwZWFyYW5jZSA9IGN1c3RvbUFwcGVhcmFuY2U7IH0KKyAgICB2aXJ0dWFs
IEdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVhcmFuY2UgY3VzdG9tQXBwZWFyYW5jZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fY3VzdG9tQXBwZWFyYW5jZTsgfQorICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVDdXN0b21BcHBlYXJhbmNlKEdyYXBoaWNzTGF5ZXI6OkN1c3RvbUFwcGVhcmFuY2Ug
Y3VzdG9tQXBwZWFyYW5jZSkgb3ZlcnJpZGUgeyBtX2N1c3RvbUFwcGVhcmFuY2UgPSBjdXN0b21B
cHBlYXJhbmNlOyB9CiAKLSAgICB2aXJ0dWFsIFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nKCkg
T1ZFUlJJREUgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwgVGlsZWRCYWNraW5nKiB0
aWxlZEJhY2tpbmcoKSBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgCi0gICAgdmly
dHVhbCBQbGF0Zm9ybUNBTGF5ZXIqIHJvb3RMYXllcigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBzZXROZWVkc0xheW91dCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBz
ZXROZWVkc0NvbW1pdCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGxhdGZvcm1DQUxheWVyKiBy
b290TGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNMYXlv
dXQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNDb21taXQoKSBvdmVycmlk
ZTsKIAogI2lmbmRlZiBOREVCVUcKLSAgICB2aXJ0dWFsIHZvaWQgcHJpbnRUcmVlKCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHByaW50VHJlZSgpIGNvbnN0IG92ZXJyaWRlOwog
I2VuZGlmCiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBjbG9uZShQ
bGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBjbG9uZShQbGF0Zm9ybUNBTGF5ZXJDbGllbnQq
IG93bmVyKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQbGF0Zm9y
bUNBTGF5ZXI+IGNyZWF0ZUNvbXBhdGlibGVMYXllcihQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlw
ZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gY3JlYXRlQ29tcGF0aWJsZUxheWVyKFBsYXRmb3Jt
Q0FMYXllcjo6TGF5ZXJUeXBlLCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqKSBjb25zdCBvdmVycmlk
ZTsKIAogcHJpdmF0ZToKICAgICBQbGF0Zm9ybUNBTGF5ZXJXaW4oTGF5ZXJUeXBlLCBQbGF0Zm9y
bUxheWVyKiwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vV0tDQUNGVmlld0xheWVyVHJlZUhv
c3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9XS0NBQ0ZWaWV3
TGF5ZXJUcmVlSG9zdC5oCmluZGV4IGE1YzM0NGUuLmM2ZjRhOTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9XS0NBQ0ZWaWV3TGF5ZXJUcmVlSG9z
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL3dpbi9XS0NBQ0ZW
aWV3TGF5ZXJUcmVlSG9zdC5oCkBAIC01Niw3ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBDRlRpbWVJbnRlcnZhbCBsYXN0Q29tbWl0VGltZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRTaG91bGRJbnZlcnRDb2xvcnMoYm9vbCk7CiAjaWYgVVNFKEFWRk9VTkRBVElPTikKLSAg
ICB2aXJ0dWFsIEdyYXBoaWNzRGV2aWNlQWRhcHRlciogZ3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBHcmFwaGljc0RldmljZUFkYXB0ZXIqIGdyYXBo
aWNzRGV2aWNlQWRhcHRlcigpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICBSZXRhaW5Q
dHI8V0tDQUNGVmlld1JlZj4gbV92aWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5oCmluZGV4IGYyNjcyNzQuLjRiNjc4
NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRv
Y3VtZW50SW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Q
REZEb2N1bWVudEltYWdlLmgKQEAgLTU2LDIzICs1NiwyMyBAQCBwcml2YXRlOgogICAgIFBERkRv
Y3VtZW50SW1hZ2UoSW1hZ2VPYnNlcnZlciopOwogICAgIHZpcnR1YWwgflBERkRvY3VtZW50SW1h
Z2UoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc1BERkRvY3VtZW50SW1hZ2UoKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzUERGRG9jdW1lbnRJbWFn
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgU3RyaW5n
IGZpbGVuYW1lRXh0ZW5zaW9uKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBTdHJpbmcg
ZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBo
YXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgZGF0YUNoYW5nZWQoYm9vbCBh
bGxEYXRhUmVjZWl2ZWQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBkYXRhQ2hhbmdlZChi
b29sIGFsbERhdGFSZWNlaXZlZCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJv
eURlY29kZWREYXRhKGJvb2wgLypkZXN0cm95QWxsKi8gPSB0cnVlKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGVzdHJveURlY29kZWREYXRhKGJvb2wgLypkZXN0cm95QWxsKi8gPSB0cnVl
KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW50cmluc2ljRGltZW5zaW9u
cyhMZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRT
aXplJiBpbnRyaW5zaWNSYXRpbykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJbnRTaXplIHNpemUo
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUludHJpbnNpY0RpbWVu
c2lvbnMoTGVuZ3RoJiBpbnRyaW5zaWNXaWR0aCwgTGVuZ3RoJiBpbnRyaW5zaWNIZWlnaHQsIEZs
b2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW50U2l6ZSBz
aXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0Nv
bnRleHQqLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1v
ZGUsIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGRyYXcoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25z
dCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3Np
dGVPcGVyYXRvciwgQmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pIG92ZXJy
aWRlOwogCiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzIHRvIGJlIGxlc3MgY29uc2VydmF0
aXZlLgotICAgIHZpcnR1YWwgYm9vbCBjdXJyZW50RnJhbWVLbm93blRvQmVPcGFxdWUoKSBPVkVS
UklERSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjdXJyZW50RnJhbWVLbm93
blRvQmVPcGFxdWUoKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdm9pZCBjcmVh
dGVQREZEb2N1bWVudCgpOwogICAgIHZvaWQgY29tcHV0ZUJvdW5kc0ZvckN1cnJlbnRQYWdlKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhp
Y3NDb250ZXh0M0RQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9l
ZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKaW5kZXggM2ZhMWEwZi4uY2M0MWRjMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29u
dGV4dDNEUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Vm
bC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaApAQCAtNDgsMTMgKzQ4LDEzIEBAIHB1YmxpYzoK
ICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Qo
KSBjb25zdDsKICAgICB2b2lkIHNldENvbnRleHRMb3N0Q2FsbGJhY2soUGFzc093blB0cjxHcmFw
aGljc0NvbnRleHQzRDo6Q29udGV4dExvc3RDYWxsYmFjaz4pOwogI2lmIFVTRShURVhUVVJFX01B
UFBFUl9HTCkKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1h
cHBlciosIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxv
YXQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0
dXJlTWFwcGVyKiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgm
LCBmbG9hdCkgb3ZlcnJpZGU7CiAjZW5kaWYKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKLSAg
ICB2aXJ0dWFsIEludFNpemUgcGxhdGZvcm1MYXllclNpemUoKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHVpbnQzMl90IGNvcHlUb0dyYXBoaWNzU3VyZmFjZSgpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgR3JhcGhpY3NTdXJmYWNlVG9rZW4gZ3JhcGhpY3NTdXJmYWNlVG9rZW4oKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEdyYXBoaWNzU3VyZmFjZTo6RmxhZ3MgZ3JhcGhpY3NT
dXJmYWNlRmxhZ3MoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEludFNpemUgcGxhdGZv
cm1MYXllclNpemUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHVpbnQzMl90IGNvcHlU
b0dyYXBoaWNzU3VyZmFjZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgR3JhcGhpY3NTdXJmYWNl
VG9rZW4gZ3JhcGhpY3NTdXJmYWNlVG9rZW4oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IEdyYXBoaWNzU3VyZmFjZTo6RmxhZ3MgZ3JhcGhpY3NTdXJmYWNlRmxhZ3MoKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2b2lkIGRpZFJlc2l6ZUNhbnZhcyhjb25zdCBJbnRTaXplJik7CiAjZW5kaWYK
ICAgICBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEZyb21DdXJyZW50RUdMLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RnJvbUN1cnJl
bnRFR0wuaAppbmRleCAxYjI4ZGM2Li40OTY4MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RnJvbUN1cnJlbnRFR0wuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RnJvbUN1cnJlbnRF
R0wuaApAQCAtMzYsMTYgKzM2LDE2IEBAIGNsYXNzIEdMQ29udGV4dEZyb21DdXJyZW50RUdMIDog
cHVibGljIEdMQ29udGV4dCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8R0xDb250
ZXh0RnJvbUN1cnJlbnRFR0w+IGNyZWF0ZUZyb21DdXJyZW50R0xDb250ZXh0KCk7CiAKLSAgICB2
aXJ0dWFsIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBi
b29sIG1ha2VDb250ZXh0Q3VycmVudCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHN3
YXBCdWZmZXJzKCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCBJbnRTaXplIGRlZmF1bHRGcmFt
ZUJ1ZmZlclNpemUoKSBPVkVSUklERSB7IHJldHVybiBJbnRTaXplKCk7IH0KLSAgICB2aXJ0dWFs
IGNhaXJvX2RldmljZV90KiBjYWlyb0RldmljZSgpIE9WRVJSSURFIHsgcmV0dXJuIDA7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgc3dhcEJ1ZmZlcnMoKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIElu
dFNpemUgZGVmYXVsdEZyYW1lQnVmZmVyU2l6ZSgpIG92ZXJyaWRlIHsgcmV0dXJuIEludFNpemUo
KTsgfQorICAgIHZpcnR1YWwgY2Fpcm9fZGV2aWNlX3QqIGNhaXJvRGV2aWNlKCkgb3ZlcnJpZGUg
eyByZXR1cm4gMDsgfQogCi0gICAgdmlydHVhbCBib29sIGNhblJlbmRlclRvRGVmYXVsdEZyYW1l
YnVmZmVyKCkgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2Fu
UmVuZGVyVG9EZWZhdWx0RnJhbWVidWZmZXIoKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQog
Ci0gICAgdmlydHVhbCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtQ29udGV4dCgp
IE9WRVJSSURFIHsgcmV0dXJuIHRoaXM7IH0KLSAgICB2aXJ0dWFsIHZvaWQgd2FpdE5hdGl2ZSgp
IE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0
Zm9ybUNvbnRleHQoKSBvdmVycmlkZSB7IHJldHVybiB0aGlzOyB9CisgICAgdmlydHVhbCB2b2lk
IHdhaXROYXRpdmUoKSBvdmVycmlkZSB7IH0KIAogcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBp
bml0aWFsaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9EaXN0YW50TGlnaHRTb3VyY2UuaAppbmRleCBiMmJhOTM3Li5iYmUy
MjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0Rpc3RhbnRMaWdodFNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmgKQEAgLTM4LDggKzM4LDggQEAgcHVibGlj
OgogICAgIGZsb2F0IGF6aW11dGgoKSBjb25zdCB7IHJldHVybiBtX2F6aW11dGg7IH0KICAgICBm
bG9hdCBlbGV2YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2VsZXZhdGlvbjsgfQogCi0gICAgdmly
dHVhbCBib29sIHNldEF6aW11dGgoZmxvYXQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBz
ZXRFbGV2YXRpb24oZmxvYXQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzZXRBemltdXRo
KGZsb2F0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2V0RWxldmF0aW9uKGZsb2F0KSBv
dmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBpbml0UGFpbnRpbmdEYXRhKFBhaW50aW5nRGF0
YSYpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQYWludGluZ0RhdGEoUGFpbnRpbmdEYXRhJiwg
aW50IHgsIGludCB5LCBmbG9hdCB6KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaAppbmRleCBkZjA0MjZhLi45Zjc4MTc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29tcG9zaXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbXBvc2l0ZS5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICBmbG9hdCBrNCgp
IGNvbnN0OwogICAgIGJvb2wgc2V0SzQoZmxvYXQpOwogCi0gICAgdmlydHVhbCB2b2lkIGNvcnJl
Y3RGaWx0ZXJSZXN1bHRJZk5lZWRlZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb3Jy
ZWN0RmlsdGVyUmVzdWx0SWZOZWVkZWQoKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBw
bGF0Zm9ybUFwcGx5U29mdHdhcmUoKTsKICAgICB2aXJ0dWFsIHZvaWQgZHVtcCgpOwpAQCAtNjks
NyArNjksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJl
c2VudGF0aW9uKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50aW9uKSBjb25zdDsKIAogcHJvdGVjdGVk
OgotICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc1ZhbGlkUHJlTXVsdGlwbGllZFBpeGVscygpIE9W
RVJSSURFIHsgcmV0dXJuIG1fdHlwZSAhPSBGRUNPTVBPU0lURV9PUEVSQVRPUl9BUklUSE1FVElD
OyB9CisgICAgdmlydHVhbCBib29sIHJlcXVpcmVzVmFsaWRQcmVNdWx0aXBsaWVkUGl4ZWxzKCkg
b3ZlcnJpZGUgeyByZXR1cm4gbV90eXBlICE9IEZFQ09NUE9TSVRFX09QRVJBVE9SX0FSSVRITUVU
SUM7IH0KIAogcHJpdmF0ZToKICAgICBGRUNvbXBvc2l0ZShGaWx0ZXIqLCBjb25zdCBDb21wb3Np
dGVPcGVyYXRpb25UeXBlJiwgZmxvYXQsIGZsb2F0LCBmbG9hdCwgZmxvYXQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVu
dE1hcC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3Bs
YWNlbWVudE1hcC5oCmluZGV4IDFiNDE3MGUuLmIwZWEzZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50
TWFwLmgKQEAgLTUwLDggKzUwLDggQEAgcHVibGljOgogICAgIGZsb2F0IHNjYWxlKCkgY29uc3Q7
CiAgICAgYm9vbCBzZXRTY2FsZShmbG9hdCk7CiAKLSAgICB2b2lkIHNldFJlc3VsdENvbG9yU3Bh
Y2UoQ29sb3JTcGFjZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHRyYW5zZm9ybVJlc3Vs
dENvbG9yU3BhY2UoRmlsdGVyRWZmZWN0KiwgY29uc3QgaW50KSBPVkVSUklERTsKKyAgICB2b2lk
IHNldFJlc3VsdENvbG9yU3BhY2UoQ29sb3JTcGFjZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHRyYW5zZm9ybVJlc3VsdENvbG9yU3BhY2UoRmlsdGVyRWZmZWN0KiwgY29uc3QgaW50KSBv
dmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZHVtcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaAppbmRleCA4YmQ5ZTRkLi5lZTkzZmNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaApA
QCAtNDIsOCArNDIsOCBAQCBwdWJsaWM6CiAjaWYgIVVTRShDRykKICAgICAvLyBmZUZsb29kIGRv
ZXMgbm90IHBlcmZvcm0gY29sb3IgaW50ZXJwb2xhdGlvbiBvZiBhbnkga2luZCwgc28gdGhlIHJl
c3VsdCBpcyBhbHdheXMgaW4gdGhlIGN1cnJlbnQKICAgICAvLyBjb2xvciBzcGFjZSByZWdhcmRs
ZXNzIG9mIHRoZSB2YWx1ZSBvZiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMuCi0gICAgdm9p
ZCBzZXRPcGVyYXRpbmdDb2xvclNwYWNlKENvbG9yU3BhY2UpIE9WRVJSSURFIHsgRmlsdGVyRWZm
ZWN0OjpzZXRSZXN1bHRDb2xvclNwYWNlKENvbG9yU3BhY2VEZXZpY2VSR0IpOyB9Ci0gICAgdm9p
ZCBzZXRSZXN1bHRDb2xvclNwYWNlKENvbG9yU3BhY2UpIE9WRVJSSURFIHsgRmlsdGVyRWZmZWN0
OjpzZXRSZXN1bHRDb2xvclNwYWNlKENvbG9yU3BhY2VEZXZpY2VSR0IpOyB9CisgICAgdm9pZCBz
ZXRPcGVyYXRpbmdDb2xvclNwYWNlKENvbG9yU3BhY2UpIG92ZXJyaWRlIHsgRmlsdGVyRWZmZWN0
OjpzZXRSZXN1bHRDb2xvclNwYWNlKENvbG9yU3BhY2VEZXZpY2VSR0IpOyB9CisgICAgdm9pZCBz
ZXRSZXN1bHRDb2xvclNwYWNlKENvbG9yU3BhY2UpIG92ZXJyaWRlIHsgRmlsdGVyRWZmZWN0Ojpz
ZXRSZXN1bHRDb2xvclNwYWNlKENvbG9yU3BhY2VEZXZpY2VSR0IpOyB9CiAjZW5kaWYKIAogICAg
IHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5o
CmluZGV4IGM3ZjBiMmUuLmQ2NWQ3NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24uaApAQCAtMTE4LDEy
ICsxMTgsMTIgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBGaWx0ZXJPcGVyYXRpb24mIG8pIGNvbnN0IE9WRVJSSURFCisgICAg
dmlydHVhbCBib29sIG9wZXJhdG9yPT0oY29uc3QgRmlsdGVyT3BlcmF0aW9uJiBvKSBjb25zdCBv
dmVycmlkZQogICAgIHsKICAgICAgICAgcmV0dXJuIGlzU2FtZVR5cGUobyk7CiAgICAgfQogCi0g
ICAgdmlydHVhbCBib29sIGlzRGVmYXVsdCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNEZWZhdWx0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQogCiAgICAgRGVmYXVsdEZpbHRlck9wZXJhdGlvbihPcGVyYXRpb25UeXBlIHR5cGUp
CiAgICAgICAgIDogRmlsdGVyT3BlcmF0aW9uKHR5cGUpCkBAIC0xMzksNyArMTM5LDcgQEAgcHVi
bGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBGaWx0ZXJPcGVyYXRpb24mIG8pIGNvbnN0IE9WRVJSSURFCisgICAgdmlydHVhbCBib29sIG9w
ZXJhdG9yPT0oY29uc3QgRmlsdGVyT3BlcmF0aW9uJiBvKSBjb25zdCBvdmVycmlkZQogICAgIHsK
ICAgICAgICAgcmV0dXJuIGlzU2FtZVR5cGUobyk7CiAgICAgfQpAQCAtMTU4LDggKzE1OCw4IEBA
IHB1YmxpYzoKICAgICB9CiAgICAgdmlydHVhbCB+UmVmZXJlbmNlRmlsdGVyT3BlcmF0aW9uKCk7
CiAKLSAgICB2aXJ0dWFsIGJvb2wgYWZmZWN0c09wYWNpdHkoKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIG1vdmVzUGl4ZWxzKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBhZmZlY3RzT3BhY2l0eSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgbW92ZXNQaXhl
bHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBjb25zdCBTdHJpbmcm
IHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9CiAgICAgY29uc3QgU3RyaW5nJiBmcmFnbWVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhZ21lbnQ7IH0KQEAgLTE3NSw3ICsxNzUsNyBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIFJlZmVyZW5jZUZpbHRlck9wZXJhdGlvbihjb25zdCBTdHJpbmcm
IHVybCwgY29uc3QgU3RyaW5nJiBmcmFnbWVudCwgT3BlcmF0aW9uVHlwZSk7CiAKLSAgICB2aXJ0
dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGaWx0ZXJPcGVyYXRpb24mIG8pIGNvbnN0IE9WRVJS
SURFCisgICAgdmlydHVhbCBib29sIG9wZXJhdG9yPT0oY29uc3QgRmlsdGVyT3BlcmF0aW9uJiBv
KSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKCFpc1NhbWVUeXBlKG8pKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjAyLDEwICsyMDIsMTAgQEAgcHVibGljOgogCiAg
ICAgZG91YmxlIGFtb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fYW1vdW50OyB9CiAKLSAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBibGVuZChjb25zdCBGaWx0ZXJPcGVyYXRp
b24qIGZyb20sIGRvdWJsZSBwcm9ncmVzcywgYm9vbCBibGVuZFRvUGFzc3Rocm91Z2ggPSBmYWxz
ZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gYmxl
bmQoY29uc3QgRmlsdGVyT3BlcmF0aW9uKiBmcm9tLCBkb3VibGUgcHJvZ3Jlc3MsIGJvb2wgYmxl
bmRUb1Bhc3N0aHJvdWdoID0gZmFsc2UpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIHZpcnR1
YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZpbHRlck9wZXJhdGlvbiYgbykgY29uc3QgT1ZFUlJJ
REUKKyAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGaWx0ZXJPcGVyYXRpb24mIG8p
IGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoIWlzU2FtZVR5cGUobykpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMzQsMTIgKzIzNCwxMiBAQCBwdWJsaWM6CiAKICAg
ICBkb3VibGUgYW1vdW50KCkgY29uc3QgeyByZXR1cm4gbV9hbW91bnQ7IH0KIAotICAgIHZpcnR1
YWwgYm9vbCBhZmZlY3RzT3BhY2l0eSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fdHlwZSA9
PSBPUEFDSVRZOyB9CisgICAgdmlydHVhbCBib29sIGFmZmVjdHNPcGFjaXR5KCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbV90eXBlID09IE9QQUNJVFk7IH0KIAotICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGJsZW5kKGNvbnN0IEZpbHRlck9wZXJhdGlvbiogZnJvbSwg
ZG91YmxlIHByb2dyZXNzLCBib29sIGJsZW5kVG9QYXNzdGhyb3VnaCA9IGZhbHNlKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBibGVuZChjb25zdCBG
aWx0ZXJPcGVyYXRpb24qIGZyb20sIGRvdWJsZSBwcm9ncmVzcywgYm9vbCBibGVuZFRvUGFzc3Ro
cm91Z2ggPSBmYWxzZSkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIG9w
ZXJhdG9yPT0oY29uc3QgRmlsdGVyT3BlcmF0aW9uJiBvKSBjb25zdCBPVkVSUklERQorICAgIHZp
cnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZpbHRlck9wZXJhdGlvbiYgbykgY29uc3Qgb3Zl
cnJpZGUKICAgICB7CiAgICAgICAgIGlmICghaXNTYW1lVHlwZShvKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTI2NywxMyArMjY3LDEzIEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IExl
bmd0aCYgc3RkRGV2aWF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zdGREZXZpYXRpb247IH0KIAot
ICAgIHZpcnR1YWwgYm9vbCBhZmZlY3RzT3BhY2l0eSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgbW92ZXNQaXhlbHMoKSBjb25zdCBPVkVSUklERSB7
IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGFmZmVjdHNPcGFjaXR5KCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBtb3Zlc1BpeGVscygp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxGaWx0ZXJPcGVyYXRpb24+IGJsZW5kKGNvbnN0IEZpbHRlck9wZXJhdGlvbiogZnJvbSwgZG91
YmxlIHByb2dyZXNzLCBib29sIGJsZW5kVG9QYXNzdGhyb3VnaCA9IGZhbHNlKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBibGVuZChjb25zdCBGaWx0
ZXJPcGVyYXRpb24qIGZyb20sIGRvdWJsZSBwcm9ncmVzcywgYm9vbCBibGVuZFRvUGFzc3Rocm91
Z2ggPSBmYWxzZSkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIG9wZXJh
dG9yPT0oY29uc3QgRmlsdGVyT3BlcmF0aW9uJiBvKSBjb25zdCBPVkVSUklERQorICAgIHZpcnR1
YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZpbHRlck9wZXJhdGlvbiYgbykgY29uc3Qgb3ZlcnJp
ZGUKICAgICB7CiAgICAgICAgIGlmICghaXNTYW1lVHlwZShvKSkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKQEAgLTMwMywxMyArMzAzLDEzIEBAIHB1YmxpYzoKICAgICBpbnQgc3RkRGV2aWF0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zdGREZXZpYXRpb247IH0KICAgICBDb2xvciBjb2xvcigp
IGNvbnN0IHsgcmV0dXJuIG1fY29sb3I7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBhZmZlY3RzT3Bh
Y2l0eSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wg
bW92ZXNQaXhlbHMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVh
bCBib29sIGFmZmVjdHNPcGFjaXR5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBtb3Zlc1BpeGVscygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGJsZW5kKGNv
bnN0IEZpbHRlck9wZXJhdGlvbiogZnJvbSwgZG91YmxlIHByb2dyZXNzLCBib29sIGJsZW5kVG9Q
YXNzdGhyb3VnaCA9IGZhbHNlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Rmls
dGVyT3BlcmF0aW9uPiBibGVuZChjb25zdCBGaWx0ZXJPcGVyYXRpb24qIGZyb20sIGRvdWJsZSBw
cm9ncmVzcywgYm9vbCBibGVuZFRvUGFzc3Rocm91Z2ggPSBmYWxzZSkgb3ZlcnJpZGU7CiAKIHBy
aXZhdGU6Ci0gICAgdmlydHVhbCBib29sIG9wZXJhdG9yPT0oY29uc3QgRmlsdGVyT3BlcmF0aW9u
JiBvKSBjb25zdCBPVkVSUklERQorICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZp
bHRlck9wZXJhdGlvbiYgbykgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmICghaXNT
YW1lVHlwZShvKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvUG9pbnRMaWdodFNvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Qb2ludExpZ2h0U291cmNl
LmgKaW5kZXggODBlZWYxMC4uYWJmYWNjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Qb2ludExpZ2h0U291cmNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Qb2ludExpZ2h0U291cmNlLmgKQEAgLTM2
LDkgKzM2LDkgQEAgcHVibGljOgogICAgIH0KIAogICAgIGNvbnN0IEZsb2F0UG9pbnQzRCYgcG9z
aXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9Ci0gICAgdmlydHVhbCBib29sIHNl
dFgoZmxvYXQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzZXRZKGZsb2F0KSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgc2V0WihmbG9hdCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBi
b29sIHNldFgoZmxvYXQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzZXRZKGZsb2F0KSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2V0WihmbG9hdCkgb3ZlcnJpZGU7CiAKICAgICB2
aXJ0dWFsIHZvaWQgaW5pdFBhaW50aW5nRGF0YShQYWludGluZ0RhdGEmKTsKICAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlUGFpbnRpbmdEYXRhKFBhaW50aW5nRGF0YSYsIGludCB4LCBpbnQgeSwgZmxv
YXQgeik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL1Nwb3RMaWdodFNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9TcG90TGlnaHRTb3VyY2UuaAppbmRleCBhNTRkZGMwLi5lYzljNWNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1Nwb3RMaWdodFNv
dXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU3Bv
dExpZ2h0U291cmNlLmgKQEAgLTQxLDE1ICs0MSwxNSBAQCBwdWJsaWM6CiAgICAgZmxvYXQgc3Bl
Y3VsYXJFeHBvbmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc3BlY3VsYXJFeHBvbmVudDsgfQogICAg
IGZsb2F0IGxpbWl0aW5nQ29uZUFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9saW1pdGluZ0NvbmVB
bmdsZTsgfQogCi0gICAgdmlydHVhbCBib29sIHNldFgoZmxvYXQpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgYm9vbCBzZXRZKGZsb2F0KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2V0Wihm
bG9hdCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNldFBvaW50c0F0WChmbG9hdCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNldFBvaW50c0F0WShmbG9hdCkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBib29sIHNldFBvaW50c0F0WihmbG9hdCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBib29sIHNldFgoZmxvYXQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzZXRZKGZsb2F0
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2V0WihmbG9hdCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBib29sIHNldFBvaW50c0F0WChmbG9hdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBi
b29sIHNldFBvaW50c0F0WShmbG9hdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHNldFBv
aW50c0F0WihmbG9hdCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2V0U3BlY3VsYXJF
eHBvbmVudChmbG9hdCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNldExpbWl0aW5nQ29u
ZUFuZ2xlKGZsb2F0KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2V0U3BlY3VsYXJFeHBv
bmVudChmbG9hdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHNldExpbWl0aW5nQ29uZUFu
Z2xlKGZsb2F0KSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBpbml0UGFpbnRpbmdEYXRh
KFBhaW50aW5nRGF0YSYpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQYWludGluZ0RhdGEoUGFp
bnRpbmdEYXRhJiwgaW50IHgsIGludCB5LCBmbG9hdCB6KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJl
YW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlv
VHJhY2tQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggMzI0MjY4Yi4uNTc0ODQ0MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQ
cml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTQxLDE1ICs0MSwxNSBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXVkaW9UcmFja1ByaXZhdGVH
U3RyZWFtZXIocGxheWJpbiwgaW5kZXgsIHBhZCkpOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9p
ZCBkaXNjb25uZWN0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3QoKSBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRFbmFibGVkKGJvb2wpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCBlbmFibGVkKSBPVkVSUklERSB7IHNldEVu
YWJsZWQoZW5hYmxlZCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlZChib29sKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wgZW5hYmxlZCkgb3ZlcnJpZGUg
eyBzZXRFbmFibGVkKGVuYWJsZWQpOyB9CiAKLSAgICB2aXJ0dWFsIGludCB0cmFja0luZGV4KCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9pbmRleDsgfQorICAgIHZpcnR1YWwgaW50IHRyYWNr
SW5kZXgoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2luZGV4OyB9CiAKLSAgICB2aXJ0dWFs
IEF0b21pY1N0cmluZyBsYWJlbCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fbGFiZWw7IH0K
LSAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyBsYW5ndWFnZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIG1fbGFuZ3VhZ2U7IH0KKyAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyBsYWJlbCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fbGFiZWw7IH0KKyAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyBs
YW5ndWFnZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbGFuZ3VhZ2U7IH0KIAogcHJpdmF0
ZToKICAgICBBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcihHUmVmUHRyPEdzdEVsZW1lbnQ+IHBs
YXliaW4sIGdpbnQgaW5kZXgsIEdSZWZQdHI8R3N0UGFkPik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kTWV0YWRhdGFUZXh0VHJh
Y2tQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXgg
MDNlNDAxZC4uYjhhZGM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL0luYmFuZE1ldGFkYXRhVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRN
ZXRhZGF0YVRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaApAQCAtNDIsNyArNDIsNyBAQCBwdWJs
aWM6CiAKICAgICB+SW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyKCkgeyB9
CiAKLSAgICB2aXJ0dWFsIEtpbmQga2luZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fa2lu
ZDsgfQorICAgIHZpcnR1YWwgS2luZCBraW5kKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9r
aW5kOyB9CiAKIHByaXZhdGU6CiAgICAgSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2YXRlR1N0
cmVhbWVyKEtpbmQga2luZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZUdTdHJlYW1lci5oCmluZGV4IGFjNWQyMDYuLjI4NWNkODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2
YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaApAQCAtNDQsMTIgKzQ0LDEy
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlR1N0cmVhbWVyKGluZGV4LCBwYWQpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlzY29ubmVjdCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0KCkgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyBsYWJlbCgpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIG1fbGFiZWw7IH0KLSAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyBsYW5ndWFnZSgp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fbGFuZ3VhZ2U7IH0KKyAgICB2aXJ0dWFsIEF0b21p
Y1N0cmluZyBsYWJlbCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbGFiZWw7IH0KKyAgICB2
aXJ0dWFsIEF0b21pY1N0cmluZyBsYW5ndWFnZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
bGFuZ3VhZ2U7IH0KIAotICAgIHZpcnR1YWwgaW50IHRyYWNrSW5kZXgoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBtX2luZGV4OyB9CisgICAgdmlydHVhbCBpbnQgdHJhY2tJbmRleCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1faW5kZXg7IH0KICAgICBTdHJpbmcgc3RyZWFtSWQoKSBjb25z
dCB7IHJldHVybiBtX3N0cmVhbUlkOyB9CiAKICAgICB2b2lkIGhhbmRsZVNhbXBsZShHUmVmUHRy
PEdzdFNhbXBsZT4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIu
aAppbmRleCBlZTdhMDM4Li43MDQ2NDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UcmFja1By
aXZhdGVHU3RyZWFtZXIuaApAQCAtNDEsMTUgKzQxLDE1IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcihwbGF5YmluLCBpbmRl
eCwgcGFkKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3QoKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVh
bCB2b2lkIHNldFNlbGVjdGVkKGJvb2wpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRB
Y3RpdmUoYm9vbCBlbmFibGVkKSBPVkVSUklERSB7IHNldFNlbGVjdGVkKGVuYWJsZWQpOyB9Cisg
ICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkKGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzZXRBY3RpdmUoYm9vbCBlbmFibGVkKSBvdmVycmlkZSB7IHNldFNlbGVjdGVkKGVuYWJs
ZWQpOyB9CiAKLSAgICB2aXJ0dWFsIGludCB0cmFja0luZGV4KCkgY29uc3QgT1ZFUlJJREUgeyBy
ZXR1cm4gbV9pbmRleDsgfQorICAgIHZpcnR1YWwgaW50IHRyYWNrSW5kZXgoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX2luZGV4OyB9CiAKLSAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyBsYWJl
bCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fbGFiZWw7IH0KLSAgICB2aXJ0dWFsIEF0b21p
Y1N0cmluZyBsYW5ndWFnZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fbGFuZ3VhZ2U7IH0K
KyAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyBsYWJlbCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IG1fbGFiZWw7IH0KKyAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyBsYW5ndWFnZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fbGFuZ3VhZ2U7IH0KIAogcHJpdmF0ZToKICAgICBWaWRlb1RyYWNr
UHJpdmF0ZUdTdHJlYW1lcihHUmVmUHRyPEdzdEVsZW1lbnQ+IHBsYXliaW4sIGdpbnQgaW5kZXgs
IEdSZWZQdHI8R3N0UGFkPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9pb3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRklPUy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkZJT1MuaApp
bmRleCAwNWJlNzNjLi43MDRmNTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9pb3MvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRklPUy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZG
SU9TLmgKQEAgLTQyLDEwICs0MiwxMCBAQCBwdWJsaWM6CiAKICAgICB+SW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUFWRklPUygpOwogCi0gICAgdmlydHVhbCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlOjpL
aW5kIGtpbmQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEF0b21pY1N0cmluZyBsYWJl
bCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fbmFtZTsgfQotICAgIHZpcnR1YWwgQXRvbWlj
U3RyaW5nIGxhbmd1YWdlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9sYW5ndWFnZTsgfQot
ICAgIHZpcnR1YWwgYm9vbCBpc0xlZ2FjeUNsb3NlZENhcHRpb25zVHJhY2soKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZTo6S2luZCBraW5kKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBdG9taWNTdHJpbmcg
bGFiZWwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX25hbWU7IH0KKyAgICB2aXJ0dWFsIEF0
b21pY1N0cmluZyBsYW5ndWFnZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbGFuZ3VhZ2U7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNMZWdhY3lDbG9zZWRDYXB0aW9uc1RyYWNrKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBpbnQgaW50ZXJuYWxJRCgpIGNvbnN0IHsg
cmV0dXJuIG1faW50ZXJuYWxJRDsgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvTWVkaWFQbGF5ZXJQcml2YXRlSU9TLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvTWVkaWFQbGF5ZXJQcml2YXRlSU9T
LmgKaW5kZXggM2JhYmRkNS4uODExNmY4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvaW9zL01lZGlhUGxheWVyUHJpdmF0ZUlPUy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9NZWRpYVBsYXllclByaXZhdGVJT1MuaApAQCAt
NTIsOSArNTIsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJNZWRpYUVuZ2lu
ZShNZWRpYUVuZ2luZVJlZ2lzdHJhcik7CiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJQcml2YXRl
SU9TKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGVsaXZlck5vdGlmaWNhdGlvbihNZWRpYVBsYXll
clByb3h5Tm90aWZpY2F0aW9uVHlwZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRlbGl2
ZXJOb3RpZmljYXRpb24oTWVkaWFQbGF5ZXJQcm94eU5vdGlmaWNhdGlvblR5cGUpIG92ZXJyaWRl
OwogICAgIGJvb2wgY2FsbGJhY2tzRGVsYXllZCgpIHsgcmV0dXJuIG1fZGVsYXlDYWxsYmFja3Mg
PiAwOyB9Ci0gICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1BsYXkoKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgcHJlcGFyZVRvUGxheSgpIG92ZXJyaWRlOwogICAgIHZvaWQgcHJvY2Vzc0Rl
ZmVycmVkUmVxdWVzdHMoKTsKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKQEAgLTcyLDgxICs3
Miw4MSBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1
cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAgICAgc3Rh
dGljIGJvb2wgaXNBdmFpbGFibGUoKTsKIAotICAgIHZpcnR1YWwgSW50U2l6ZSBuYXR1cmFsU2l6
ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBoYXNWaWRlbygpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBoYXNBdWRpbygpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxzY3JlZW4oKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biB0cnVlOyB9CisgICAgdmlydHVhbCBJbnRTaXplIG5hdHVyYWxTaXplKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBib29sIGhhc1ZpZGVvKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIGhhc0F1ZGlvKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzRnVsbHNjcmVlbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAg
IHZpcnR1YWwgYm9vbCBjYW5Mb2FkUG9zdGVyKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1
ZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRQb3N0ZXIoY29uc3QgU3RyaW5nJiB1cmwpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgYm9vbCBjYW5Mb2FkUG9zdGVyKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRQb3N0ZXIoY29uc3QgU3RyaW5nJiB1
cmwpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRyb2xzKGJvb2wpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9scyhib29sKSBvdmVycmlkZTsKIAotICAg
IHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgZXhpdEZ1bGxzY3JlZW4oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxs
c2NyZWVuKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsc2NyZWVuKCkgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaGFzQ2xvc2VkQ2FwdGlvbnMoKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxlKGJvb2wpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCkgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiB1cmwpIG92ZXJyaWRlOwog
I2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3Ry
aW5nJiwgUGFzc1JlZlB0cjxIVE1MTWVkaWFTb3VyY2U+KSBPVkVSUklERSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmLCBQYXNzUmVmUHRyPEhUTUxNZWRpYVNvdXJjZT4p
IG92ZXJyaWRlIHsgfQogI2VuZGlmCi0gICAgdmlydHVhbCB2b2lkIGNhbmNlbExvYWQoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTG9hZCgpIG92ZXJyaWRlOwogCi0gICAgdmly
dHVhbCB2b2lkIHBsYXkoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcGF1c2UoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGxheSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBwYXVzZSgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIHBhdXNlZCgpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzZWVraW5nKCkgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBib29sIHBhdXNlZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBz
ZWVraW5nKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGZsb2F0IGR1cmF0aW9uKCkg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBmbG9hdCBjdXJyZW50VGltZSgpIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgZmxvYXQgZHVyYXRpb24oKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGZsb2F0IGN1cnJlbnRUaW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgc2VlayhmbG9hdCB0aW1lKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Vl
ayhmbG9hdCB0aW1lKSBvdmVycmlkZTsKICAgICB2b2lkIHNldEVuZFRpbWUoZmxvYXQpOwogCiAg
ICAgZmxvYXQgcmF0ZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBzZXRSYXRlKGZsb2F0IGlu
UmF0ZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBmbG9hdCB2b2x1bWUoKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Vm9sdW1lKGZsb2F0IGluVm9sdW1lKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0TXV0ZWQoYm9vbCBpbk11dGUpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBzZXRSYXRlKGZsb2F0IGluUmF0ZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBm
bG9hdCB2b2x1bWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Vm9sdW1l
KGZsb2F0IGluVm9sdW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TXV0ZWQoYm9v
bCBpbk11dGUpIG92ZXJyaWRlOwogCiAgICAgaW50IGRhdGFSYXRlKCkgY29uc3Q7CiAKLSAgICB2
aXJ0dWFsIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG5l
dHdvcmtTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXI6OlJl
YWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIAogICAgIGZsb2F0IG1h
eFRpbWVCdWZmZXJlZCgpIGNvbnN0OwotICAgIHZpcnR1YWwgZmxvYXQgbWF4VGltZVNlZWthYmxl
KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1
ZmZlcmVkKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBmbG9hdCBtYXhUaW1lU2Vla2Fi
bGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4g
YnVmZmVyZWQoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBkaWRMb2FkaW5n
UHJvZ3Jlc3MoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgZGlkTG9hZGluZ1By
b2dyZXNzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCB0b3RhbEJ5dGVzS25vd24oKSBjb25z
dDsKICAgICB1bnNpZ25lZCB0b3RhbEJ5dGVzKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0VmlzaWJsZShib29sKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2l6ZShjb25z
dCBJbnRTaXplJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFZpc2libGUoYm9vbCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFNpemUoY29uc3QgSW50U2l6ZSYpIG92ZXJy
aWRlOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQqLCBjb25z
dCBJbnRSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhaW50KEdyYXBoaWNzQ29u
dGV4dCosIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShJT1NfQUlSUExB
WSkKLSAgICB2aXJ0dWFsIGJvb2wgaXNDdXJyZW50UGxheWJhY2tUYXJnZXRXaXJlbGVzcygpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIo
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNDdXJyZW50UGxheWJhY2tUYXJnZXRXaXJl
bGVzcygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJn
ZXRQaWNrZXIoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBoYXNXaXJlbGVzc1BsYXli
YWNrVGFyZ2V0cygpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBoYXNXaXJlbGVz
c1BsYXliYWNrVGFyZ2V0cygpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIHdp
cmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHNldFdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKGJvb2wpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgYm9vbCB3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgpIGNvbnN0IG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxl
ZChib29sKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRIYXNQbGF5YmFja1Rhcmdl
dEF2YWlsYWJpbGl0eUxpc3RlbmVycyhib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0SGFzUGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlMaXN0ZW5lcnMoYm9vbCkgb3ZlcnJpZGU7
CiAjZW5kaWYKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICB2aXJ0dWFs
IGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0IE9WRVJSSURFOworICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRNZWRpYVBsYXllclByb3h5KFdlYk1l
ZGlhUGxheWVyUHJveHkqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TWVkaWFQbGF5
ZXJQcm94eShXZWJNZWRpYVBsYXllclByb3h5Kikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwcm9jZXNz
UGVuZGluZ1JlcXVlc3RzKCk7CiAKICAgICB2b2lkIHNldERlbGF5Q2FsbGJhY2tzKGJvb2wgZG9E
ZWxheSkgeyBtX2RlbGF5Q2FsbGJhY2tzICs9IChkb0RlbGF5ID8gMSA6IC0xKTsgfQpAQCAtMTU4
LDggKzE1OCw4IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBlbmdpbmVEZXNjcmlw
dGlvbigpIGNvbnN0IHsgcmV0dXJuIFN0cmluZyhBU0NJSUxpdGVyYWwoImlPUyIpKTsgfQogCi0g
ICAgdmlydHVhbCB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBTdHJpbmcmIHZhbHVlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcmVhZHlGb3JQbGF5
YmFjaygpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBib29sIHJlYWR5Rm9yUGxheWJhY2soKSBjb25zdCBvdmVycmlkZTsKIAogI2lmIEVO
QUJMRShWSURFT19UUkFDSykKICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbigpIGNvbnN0OwpAQCAtMTY3LDcgKzE2Nyw3IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIGNsZWFyVGV4dFRyYWNrcygpOwogICAgIHZvaWQgc2V0U2VsZWN0ZWRUZXh0VHJhY2soTlNO
dW1iZXIgKik7Ci0gICAgdmlydHVhbCB2b2lkIHRyYWNrTW9kZUNoYW5nZWQoKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgdHJhY2tNb2RlQ2hhbmdlZCgpIG92ZXJyaWRlOwogICAgIHZvaWQg
c2V0T3V0T2ZCYW5kVGV4dFRyYWNrcyhOU0FycmF5ICopOwogCiAgICAgdmlydHVhbCBib29sIGlt
cGxlbWVudHNUZXh0VHJhY2tDb250cm9scygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KQEAgLTE4
OCwxOSArMTg4LDE5IEBAIHByaXZhdGU6CiAKICAgICAgICAgdmlydHVhbCB+UGxhdGZvcm1UZXh0
VHJhY2tNZW51SW50ZXJmYWNlSU9TKCk7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrc0Rp
ZENoYW5nZSgpIE9WRVJSSURFCisgICAgICAgIHZpcnR1YWwgdm9pZCB0cmFja3NEaWRDaGFuZ2Uo
KSBvdmVycmlkZQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAobV9vd25lcikKICAgICAgICAg
ICAgICAgICBtX293bmVyLT5vdXRPZkJhbmRUZXh0VHJhY2tzQ2hhbmdlZCgpOwogICAgICAgICB9
CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrV2FzU2VsZWN0ZWQoUGFzc1JlZlB0cjxQbGF0
Zm9ybVRleHRUcmFjaz4gdHJhY2spIE9WRVJSSURFCisgICAgICAgIHZpcnR1YWwgdm9pZCB0cmFj
a1dhc1NlbGVjdGVkKFBhc3NSZWZQdHI8UGxhdGZvcm1UZXh0VHJhY2s+IHRyYWNrKSBvdmVycmlk
ZQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAobV9vd25lcikKICAgICAgICAgICAgICAgICBt
X293bmVyLT50ZXh0VHJhY2tXYXNTZWxlY3RlZEJ5TWVkaWFFbGVtZW50KHRyYWNrKTsKICAgICAg
ICAgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoUGxhdGZvcm1UZXh0VHJhY2tN
ZW51Q2xpZW50KiBjbGllbnQpIE9WRVJSSURFIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KKyAgICAg
ICAgdmlydHVhbCB2b2lkIHNldENsaWVudChQbGF0Zm9ybVRleHRUcmFja01lbnVDbGllbnQqIGNs
aWVudCkgb3ZlcnJpZGUgeyBtX2NsaWVudCA9IGNsaWVudDsgfQogICAgICAgICBQbGF0Zm9ybVRl
eHRUcmFja01lbnVDbGllbnQqIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKICAgICBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9z
L1RleHRUcmFja1JlcHJlc2VudGF0aW9uSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9pb3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb25JT1MuaAppbmRleCBkOWU4YjZlLi42
YWIxODhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3Mv
VGV4dFRyYWNrUmVwcmVzZW50YXRpb25JT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9pb3MvVGV4dFRyYWNrUmVwcmVzZW50YXRpb25JT1MuaApAQCAtNDEsMTAgKzQx
LDEwIEBAIHB1YmxpYzoKICAgICBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbklPUyhUZXh0VHJhY2tS
ZXByZXNlbnRhdGlvbkNsaWVudCopOwogICAgIHZpcnR1YWwgflRleHRUcmFja1JlcHJlc2VudGF0
aW9uSU9TKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgT1ZFUlJJREUgeyByZXR1cm4gbV9s
YXllci5nZXQoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50U2NhbGUoZmxvYXQpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgSW50UmVjdCBib3VuZHMoKSBjb25zdCBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQbGF0Zm9ybUxh
eWVyKiBwbGF0Zm9ybUxheWVyKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9sYXllci5nZXQoKTsgfQor
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50U2NhbGUoZmxvYXQpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgSW50UmVjdCBib3VuZHMoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFRleHRUcmFja1Jl
cHJlc2VudGF0aW9uQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9H
TFRyYW5zcG9ydFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL0dMVHJhbnNwb3J0U3VyZmFjZS5oCmluZGV4IDdiMzQzY2EuLjJmZGQxZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL0dMVHJhbnNw
b3J0U3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL0dMVHJhbnNwb3J0U3VyZmFjZS5oCkBAIC00MSw5ICs0MSw5IEBAIHB1YmxpYzoKICAgICAv
LyBDcmVhdGVzIGEgR0wgc3VyZmFjZSB3aG9zZSByZXN1bHRzIGNhbiBiZSB0cmFuc3BvcnRlZCB0
byB0aGUgVUkgcHJvY2VzcyBmb3IgZGlzcGxheS4KICAgICBzdGF0aWMgUGFzc093blB0cjxHTFRy
YW5zcG9ydFN1cmZhY2U+IGNyZWF0ZVRyYW5zcG9ydFN1cmZhY2UoY29uc3QgSW50U2l6ZSYsIFN1
cmZhY2VBdHRyaWJ1dGVzID0gR0xQbGF0Zm9ybVN1cmZhY2U6OkRlZmF1bHQpOwogICAgIHZpcnR1
YWwgfkdMVHJhbnNwb3J0U3VyZmFjZSgpOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb250ZW50
cyhjb25zdCB1aW50MzJfdCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldEdlb21ldHJ5
KGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb250ZW50cyhjb25zdCB1aW50MzJfdCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEdlb21ldHJ5KGNvbnN0IEludFJlY3QmKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpIG92ZXJyaWRlOwogCiBwcm90ZWN0
ZWQ6CiAgICAgR0xUcmFuc3BvcnRTdXJmYWNlKGNvbnN0IEludFNpemUmLCBTdXJmYWNlQXR0cmli
dXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9lZ2wvRUdMQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvZWdsL0VHTENvbnRleHQuaAppbmRleCBlYzMxOTEzLi42OGNiZTg5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMQ29u
dGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2Vn
bC9FR0xDb250ZXh0LmgKQEAgLTM3LDExICszNywxMSBAQCBjbGFzcyBFR0xPZmZTY3JlZW5Db250
ZXh0IDogcHVibGljIEdMUGxhdGZvcm1Db250ZXh0IHsKIHB1YmxpYzoKICAgICBFR0xPZmZTY3Jl
ZW5Db250ZXh0KCk7CiAgICAgdmlydHVhbCB+RUdMT2ZmU2NyZWVuQ29udGV4dCgpOwotICAgIHZp
cnR1YWwgYm9vbCBpbml0aWFsaXplKEdMUGxhdGZvcm1TdXJmYWNlKiwgUGxhdGZvcm1Db250ZXh0
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1NYWtlQ3VycmVudChHTFBsYXRm
b3JtU3VyZmFjZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybVJlbGVhc2VD
dXJyZW50KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgaXNDdXJyZW50Q29udGV4dCgpIGNvbnN0IE9WRVJSSURFOworICAg
IHZpcnR1YWwgYm9vbCBpbml0aWFsaXplKEdMUGxhdGZvcm1TdXJmYWNlKiwgUGxhdGZvcm1Db250
ZXh0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1NYWtlQ3VycmVudChHTFBs
YXRmb3JtU3VyZmFjZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybVJlbGVh
c2VDdXJyZW50KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNDdXJyZW50Q29udGV4dCgpIGNvbnN0IG92ZXJyaWRlOwog
CiBwcml2YXRlOgogICAgIHZvaWQgZnJlZVJlc291cmNlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xTdXJmYWNlLmgK
aW5kZXggZGM4ODY2OC4uMGY5YWFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZWdsL0VHTFN1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMU3VyZmFjZS5oCkBAIC00Miw5ICs0
Miw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxHTFRyYW5zcG9ydFN1cmZhY2U+
IGNyZWF0ZVRyYW5zcG9ydFN1cmZhY2UoY29uc3QgSW50U2l6ZSYsIFN1cmZhY2VBdHRyaWJ1dGVz
KTsKICAgICBzdGF0aWMgUGFzc093blB0cjxHTFRyYW5zcG9ydFN1cmZhY2VDbGllbnQ+IGNyZWF0
ZVRyYW5zcG9ydFN1cmZhY2VDbGllbnQoY29uc3QgUGxhdGZvcm1CdWZmZXJIYW5kbGUsIGNvbnN0
IEludFNpemUmLCBib29sKTsKICAgICB2aXJ0dWFsIH5FR0xUcmFuc3BvcnRTdXJmYWNlKCk7Ci0g
ICAgdmlydHVhbCBQbGF0Zm9ybVN1cmZhY2VDb25maWcgY29uZmlndXJhdGlvbigpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBHTFBs
YXRmb3JtU3VyZmFjZTo6U3VyZmFjZUF0dHJpYnV0ZXMgYXR0cmlidXRlcygpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgUGxhdGZvcm1TdXJmYWNlQ29uZmlnIGNvbmZpZ3VyYXRpb24oKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgR0xQbGF0Zm9ybVN1cmZhY2U6OlN1cmZhY2VBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMoKSBjb25z
dCBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIEVHTFRyYW5zcG9ydFN1cmZhY2UoY29uc3Qg
SW50U2l6ZSYsIFN1cmZhY2VBdHRyaWJ1dGVzKTsKQEAgLTU1LDkgKzU1LDkgQEAgY2xhc3MgRUdM
T2ZmU2NyZWVuU3VyZmFjZSA6IHB1YmxpYyBHTFBsYXRmb3JtU3VyZmFjZSB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NPd25QdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IGNyZWF0ZU9mZlNjcmVlblN1
cmZhY2UoU3VyZmFjZUF0dHJpYnV0ZXMpOwogICAgIHZpcnR1YWwgfkVHTE9mZlNjcmVlblN1cmZh
Y2UoKTsKLSAgICB2aXJ0dWFsIFBsYXRmb3JtU3VyZmFjZUNvbmZpZyBjb25maWd1cmF0aW9uKCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIEdMUGxhdGZvcm1TdXJmYWNlOjpTdXJmYWNlQXR0cmlidXRlcyBhdHRyaWJ1dGVzKCkgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQbGF0Zm9ybVN1cmZhY2VDb25maWcgY29uZmlndXJh
dGlvbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBHTFBsYXRmb3JtU3VyZmFjZTo6U3VyZmFjZUF0dHJpYnV0ZXMgYXR0cmlidXRl
cygpIGNvbnN0IG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgRUdMT2ZmU2NyZWVuU3VyZmFj
ZShTdXJmYWNlQXR0cmlidXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9zdXJmYWNlcy9lZ2wvRUdMWFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xYU3VyZmFjZS5oCmluZGV4IDdjNzQyMzIu
LjRmZjEyOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL2VnbC9FR0xYU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL2VnbC9FR0xYU3VyZmFjZS5oCkBAIC00MSwxNSArNDEsMTUgQEAgY2xh
c3MgRUdMV2luZG93VHJhbnNwb3J0U3VyZmFjZSA6IHB1YmxpYyBFR0xUcmFuc3BvcnRTdXJmYWNl
IHsKIHB1YmxpYzoKICAgICBFR0xXaW5kb3dUcmFuc3BvcnRTdXJmYWNlKGNvbnN0IEludFNpemUm
LCBHTFBsYXRmb3JtU3VyZmFjZTo6U3VyZmFjZUF0dHJpYnV0ZXMpOwogICAgIHZpcnR1YWwgfkVH
TFdpbmRvd1RyYW5zcG9ydFN1cmZhY2UoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3dhcEJ1ZmZlcnMo
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBzd2FwQnVmZmVycygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkZXN0
cm95KCkgb3ZlcnJpZGU7CiB9OwogCiBjbGFzcyBFR0xQaXhtYXBTdXJmYWNlIDogcHVibGljIEVH
TE9mZlNjcmVlblN1cmZhY2UgewogcHVibGljOgogICAgIEVHTFBpeG1hcFN1cmZhY2UoR0xQbGF0
Zm9ybVN1cmZhY2U6OlN1cmZhY2VBdHRyaWJ1dGVzKTsKICAgICB2aXJ0dWFsIH5FR0xQaXhtYXBT
dXJmYWNlKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGVzdHJveSgpIG92ZXJyaWRlOwogfTsKIAogY2xhc3MgRUdMVGV4dHVyZUZyb21Q
aXhtYXAgewpAQCAtNzAsOCArNzAsOCBAQCBjbGFzcyBFR0xYVHJhbnNwb3J0U3VyZmFjZUNsaWVu
dCA6IHB1YmxpYyBHTFRyYW5zcG9ydFN1cmZhY2VDbGllbnQgewogcHVibGljOgogICAgIEVHTFhU
cmFuc3BvcnRTdXJmYWNlQ2xpZW50KGNvbnN0IFBsYXRmb3JtQnVmZmVySGFuZGxlLCBjb25zdCBJ
bnRTaXplJiwgYm9vbCk7CiAgICAgdmlydHVhbCB+RUdMWFRyYW5zcG9ydFN1cmZhY2VDbGllbnQo
KTsKLSAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRleHR1cmUoKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGVzdHJveSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlVGV4
dHVyZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCkgb3ZlcnJpZGU7CiAK
IHByaXZhdGU6CiAgICAgWEltYWdlKiBtX2ltYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRleHQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0LmgKaW5kZXgg
M2NjNDNiYy4uYjA4YjUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5oCkBAIC0zNywxMSArMzcsMTEg
QEAgY2xhc3MgR0xYT2ZmU2NyZWVuQ29udGV4dCA6IHB1YmxpYyBHTFBsYXRmb3JtQ29udGV4dCB7
CiBwdWJsaWM6CiAgICAgR0xYT2ZmU2NyZWVuQ29udGV4dCgpOwogICAgIHZpcnR1YWwgfkdMWE9m
ZlNjcmVlbkNvbnRleHQoKTsKLSAgICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShHTFBsYXRmb3Jt
U3VyZmFjZSosIFBsYXRmb3JtQ29udGV4dCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHBs
YXRmb3JtTWFrZUN1cnJlbnQoR0xQbGF0Zm9ybVN1cmZhY2UqKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgcGxhdGZvcm1SZWxlYXNlQ3VycmVudCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBkZXN0cm95KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzQ3VycmVudENvbnRl
eHQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShHTFBsYXRm
b3JtU3VyZmFjZSosIFBsYXRmb3JtQ29udGV4dCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IHBsYXRmb3JtTWFrZUN1cnJlbnQoR0xQbGF0Zm9ybVN1cmZhY2UqKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgcGxhdGZvcm1SZWxlYXNlQ3VycmVudCgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBkZXN0cm95KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzQ3VycmVudENv
bnRleHQoKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGZyZWVSZXNvdXJj
ZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL2dseC9HTFhTdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5oCmluZGV4IDg4MDJkYTMuLmJiNzZmYzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJm
YWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4
L0dMWFN1cmZhY2UuaApAQCAtMzksMTEgKzM5LDExIEBAIGNsYXNzIEdMWFRyYW5zcG9ydFN1cmZh
Y2UgOiBwdWJsaWMgR0xUcmFuc3BvcnRTdXJmYWNlIHsKIHB1YmxpYzoKICAgICBHTFhUcmFuc3Bv
cnRTdXJmYWNlKGNvbnN0IEludFNpemUmLCBTdXJmYWNlQXR0cmlidXRlcyk7CiAgICAgdmlydHVh
bCB+R0xYVHJhbnNwb3J0U3VyZmFjZSgpOwotICAgIHZpcnR1YWwgUGxhdGZvcm1TdXJmYWNlQ29u
ZmlnIGNvbmZpZ3VyYXRpb24oKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3dhcEJ1ZmZl
cnMoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0R2VvbWV0cnkoY29uc3QgSW50UmVj
dCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgR0xQbGF0Zm9ybVN1cmZhY2U6OlN1cmZhY2VBdHRy
aWJ1dGVzIGF0dHJpYnV0ZXMoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVz
dHJveSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGxhdGZvcm1TdXJmYWNlQ29uZmlnIGNvbmZp
Z3VyYXRpb24oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc3dhcEJ1ZmZlcnMoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0R2VvbWV0cnkoY29uc3QgSW50UmVjdCYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgR0xQbGF0Zm9ybVN1cmZhY2U6OlN1cmZhY2VBdHRyaWJ1dGVzIGF0
dHJpYnV0ZXMoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpIG92
ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIE93blB0cjxHTFhDb25maWdTZWxlY3Rvcj4gbV9jb25m
aWdTZWxlY3RvcjsKQEAgLTU0LDggKzU0LDggQEAgY2xhc3MgR0xYT2ZmU2NyZWVuU3VyZmFjZSA6
IHB1YmxpYyBHTFBsYXRmb3JtU3VyZmFjZSB7CiBwdWJsaWM6CiAgICAgR0xYT2ZmU2NyZWVuU3Vy
ZmFjZShTdXJmYWNlQXR0cmlidXRlcyk7CiAgICAgdmlydHVhbCB+R0xYT2ZmU2NyZWVuU3VyZmFj
ZSgpOwotICAgIHZpcnR1YWwgUGxhdGZvcm1TdXJmYWNlQ29uZmlnIGNvbmZpZ3VyYXRpb24oKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgUGxhdGZvcm1TdXJmYWNlQ29uZmlnIGNvbmZpZ3VyYXRpb24oKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGVzdHJveSgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIHZvaWQgaW5p
dGlhbGl6ZShTdXJmYWNlQXR0cmlidXRlcyk7CkBAIC03MCw4ICs3MCw4IEBAIGNsYXNzIEdMWFRy
YW5zcG9ydFN1cmZhY2VDbGllbnQgOiBwdWJsaWMgR0xUcmFuc3BvcnRTdXJmYWNlQ2xpZW50IHsK
IHB1YmxpYzoKICAgICBHTFhUcmFuc3BvcnRTdXJmYWNlQ2xpZW50KGNvbnN0IFBsYXRmb3JtQnVm
ZmVySGFuZGxlLCBib29sKTsKICAgICB2aXJ0dWFsIH5HTFhUcmFuc3BvcnRTdXJmYWNlQ2xpZW50
KCk7Ci0gICAgdmlydHVhbCB2b2lkIHByZXBhcmVUZXh0dXJlKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGRlc3Ryb3koKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRl
eHR1cmUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpIG92ZXJyaWRlOwog
CiBwcml2YXRlOgogICAgIFBpeG1hcCBtX3hQaXhtYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlci5oCmluZGV4IGYzNzMyMWMuLmUzMzQwZDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1h
cHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlci5oCkBAIC03MCw5ICs3MCw5IEBAIHB1YmxpYzoKICAgICBD
b2xvciBzb2xpZENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9zb2xpZENvbG9yOyB9CiAgICAgdmly
dHVhbCB2b2lkIHNldENvbnRlbnRzVG9NZWRpYShQbGF0Zm9ybUxheWVyKik7CiAgICAgdmlydHVh
bCB2b2lkIHNldENvbnRlbnRzVG9DYW52YXMoUGxhdGZvcm1MYXllciogY2FudmFzKSB7IHNldENv
bnRlbnRzVG9NZWRpYShjYW52YXMpOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldFNob3dEZWJ1Z0Jv
cmRlcihib29sKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RGVidWdCb3JkZXIoY29u
c3QgQ29sb3ImLCBmbG9hdCB3aWR0aCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNo
b3dSZXBhaW50Q291bnRlcihib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hv
d0RlYnVnQm9yZGVyKGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1Z0Jv
cmRlcihjb25zdCBDb2xvciYsIGZsb2F0IHdpZHRoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0U2hvd1JlcGFpbnRDb3VudGVyKGJvb2wpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBmbHVzaENvbXBvc2l0aW5nU3RhdGUoY29uc3QgRmxvYXRSZWN0Jik7CiAgICAgdmlydHVhbCB2
b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0TmFtZShjb25zdCBTdHJpbmcmIG5hbWUpOwpAQCAtMTEyLDggKzExMiw4IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBwcmVwYXJlQmFja2luZ1N0b3JlSWZOZWVkZWQoKTsKICAgICBib29s
IHNob3VsZEhhdmVCYWNraW5nU3RvcmUoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCBwbGF0
Zm9ybUxheWVyV2lsbEJlRGVzdHJveWVkKCkgT1ZFUlJJREUgeyBzZXRDb250ZW50c1RvTWVkaWEo
MCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0UGxhdGZvcm1MYXllck5lZWRzRGlzcGxheSgpIE9W
RVJSSURFIHsgc2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBw
bGF0Zm9ybUxheWVyV2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGUgeyBzZXRDb250ZW50c1RvTWVk
aWEoMCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0UGxhdGZvcm1MYXllck5lZWRzRGlzcGxheSgp
IG92ZXJyaWRlIHsgc2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKTsgfQogCiAgICAgLy8gVGhpcyBz
ZXQgb2YgZmxhZ3MgaGVscCB1cyBkZWZlciB3aGljaCBwcm9wZXJ0aWVzIG9mIHRoZSBsYXllciBo
YXZlIGJlZW4KICAgICAvLyBtb2RpZmllZCBieSB0aGUgY29tcG9zaXRvciwgc28gd2UgY2FuIGtu
b3cgd2hhdCB0byBsb29rIGZvciBpbiB0aGUgbmV4dCBmbHVzaC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaApp
bmRleCAxOGE1YzRkLi42MWNhMTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5oCkBAIC01NCwyMCArNTQs
MjAgQEAgcHVibGljOgogICAgIHR5cGVkZWYgaW50IEZsYWdzOwogCiAgICAgLy8gVGV4dHVyZU1h
cHBlciBpbXBsZW1lbnRhdGlvbgotICAgIHZpcnR1YWwgdm9pZCBkcmF3Qm9yZGVyKGNvbnN0IENv
bG9yJiwgZmxvYXQgYm9yZGVyV2lkdGgsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9y
bWF0aW9uTWF0cml4JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRyYXdOdW1iZXIoaW50
IG51bWJlciwgY29uc3QgQ29sb3ImLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXgmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd1RleHR1cmUoY29u
c3QgQml0bWFwVGV4dHVyZSYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JiwgZmxvYXQgb3BhY2l0eSwgdW5zaWduZWQgZXhwb3NlZEVkZ2VzKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgZHJhd0JvcmRlcihjb25zdCBDb2xvciYsIGZsb2F0IGJvcmRlcldp
ZHRoLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBkcmF3TnVtYmVyKGludCBudW1iZXIsIGNvbnN0IENvbG9y
JiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4Jikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGRyYXdUZXh0dXJlKGNvbnN0IEJpdG1hcFRleHR1cmUmLCBj
b25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0IG9wYWNp
dHksIHVuc2lnbmVkIGV4cG9zZWRFZGdlcykgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRy
YXdUZXh0dXJlKFBsYXRmb3JtM0RPYmplY3QgdGV4dHVyZSwgRmxhZ3MsIGNvbnN0IEludFNpemUm
IHRleHR1cmVTaXplLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5zZm9y
bWF0aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXgsIGZsb2F0IG9wYWNpdHksIHVuc2lnbmVkIGV4
cG9zZWRFZGdlcyA9IEFsbEVkZ2VzKTsKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd1NvbGlkQ29sb3Io
Y29uc3QgRmxvYXRSZWN0JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBDb2xv
ciYpIE9WRVJSSURFOwotCi0gICAgdmlydHVhbCB2b2lkIGJpbmRTdXJmYWNlKEJpdG1hcFRleHR1
cmUqIHN1cmZhY2UpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBiZWdpbkNsaXAoY29uc3Qg
VHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3QmKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgYmVnaW5QYWludGluZyhQYWludEZsYWdzID0gMCkgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIGVuZFBhaW50aW5nKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGVu
ZENsaXAoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEludFJlY3QgY2xpcEJvdW5kcygpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgSW50U2l6ZSBtYXhUZXh0dXJlU2l6ZSgpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIEludFNpemUoMjAwMCwgMjAwMCk7IH0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
Qml0bWFwVGV4dHVyZT4gY3JlYXRlVGV4dHVyZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBkcmF3U29saWRDb2xvcihjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYsIGNvbnN0IENvbG9yJikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgYmluZFN1
cmZhY2UoQml0bWFwVGV4dHVyZSogc3VyZmFjZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IGJlZ2luQ2xpcChjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBiZWdpblBhaW50aW5nKFBhaW50RmxhZ3MgPSAw
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5kUGFpbnRpbmcoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZW5kQ2xpcCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW50UmVjdCBj
bGlwQm91bmRzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBJbnRTaXplIG1heFRleHR1cmVTaXpl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gSW50U2l6ZSgyMDAwLCAyMDAwKTsgfQorICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBjcmVhdGVUZXh0dXJlKCkgb3ZlcnJpZGU7
CiAgICAgaW5saW5lIEdyYXBoaWNzQ29udGV4dDNEKiBncmFwaGljc0NvbnRleHQzRCgpIGNvbnN0
IHsgcmV0dXJuIG1fY29udGV4dDNELmdldCgpOyB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMp
CkBAIC0xNzAsNyArMTcwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0JhY2tlZEJ5
T3BlbkdMKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAjaWYgRU5BQkxFKENTU19GSUxURVJT
KQotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiBhcHBseUZpbHRlcnMoVGV4
dHVyZU1hcHBlciosIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gYXBwbHlGaWx0ZXJzKFRleHR1cmVNYXBwZXIq
LCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJikgb3ZlcnJpZGU7CiAgICAgc3RydWN0IEZpbHRlcklu
Zm8gewogICAgICAgICBSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBmaWx0ZXI7CiAgICAgICAgIHVu
c2lnbmVkIHBhc3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckltYWdlQnVmZmVyLmgKaW5kZXggZTdj
NzVkYS4uZjVlMzhiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVySW1hZ2VCdWZmZXIuaApAQCAt
NTMsMTYgKzUzLDE2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxUZXh0dXJlTWFw
cGVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFB0cihuZXcgVGV4dHVyZU1hcHBlckltYWdlQnVm
ZmVyKTsgfQogCiAgICAgLy8gVGV4dHVyZU1hcHBlciBpbXBsZW1lbnRhdGlvbgotICAgIHZpcnR1
YWwgdm9pZCBkcmF3Qm9yZGVyKGNvbnN0IENvbG9yJiwgZmxvYXQgYm9yZGVyV2lkdGgsIGNvbnN0
IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JikgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIGRyYXdOdW1iZXIoaW50IG51bWJlciwgY29uc3QgQ29sb3ImLCBjb25zdCBG
bG9hdFBvaW50JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgZHJhd1RleHR1cmUoY29uc3QgQml0bWFwVGV4dHVyZSYsIGNvbnN0IEZsb2F0
UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCBvcGFj
aXR5LCB1bnNpZ25lZCBleHBvc2VkRWRnZXMpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBk
cmF3U29saWRDb2xvcihjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYsIGNvbnN0IENvbG9yJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGJlZ2luQ2xpcChj
b25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBiaW5kU3VyZmFjZShCaXRtYXBUZXh0dXJlKiBzdXJmYWNlKSBPVkVS
UklERSB7IG1fY3VycmVudFN1cmZhY2UgPSBzdXJmYWNlO30KLSAgICB2aXJ0dWFsIHZvaWQgZW5k
Q2xpcCgpIE9WRVJSSURFIHsgZ3JhcGhpY3NDb250ZXh0KCktPnJlc3RvcmUoKTsgfQotICAgIHZp
cnR1YWwgSW50UmVjdCBjbGlwQm91bmRzKCkgT1ZFUlJJREUgeyByZXR1cm4gY3VycmVudENvbnRl
eHQoKS0+Y2xpcEJvdW5kcygpOyB9CisgICAgdmlydHVhbCB2b2lkIGRyYXdCb3JkZXIoY29uc3Qg
Q29sb3ImLCBmbG9hdCBib3JkZXJXaWR0aCwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgVHJhbnNm
b3JtYXRpb25NYXRyaXgmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd051bWJlcihp
bnQgbnVtYmVyLCBjb25zdCBDb2xvciYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkcmF3VGV4dHVyZShj
b25zdCBCaXRtYXBUZXh0dXJlJiwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0IG9wYWNpdHksIHVuc2lnbmVkIGV4cG9zZWRFZGdl
cykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRyYXdTb2xpZENvbG9yKGNvbnN0IEZsb2F0
UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgQ29sb3ImKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgYmVnaW5DbGlwKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGJpbmRTdXJm
YWNlKEJpdG1hcFRleHR1cmUqIHN1cmZhY2UpIG92ZXJyaWRlIHsgbV9jdXJyZW50U3VyZmFjZSA9
IHN1cmZhY2U7fQorICAgIHZpcnR1YWwgdm9pZCBlbmRDbGlwKCkgb3ZlcnJpZGUgeyBncmFwaGlj
c0NvbnRleHQoKS0+cmVzdG9yZSgpOyB9CisgICAgdmlydHVhbCBJbnRSZWN0IGNsaXBCb3VuZHMo
KSBvdmVycmlkZSB7IHJldHVybiBjdXJyZW50Q29udGV4dCgpLT5jbGlwQm91bmRzKCk7IH0KICAg
ICB2aXJ0dWFsIEludFNpemUgbWF4VGV4dHVyZVNpemUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gY3JlYXRlVGV4dHVyZSgpIE9WRVJSSURFIHsgcmV0dXJu
IEJpdG1hcFRleHR1cmVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKCk7IH0KKyAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8Qml0bWFwVGV4dHVyZT4gY3JlYXRlVGV4dHVyZSgpIG92ZXJyaWRlIHsgcmV0dXJuIEJp
dG1hcFRleHR1cmVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKCk7IH0KIAogICAgIGlubGluZSBHcmFwaGlj
c0NvbnRleHQqIGN1cnJlbnRDb250ZXh0KCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgK
aW5kZXggN2I2MmIwYS4uODdmZjNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaApAQCAtMTY0
LDEwICsxNjQsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbXB1dGVQYXR0ZXJuVHJhbnNmb3Jt
SWZOZWVkZWQoKTsKIAogICAgIC8vIEdyYXBoaWNzTGF5ZXJBbmltYXRpb246OkNsaWVudAotICAg
IHZpcnR1YWwgdm9pZCBzZXRBbmltYXRlZFRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRBbmltYXRlZE9wYWNpdHkoZmxv
YXQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRBbmltYXRlZFRyYW5zZm9ybShjb25z
dCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRB
bmltYXRlZE9wYWNpdHkoZmxvYXQpIG92ZXJyaWRlOwogI2lmIEVOQUJMRShDU1NfRklMVEVSUykK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0QW5pbWF0ZWRGaWx0ZXJzKGNvbnN0IEZpbHRlck9wZXJhdGlv
bnMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QW5pbWF0ZWRGaWx0ZXJzKGNvbnN0
IEZpbHRlck9wZXJhdGlvbnMmKSBvdmVycmlkZTsKICNlbmRpZgogCiAgICAgYm9vbCBpc1Zpc2li
bGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUu
aAppbmRleCA5Yjg1Njg0Li4zODE2MWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJU
aWxlZEJhY2tpbmdTdG9yZS5oCkBAIC0zNywxMCArMzcsMTAgQEAgcHVibGljOgogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZT4gY3JlYXRlKCkgeyBy
ZXR1cm4gYWRvcHRSZWYobmV3IFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZSk7IH0KICAg
ICB2aXJ0dWFsIH5UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUoKSB7IH0KIAotICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiB0ZXh0dXJlKCkgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXIqLCBj
b25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0KSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd0JvcmRlcihUZXh0dXJlTWFwcGVyKiwgY29uc3Qg
Q29sb3ImLCBmbG9hdCBib3JkZXJXaWR0aCwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgVHJhbnNm
b3JtYXRpb25NYXRyaXgmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd1JlcGFpbnRD
b3VudGVyKFRleHR1cmVNYXBwZXIqLCBpbnQgcmVwYWludENvdW50LCBjb25zdCBDb2xvciYsIGNv
bnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IHRleHR1cmUoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBl
ciosIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkcmF3Qm9yZGVyKFRleHR1cmVNYXBwZXIqLCBj
b25zdCBDb2xvciYsIGZsb2F0IGJvcmRlcldpZHRoLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkcmF3UmVw
YWludENvdW50ZXIoVGV4dHVyZU1hcHBlciosIGludCByZXBhaW50Q291bnQsIGNvbnN0IENvbG9y
JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKSBvdmVycmlk
ZTsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzKFRleHR1cmVNYXBwZXIqLCBJbWFnZSosIGNvbnN0
IEZsb2F0U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBCaXRtYXBUZXh0dXJlOjpVcGRhdGVDb250ZW50
c0ZsYWcpOwogICAgIHZvaWQgdXBkYXRlQ29udGVudHMoVGV4dHVyZU1hcHBlciosIEdyYXBoaWNz
TGF5ZXIqLCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbnRSZWN0JiwgQml0bWFwVGV4dHVyZTo6
VXBkYXRlQ29udGVudHNGbGFnKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21w
b3NpdGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggYzZjZWMzNS4uNmZkMTlmZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBv
c2l0aW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oCkBAIC05NCwzMiAr
OTQsMzIgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQK
LSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFwaGljc0xh
eWVyKiwgZG91YmxlIHRpbWUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVz
aFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0Jiwg
R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFwaGljc0xh
eWVyKiwgZG91YmxlIHRpbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVz
aFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0Jiwg
R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsK
IAogICAgIC8vIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZv
aWQgY3JlYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmdJRCwgUGFzc1JlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+KSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgY2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyhDb29yZGluYXRlZEltYWdlQmFj
a2luZ0lEKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSW1hZ2VCYWNraW5nKENv
b3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjcmVh
dGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lE
LCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFjZT4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBjbGVhckltYWdlQmFja2luZ0NvbnRlbnRzKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmdJRCkgb3ZlcnJpZGU7CiAKICAgICAvLyBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXJDbGllbnQKLSAgICB2aXJ0dWFsIGJvb2wgaXNGbHVzaGluZ0xheWVyQ2hhbmdlcygpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIG1faXNGbHVzaGluZ0xheWVyQ2hhbmdlczsgfQotICAgIHZp
cnR1YWwgRmxvYXRSZWN0IHZpc2libGVDb250ZW50c1JlY3QoKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc+IGNyZWF0ZUltYWdl
QmFja2luZ0lmTmVlZGVkKEltYWdlKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRldGFj
aExheWVyKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
Ym9vbCBwYWludFRvU3VyZmFjZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6Q29v
cmRpbmF0ZWRTdXJmYWNlOjpGbGFncywgdWludDMyX3QmIC8qIGF0bGFzSUQgKi8sIFdlYkNvcmU6
OkludFBvaW50JiwgV2ViQ29yZTo6Q29vcmRpbmF0ZWRTdXJmYWNlOjpDbGllbnQqKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgc3luY0xheWVyU3RhdGUoQ29vcmRpbmF0ZWRMYXllcklELCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9v
bCBpc0ZsdXNoaW5nTGF5ZXJDaGFuZ2VzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc0Zs
dXNoaW5nTGF5ZXJDaGFuZ2VzOyB9CisgICAgdmlydHVhbCBGbG9hdFJlY3QgdmlzaWJsZUNvbnRl
bnRzUmVjdCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxDb29yZGlu
YXRlZEltYWdlQmFja2luZz4gY3JlYXRlSW1hZ2VCYWNraW5nSWZOZWVkZWQoSW1hZ2UqKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoTGF5ZXIoQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHBhaW50VG9TdXJmYWNlKGNvbnN0IFdl
YkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpDb29yZGluYXRlZFN1cmZhY2U6OkZsYWdzLCB1aW50
MzJfdCYgLyogYXRsYXNJRCAqLywgV2ViQ29yZTo6SW50UG9pbnQmLCBXZWJDb3JlOjpDb29yZGlu
YXRlZFN1cmZhY2U6OkNsaWVudCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzeW5jTGF5
ZXJTdGF0ZShDb29yZGluYXRlZExheWVySUQsIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRl
Jikgb3ZlcnJpZGU7CiAKICAgICAvLyBVcGRhdGVBdGxhczo6Q2xpZW50Ci0gICAgdmlydHVhbCB2
b2lkIGNyZWF0ZVVwZGF0ZUF0bGFzKHVpbnQzMl90IGF0bGFzSUQsIFBhc3NSZWZQdHI8Q29vcmRp
bmF0ZWRTdXJmYWNlPikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZVVwZGF0ZUF0
bGFzKHVpbnQzMl90IGF0bGFzSUQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVV
cGRhdGVBdGxhcyh1aW50MzJfdCBhdGxhc0lELCBQYXNzUmVmUHRyPENvb3JkaW5hdGVkU3VyZmFj
ZT4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVVcGRhdGVBdGxhcyh1aW50MzJf
dCBhdGxhc0lEKSBvdmVycmlkZTsKIAogICAgIC8vIEdyYXBoaWNzTGF5ZXJGYWN0b3J5Ci0gICAg
dmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gY3JlYXRlR3JhcGhpY3NMYXll
cihHcmFwaGljc0xheWVyQ2xpZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1
ZV9wdHI8R3JhcGhpY3NMYXllcj4gY3JlYXRlR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xp
ZW50Kikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGluaXRpYWxpemVSb290Q29tcG9zaXRpbmdMYXll
cklmTmVlZGVkKCk7CiAgICAgdm9pZCBmbHVzaFBlbmRpbmdJbWFnZUJhY2tpbmdDaGFuZ2VzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5o
CmluZGV4IDQyMDE0NTQuLmI5NzIxMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oCkBAIC02Myw4ICs2Myw4IEBAIHB1YmxpYzoKICAg
ICBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IHRleHR1cmUoKSBjb25zdDsKICAgICB2b2lkIHNl
dFNpemUoY29uc3QgRmxvYXRTaXplJik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50VG9UZXh0dXJl
TWFwcGVyKFRleHR1cmVNYXBwZXIqLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYsIGZsb2F0KTsKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd0JvcmRlcihUZXh0dXJl
TWFwcGVyKiwgY29uc3QgQ29sb3ImLCBmbG9hdCBib3JkZXJXaWR0aCwgY29uc3QgRmxvYXRSZWN0
JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgZHJhd1JlcGFpbnRDb3VudGVyKFRleHR1cmVNYXBwZXIqLCBpbnQgcmVwYWludENvdW50LCBj
b25zdCBDb2xvciYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRyYXdCb3JkZXIoVGV4dHVyZU1hcHBlcios
IGNvbnN0IENvbG9yJiwgZmxvYXQgYm9yZGVyV2lkdGgsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRyYXdS
ZXBhaW50Q291bnRlcihUZXh0dXJlTWFwcGVyKiwgaW50IHJlcGFpbnRDb3VudCwgY29uc3QgQ29s
b3ImLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIG92ZXJy
aWRlOwogCiBwcml2YXRlOgogICAgIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEN1c3RvbUZpbHRlclByb2dyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEN1c3RvbUZpbHRlclByb2dy
YW0uaAppbmRleCBkYTNkMjYwLi4yMzRhYTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRDdXN0b21GaWx0
ZXJQcm9ncmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkQ3VzdG9tRmlsdGVyUHJvZ3JhbS5oCkBAIC0zOSwxNCAr
MzksMTQgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENvb3JkaW5hdGVk
Q3VzdG9tRmlsdGVyUHJvZ3JhbSh2ZXJ0ZXhTaGFkZXJTdHJpbmcsIGZyYWdtZW50U2hhZGVyU3Ry
aW5nLCBwcm9ncmFtVHlwZSwgbWl4U2V0dGluZ3MsIG1lc2hUeXBlKSk7CiAgICAgfQogCi0gICAg
dmlydHVhbCBib29sIGlzTG9hZGVkKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBpc0xvYWRlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7
IH0KIAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgU3RyaW5nIHZlcnRleFNoYWRlclN0cmluZygp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fdmVydGV4U2hhZGVyU3RyaW5nOyB9Ci0gICAgdmly
dHVhbCBTdHJpbmcgZnJhZ21lbnRTaGFkZXJTdHJpbmcoKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biBtX2ZyYWdtZW50U2hhZGVyU3RyaW5nOyB9CisgICAgdmlydHVhbCBTdHJpbmcgdmVydGV4U2hh
ZGVyU3RyaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV92ZXJ0ZXhTaGFkZXJTdHJpbmc7
IH0KKyAgICB2aXJ0dWFsIFN0cmluZyBmcmFnbWVudFNoYWRlclN0cmluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fZnJhZ21lbnRTaGFkZXJTdHJpbmc7IH0KIAotICAgIHZpcnR1YWwgdm9p
ZCB3aWxsSGF2ZUNsaWVudHMoKSBPVkVSUklERSB7IG5vdGlmeUNsaWVudHMoKTsgfQotICAgIHZp
cnR1YWwgdm9pZCBkaWRSZW1vdmVMYXN0Q2xpZW50KCkgT1ZFUlJJREUgeyB9CisgICAgdmlydHVh
bCB2b2lkIHdpbGxIYXZlQ2xpZW50cygpIG92ZXJyaWRlIHsgbm90aWZ5Q2xpZW50cygpOyB9Cisg
ICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZUxhc3RDbGllbnQoKSBvdmVycmlkZSB7IH0KIAogcHJp
dmF0ZToKICAgICBDb29yZGluYXRlZEN1c3RvbUZpbHRlclByb2dyYW0oY29uc3QgU3RyaW5nJiB2
ZXJ0ZXhTaGFkZXJTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhZ21lbnRTaGFkZXJTdHJpbmcsIEN1
c3RvbUZpbHRlclByb2dyYW1UeXBlIHByb2dyYW1UeXBlLCBjb25zdCBDdXN0b21GaWx0ZXJQcm9n
cmFtTWl4U2V0dGluZ3MmIG1peFNldHRpbmdzLCBDdXN0b21GaWx0ZXJNZXNoVHlwZSBtZXNoVHlw
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuaAppbmRleCA3YmJhNTNiLi41NDMwOTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCkBAIC02NSw1MSArNjUsNTEgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgfkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcigpOwogCiAgICAgLy8g
UmVpbXBsZW1lbnRhdGlvbnMgZnJvbSBHcmFwaGljc0xheWVyLmguCi0gICAgdmlydHVhbCBib29s
IHNldENoaWxkcmVuKGNvbnN0IFZlY3RvcjxHcmFwaGljc0xheWVyKj4mKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoR3JhcGhpY3NMYXllciopIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBhZGRDaGlsZEF0SW5kZXgoR3JhcGhpY3NMYXllciosIGludCkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIGFkZENoaWxkQWJvdmUoR3JhcGhpY3NMYXllciosIEdyYXBoaWNz
TGF5ZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGRCZWxvdyhHcmFwaGlj
c0xheWVyKiwgR3JhcGhpY3NMYXllciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCByZXBs
YWNlQ2hpbGQoR3JhcGhpY3NMYXllciosIEdyYXBoaWNzTGF5ZXIqKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlRnJvbVBhcmVudCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBzZXRQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHNldEFuY2hvclBvaW50KGNvbnN0IEZsb2F0UG9pbnQzRCYpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBzZXRTaXplKGNvbnN0IEZsb2F0U2l6ZSYpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBzZXRUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q2hpbGRyZW5UcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXgmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlc2VydmVzM0Qo
Ym9vbCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldE1hc2tzVG9Cb3VuZHMoYm9vbCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldERyYXdzQ29udGVudChib29sKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNWaXNpYmxlKGJvb2wpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c09wYXF1ZShib29sKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0QmFja2ZhY2VWaXNpYmlsaXR5KGJvb2wpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBzZXRPcGFjaXR5KGZsb2F0KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0Q29udGVudHNSZWN0KGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0Q29udGVudHNUaWxlUGhhc2UoY29uc3QgSW50UG9pbnQmKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUaWxlU2l6ZShjb25zdCBJbnRTaXplJikgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9JbWFnZShJbWFnZSopIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvU29saWRDb2xvcihjb25zdCBDb2xvciYpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93RGVidWdCb3JkZXIoYm9vbCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNob3dSZXBhaW50Q291bnRlcihib29sKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRGlyZWN0bHlDb21wb3NpdGVJbWFnZShJbWFnZSop
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvQ2FudmFzKFBs
YXRmb3JtTGF5ZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TWFza0xheWVyKEdy
YXBoaWNzTGF5ZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UmVwbGljYXRlZEJ5
TGF5ZXIoR3JhcGhpY3NMYXllciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXROZWVk
c0Rpc3BsYXkoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5SW5S
ZWN0KGNvbnN0IEZsb2F0UmVjdCYsIFNob3VsZENsaXBUb0xheWVyID0gQ2xpcFRvTGF5ZXIpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c05lZWRzRGlzcGxheSgpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlKGNvbnN0IEZs
b2F0UmVjdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBmbHVzaENvbXBvc2l0aW5nU3Rh
dGVGb3JUaGlzTGF5ZXJPbmx5KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNldENoaWxk
cmVuKGNvbnN0IFZlY3RvcjxHcmFwaGljc0xheWVyKj4mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgYWRkQ2hpbGQoR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBhZGRDaGlsZEF0SW5kZXgoR3JhcGhpY3NMYXllciosIGludCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGFkZENoaWxkQWJvdmUoR3JhcGhpY3NMYXllciosIEdyYXBoaWNzTGF5ZXIqKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGRCZWxvdyhHcmFwaGljc0xheWVyKiwg
R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCByZXBsYWNlQ2hpbGQo
R3JhcGhpY3NMYXllciosIEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVtb3ZlRnJvbVBhcmVudCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRQb3Np
dGlvbihjb25zdCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEFu
Y2hvclBvaW50KGNvbnN0IEZsb2F0UG9pbnQzRCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRTaXplKGNvbnN0IEZsb2F0U2l6ZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0Q2hpbGRyZW5UcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlc2VydmVzM0QoYm9vbCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldE1hc2tzVG9Cb3VuZHMoYm9vbCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHNldERyYXdzQ29udGVudChib29sKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNWaXNpYmxlKGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBzZXRDb250ZW50c09wYXF1ZShib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0QmFja2ZhY2VWaXNpYmlsaXR5KGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRPcGFjaXR5KGZsb2F0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVu
dHNSZWN0KGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29u
dGVudHNUaWxlUGhhc2UoY29uc3QgSW50UG9pbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0Q29udGVudHNUaWxlU2l6ZShjb25zdCBJbnRTaXplJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHNldENvbnRlbnRzVG9JbWFnZShJbWFnZSopIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBzZXRDb250ZW50c1RvU29saWRDb2xvcihjb25zdCBDb2xvciYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93RGVidWdCb3JkZXIoYm9vbCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHNldFNob3dSZXBhaW50Q291bnRlcihib29sKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkRGlyZWN0bHlDb21wb3NpdGVJbWFnZShJbWFnZSopIGNvbnN0IG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvQ2FudmFzKFBsYXRmb3JtTGF5
ZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TWFza0xheWVyKEdyYXBoaWNzTGF5
ZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVwbGljYXRlZEJ5TGF5ZXIoR3Jh
cGhpY3NMYXllciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXko
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0
IEZsb2F0UmVjdCYsIFNob3VsZENsaXBUb0xheWVyID0gQ2xpcFRvTGF5ZXIpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c05lZWRzRGlzcGxheSgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlKGNvbnN0IEZsb2F0UmVjdCYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlz
TGF5ZXJPbmx5KCkgb3ZlcnJpZGU7CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQotICAgIHZpcnR1
YWwgYm9vbCBzZXRGaWx0ZXJzKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIGJvb2wgc2V0RmlsdGVycyhjb25zdCBGaWx0ZXJPcGVyYXRpb25zJikgb3ZlcnJp
ZGU7CiAjZW5kaWYKLSAgICB2aXJ0dWFsIGJvb2wgYWRkQW5pbWF0aW9uKGNvbnN0IEtleWZyYW1l
VmFsdWVMaXN0JiwgY29uc3QgSW50U2l6ZSYsIGNvbnN0IEFuaW1hdGlvbiosIGNvbnN0IFN0cmlu
ZyYsIGRvdWJsZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHBhdXNlQW5pbWF0aW9uKGNv
bnN0IFN0cmluZyYsIGRvdWJsZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUFu
aW1hdGlvbihjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3VzcGVu
ZEFuaW1hdGlvbnMoZG91YmxlIHRpbWUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXN1
bWVBbmltYXRpb25zKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGhhc0NvbnRlbnRzTGF5
ZXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIgfHwgbV9j
b21wb3NpdGVkSW1hZ2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgYWRkQW5pbWF0aW9uKGNvbnN0IEtl
eWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgSW50U2l6ZSYsIGNvbnN0IEFuaW1hdGlvbiosIGNvbnN0
IFN0cmluZyYsIGRvdWJsZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBhdXNlQW5pbWF0
aW9uKGNvbnN0IFN0cmluZyYsIGRvdWJsZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJl
bW92ZUFuaW1hdGlvbihjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
c3VzcGVuZEFuaW1hdGlvbnMoZG91YmxlIHRpbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCByZXN1bWVBbmltYXRpb25zKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGhhc0NvbnRl
bnRzTGF5ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIg
fHwgbV9jb21wb3NpdGVkSW1hZ2U7IH0KIAogICAgIHZvaWQgc3luY1BlbmRpbmdTdGF0ZUNoYW5n
ZXNJbmNsdWRpbmdTdWJMYXllcnMoKTsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRCdWZmZXJzSW5j
bHVkaW5nU3ViTGF5ZXJzKCk7CkBAIC0xMzAsMTkgKzEzMCwxOSBAQCBwdWJsaWM6CiAgICAgSW50
UmVjdCBjb3ZlclJlY3QoKSBjb25zdCB7IHJldHVybiBtX21haW5CYWNraW5nU3RvcmUgPyBtX21h
aW5CYWNraW5nU3RvcmUtPm1hcFRvQ29udGVudHMobV9tYWluQmFja2luZ1N0b3JlLT5jb3ZlclJl
Y3QoKSkgOiBJbnRSZWN0KCk7IH0KIAogICAgIC8vIFRpbGVkQmFja2luZ1N0b3JlQ2xpZW50Ci0g
ICAgdmlydHVhbCB2b2lkIHRpbGVkQmFja2luZ1N0b3JlUGFpbnRCZWdpbigpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCB0aWxlZEJhY2tpbmdTdG9yZVBhaW50KEdyYXBoaWNzQ29udGV4dCos
IGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdGlsZWRCYWNraW5n
U3RvcmVQYWludEVuZChjb25zdCBWZWN0b3I8SW50UmVjdD4mIHBhaW50ZWRBcmVhKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgdGlsZWRCYWNraW5nU3RvcmVIYXNQZW5kaW5nVGlsZUNyZWF0
aW9uKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJbnRSZWN0IHRpbGVkQmFja2luZ1N0b3JlQ29u
dGVudHNSZWN0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJbnRSZWN0IHRpbGVkQmFja2luZ1N0
b3JlVmlzaWJsZVJlY3QoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIENvbG9yIHRpbGVkQmFja2lu
Z1N0b3JlQmFja2dyb3VuZENvbG9yKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHRpbGVkQmFja2luZ1N0b3JlUGFpbnRCZWdpbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCB0aWxlZEJhY2tpbmdTdG9yZVBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3Qm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdGlsZWRCYWNraW5nU3RvcmVQYWludEVuZChj
b25zdCBWZWN0b3I8SW50UmVjdD4mIHBhaW50ZWRBcmVhKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgdGlsZWRCYWNraW5nU3RvcmVIYXNQZW5kaW5nVGlsZUNyZWF0aW9uKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBJbnRSZWN0IHRpbGVkQmFja2luZ1N0b3JlQ29udGVudHNSZWN0KCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBJbnRSZWN0IHRpbGVkQmFja2luZ1N0b3JlVmlzaWJsZVJlY3Qo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIENvbG9yIHRpbGVkQmFja2luZ1N0b3JlQmFja2dyb3Vu
ZENvbG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBDb29yZGluYXRlZFRpbGVDbGllbnQK
LSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVGlsZSh1aW50MzJfdCB0aWxlSUQsIGNvbnN0IFN1cmZh
Y2VVcGRhdGVJbmZvJiwgY29uc3QgSW50UmVjdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVUaWxlKHVpbnQzMl90IHRpbGVJRCwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mLCBj
b25zdCBJbnRSZWN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZVRpbGUodWlu
dDMyX3QgdGlsZUlEKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcGFpbnRUb1N1cmZhY2Uo
Y29uc3QgSW50U2l6ZSYsIHVpbnQzMl90JiAvKiBhdGxhc0lEICovLCBJbnRQb2ludCYsIENvb3Jk
aW5hdGVkU3VyZmFjZTo6Q2xpZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0
ZVRpbGUodWludDMyX3QgdGlsZUlELCBjb25zdCBTdXJmYWNlVXBkYXRlSW5mbyYsIGNvbnN0IElu
dFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGlsZSh1aW50MzJfdCB0
aWxlSUQsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJiwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVUaWxlKHVpbnQzMl90IHRpbGVJRCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIHBhaW50VG9TdXJmYWNlKGNvbnN0IEludFNpemUmLCB1aW50MzJf
dCYgLyogYXRsYXNJRCAqLywgSW50UG9pbnQmLCBDb29yZGluYXRlZFN1cmZhY2U6OkNsaWVudCop
IG92ZXJyaWRlOwogCiAgICAgdm9pZCBzZXRDb29yZGluYXRvcihDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXJDbGllbnQqKTsKIApAQCAtMTY4LDcgKzE2OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBj
cmVhdGVDYW52YXNJZk5lZWRlZCgpOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RGVi
dWdCb3JkZXIoY29uc3QgQ29sb3ImLCBmbG9hdCB3aWR0aCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHNldERlYnVnQm9yZGVyKGNvbnN0IENvbG9yJiwgZmxvYXQgd2lkdGgpIG92ZXJyaWRl
OwogCiAgICAgYm9vbCBmaXhlZFRvVmlld3BvcnQoKSBjb25zdCB7IHJldHVybiBtX2ZpeGVkVG9W
aWV3cG9ydDsgfQogCkBAIC0xOTgsNyArMTk4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG5vdGlm
eUZsdXNoUmVxdWlyZWQoKTsKIAogICAgIC8vIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpIb3N0
Ci0gICAgdmlydHVhbCBib29sIGltYWdlQmFja2luZ1Zpc2libGUoKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGJvb2wgaW1hZ2VCYWNraW5nVmlzaWJsZSgpIG92ZXJyaWRlOwogICAgIGJvb2wgc2hv
dWxkSGF2ZUJhY2tpbmdTdG9yZSgpIGNvbnN0OwogICAgIGJvb2wgc2VsZk9yQW5jZXN0b3JIYXNB
Y3RpdmVUcmFuc2Zvcm1BbmltYXRpb24oKSBjb25zdDsKICAgICBib29sIHNlbGZPckFuY2VzdG9y
SGF2ZU5vbkFmZmluZVRyYW5zZm9ybXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEltYWdlQmFja2lu
Zy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwCmluZGV4IDVjYTQzMGIuLjM5NjMzYmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZC9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5n
LmNwcApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1
YWwgdm9pZCBwYWludFRvU3VyZmFjZUNvbnRleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0KSBP
VkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBwYWludFRvU3VyZmFjZUNvbnRleHQoR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0KSBvdmVycmlkZQogICAgIHsKICAgICAgICAgY29udGV4dC0+ZHJhd0lt
YWdlKG1faW1hZ2UsIENvbG9yU3BhY2VEZXZpY2VSR0IsIG1fcmVjdCwgbV9yZWN0KTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRUaWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRUaWxlLmgKaW5kZXggNjMyMDI5OS4u
ZDg0NWNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkVGlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZFRpbGUuaApAQCAt
NTYsNyArNTYsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgSW50UmVjdCYgcmVjdCgpIGNvbnN0IHsg
cmV0dXJuIG1fcmVjdDsgfQogICAgIHZvaWQgcmVzaXplKGNvbnN0IEludFNpemUmKTsKIAotICAg
IHZpcnR1YWwgdm9pZCBwYWludFRvU3VyZmFjZUNvbnRleHQoR3JhcGhpY3NDb250ZXh0KikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhaW50VG9TdXJmYWNlQ29udGV4dChHcmFwaGljc0Nv
bnRleHQqKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBDb29yZGluYXRlZFRpbGUoQ29vcmRp
bmF0ZWRUaWxlQ2xpZW50KiwgVGlsZWRCYWNraW5nU3RvcmUqLCBjb25zdCBDb29yZGluYXRlJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvVXBkYXRlQXRsYXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL1VwZGF0ZUF0bGFzLmNwcAppbmRleCA3ZDg5MDMyLi41ZmY2
MTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
Y29vcmRpbmF0ZWQvVXBkYXRlQXRsYXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9VcGRhdGVBdGxhcy5jcHAKQEAgLTM5LDcgKzM5
LDcgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUb1N1
cmZhY2VDb250ZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCkgT1ZFUlJJREUKKyAgICB2aXJ0
dWFsIHZvaWQgcGFpbnRUb1N1cmZhY2VDb250ZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCkg
b3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChtX3N1cHBvcnRzQWxwaGEpIHsKICAgICAgICAg
ICAgIGNvbnRleHQtPnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVDb3B5KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmgKaW5kZXggNTBlNTdhZS4u
NTVlMDA2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRo
ZW1lR3RrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3Rr
LmgKQEAgLTgyLDEyICs4MiwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHN5c3RlbUZv
bnQoQ1NTVmFsdWVJRCwgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7CiAgICAgdmlydHVhbCBDb2xv
ciBzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEKSBjb25zdDsKIAotICAgIHZpcnR1YWwgYm9vbCBwb3Bz
TWVudUJ5U3BhY2VPclJldHVybigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgcG9wc01lbnVCeVNwYWNlT3JSZXR1cm4oKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CiAKICNpZiBFTkFCTEUoVklERU8pCiAgICAgdmlydHVhbCBTdHJpbmcg
ZXh0cmFNZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpOwogICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1h
dE1lZGlhQ29udHJvbHNDdXJyZW50VGltZShmbG9hdCBjdXJyZW50VGltZSwgZmxvYXQgZHVyYXRp
b24pIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Nsb3NlZENhcHRpb25pbmcoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRz
Q2xvc2VkQ2FwdGlvbmluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogI2lm
IEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICB2aXJ0dWFsIFN0cmluZyBleHRyYUZ1bGxTY3Jl
ZW5TdHlsZVNoZWV0KCk7CkBAIC0xODksNyArMTg5LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1
YWwgYm9vbCBwYWludElubmVyU3BpbkJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludElu
Zm8mLCBjb25zdCBJbnRSZWN0Jik7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBTdHJpbmcgZmls
ZUxpc3ROYW1lRm9yV2lkdGgoY29uc3QgRmlsZUxpc3QqLCBjb25zdCBGb250JiwgaW50IHdpZHRo
LCBib29sIG11bHRpcGxlRmlsZXNBbGxvd2VkKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IFN0cmluZyBmaWxlTGlzdE5hbWVGb3JXaWR0aChjb25zdCBGaWxlTGlzdCosIGNvbnN0IEZvbnQm
LCBpbnQgd2lkdGgsIGJvb2wgbXVsdGlwbGVGaWxlc0FsbG93ZWQpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgdm9pZCBwbGF0Zm9ybUluaXQoKTsKICAgICBzdGF0aWMgdm9pZCBzZXRUZXh0SW5wdXRC
b3JkZXJzKFJlbmRlclN0eWxlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvRGV2aWNlTW90aW9uQ2xpZW50SU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvRGV2aWNlTW90aW9uQ2xpZW50SU9TLmgKaW5kZXggNTg1OTkxZi4uODJlZTRhOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RldmljZU1vdGlvbkNsaWVudElPUy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VNb3Rpb25DbGllbnRJT1Mu
aApAQCAtNDcsMTIgKzQ3LDEyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBEZXZpY2VNb3Rpb25DbGllbnRJT1MoKSk7CiAgICAgfQogICAgIERldmljZU1vdGlvbkNsaWVu
dElPUygpOwotICAgIHZpcnR1YWwgfkRldmljZU1vdGlvbkNsaWVudElPUygpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU1vdGlvbkNvbnRyb2xsZXIqKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIERldmlj
ZU1vdGlvbkRhdGEqIGxhc3RNb3Rpb24oKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGV2aWNlTW90aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgfkRldmljZU1vdGlvbkNsaWVudElPUygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb250cm9sbGVyKERldmljZU1vdGlvbkNvbnRyb2xsZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdG9w
VXBkYXRpbmcoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIERldmljZU1vdGlvbkRhdGEqIGxhc3RN
b3Rpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlTW90aW9uQ29u
dHJvbGxlckRlc3Ryb3llZCgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBtb3Rpb25DaGFuZ2VkKGRv
dWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91
YmxlLCBkb3VibGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oCmluZGV4IDViZTdmNTEuLjY1MzljNGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNs
aWVudElPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUy5oCkBAIC00NywxMiArNDcsMTIgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TKCkpOwogICAgIH0KICAg
ICBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUygpOwotICAgIHZpcnR1YWwgfkRldmljZU9yaWVu
dGF0aW9uQ2xpZW50SU9TKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbnRyb2xs
ZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHN0YXJ0VXBkYXRpbmcoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0
aW5nKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBEZXZpY2VPcmllbnRhdGlvbkRhdGEqIGxhc3RP
cmllbnRhdGlvbigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIH5EZXZp
Y2VPcmllbnRhdGlvbkNsaWVudElPUygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRD
b250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHN0
b3BVcGRhdGluZygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgRGV2aWNlT3JpZW50YXRpb25EYXRh
KiBsYXN0T3JpZW50YXRpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lk
IG9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJs
ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3JvbGxBbmlt
YXRvcklPUy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Njcm9sbEFuaW1hdG9ySU9T
LmgKaW5kZXggODBkMTk3Yi4uNjQzYmJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1Njcm9sbEFuaW1hdG9ySU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1Njcm9sbEFuaW1hdG9ySU9TLmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgflNjcm9sbEFuaW1hdG9ySU9TKCk7CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQotICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVUb3VjaEV2ZW50KGNvbnN0IFBsYXRmb3JtVG91Y2hF
dmVudCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVUb3VjaEV2ZW50KGNvbnN0
IFBsYXRmb3JtVG91Y2hFdmVudCYpIG92ZXJyaWRlOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvU2Nyb2xsYmFyVGhlbWVJT1MuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3JvbGxiYXJUaGVtZUlPUy5oCmluZGV4IDg1
ODE2MmEuLjUxOTIxODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9T
Y3JvbGxiYXJUaGVtZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3Jv
bGxiYXJUaGVtZUlPUy5oCkBAIC0zNSwzMSArMzUsMzEgQEAgcHVibGljOgogICAgIFNjcm9sbGJh
clRoZW1lSU9TKCk7CiAgICAgdmlydHVhbCB+U2Nyb2xsYmFyVGhlbWVJT1MoKTsKIAotICAgIHZp
cnR1YWwgYm9vbCBwYWludChTY3JvbGxiYXJUaGVtZUNsaWVudCosIEdyYXBoaWNzQ29udGV4dCos
IGNvbnN0IEludFJlY3QmIGRhbWFnZVJlY3QpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBw
YWludChTY3JvbGxiYXJUaGVtZUNsaWVudCosIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJl
Y3QmIGRhbWFnZVJlY3QpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBpbnQgc2Nyb2xsYmFyVGhp
Y2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXplID0gUmVndWxhclNjcm9sbGJhcikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBpbnQgc2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXpl
ID0gUmVndWxhclNjcm9sbGJhcikgb3ZlcnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCBib29sIHN1
cHBvcnRzQ29udHJvbFRpbnRzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c0NvbnRyb2xUaW50cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgZG91YmxlIGluaXRpYWxBdXRvc2Nyb2xsVGltZXJE
ZWxheSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgZG91YmxlIGF1dG9zY3JvbGxUaW1lckRlbGF5
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBkb3VibGUgaW5pdGlhbEF1dG9zY3JvbGxUaW1lckRl
bGF5KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBkb3VibGUgYXV0b3Njcm9sbFRpbWVyRGVsYXko
KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgU2Nyb2xsYmFyQnV0dG9uc1BsYWNlbWVudCBidXR0
b25zUGxhY2VtZW50KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBTY3JvbGxiYXJCdXR0
b25zUGxhY2VtZW50IGJ1dHRvbnNQbGFjZW1lbnQoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZp
cnR1YWwgdm9pZCByZWdpc3RlclNjcm9sbGJhcihTY3JvbGxiYXJUaGVtZUNsaWVudCopIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyU2Nyb2xsYmFyKFNjcm9sbGJhclRoZW1l
Q2xpZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyU2Nyb2xsYmFyKFNj
cm9sbGJhclRoZW1lQ2xpZW50Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0
ZXJTY3JvbGxiYXIoU2Nyb2xsYmFyVGhlbWVDbGllbnQqKSBvdmVycmlkZTsKIAogcHJvdGVjdGVk
OgotICAgIHZpcnR1YWwgYm9vbCBoYXNCdXR0b25zKFNjcm9sbGJhclRoZW1lQ2xpZW50KikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBib29sIGhhc1RodW1iKFNjcm9sbGJhclRoZW1lQ2xpZW50Kikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGhhc0J1dHRvbnMoU2Nyb2xsYmFyVGhlbWVDbGll
bnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzVGh1bWIoU2Nyb2xsYmFyVGhlbWVD
bGllbnQqKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgSW50UmVjdCBiYWNrQnV0dG9uUmVjdChT
Y3JvbGxiYXJUaGVtZUNsaWVudCosIFNjcm9sbGJhclBhcnQsIGJvb2wgcGFpbnRpbmcgPSBmYWxz
ZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJbnRSZWN0IGZvcndhcmRCdXR0b25SZWN0KFNjcm9s
bGJhclRoZW1lQ2xpZW50KiwgU2Nyb2xsYmFyUGFydCwgYm9vbCBwYWludGluZyA9IGZhbHNlKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIEludFJlY3QgdHJhY2tSZWN0KFNjcm9sbGJhclRoZW1lQ2xp
ZW50KiwgYm9vbCBwYWludGluZyA9IGZhbHNlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEludFJl
Y3QgYmFja0J1dHRvblJlY3QoU2Nyb2xsYmFyVGhlbWVDbGllbnQqLCBTY3JvbGxiYXJQYXJ0LCBi
b29sIHBhaW50aW5nID0gZmFsc2UpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW50UmVjdCBmb3J3
YXJkQnV0dG9uUmVjdChTY3JvbGxiYXJUaGVtZUNsaWVudCosIFNjcm9sbGJhclBhcnQsIGJvb2wg
cGFpbnRpbmcgPSBmYWxzZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBJbnRSZWN0IHRyYWNrUmVj
dChTY3JvbGxiYXJUaGVtZUNsaWVudCosIGJvb2wgcGFpbnRpbmcgPSBmYWxzZSkgb3ZlcnJpZGU7
CiAKLSAgICB2aXJ0dWFsIGludCBtaW5pbXVtVGh1bWJMZW5ndGgoU2Nyb2xsYmFyVGhlbWVDbGll
bnQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGludCBtaW5pbXVtVGh1bWJMZW5ndGgoU2Nyb2xs
YmFyVGhlbWVDbGllbnQqKSBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
Q2VudGVyT25UaHVtYihTY3JvbGxiYXJUaGVtZUNsaWVudCosIGNvbnN0IFBsYXRmb3JtTW91c2VF
dmVudCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDZW50ZXJPblRodW1iKFNj
cm9sbGJhclRoZW1lQ2xpZW50KiwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50Jikgb3ZlcnJpZGU7
CiAgICAgCiBwdWJsaWM6CiAgICAgdm9pZCBwcmVmZXJlbmNlc0NoYW5nZWQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJTYWZlR0NBY3Rpdml0eUNhbGxiYWNr
SU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViU2FmZUdDQWN0aXZpdHlDYWxs
YmFja0lPUy5oCmluZGV4IGQzZDcwMGYuLjlmOTFhNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJTYWZlR0NBY3Rpdml0eUNhbGxiYWNrSU9TLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlNhZmVHQ0FjdGl2aXR5Q2FsbGJhY2tJT1MuaApA
QCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2Vi
U2FmZUdDQWN0aXZpdHlDYWxsYmFjayhoZWFwKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB+V2Vi
U2FmZUdDQWN0aXZpdHlDYWxsYmFjaygpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgfldlYlNh
ZmVHQ0FjdGl2aXR5Q2FsbGJhY2soKSBvdmVycmlkZSB7IH0KIAogcHJpdmF0ZToKICAgICBXZWJT
YWZlR0NBY3Rpdml0eUNhbGxiYWNrKEpTQzo6SGVhcCogaGVhcCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJTYWZlSW5jcmVtZW50YWxTd2VlcGVySU9TLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViU2FmZUluY3JlbWVudGFsU3dlZXBlcklPUy5o
CmluZGV4IDcwODM1ZjEuLjI0ZTVlNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJTYWZlSW5jcmVtZW50YWxTd2VlcGVySU9TLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlNhZmVJbmNyZW1lbnRhbFN3ZWVwZXJJT1MuaApAQCAtMzgsNyAr
MzgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViU2FmZUluY3Jl
bWVudGFsU3dlZXBlcihoZWFwKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB+V2ViU2FmZUluY3Jl
bWVudGFsU3dlZXBlcigpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgfldlYlNhZmVJbmNyZW1l
bnRhbFN3ZWVwZXIoKSBvdmVycmlkZSB7IH0KIAogcHJpdmF0ZToKICAgICBXZWJTYWZlSW5jcmVt
ZW50YWxTd2VlcGVyKEpTQzo6SGVhcCogaGVhcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9QbGF0Zm9ybUNsb2NrQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QbGF0Zm9ybUNsb2NrQ0EuaAppbmRleCA3MTk2N2I2Li4yNzBiMTI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1DbG9ja0NBLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtQ2xvY2tDQS5oCkBAIC00MCwxNSArNDAs
MTUgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflBsYXRmb3JtQ2xvY2tDQSgpOwogCiBwcml2YXRl
OgotICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJyZW50VGltZShkb3VibGUpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgZG91YmxlIGN1cnJlbnRUaW1lKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHNldEN1cnJlbnRUaW1lKGRvdWJsZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBkb3Vi
bGUgY3VycmVudFRpbWUoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRQ
bGF5UmF0ZShkb3VibGUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgZG91YmxlIHBsYXlSYXRlKCkg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFBsYXlSYXRlKGRvdWJsZSkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBkb3VibGUgcGxheVJhdGUoKSBjb25zdCBvdmVycmlkZTsKIAot
ICAgIHZpcnR1YWwgdm9pZCBzdGFydCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzdG9w
KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzUnVubmluZygpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIG1fcnVubmluZzsgfQorICAgIHZpcnR1YWwgdm9pZCBzdGFydCgpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlz
UnVubmluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcnVubmluZzsgfQogCiAgICAgQ0FD
bG9ja1JlZiBtX2Nsb2NrOwogICAgIGJvb2wgbV9ydW5uaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtQ2xvY2tDTS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1BsYXRmb3JtQ2xvY2tDTS5oCmluZGV4IDg3ZTcyYzguLjE5ZDI4Y2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUNsb2NrQ00uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1DbG9ja0NNLmgKQEAgLTQy
LDE4ICs0MiwxOCBAQCBwdWJsaWM6CiAgICAgUGxhdGZvcm1DbG9ja0NNKCk7CiAgICAgUGxhdGZv
cm1DbG9ja0NNKENNQ2xvY2tSZWYpOwogCi0gICAgdmlydHVhbCB2b2lkIHNldEN1cnJlbnRUaW1l
KGRvdWJsZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBkb3VibGUgY3VycmVudFRpbWUoKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q3VycmVudFRpbWUoZG91YmxlKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGRvdWJsZSBjdXJyZW50VGltZSgpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgdm9pZCBzZXRDdXJyZW50TWVkaWFUaW1lKGNvbnN0IE1lZGlhVGltZSYpOwogICAgIE1l
ZGlhVGltZSBjdXJyZW50TWVkaWFUaW1lKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
UGxheVJhdGUoZG91YmxlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGRvdWJsZSBwbGF5UmF0ZSgp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fcmF0ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRQ
bGF5UmF0ZShkb3VibGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgZG91YmxlIHBsYXlSYXRlKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9yYXRlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3Rh
cnQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgYm9vbCBpc1J1bm5pbmcoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3J1bm5pbmc7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
c3RvcCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1J1bm5pbmcoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX3J1bm5pbmc7IH0KIAogICAgIENNVGltZWJhc2VSZWYgdGltZWJhc2Uo
KSBjb25zdCB7IHJldHVybiBtX3RpbWViYXNlLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKaW5kZXggMzNjOWYxNC4uMjZmOGJk
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9y
TWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFj
LmgKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRWaXNpYmxlU2Nyb2xs
ZXJUaHVtYlJlY3QoY29uc3QgSW50UmVjdCYpOwogCi0gICAgdmlydHVhbCBib29sIHNjcm9sbGJh
cnNDYW5CZUFjdGl2ZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBz
Y3JvbGxiYXJzQ2FuQmVBY3RpdmUoKSBjb25zdCBvdmVycmlkZSBGSU5BTDsKIAogcHJpdmF0ZToK
ICAgICBSZXRhaW5QdHI8aWQ+IG1fc2Nyb2xsQW5pbWF0aW9uSGVscGVyOwpAQCAtODksMTAgKzg5
LDEwIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFu
aW1hdGlvbihjb25zdCBGbG9hdFBvaW50Jik7CiAKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcp
Ci0gICAgdmlydHVhbCBib29sIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGhhbmRsZVdoZWVsRXZlbnQoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9p
ZCBoYW5kbGVXaGVlbEV2ZW50UGhhc2UoUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50UGhhc2UoUGxhdGZvcm1XaGVlbEV2
ZW50UGhhc2UpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEFuaW1hdGlvbnMo
KTsKICAgICAKQEAgLTExMiw3ICsxMTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRW5kU2Ny
b2xsR2VzdHVyZSgpIGNvbnN0OwogICAgIHZvaWQgbWF5QmVnaW5TY3JvbGxHZXN0dXJlKCkgY29u
c3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbG9ja092ZXJsYXlTY3JvbGxiYXJTdGF0ZVRvSGlkZGVu
KGJvb2wgc2hvdWxkTG9ja1N0YXRlKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQg
bG9ja092ZXJsYXlTY3JvbGxiYXJTdGF0ZVRvSGlkZGVuKGJvb2wgc2hvdWxkTG9ja1N0YXRlKSBv
dmVycmlkZSBGSU5BTDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRWZXJ0aWNhbFNjcm9sbGJh
cihTY3JvbGxiYXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZVZlcnRpY2FsU2Nyb2xs
YmFyKFNjcm9sbGJhciopOwpAQCAtMTI0LDcgKzEyNCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkU2Nyb2xsYmFyUGFydGljaXBhdGVJbkhpdFRlc3RpbmcoU2Nyb2xsYmFy
Kik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q29udGVudEFyZWFTY3JvbGxlZChjb25zdCBG
bG9hdFNpemUmIGRlbHRhKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q29udGVu
dEFyZWFTY3JvbGxlZChjb25zdCBGbG9hdFNpemUmIGRlbHRhKSBvdmVycmlkZTsKIAogICAgIC8v
IHNlbmRDb250ZW50QXJlYVNjcm9sbGVkU29vbigpIHdpbGwgZG8gdGhlIHNhbWUgd29yayB0aGF0
IHNlbmRDb250ZW50QXJlYVNjcm9sbGVkKCkgZG9lcyBleGNlcHQKICAgICAvLyBpdCBkb2VzIGl0
IGFmdGVyIGEgemVyby1kZWxheSB0aW1lciBmaXJlcy4gVGhpcyB3aWxsIHByZXZlbnQgdXMgZnJv
bSB1cGRhdGluZyBvdmVybGF5IHNjcm9sbGJhciAKQEAgLTEzNiwyMyArMTM2LDIzIEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIGltbWVkaWF0ZVNjcm9sbFRvKGNvbnN0IEZsb2F0UG9pbnQmKTsKIAot
ICAgIHZpcnR1YWwgYm9vbCBpc1J1YmJlckJhbmRJblByb2dyZXNzKCkgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBib29sIGlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoKSBjb25zdCBvdmVycmlk
ZTsKIAogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICAvLy8gU2Nyb2xsRWxhc3RpY2l0
eUNvbnRyb2xsZXJDbGllbnQgbWVtYmVyIGZ1bmN0aW9ucy4KLSAgICB2aXJ0dWFsIEludFNpemUg
c3RyZXRjaEFtb3VudCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBhbGxvd3NIb3Jpem9u
dGFsU3RyZXRjaGluZygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBhbGxvd3NWZXJ0aWNh
bFN0cmV0Y2hpbmcoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcGlubmVkSW5EaXJlY3Rp
b24oY29uc3QgRmxvYXRTaXplJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNhblNjcm9s
bEhvcml6b250YWxseSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBjYW5TY3JvbGxWZXJ0
aWNhbGx5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRp
cmVjdGlvbihTY3JvbGxEaXJlY3Rpb24pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6
SW50UG9pbnQgYWJzb2x1dGVTY3JvbGxQb3NpdGlvbigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBpbW1lZGlhdGVTY3JvbGxCeVdpdGhvdXRDb250ZW50RWRnZUNvbnN0cmFpbnRzKGNvbnN0
IEZsb2F0U2l6ZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBpbW1lZGlhdGVTY3JvbGxC
eShjb25zdCBGbG9hdFNpemUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRTbmFw
UnViYmVyYmFuZFRpbWVyKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BTbmFwUnVi
YmVyYmFuZFRpbWVyKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGFkanVzdFNjcm9sbFBv
c2l0aW9uVG9Cb3VuZHNJZk5lY2Vzc2FyeSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgSW50U2l6
ZSBzdHJldGNoQW1vdW50KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGFsbG93c0hvcml6
b250YWxTdHJldGNoaW5nKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGFsbG93c1ZlcnRp
Y2FsU3RyZXRjaGluZygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBwaW5uZWRJbkRpcmVj
dGlvbihjb25zdCBGbG9hdFNpemUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuU2Ny
b2xsSG9yaXpvbnRhbGx5KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGNhblNjcm9sbFZl
cnRpY2FsbHkoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZElu
RGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJDb3Jl
OjpJbnRQb2ludCBhYnNvbHV0ZVNjcm9sbFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGltbWVkaWF0ZVNjcm9sbEJ5V2l0aG91dENvbnRlbnRFZGdlQ29uc3RyYWludHMoY29u
c3QgRmxvYXRTaXplJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGltbWVkaWF0ZVNjcm9s
bEJ5KGNvbnN0IEZsb2F0U2l6ZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdGFydFNu
YXBSdWJiZXJiYW5kVGltZXIoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFNuYXBS
dWJiZXJiYW5kVGltZXIoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2Nyb2xs
UG9zaXRpb25Ub0JvdW5kc0lmTmVjZXNzYXJ5KCkgb3ZlcnJpZGU7CiAKICAgICBib29sIHBpbm5l
ZEluRGlyZWN0aW9uKGZsb2F0IGRlbHRhWCwgZmxvYXQgZGVsdGFZKTsKICAgICB2b2lkIHNuYXBS
dWJiZXJCYW5kVGltZXJGaXJlZChUaW1lcjxTY3JvbGxBbmltYXRvck1hYz4mKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFjLmgKaW5kZXggNTNkNmNm
Zi4uZGNlYzQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bGJhclRoZW1lTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJh
clRoZW1lTWFjLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c0NvbnRyb2xUaW50cygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2
aXJ0dWFsIGJvb2wgdXNlc092ZXJsYXlTY3JvbGxiYXJzKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2
b2lkIHVzZXNPdmVybGF5U2Nyb2xsYmFyc0NoYW5nZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgdXNlc092ZXJsYXlTY3JvbGxiYXJzQ2hhbmdlZCgpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVTY3JvbGxiYXJPdmVybGF5U3R5bGUoU2Nyb2xsYmFyVGhlbWVDbGllbnQq
KTsKIAogICAgIHZpcnR1YWwgZG91YmxlIGluaXRpYWxBdXRvc2Nyb2xsVGltZXJEZWxheSgpOwpA
QCAtODksOCArODksOCBAQCBwcm90ZWN0ZWQ6CiAgICAgaW50IHNjcm9sbGJhclBhcnRUb0hJUHJl
c3NlZFN0YXRlKFNjcm9sbGJhclBhcnQpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKSAmJiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCi0gICAgdmlydHVhbCB2b2lkIHNldFVwT3Zl
cmhhbmdBcmVhc0xheWVyQ29udGVudHMoR3JhcGhpY3NMYXllciosIGNvbnN0IENvbG9yJikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFVwQ29udGVudFNoYWRvd0xheWVyKEdyYXBoaWNz
TGF5ZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VXBPdmVyaGFuZ0FyZWFzTGF5
ZXJDb250ZW50cyhHcmFwaGljc0xheWVyKiwgY29uc3QgQ29sb3ImKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0VXBDb250ZW50U2hhZG93TGF5ZXIoR3JhcGhpY3NMYXllciopIG92ZXJy
aWRlOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAppbmRleCBhOGM1YjBi
Li45ZDE3NWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKQEAgLTk5LDEwICs5OSwxMCBA
QCBwcml2YXRlOgogICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlQ2xpZW50KiBjbGllbnQoKSBj
b25zdCB7IHJldHVybiBtX2NsaWVudDsgfQogCiAgICAgLy8gTWVkaWFTdHJlYW1Tb3VyY2VPYnNl
cnZlcgotICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VSZWFkeVN0YXRlQ2hhbmdlZCgpIE9WRVJSSURF
IEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBPVkVSUklERSBG
SU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgc291cmNlRW5hYmxlZENoYW5nZWQoKSBPVkVSUklERSBG
SU5BTDsKLSAgICB2aXJ0dWFsIGJvb2wgb2JzZXJ2ZXJJc0VuYWJsZWQoKSBPVkVSUklERSBGSU5B
TDsKKyAgICB2aXJ0dWFsIHZvaWQgc291cmNlUmVhZHlTdGF0ZUNoYW5nZWQoKSBvdmVycmlkZSBG
SU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkgb3ZlcnJpZGUgRklO
QUw7CisgICAgdmlydHVhbCB2b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkgb3ZlcnJpZGUgRklO
QUw7CisgICAgdmlydHVhbCBib29sIG9ic2VydmVySXNFbmFibGVkKCkgb3ZlcnJpZGUgRklOQUw7
CiAgICAgCiAgICAgUmVmUHRyPE1lZGlhU3RyZWFtU291cmNlPiBtX3NvdXJjZTsKICAgICBNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZUNsaWVudCogbV9jbGllbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJH
U3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1l
ci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5oCmluZGV4IDJlOTM0MzYuLmE3MGUwMDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9N
ZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5oCkBAIC01
Miw3ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCB2YWxpZGF0ZVJlcXVlc3RD
b25zdHJhaW50cyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtQ3JlYXRpb25DbGllbnQ+LCBQYXNzUmVm
UHRyPE1lZGlhQ29uc3RyYWludHM+IGF1ZGlvQ29uc3RyYWludHMsIFBhc3NSZWZQdHI8TWVkaWFD
b25zdHJhaW50cz4gdmlkZW9Db25zdHJhaW50cyk7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU1l
ZGlhU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudD4sIFBhc3NSZWZQ
dHI8TWVkaWFDb25zdHJhaW50cz4gYXVkaW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxNZWRpYUNv
bnN0cmFpbnRzPiB2aWRlb0NvbnN0cmFpbnRzKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0TWVkaWFT
dHJlYW1UcmFja1NvdXJjZXMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVl
c3RDbGllbnQ+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0TWVkaWFTdHJlYW1UcmFj
a1NvdXJjZXMoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVRyYWNrU291cmNlc1JlcXVlc3RDbGllbnQ+
KSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJj
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0
dXJlU291cmNlLmgKaW5kZXggZWMwM2RiYy4uYmNkYmI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJl
U291cmNlLmgKQEAgLTQyLDExICs0MiwxMSBAQCBwcml2YXRlOgogICAgIEFWQXVkaW9DYXB0dXJl
U291cmNlKEFWQ2FwdHVyZURldmljZSosIGNvbnN0IEF0b21pY1N0cmluZyYsIFBhc3NSZWZQdHI8
TWVkaWFDb25zdHJhaW50cz4pOwogICAgIHZpcnR1YWwgfkFWQXVkaW9DYXB0dXJlU291cmNlKCk7
CiAgICAgCi0gICAgdmlydHVhbCBSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXM+
IGNhcGFiaWxpdGllcygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjYXB0dXJl
T3V0cHV0RGlkT3V0cHV0U2FtcGxlQnVmZmVyRnJvbUNvbm5lY3Rpb24oQVZDYXB0dXJlT3V0cHV0
KiwgQ01TYW1wbGVCdWZmZXJSZWYsIEFWQ2FwdHVyZUNvbm5lY3Rpb24qKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIFJlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0
aWVzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNhcHR1cmVPdXRwdXREaWRP
dXRwdXRTYW1wbGVCdWZmZXJGcm9tQ29ubmVjdGlvbihBVkNhcHR1cmVPdXRwdXQqLCBDTVNhbXBs
ZUJ1ZmZlclJlZiwgQVZDYXB0dXJlQ29ubmVjdGlvbiopIG92ZXJyaWRlOwogICAgIAotICAgIHZp
cnR1YWwgdm9pZCBzZXR1cENhcHR1cmVTZXNzaW9uKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHVwZGF0ZVN0YXRlcygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXR1cENhcHR1
cmVTZXNzaW9uKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVN0YXRlcygpIG92
ZXJyaWRlOwogICAgICAgICAKICAgICBSZXRhaW5QdHI8QVZDYXB0dXJlQ29ubmVjdGlvbj4gbV9h
dWRpb0Nvbm5lY3Rpb247CiAgICAgUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IG1f
YXVkaW9Gb3JtYXREZXNjcmlwdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgKaW5kZXgg
ZmU0NDdiOC4uNzJjN2U0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgKQEAgLTU0LDEw
ICs1NCwxMCBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgQVZNZWRpYUNhcHR1cmVTb3VyY2Uo
QVZDYXB0dXJlRGV2aWNlKiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTWVkaWFTdHJlYW1Tb3VyY2U6
OlR5cGUsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pOwogCi0gICAgdmlydHVhbCBjb25z
dCBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlcyYgc3RhdGVzKCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBjb25zdCBNZWRpYVN0cmVhbVNvdXJjZVN0YXRlcyYgc3RhdGVzKCkgb3ZlcnJpZGU7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHN0
YXJ0UHJvZHVjaW5nRGF0YSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdG9wUHJvZHVj
aW5nRGF0YSgpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHNldHVwQ2FwdHVyZVNlc3Np
b24oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVN0YXRlcygpID0gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVy
ZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlk
ZW9DYXB0dXJlU291cmNlLmgKaW5kZXggZDg5YjM4ZC4uMDExY2RkNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9D
YXB0dXJlU291cmNlLmgKQEAgLTM4LDE1ICszOCwxNSBAQCBjbGFzcyBBVlZpZGVvQ2FwdHVyZVNv
dXJjZSA6IHB1YmxpYyBBVk1lZGlhQ2FwdHVyZVNvdXJjZSB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZlB0cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4gY3JlYXRlKEFWQ2FwdHVyZURldmljZSosIGNv
bnN0IEF0b21pY1N0cmluZyYsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pOwogCi0gICAg
dmlydHVhbCBSZWZQdHI8TWVkaWFTdHJlYW1Tb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGll
cygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjYXB0dXJlT3V0cHV0RGlkT3V0
cHV0U2FtcGxlQnVmZmVyRnJvbUNvbm5lY3Rpb24oQVZDYXB0dXJlT3V0cHV0KiwgQ01TYW1wbGVC
dWZmZXJSZWYsIEFWQ2FwdHVyZUNvbm5lY3Rpb24qKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJl
ZlB0cjxNZWRpYVN0cmVhbVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNhcHR1cmVPdXRwdXREaWRPdXRwdXRTYW1wbGVC
dWZmZXJGcm9tQ29ubmVjdGlvbihBVkNhcHR1cmVPdXRwdXQqLCBDTVNhbXBsZUJ1ZmZlclJlZiwg
QVZDYXB0dXJlQ29ubmVjdGlvbiopIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIEFWVmlkZW9D
YXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSosIGNvbnN0IEF0b21pY1N0cmluZyYsIFBhc3NS
ZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pOwogICAgIHZpcnR1YWwgfkFWVmlkZW9DYXB0dXJlU291
cmNlKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0dXBDYXB0dXJlU2Vzc2lvbigpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTdGF0ZXMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0dXBDYXB0dXJlU2Vzc2lvbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVTdGF0ZXMoKSBvdmVycmlkZTsKIAogICAgIGJvb2wgYXBwbHlDb25zdHJhaW50cyhNZWRp
YUNvbnN0cmFpbnRzKik7CiAgICAgYm9vbCBzZXRGcmFtZVJhdGVDb25zdHJhaW50KGZsb2F0IG1p
bkZyYW1lUmF0ZSwgZmxvYXQgbWF4RnJhbWVSYXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9NZWRpYVN0cmVhbUNlbnRlck1hYy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFj
LmgKaW5kZXggMWIwMjliMi4uNjBjN2U5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01lZGlhU3RyZWFtQ2VudGVyTWFjLmgK
QEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVx
dWVzdENvbnN0cmFpbnRzKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1DcmVhdGlvbkNsaWVudD4sIFBh
c3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gYXVkaW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxN
ZWRpYUNvbnN0cmFpbnRzPiB2aWRlb0NvbnN0cmFpbnRzKTsKICAgICB2aXJ0dWFsIHZvaWQgY3Jl
YXRlTWVkaWFTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbUNyZWF0aW9uQ2xpZW50PiwgUGFz
c1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBhdWRpb0NvbnN0cmFpbnRzLCBQYXNzUmVmUHRyPE1l
ZGlhQ29uc3RyYWludHM+IHZpZGVvQ29uc3RyYWludHMpOwotICAgIHZpcnR1YWwgYm9vbCBnZXRN
ZWRpYVN0cmVhbVRyYWNrU291cmNlcyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2Vz
UmVxdWVzdENsaWVudD4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBnZXRNZWRpYVN0cmVh
bVRyYWNrU291cmNlcyhQYXNzUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENs
aWVudD4pIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9EZXZpY2VNb3Rpb25DbGllbnRNb2NrLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0RldmljZU1vdGlvbkNsaWVudE1vY2suaApp
bmRleCA5MTllOTJiLi5mMmUwYTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL0RldmljZU1vdGlvbkNsaWVudE1vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL0RldmljZU1vdGlvbkNsaWVudE1vY2suaApAQCAtNDUsMTIgKzQ1LDEyIEBAIHB1
YmxpYzoKICAgICBEZXZpY2VNb3Rpb25DbGllbnRNb2NrKCk7CiAKICAgICAvLyBEZXZpY2VNb3Rp
b25DbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxlcihEZXZpY2VNb3Rpb25Db250
cm9sbGVyKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBEZXZpY2VNb3Rpb25EYXRhKiBsYXN0TW90aW9uKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gbV9tb3Rpb24uZ2V0KCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxlcihEZXZp
Y2VNb3Rpb25Db250cm9sbGVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBk
YXRpbmcoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBEZXZpY2VNb3Rpb25EYXRhKiBsYXN0TW90aW9uKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbV9tb3Rpb24uZ2V0KCk7IH0KICAgICAvLyBtb2NrIGlzIG93bmVkIGJ5
IHRoZSB0ZXN0aW5nIGZyYW1ld29yaywgd2hpY2ggc2hvdWxkIGhhbmRsZSBkZWxldGlvbgotICAg
IHZpcnR1YWwgdm9pZCBkZXZpY2VNb3Rpb25Db250cm9sbGVyRGVzdHJveWVkKCkgT1ZFUlJJREUg
eyB9CisgICAgdmlydHVhbCB2b2lkIGRldmljZU1vdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBv
dmVycmlkZSB7IH0KIAogICAgIHZvaWQgc2V0TW90aW9uKFBhc3NSZWZQdHI8RGV2aWNlTW90aW9u
RGF0YT4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0Rldmlj
ZU9yaWVudGF0aW9uQ2xpZW50TW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9E
ZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suaAppbmRleCBmYTZmNWI2Li5kZjg1YjdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xp
ZW50TW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50
YXRpb25DbGllbnRNb2NrLmgKQEAgLTQ1LDExICs0NSwxMSBAQCBwdWJsaWM6CiAgICAgRGV2aWNl
T3JpZW50YXRpb25DbGllbnRNb2NrKCk7CiAKICAgICAvLyBEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dAotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgRGV2aWNlT3JpZW50YXRpb25EYXRhKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBtX29yaWVudGF0aW9uLmdldCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHN0b3BVcGRhdGluZygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgRGV2aWNlT3Jp
ZW50YXRpb25EYXRhKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X29yaWVudGF0aW9uLmdldCgpOyB9CisgICAgdmlydHVhbCB2b2lkIGRldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlckRlc3Ryb3llZCgpIG92ZXJyaWRlIHsgfQogCiAgICAgdm9pZCBzZXRPcmllbnRh
dGlvbihQYXNzUmVmUHRyPERldmljZU9yaWVudGF0aW9uRGF0YT4pOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tNZWRpYVN0cmVhbUNlbnRlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrTWVkaWFTdHJlYW1DZW50ZXIuaAppbmRleCBk
YTJhM2UwLi43ZGRjNzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tNZWRpYVN0cmVhbUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja01lZGlhU3RyZWFtQ2VudGVyLmgKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFBhc3NSZWZQdHI8TWVk
aWFTdHJlYW1DcmVhdGlvbkNsaWVudD4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gYXVk
aW9Db25zdHJhaW50cywgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiB2aWRlb0NvbnN0cmFp
bnRzKTsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlTWVkaWFTdHJlYW0oUGFzc1JlZlB0cjxNZWRp
YVN0cmVhbUNyZWF0aW9uQ2xpZW50PiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBhdWRp
b0NvbnN0cmFpbnRzLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IHZpZGVvQ29uc3RyYWlu
dHMpOwotICAgIHZpcnR1YWwgYm9vbCBnZXRNZWRpYVN0cmVhbVRyYWNrU291cmNlcyhQYXNzUmVm
UHRyPE1lZGlhU3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudD4pIE9WRVJSSURFOworICAg
IHZpcnR1YWwgYm9vbCBnZXRNZWRpYVN0cmVhbVRyYWNrU291cmNlcyhQYXNzUmVmUHRyPE1lZGlh
U3RyZWFtVHJhY2tTb3VyY2VzUmVxdWVzdENsaWVudD4pIG92ZXJyaWRlOwogCiBwcml2YXRlOgog
ICAgIE1vY2tNZWRpYVN0cmVhbUNlbnRlcigpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaAppbmRleCBlOTc1
YjJhLi4wOWVjNzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JU
Q0RhdGFDaGFubmVsSGFuZGxlck1vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suaApAQCAtMzksMjAgKzM5LDIwIEBAIHB1Ymxp
YzoKICAgICBSVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrKGNvbnN0IFN0cmluZyYsIGNvbnN0IFJU
Q0RhdGFDaGFubmVsSW5pdCYpOwogICAgIHZpcnR1YWwgflJUQ0RhdGFDaGFubmVsSGFuZGxlck1v
Y2soKSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoUlRDRGF0YUNoYW5uZWxIYW5k
bGVyQ2xpZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldENsaWVudChSVENEYXRh
Q2hhbm5lbEhhbmRsZXJDbGllbnQqKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgU3RyaW5nIGxh
YmVsKCkgT1ZFUlJJREUgeyByZXR1cm4gbV9sYWJlbDsgfQotICAgIHZpcnR1YWwgYm9vbCBvcmRl
cmVkKCkgT1ZFUlJJREUgeyByZXR1cm4gbV9vcmRlcmVkOyB9Ci0gICAgdmlydHVhbCB1bnNpZ25l
ZCBzaG9ydCBtYXhSZXRyYW5zbWl0VGltZSgpIE9WRVJSSURFIHsgcmV0dXJuIG1fbWF4UmV0cmFu
c21pdFRpbWU7IH0KLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IG1heFJldHJhbnNtaXRzKCkg
T1ZFUlJJREUgeyByZXR1cm4gbV9tYXhSZXRyYW5zbWl0czsgfQotICAgIHZpcnR1YWwgU3RyaW5n
IHByb3RvY29sKCkgT1ZFUlJJREUgeyByZXR1cm4gbV9wcm90b2NvbDsgfQotICAgIHZpcnR1YWwg
Ym9vbCBuZWdvdGlhdGVkKCkgT1ZFUlJJREUgeyByZXR1cm4gbV9uZWdvdGlhdGVkOyB9Ci0gICAg
dmlydHVhbCB1bnNpZ25lZCBzaG9ydCBpZCgpIE9WRVJSSURFIHsgcmV0dXJuIG1faWQ7IH0KLSAg
ICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQoKSBPVkVSUklERSB7IHJldHVy
biAwOyB9CisgICAgdmlydHVhbCBTdHJpbmcgbGFiZWwoKSBvdmVycmlkZSB7IHJldHVybiBtX2xh
YmVsOyB9CisgICAgdmlydHVhbCBib29sIG9yZGVyZWQoKSBvdmVycmlkZSB7IHJldHVybiBtX29y
ZGVyZWQ7IH0KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IG1heFJldHJhbnNtaXRUaW1lKCkg
b3ZlcnJpZGUgeyByZXR1cm4gbV9tYXhSZXRyYW5zbWl0VGltZTsgfQorICAgIHZpcnR1YWwgdW5z
aWduZWQgc2hvcnQgbWF4UmV0cmFuc21pdHMoKSBvdmVycmlkZSB7IHJldHVybiBtX21heFJldHJh
bnNtaXRzOyB9CisgICAgdmlydHVhbCBTdHJpbmcgcHJvdG9jb2woKSBvdmVycmlkZSB7IHJldHVy
biBtX3Byb3RvY29sOyB9CisgICAgdmlydHVhbCBib29sIG5lZ290aWF0ZWQoKSBvdmVycmlkZSB7
IHJldHVybiBtX25lZ290aWF0ZWQ7IH0KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGlkKCkg
b3ZlcnJpZGUgeyByZXR1cm4gbV9pZDsgfQorICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBidWZm
ZXJlZEFtb3VudCgpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBz
ZW5kU3RyaW5nRGF0YShjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
c2VuZFJhd0RhdGEoY29uc3QgY2hhciosIHNpemVfdCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIGNsb3NlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNlbmRTdHJpbmdEYXRhKGNv
bnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzZW5kUmF3RGF0YShjb25z
dCBjaGFyKiwgc2l6ZV90KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSBvdmVy
cmlkZTsKIAogcHJpdmF0ZToKICAgICBSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGllbnQqIG1fY2xp
ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENOb3RpZmll
cnNNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ05vdGlmaWVyc01vY2su
aAppbmRleCBjNWQ1ZWNkLi4wMTRkZmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL1JUQ05vdGlmaWVyc01vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL1JUQ05vdGlmaWVyc01vY2suaApAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBTZXNzaW9u
UmVxdWVzdE5vdGlmaWVyIDogcHVibGljIE1vY2tOb3RpZmllciB7CiBwdWJsaWM6CiAgICAgU2Vz
c2lvblJlcXVlc3ROb3RpZmllcihQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3Q+LCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+LCBjb25zdCBT
dHJpbmcmID0gZW1wdHlTdHJpbmcoKSk7CiAKLSAgICB2b2lkIGZpcmUoKSBPVkVSUklERTsKKyAg
ICB2b2lkIGZpcmUoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBSZWZQdHI8UlRDU2Vzc2lv
bkRlc2NyaXB0aW9uUmVxdWVzdD4gbV9yZXF1ZXN0OwpAQCAtNTcsNyArNTcsNyBAQCBjbGFzcyBW
b2lkUmVxdWVzdE5vdGlmaWVyIDogcHVibGljIE1vY2tOb3RpZmllciB7CiBwdWJsaWM6CiAgICAg
Vm9pZFJlcXVlc3ROb3RpZmllcihQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0PiwgYm9vbCwgY29u
c3QgU3RyaW5nJiA9IGVtcHR5U3RyaW5nKCkpOwogCi0gICAgdm9pZCBmaXJlKCkgT1ZFUlJJREU7
CisgICAgdm9pZCBmaXJlKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgUmVmUHRyPFJUQ1Zv
aWRSZXF1ZXN0PiBtX3JlcXVlc3Q7CkBAIC02OSw3ICs2OSw3IEBAIGNsYXNzIEljZUNvbm5lY3Rp
b25Ob3RpZmllciA6IHB1YmxpYyBNb2NrTm90aWZpZXIgewogcHVibGljOgogICAgIEljZUNvbm5l
Y3Rpb25Ob3RpZmllcihSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQqLCBSVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXJDbGllbnQ6OkljZUNvbm5lY3Rpb25TdGF0ZSwgUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyQ2xpZW50OjpJY2VHYXRoZXJpbmdTdGF0ZSk7CiAKLSAgICB2b2lkIGZpcmUoKSBP
VkVSUklERTsKKyAgICB2b2lkIGZpcmUoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQqIG1fY2xpZW50OwpAQCAtODEsNyArODEsNyBAQCBj
bGFzcyBTaWduYWxpbmdTdGF0ZU5vdGlmaWVyIDogcHVibGljIE1vY2tOb3RpZmllciB7CiBwdWJs
aWM6CiAgICAgU2lnbmFsaW5nU3RhdGVOb3RpZmllcihSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJD
bGllbnQqLCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQ6OlNpZ25hbGluZ1N0YXRlKTsK
IAotICAgIHZvaWQgZmlyZSgpIE9WRVJSSURFOworICAgIHZvaWQgZmlyZSgpIG92ZXJyaWRlOwog
CiBwcml2YXRlOgogICAgIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCogbV9jbGllbnQ7
CkBAIC05Miw3ICs5Miw3IEBAIGNsYXNzIFJlbW90ZURhdGFDaGFubmVsTm90aWZpZXIgOiBwdWJs
aWMgTW9ja05vdGlmaWVyIHsKIHB1YmxpYzoKICAgICBSZW1vdGVEYXRhQ2hhbm5lbE5vdGlmaWVy
KFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCopOwogCi0gICAgdm9pZCBmaXJlKCkgT1ZF
UlJJREU7CisgICAgdm9pZCBmaXJlKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50KiBtX2NsaWVudDsKQEAgLTEwMiw3ICsxMDIsNyBAQCBj
bGFzcyBEYXRhQ2hhbm5lbFN0YXRlTm90aWZpZXIgOiBwdWJsaWMgTW9ja05vdGlmaWVyIHsKIHB1
YmxpYzoKICAgICBEYXRhQ2hhbm5lbFN0YXRlTm90aWZpZXIoUlRDRGF0YUNoYW5uZWxIYW5kbGVy
Q2xpZW50KiwgUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50OjpSZWFkeVN0YXRlKTsKIAotICAg
IHZvaWQgZmlyZSgpIE9WRVJSSURFOworICAgIHZvaWQgZmlyZSgpIG92ZXJyaWRlOwogCiBwcml2
YXRlOgogICAgIFJUQ0RhdGFDaGFubmVsSGFuZGxlckNsaWVudCogbV9jbGllbnQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ck1vY2suaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyTW9jay5oCmluZGV4IDc4ODAyOGIuLjhkM2JmMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9jay5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyTW9j
ay5oCkBAIC00MSwyMiArNDEsMjIgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+UlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyTW9jaygpIHsgfQogCi0gICAgdmlydHVhbCBib29sIGluaXRpYWxpemUo
UGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRz
PikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGluaXRpYWxpemUoUGFzc1JlZlB0cjxSVEND
b25maWd1cmF0aW9uPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgb3ZlcnJpZGU7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2ZmZXIoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3Jp
cHRpb25SZXF1ZXN0PiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGNyZWF0ZUFuc3dlcihQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3Q+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0TG9jYWxEZXNjcmlwdGlvbihQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1
ZXN0PiwgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFJlbW90ZURlc2NyaXB0aW9uKFBhc3NSZWZQdHI8UlRD
Vm9pZFJlcXVlc3Q+LCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9u
RGVzY3JpcHRvcj4gbG9jYWxEZXNjcmlwdGlvbigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiByZW1vdGVEZXNjcmlwdGlv
bigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJY2UoUGFzc1JlZlB0cjxSVEND
b25maWd1cmF0aW9uPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBib29sIGFkZEljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJUQ1ZvaWRSZXF1ZXN0
PiwgUGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPikgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIGFkZFN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4sIFBh
c3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+KSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZ2V0U3RhdHMoUGFzc1JlZlB0cjxSVENTdGF0c1JlcXVlc3Q+KSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxSVENEYXRhQ2hhbm5lbEhhbmRsZXI+
IGNyZWF0ZURhdGFDaGFubmVsKGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFJUQ0RhdGFDaGFu
bmVsSW5pdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFJUQ0RUTUZT
ZW5kZXJIYW5kbGVyPiBjcmVhdGVEVE1GU2VuZGVyKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Tb3Vy
Y2U+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBjcmVhdGVPZmZlcihQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3Q+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgY3JlYXRlQW5zd2VyKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdD4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBzZXRMb2NhbERlc2NyaXB0aW9uKFBhc3NSZWZQdHI8UlRDVm9pZFJlcXVlc3Q+LCBQ
YXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+KSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0UmVtb3RlRGVzY3JpcHRpb24oUGFzc1JlZlB0cjxSVENWb2lkUmVx
dWVzdD4sIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4pIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlw
dG9yPiBsb2NhbERlc2NyaXB0aW9uKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IHJlbW90ZURlc2NyaXB0aW9uKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBib29sIHVwZGF0ZUljZShQYXNzUmVmUHRyPFJUQ0NvbmZpZ3Vy
YXRpb24+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgYWRkSWNlQ2FuZGlkYXRlKFBhc3NSZWZQdHI8UlRDVm9pZFJlcXVlc3Q+LCBQYXNz
UmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I+KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IGJvb2wgYWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPiwgUGFzc1JlZlB0
cjxNZWRpYUNvbnN0cmFpbnRzPikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZVN0
cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4pIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBnZXRTdGF0cyhQYXNzUmVmUHRyPFJUQ1N0YXRzUmVxdWVzdD4pIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFJUQ0RhdGFDaGFubmVsSGFuZGxlcj4gY3JlYXRl
RGF0YUNoYW5uZWwoY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgUlRDRGF0YUNoYW5uZWxJbml0
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8UlRDRFRNRlNlbmRlckhh
bmRsZXI+IGNyZWF0ZURUTUZTZW5kZXIoUGFzc1JlZlB0cjxNZWRpYVN0cmVhbVNvdXJjZT4pIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CiAKICAgICBleHBsaWNp
dCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJNb2NrKFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNs
aWVudCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlh
c291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVBsYXllck1lZGlhU291cmNlLmgKaW5kZXgg
OTg1YTIxZi4uY2Q4ZDc5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja01lZGlhUGxheWVyTWVkaWFTb3Vy
Y2UuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZHZhbmNlQ3VycmVudFRp
bWUoKTsKICAgICB2b2lkIHVwZGF0ZUR1cmF0aW9uKGRvdWJsZSk7CiAKLSAgICB2aXJ0dWFsIE1l
ZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpOwogICAg
IHZvaWQgc2V0TmV0d29ya1N0YXRlKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUpOwogCkBAIC01
NywzMCArNTcsMzAgQEAgcHJpdmF0ZToKICAgICBNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZShN
ZWRpYVBsYXllciopOwogCiAgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlIE92ZXJyaWRlcwotICAg
IHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYgdXJsKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmIHVybCwgUGFzc1JlZlB0cjxIVE1MTWVkaWFTb3Vy
Y2U+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTG9hZCgpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBwbGF5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHBhdXNl
KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJbnRTaXplIG5hdHVyYWxTaXplKCkgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBib29sIGhhc1ZpZGVvKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIGhhc0F1ZGlvKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IHNldFZpc2libGUoYm9vbCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNlZWtpbmcoKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcGF1c2VkKCkgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG5ldHdvcmtTdGF0ZSgpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgZG91YmxlIG1heFRpbWVTZWVrYWJsZURvdWJsZSgp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZm
ZXJlZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jl
c3MoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2l6ZShjb25zdCBJbnRT
aXplJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCos
IGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGRvdWJsZSBjdXJyZW50VGlt
ZURvdWJsZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgZG91YmxlIGR1cmF0aW9uRG91
YmxlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNlZWtXaXRoVG9sZXJhbmNl
KGRvdWJsZSB0aW1lLCBkb3VibGUsIGRvdWJsZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB1bnNp
Z25lZCBsb25nIHRvdGFsVmlkZW9GcmFtZXMoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHVuc2ln
bmVkIGxvbmcgZHJvcHBlZFZpZGVvRnJhbWVzKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB1bnNp
Z25lZCBsb25nIGNvcnJ1cHRlZFZpZGVvRnJhbWVzKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBk
b3VibGUgdG90YWxGcmFtZURlbGF5KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGxvYWQo
Y29uc3QgU3RyaW5nJiB1cmwpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0
IFN0cmluZyYgdXJsLCBQYXNzUmVmUHRyPEhUTUxNZWRpYVNvdXJjZT4pIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBjYW5jZWxMb2FkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBs
YXkoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcGF1c2UoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIEludFNpemUgbmF0dXJhbFNpemUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IGJvb2wgaGFzVmlkZW8oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzQXVk
aW8oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZShib29sKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2Vla2luZygpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBwYXVzZWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIE1lZGlh
UGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBkb3VibGUgbWF4VGltZVNlZWthYmxlRG91YmxlKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBib29sIGRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgZG91YmxlIGN1cnJlbnRUaW1lRG91YmxlKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBkb3VibGUgZHVyYXRpb25Eb3VibGUoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Vla1dpdGhUb2xlcmFuY2UoZG91YmxlIHRpbWUsIGRvdWJs
ZSwgZG91YmxlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgdG90YWxWaWRl
b0ZyYW1lcygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBkcm9wcGVkVmlk
ZW9GcmFtZXMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgY29ycnVwdGVk
VmlkZW9GcmFtZXMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGRvdWJsZSB0b3RhbEZyYW1lRGVs
YXkoKSBvdmVycmlkZTsKIAogICAgIE1lZGlhUGxheWVyKiBtX3BsYXllcjsKICAgICBSZWZQdHI8
SFRNTE1lZGlhU291cmNlPiBtX21lZGlhU291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrTWVkaWFTb3VyY2VQcml2YXRlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVNvdXJjZVBy
aXZhdGUuaAppbmRleCBmNDQ4ZTFkLi42NGU0YzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVNvdXJjZVByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tNZWRpYVNvdXJj
ZVByaXZhdGUuaApAQCAtNjYsMTMgKzY2LDEzIEBAIHByaXZhdGU6CiAgICAgTW9ja01lZGlhU291
cmNlUHJpdmF0ZShNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZSopOwogCiAgICAgLy8gTWVkaWFT
b3VyY2VQcml2YXRlIE92ZXJyaWRlcwotICAgIHZpcnR1YWwgQWRkU3RhdHVzIGFkZFNvdXJjZUJ1
ZmZlcihjb25zdCBDb250ZW50VHlwZSYsIFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlPiYpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgZG91YmxlIGR1cmF0aW9uKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHNldER1cmF0aW9uKGRvdWJsZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IG1hcmtFbmRPZlN0cmVhbShFbmRPZlN0cmVhbVN0YXR1cykgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHVubWFya0VuZE9mU3RyZWFtKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBNZWRpYVBs
YXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgQWRkU3RhdHVzIGFkZFNvdXJjZUJ1ZmZlcihjb25zdCBDb250ZW50VHlwZSYs
IFJlZlB0cjxTb3VyY2VCdWZmZXJQcml2YXRlPiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgZG91
YmxlIGR1cmF0aW9uKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldER1cmF0aW9uKGRv
dWJsZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG1hcmtFbmRPZlN0cmVhbShFbmRPZlN0
cmVhbVN0YXR1cykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVubWFya0VuZE9mU3RyZWFt
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0
YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFJlYWR5U3RhdGUoTWVk
aWFQbGF5ZXI6OlJlYWR5U3RhdGUpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzb3VyY2VCdWZmZXJQ
cml2YXRlRGlkQ2hhbmdlQWN0aXZlU3RhdGUoTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUqLCBib29s
IGFjdGl2ZSk7CiAgICAgdm9pZCByZW1vdmVTb3VyY2VCdWZmZXIoU291cmNlQnVmZmVyUHJpdmF0
ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJj
ZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcAppbmRleCA0ZDU3M2Fi
Li4xNDA4OTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlh
c291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcApAQCAt
NDYsMTMgKzQ2LDEzIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPE1vY2tNZWRpYVNhbXBs
ZT4gY3JlYXRlKGNvbnN0IE1vY2tTYW1wbGVCb3gmIGJveCkgeyByZXR1cm4gYWRvcHRSZWYobmV3
IE1vY2tNZWRpYVNhbXBsZShib3gpKTsgfQogICAgIHZpcnR1YWwgfk1vY2tNZWRpYVNhbXBsZSgp
IHsgfQogCi0gICAgdmlydHVhbCBNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZSgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIG1fYm94LnByZXNlbnRhdGlvblRpbWVzdGFtcCgpOyB9Ci0gICAgdmly
dHVhbCBNZWRpYVRpbWUgZGVjb2RlVGltZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fYm94
LmRlY29kZVRpbWVzdGFtcCgpOyB9Ci0gICAgdmlydHVhbCBNZWRpYVRpbWUgZHVyYXRpb24oKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiBtX2JveC5kdXJhdGlvbigpOyB9Ci0gICAgdmlydHVhbCBB
dG9taWNTdHJpbmcgdHJhY2tJRCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1faWQ7IH0KKyAg
ICB2aXJ0dWFsIE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9ib3gucHJlc2VudGF0aW9uVGltZXN0YW1wKCk7IH0KKyAgICB2aXJ0dWFsIE1lZGlh
VGltZSBkZWNvZGVUaW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9ib3guZGVjb2RlVGlt
ZXN0YW1wKCk7IH0KKyAgICB2aXJ0dWFsIE1lZGlhVGltZSBkdXJhdGlvbigpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fYm94LmR1cmF0aW9uKCk7IH0KKyAgICB2aXJ0dWFsIEF0b21pY1N0cmlu
ZyB0cmFja0lEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pZDsgfQogCi0gICAgdmlydHVh
bCBTYW1wbGVGbGFncyBmbGFncygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGxhdGZv
cm1TYW1wbGUgcGxhdGZvcm1TYW1wbGUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFNhbXBsZUZs
YWdzIGZsYWdzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQbGF0Zm9ybVNhbXBsZSBw
bGF0Zm9ybVNhbXBsZSgpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgTW9ja01lZGlhU2Ft
cGxlKGNvbnN0IE1vY2tTYW1wbGVCb3gmIGJveCkKQEAgLTg0LDEwICs4NCwxMCBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZlB0cjxNb2NrTWVkaWFEZXNjcmlwdGlvbj4gY3JlYXRlKGNvbnN0IE1v
Y2tUcmFja0JveCYgYm94KSB7IHJldHVybiBhZG9wdFJlZihuZXcgTW9ja01lZGlhRGVzY3JpcHRp
b24oYm94KSk7IH0KICAgICB2aXJ0dWFsIH5Nb2NrTWVkaWFEZXNjcmlwdGlvbigpIHsgfQogCi0g
ICAgdmlydHVhbCBBdG9taWNTdHJpbmcgY29kZWMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBt
X2JveC5jb2RlYygpOyB9Ci0gICAgdmlydHVhbCBib29sIGlzVmlkZW8oKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBtX2JveC5raW5kKCkgPT0gTW9ja1RyYWNrQm94OjpWaWRlbzsgfQotICAgIHZp
cnR1YWwgYm9vbCBpc0F1ZGlvKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9ib3gua2luZCgp
ID09IE1vY2tUcmFja0JveDo6QXVkaW87IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0KCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gbV9ib3gua2luZCgpID09IE1vY2tUcmFja0JveDo6VGV4dDsg
fQorICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIGNvZGVjKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9ib3guY29kZWMoKTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1ZpZGVvKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbV9ib3gua2luZCgpID09IE1vY2tUcmFja0JveDo6VmlkZW87IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgaXNBdWRpbygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fYm94Lmtp
bmQoKSA9PSBNb2NrVHJhY2tCb3g6OkF1ZGlvOyB9CisgICAgdmlydHVhbCBib29sIGlzVGV4dCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fYm94LmtpbmQoKSA9PSBNb2NrVHJhY2tCb3g6OlRl
eHQ7IH0KIAogcHJvdGVjdGVkOgogICAgIE1vY2tNZWRpYURlc2NyaXB0aW9uKGNvbnN0IE1vY2tU
cmFja0JveCYgYm94KSA6IG1fYm94KGJveCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQ
cml2YXRlLmgKaW5kZXggOTczMzBkZS4uMTA5ZDAzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1
ZmZlclByaXZhdGUuaApAQCAtNjIsMTkgKzYyLDE5IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
TW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUoTW9ja01lZGlhU291cmNlUHJpdmF0ZSopOwogCiAgICAg
Ly8gU291cmNlQnVmZmVyUHJpdmF0ZSBvdmVycmlkZXMKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xp
ZW50KFNvdXJjZUJ1ZmZlclByaXZhdGVDbGllbnQqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEFw
cGVuZFJlc3VsdCBhcHBlbmQoY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbGVu
Z3RoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYWJvcnQoKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21NZWRpYVNvdXJjZSgpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZXZpY3RDb2RlZEZyYW1lcygpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgYm9vbCBpc0Z1bGwoKSBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgdm9pZCBm
bHVzaEFuZEVucXVldWVOb25EaXNwbGF5aW5nU2FtcGxlcyhWZWN0b3I8UmVmUHRyPE1lZGlhU2Ft
cGxlPj4sIEF0b21pY1N0cmluZykgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGVucXVl
dWVTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4sIEF0b21pY1N0cmluZykgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBib29sIGlzUmVhZHlGb3JNb3JlU2FtcGxlcyhBdG9taWNTdHJpbmcpIE9W
RVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoU291cmNlQnVmZmVyUHJpdmF0
ZUNsaWVudCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgQXBwZW5kUmVzdWx0IGFwcGVuZChjb25z
dCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBhYm9ydCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJv
bU1lZGlhU291cmNlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBNZWRpYVBsYXllcjo6UmVhZHlT
dGF0ZSByZWFkeVN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFJl
YWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBldmljdENvZGVkRnJhbWVzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzRnVs
bCgpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIGZsdXNoQW5kRW5xdWV1ZU5vbkRpc3Bs
YXlpbmdTYW1wbGVzKFZlY3RvcjxSZWZQdHI8TWVkaWFTYW1wbGU+PiwgQXRvbWljU3RyaW5nKSBv
dmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZW5xdWV1ZVNhbXBsZShQYXNzUmVmUHRyPE1l
ZGlhU2FtcGxlPiwgQXRvbWljU3RyaW5nKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNS
ZWFkeUZvck1vcmVTYW1wbGVzKEF0b21pY1N0cmluZykgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQorICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmUoYm9vbCkgb3ZlcnJpZGU7CiAKICAgICB2b2lk
IGRpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoY29uc3QgTW9ja0luaXRpYWxpemF0aW9u
Qm94Jik7CiAgICAgdm9pZCBkaWRSZWNlaXZlU2FtcGxlKGNvbnN0IE1vY2tTYW1wbGVCb3gmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5
SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBs
LmgKaW5kZXggMGI4YTFlYy4uNWU0OWYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmgKQEAgLTU4LDEwICs1OCwxMCBAQCBwcml2
YXRlOgogICAgIHZvaWQgYXBwZW5kU3RvcmFnZUl0ZW1zKEJsb2JTdG9yYWdlRGF0YSosIGNvbnN0
IEJsb2JEYXRhSXRlbUxpc3QmKTsKICAgICB2b2lkIGFwcGVuZFN0b3JhZ2VJdGVtcyhCbG9iU3Rv
cmFnZURhdGEqLCBjb25zdCBCbG9iRGF0YUl0ZW1MaXN0JiwgbG9uZyBsb25nIG9mZnNldCwgbG9u
ZyBsb25nIGxlbmd0aCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0
IFVSTCYsIHN0ZDo6dW5pcXVlX3B0cjxCbG9iRGF0YT4pIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiwgY29uc3QgVVJMJiBzcmNVUkwpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNCbG9iUmVnaXN0cnlJbXBsKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckJsb2JVUkwoY29u
c3QgVVJMJiwgc3RkOjp1bmlxdWVfcHRyPEJsb2JEYXRhPikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHJlZ2lzdGVyQmxvYlVSTChjb25zdCBVUkwmLCBjb25zdCBVUkwmIHNyY1VSTCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc0Jsb2JSZWdpc3RyeUltcGwoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPEJsb2JT
dG9yYWdlRGF0YT4+IG1fYmxvYnM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDc3NmY5ZmQuLjY3MGQx
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291
cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JS
ZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTg0LDEwICs4NCwxMCBAQCBjbGFzcyBCbG9iUmVzb3VyY2VT
eW5jaHJvbm91c0xvYWRlciA6IHB1YmxpYyBSZXNvdXJjZUhhbmRsZUNsaWVudCB7CiBwdWJsaWM6
CiAgICAgQmxvYlJlc291cmNlU3luY2hyb25vdXNMb2FkZXIoUmVzb3VyY2VFcnJvciYsIFJlc291
cmNlUmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgY2hhciosIHVuc2lnbmVkLCBpbnQgLyplbmNvZGVkRGF0YUxlbmd0aCovKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRv
dWJsZSAvKmZpbmlzaFRpbWUqLykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZhaWwo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQsIGludCAvKmVuY29kZWREYXRh
TGVuZ3RoKi8pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJl
c291cmNlSGFuZGxlKiwgZG91YmxlIC8qZmluaXNoVGltZSovKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKSBv
dmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBSZXNvdXJjZUVycm9yJiBtX2Vycm9yOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmgK
aW5kZXggOTIyZTQyYS4uMGVjODQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5oCkBAIC01NSwxMiArNTUsMTIgQEAgcHVi
bGljOgogICAgIHN0YXRpYyB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoQmxvYlN0b3Jh
Z2VEYXRhKiBibG9iRGF0YSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJj
ZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYg
ZGF0YSk7CiAKICAgICAvLyBGaWxlU3RyZWFtQ2xpZW50IG1ldGhvZHMuCi0gICAgdmlydHVhbCB2
b2lkIGRpZEdldFNpemUobG9uZyBsb25nKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlk
T3Blbihib29sKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVhZChpbnQpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRHZXRTaXplKGxvbmcgbG9uZykgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZE9wZW4oYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IGRpZFJlYWQoaW50KSBvdmVycmlkZTsKIAogICAgIC8vIFJlc291cmNlSGFuZGxlIG1ldGhvZHMu
Ci0gICAgdmlydHVhbCB2b2lkIGNhbmNlbCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBj
YW5jZWwoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgc3RhcnQoKTsKICAgICBpbnQgcmVhZFN5bmMo
Y2hhciosIGludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlLmgKaW5kZXggNDFlMmY1Yy4uNmFhMWExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaApAQCAtMTE2LDkgKzExNiw5IEBA
IHB1YmxpYzoKICNpZiBQTEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdPUkspIHx8IFVTRShDVVJM
KSB8fCBVU0UoU09VUCkKICAgICBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKCk7CiAg
ICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRDcmVkZW50aWFsKGNv
bnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgY29uc3QgQ3JlZGVudGlhbCYpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFJlcXVlc3RUb0NvbnRpbnVlV2l0aG91dENyZWRl
bnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgcmVjZWl2ZWRDYW5jZWxsYXRpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRDcmVkZW50aWFsKGNvbnN0
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgY29uc3QgQ3JlZGVudGlhbCYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFJlcXVlc3RUb0NvbnRpbnVlV2l0aG91dENyZWRlbnRp
YWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgcmVjZWl2ZWRDYW5jZWxsYXRpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
KSBvdmVycmlkZTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMjY3LDggKzI2Nyw4
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzdGFydCgpOwogICAgIHN0YXRpYyB2b2lkIHBsYXRmb3Jt
TG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIFN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VS
ZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVmQXV0
aGVudGljYXRpb25DbGllbnQoKSBPVkVSUklERSB7IHJlZigpOyB9Ci0gICAgdmlydHVhbCB2b2lk
IGRlcmVmQXV0aGVudGljYXRpb25DbGllbnQoKSBPVkVSUklERSB7IGRlcmVmKCk7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgcmVmQXV0aGVudGljYXRpb25DbGllbnQoKSBvdmVycmlkZSB7IHJlZigpOyB9
CisgICAgdmlydHVhbCB2b2lkIGRlcmVmQXV0aGVudGljYXRpb25DbGllbnQoKSBvdmVycmlkZSB7
IGRlcmVmKCk7IH0KIAogI2lmIFBMQVRGT1JNKE1BQykgfHwgVVNFKENGTkVUV09SSykKICAgICBl
bnVtIGNsYXNzIFNjaGVkdWxpbmdCZWhhdmlvciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3VzTG9hZGVyQ2xpZW50LmgKaW5kZXggYWJj
ZDZmNS4uNDYxOWY4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9TeW5jaHJvbm91c0xvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuaApAQCAtNTYsMTUgKzU2LDE1IEBAIHBy
aXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3Qo
UmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiAvKnJlZGlyZWN0UmVzcG9uc2UqLykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3Vs
ZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFJlc291cmNlSGFuZGxlKikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShSZXNvdXJjZUhhbmRs
ZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVz
b3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQsIGludCAvKmVuY29kZWREYXRhTGVu
Z3RoKi8pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291
cmNlSGFuZGxlKiwgZG91YmxlIC8qZmluaXNoVGltZSovKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiwg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgLypyZWRpcmVjdFJlc3Bv
bnNlKi8pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3Rv
cmFnZShSZXNvdXJjZUhhbmRsZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
UmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgY2hhciosIHVuc2lnbmVkLCBpbnQgLyplbmNvZGVkRGF0YUxlbmd0aCovKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJs
ZSAvKmZpbmlzaFRpbWUqLykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVz
b3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CiAjaWYgVVNFKFBS
T1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKLSAgICB2aXJ0dWFsIGJvb2wgY2FuQXV0aGVu
dGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFByb3Rl
Y3Rpb25TcGFjZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjYW5BdXRoZW50aWNhdGVB
Z2FpbnN0UHJvdGVjdGlvblNwYWNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUHJvdGVjdGlvblNw
YWNlJikgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIGJvb2wgbV9hbGxvd1N0b3JlZENyZWRlbnRp
YWxzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25u
ZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuaAppbmRleCBmOTc3OWVjLi44NDA2MDFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
SGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25u
ZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuaApAQCAtNDMsMzEgKzQzLDMxIEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgYm9vbCBoYXNIYW5kbGUoKSBjb25zdDsKIAotICAgIHZpcnR1
YWwgdm9pZCBzZXR1cFJlcXVlc3QoQ0ZNdXRhYmxlVVJMUmVxdWVzdFJlZikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIHNldHVwQ29ubmVjdGlvblNjaGVkdWxpbmcoQ0ZVUkxDb25uZWN0aW9u
UmVmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0dXBSZXF1ZXN0KENGTXV0YWJsZVVS
TFJlcXVlc3RSZWYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXR1cENvbm5lY3Rpb25T
Y2hlZHVsaW5nKENGVVJMQ29ubmVjdGlvblJlZikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIENG
VVJMUmVxdWVzdFJlZiB3aWxsU2VuZFJlcXVlc3QoQ0ZVUkxSZXF1ZXN0UmVmLCBDRlVSTFJlc3Bv
bnNlUmVmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKENG
VVJMUmVzcG9uc2VSZWYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0
YShDRkRhdGFSZWYsIENGSW5kZXggb3JpZ2luYWxMZW5ndGgpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZEZhaWwoQ0ZFcnJvclJlZikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBDRkNhY2hlZFVSTFJlc3Bv
bnNlUmVmIHdpbGxDYWNoZVJlc3BvbnNlKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQ2hhbGxlbmdlKENGVVJMQXV0aENoYWxsZW5n
ZVJlZikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFNlbmRCb2R5RGF0YShDRkluZGV4
IHRvdGFsQnl0ZXNXcml0dGVuLCBDRkluZGV4IHRvdGFsQnl0ZXNFeHBlY3RlZFRvV3JpdGUpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgQm9vbGVhbiBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSgp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgQ0ZVUkxSZXF1ZXN0UmVmIHdpbGxTZW5kUmVxdWVzdChD
RlVSTFJlcXVlc3RSZWYsIENGVVJMUmVzcG9uc2VSZWYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxSZXNwb25zZVJlZikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKENGRGF0YVJlZiwgQ0ZJbmRleCBvcmlnaW5hbExl
bmd0aCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChDRkVycm9yUmVmKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgd2lsbENhY2hlUmVzcG9uc2UoQ0ZDYWNo
ZWRVUkxSZXNwb25zZVJlZikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVD
aGFsbGVuZ2UoQ0ZVUkxBdXRoQ2hhbGxlbmdlUmVmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkU2VuZEJvZHlEYXRhKENGSW5kZXggdG90YWxCeXRlc1dyaXR0ZW4sIENGSW5kZXggdG90
YWxCeXRlc0V4cGVjdGVkVG9Xcml0ZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBCb29sZWFuIHNo
b3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKCkgb3ZlcnJpZGU7CiAjaWYgVVNFKFBST1RFQ1RJT05f
U1BBQ0VfQVVUSF9DQUxMQkFDSykKLSAgICB2aXJ0dWFsIEJvb2xlYW4gY2FuUmVzcG9uZFRvUHJv
dGVjdGlvblNwYWNlKENGVVJMUHJvdGVjdGlvblNwYWNlUmVmKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIEJvb2xlYW4gY2FuUmVzcG9uZFRvUHJvdGVjdGlvblNwYWNlKENGVVJMUHJvdGVjdGlvblNw
YWNlUmVmKSBvdmVycmlkZTsKICNlbmRpZiAvLyBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NB
TExCQUNLKQogI2lmIFVTRShORVRXT1JLX0NGREFUQV9BUlJBWV9DQUxMQkFDSykKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGFBcnJheShDRkFycmF5UmVmIGRhdGFBcnJheSkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhQXJyYXkoQ0ZBcnJheVJlZiBkYXRh
QXJyYXkpIG92ZXJyaWRlOwogI2VuZGlmIC8vIFVTRShORVRXT1JLX0NGREFUQV9BUlJBWV9DQUxM
QkFDSykKIAotICAgIHZpcnR1YWwgdm9pZCBjb250aW51ZVdpbGxTZW5kUmVxdWVzdChDRlVSTFJl
cXVlc3RSZWYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjb250aW51ZURpZFJlY2VpdmVS
ZXNwb25zZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjb250aW51ZVNob3VsZFVzZUNy
ZWRlbnRpYWxTdG9yYWdlKGJvb2wpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjb250aW51
ZVdpbGxDYWNoZVJlc3BvbnNlKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBjb250aW51ZVdpbGxTZW5kUmVxdWVzdChDRlVSTFJlcXVlc3RSZWYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjb250aW51ZVNob3VsZFVzZUNyZWRlbnRpYWxTdG9y
YWdlKGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjb250aW51ZVdpbGxDYWNoZVJl
c3BvbnNlKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpIG92ZXJyaWRlOwogI2lmIFVTRShQUk9URUNU
SU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCi0gICAgdmlydHVhbCB2b2lkIGNvbnRpbnVlQ2FuQXV0
aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShib29sKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgY29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKGJv
b2wpIG92ZXJyaWRlOwogI2VuZGlmIC8vIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJB
Q0spCiAKICAgICBkaXNwYXRjaF9xdWV1ZV90IG1fcXVldWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVS
TENvbm5lY3Rpb25EZWxlZ2F0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9TeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuaAppbmRl
eCA5MjQyYWM1Li4zMzg4MjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1N5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU3luY2hyb25vdXNS
ZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmgKQEAgLTM2LDMzICszNiwzMyBA
QCBjbGFzcyBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUg
RklOQUwgOiBwdWJsaWMgUmVzb3VyY2VIYQogcHVibGljOgogICAgIFN5bmNocm9ub3VzUmVzb3Vy
Y2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZShSZXNvdXJjZUhhbmRsZSopOwogCi0gICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKENGRGF0YVJlZiwgQ0ZJbmRleCBvcmlnaW5hbExl
bmd0aCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChDRkVycm9yUmVmKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoQ0ZEYXRhUmVmLCBDRkluZGV4IG9yaWdpbmFs
TGVuZ3RoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZygpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKENGRXJyb3JSZWYpIG92ZXJyaWRlOwog
I2lmIFVTRShORVRXT1JLX0NGREFUQV9BUlJBWV9DQUxMQkFDSykKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZURhdGFBcnJheShDRkFycmF5UmVmIGRhdGFBcnJheSkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhQXJyYXkoQ0ZBcnJheVJlZiBkYXRhQXJyYXkpIG92
ZXJyaWRlOwogI2VuZGlmIC8vIFVTRShORVRXT1JLX0NGREFUQV9BUlJBWV9DQUxMQkFDSykKIAog
cHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgc2V0dXBSZXF1ZXN0KENGTXV0YWJsZVVSTFJlcXVl
c3RSZWYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXR1cENvbm5lY3Rpb25TY2hlZHVs
aW5nKENGVVJMQ29ubmVjdGlvblJlZikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldHVw
UmVxdWVzdChDRk11dGFibGVVUkxSZXF1ZXN0UmVmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0dXBDb25uZWN0aW9uU2NoZWR1bGluZyhDRlVSTENvbm5lY3Rpb25SZWYpIG92ZXJyaWRl
OwogCi0gICAgdmlydHVhbCBDRlVSTFJlcXVlc3RSZWYgd2lsbFNlbmRSZXF1ZXN0KENGVVJMUmVx
dWVzdFJlZiwgQ0ZVUkxSZXNwb25zZVJlZikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVSZXNwb25zZShDRlVSTFJlc3BvbnNlUmVmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgd2lsbENhY2hlUmVzcG9uc2UoQ0ZDYWNoZWRVUkxSZXNw
b25zZVJlZikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVDaGFsbGVuZ2Uo
Q0ZVUkxBdXRoQ2hhbGxlbmdlUmVmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkU2Vu
ZEJvZHlEYXRhKENGSW5kZXggdG90YWxCeXRlc1dyaXR0ZW4sIENGSW5kZXggdG90YWxCeXRlc0V4
cGVjdGVkVG9Xcml0ZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBCb29sZWFuIHNob3VsZFVzZUNy
ZWRlbnRpYWxTdG9yYWdlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBDRlVSTFJlcXVlc3RSZWYg
d2lsbFNlbmRSZXF1ZXN0KENGVVJMUmVxdWVzdFJlZiwgQ0ZVUkxSZXNwb25zZVJlZikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShDRlVSTFJlc3BvbnNlUmVm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgd2lsbENhY2hl
UmVzcG9uc2UoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVDaGFsbGVuZ2UoQ0ZVUkxBdXRoQ2hhbGxlbmdlUmVmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkU2VuZEJvZHlEYXRhKENGSW5kZXggdG90YWxCeXRlc1dyaXR0
ZW4sIENGSW5kZXggdG90YWxCeXRlc0V4cGVjdGVkVG9Xcml0ZSkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBCb29sZWFuIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKCkgb3ZlcnJpZGU7CiAjaWYg
VVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKLSAgICB2aXJ0dWFsIEJvb2xlYW4g
Y2FuUmVzcG9uZFRvUHJvdGVjdGlvblNwYWNlKENGVVJMUHJvdGVjdGlvblNwYWNlUmVmKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIEJvb2xlYW4gY2FuUmVzcG9uZFRvUHJvdGVjdGlvblNwYWNlKENG
VVJMUHJvdGVjdGlvblNwYWNlUmVmKSBvdmVycmlkZTsKICNlbmRpZiAvLyBVU0UoUFJPVEVDVElP
Tl9TUEFDRV9BVVRIX0NBTExCQUNLKQogCi0gICAgdmlydHVhbCB2b2lkIGNvbnRpbnVlV2lsbFNl
bmRSZXF1ZXN0KENGVVJMUmVxdWVzdFJlZikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNv
bnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNv
bnRpbnVlU2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoYm9vbCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGNvbnRpbnVlV2lsbENhY2hlUmVzcG9uc2UoQ0ZDYWNoZWRVUkxSZXNwb25zZVJl
ZikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KENG
VVJMUmVxdWVzdFJlZikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvbnRpbnVlRGlkUmVj
ZWl2ZVJlc3BvbnNlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvbnRpbnVlU2hvdWxk
VXNlQ3JlZGVudGlhbFN0b3JhZ2UoYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNv
bnRpbnVlV2lsbENhY2hlUmVzcG9uc2UoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZikgb3ZlcnJpZGU7
CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKLSAgICB2aXJ0dWFsIHZv
aWQgY29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKGJvb2wpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQ
cm90ZWN0aW9uU3BhY2UoYm9vbCkgb3ZlcnJpZGU7CiAjZW5kaWYgLy8gVVNFKFBST1RFQ1RJT05f
U1BBQ0VfQVVUSF9DQUxMQkFDSykKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25peC9SZW5kZXJUaGVtZU5peC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4
L1JlbmRlclRoZW1lTml4LmgKaW5kZXggNTk1Y2NmMS4uNGE2ZGZkYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1JlbmRlclRoZW1lTml4LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbml4L1JlbmRlclRoZW1lTml4LmgKQEAgLTM2LDEwNiArMzYsMTA2IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgflJlbmRlclRoZW1lTml4KCk7CiAKLSAgICB2aXJ0dWFs
IFN0cmluZyBleHRyYURlZmF1bHRTdHlsZVNoZWV0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBT
dHJpbmcgZXh0cmFRdWlya3NTdHlsZVNoZWV0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJp
bmcgZXh0cmFQbHVnSW5zU3R5bGVTaGVldCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5n
IGV4dHJhRGVmYXVsdFN0eWxlU2hlZXQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBl
eHRyYVF1aXJrc1N0eWxlU2hlZXQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBleHRy
YVBsdWdJbnNTdHlsZVNoZWV0KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3lzdGVt
Rm9udChXZWJDb3JlOjpDU1NWYWx1ZUlELCBGb250RGVzY3JpcHRpb24mKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgc3lzdGVtRm9udChXZWJDb3JlOjpDU1NWYWx1ZUlELCBGb250
RGVzY3JpcHRpb24mKSBjb25zdCBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShQUk9HUkVTU19FTEVN
RU5UKQogICAgIC8vIFJldHVybnMgdGhlIHJlcGVhdCBpbnRlcnZhbCBvZiB0aGUgYW5pbWF0aW9u
IGZvciB0aGUgcHJvZ3Jlc3MgYmFyLgotICAgIHZpcnR1YWwgZG91YmxlIGFuaW1hdGlvblJlcGVh
dEludGVydmFsRm9yUHJvZ3Jlc3NCYXIoUmVuZGVyUHJvZ3Jlc3MqKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIGRvdWJsZSBhbmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFy
KFJlbmRlclByb2dyZXNzKikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgLy8gUmV0dXJucyB0aGUgZHVy
YXRpb24gb2YgdGhlIGFuaW1hdGlvbiBmb3IgdGhlIHByb2dyZXNzIGJhci4KLSAgICB2aXJ0dWFs
IGRvdWJsZSBhbmltYXRpb25EdXJhdGlvbkZvclByb2dyZXNzQmFyKFJlbmRlclByb2dyZXNzKikg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBkb3VibGUgYW5pbWF0aW9uRHVyYXRpb25Gb3JQ
cm9ncmVzc0JhcihSZW5kZXJQcm9ncmVzcyopIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoTUVURVJfRUxFTUVOVCkKLSAgICB2aXJ0dWFsIEludFNpemUgbWV0ZXJTaXplRm9y
Qm91bmRzKGNvbnN0IFJlbmRlck1ldGVyKiwgY29uc3QgSW50UmVjdCYpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c01ldGVyKENvbnRyb2xQYXJ0KSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIEludFNpemUgbWV0ZXJTaXplRm9yQm91bmRzKGNvbnN0IFJlbmRl
ck1ldGVyKiwgY29uc3QgSW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c01ldGVyKENvbnRyb2xQYXJ0KSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgogCiBw
cm90ZWN0ZWQ6CiAgICAgLy8gVGhlIHBsYXRmb3JtIHNlbGVjdGlvbiBjb2xvci4KLSAgICB2aXJ0
dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9y
bUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRm
b3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0
aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIENvbG9y
IHBsYXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIENvbG9yIHBs
YXRmb3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25G
b3JlZ3JvdW5kQ29sb3IoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRm
b3JtQWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3Jt
QWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZUxpc3RCb3hTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3IoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIEhpZ2hsaWdodGluZyBjb2xvcnMg
Zm9yIFRleHRNYXRjaGVzLgotICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVUZXh0U2Vh
cmNoSGlnaGxpZ2h0Q29sb3IoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIENvbG9yIHBs
YXRmb3JtSW5hY3RpdmVUZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtQWN0aXZlVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9y
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlVGV4
dFNlYXJjaEhpZ2hsaWdodENvbG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIENv
bG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IENvbG9yIHBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoKSBjb25zdCBvdmVycmlkZTsKIAogI2lmIEVO
QUJMRShUT1VDSF9FVkVOVFMpCi0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybVRhcEhpZ2hsaWdo
dENvbG9yKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybVRhcEhp
Z2hsaWdodENvbG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgYm9v
bCBwYWludEJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRS
ZWN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHBhaW50VGV4dEZpZWxkKFJlbmRlck9i
amVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGJvb2wgcGFpbnRUZXh0QXJlYShSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8m
LCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHBhaW50QnV0dG9u
KFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRUZXh0RmllbGQoUmVuZGVyT2JqZWN0KiwgY29uc3Qg
UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBw
YWludFRleHRBcmVhKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJl
Y3QmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBwYWludENoZWNrYm94KFJlbmRlck9i
amVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0Q2hlY2tib3hTaXplKFJlbmRlclN0eWxlKikgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBib29sIHBhaW50Q2hlY2tib3goUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFp
bnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRD
aGVja2JveFNpemUoUmVuZGVyU3R5bGUqKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwg
Ym9vbCBwYWludFJhZGlvKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IElu
dFJlY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UmFkaW9TaXplKFJlbmRlclN0
eWxlKikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHBhaW50UmFkaW8oUmVuZGVy
T2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBzZXRSYWRpb1NpemUoUmVuZGVyU3R5bGUqKSBjb25zdCBvdmVycmlkZTsK
IAotICAgIHZpcnR1YWwgYm9vbCBwYWludE1lbnVMaXN0KFJlbmRlck9iamVjdCosIGNvbnN0IFBh
aW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYWRq
dXN0TWVudUxpc3RTdHlsZShTdHlsZVJlc29sdmVyKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50Kikg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHBhaW50TWVudUxpc3RCdXR0b25EZWNv
cmF0aW9ucyhSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgSW50UmVjdCYgcmVjdCkgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRN
ZW51TGlzdChSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFkanVzdE1lbnVMaXN0U3R5bGUoU3R5bGVSZXNv
bHZlciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgYm9vbCBwYWludE1lbnVMaXN0QnV0dG9uRGVjb3JhdGlvbnMoUmVuZGVyT2JqZWN0KiByZW5k
ZXJlciwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpIG92
ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gcGFpbnRNZW51TGlzdChyZW5kZXJlciwgcGFp
bnRJbmZvLCByZWN0KTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0SW5uZXJTcGlu
QnV0dG9uU3R5bGUoU3R5bGVSZXNvbHZlciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBwYWludElubmVyU3BpbkJ1dHRvbihSZW5kZXJP
YmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIGFkanVzdElubmVyU3BpbkJ1dHRvblN0eWxlKFN0eWxlUmVzb2x2ZXIqLCBS
ZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
cGFpbnRJbm5lclNwaW5CdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29u
c3QgSW50UmVjdCYpIG92ZXJyaWRlOwogCiAjaWYgRU5BQkxFKFBST0dSRVNTX0VMRU1FTlQpCi0g
ICAgdmlydHVhbCB2b2lkIGFkanVzdFByb2dyZXNzQmFyU3R5bGUoU3R5bGVSZXNvbHZlciosIFJl
bmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBw
YWludFByb2dyZXNzQmFyKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IElu
dFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0UHJvZ3Jlc3NCYXJTdHls
ZShTdHlsZVJlc29sdmVyKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIHBhaW50UHJvZ3Jlc3NCYXIoUmVuZGVyT2JqZWN0KiwgY29uc3Qg
UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOwogI2VuZGlmCiAKICNpZiBFTkFC
TEUoTUVURVJfRUxFTUVOVCkKLSAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0TWV0ZXJTdHlsZShTdHls
ZVJlc29sdmVyKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIHBhaW50TWV0ZXIoUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwg
Y29uc3QgSW50UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RNZXRlclN0
eWxlKFN0eWxlUmVzb2x2ZXIqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZXRlcihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWlu
dEluZm8mLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShW
SURFTykKLSAgICB2aXJ0dWFsIFN0cmluZyBleHRyYU1lZGlhQ29udHJvbHNTdHlsZVNoZWV0KCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHVzZXNWZXJ0aWNhbFZvbHVtZVNsaWRlcigpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHVzZXNNZWRp
YUNvbnRyb2xTdGF0dXNEaXNwbGF5KCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZp
cnR1YWwgYm9vbCB1c2VzTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gZmFsc2U7IH0KLQotICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhUGxheUJ1dHRv
bihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFNdXRlQnV0dG9uKFJlbmRlck9iamVjdCos
IGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IGJvb2wgcGFpbnRNZWRpYVNlZWtCYWNrQnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50
SW5mbyYsIGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcGFpbnRN
ZWRpYVNlZWtGb3J3YXJkQnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNv
bnN0IEludFJlY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVNsaWRl
clRyYWNrKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5l
cihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFWb2x1bWVTbGlkZXJUcmFjayhSZW5kZXJP
YmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIHBhaW50TWVkaWFSZXdpbmRCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3Qg
UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5n
IGV4dHJhTWVkaWFDb250cm9sc1N0eWxlU2hlZXQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJv
b2wgdXNlc1ZlcnRpY2FsVm9sdW1lU2xpZGVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgdXNlc01lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXkoKSBv
dmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHVzZXNNZWRpYUNvbnRy
b2xWb2x1bWVTbGlkZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorCisgICAg
dmlydHVhbCBib29sIHBhaW50TWVkaWFQbGF5QnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBh
aW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcGFp
bnRNZWRpYU11dGVCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3Qg
SW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhU2Vla0JhY2tC
dXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhU2Vla0ZvcndhcmRCdXR0b24oUmVu
ZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhU2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiwgY29u
c3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9v
bCBwYWludE1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyKFJlbmRlck9iamVjdCosIGNvbnN0IFBh
aW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcGFp
bnRNZWRpYVZvbHVtZVNsaWRlclRyYWNrKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYs
IGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVJl
d2luZEJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0
Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgYm9vbCBwYWludFNsaWRlclRyYWNr
KFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2xpZGVyVHJhY2tTdHlsZShTdHlsZVJlc29sdmVy
KiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBi
b29sIHBhaW50U2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29u
c3QgSW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUcmFj
a1N0eWxlKFN0eWxlUmVzb2x2ZXIqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdCBvdmVy
cmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBwYWludFNsaWRlclRodW1iKFJlbmRlck9iamVjdCos
IGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgYWRqdXN0U2xpZGVyVGh1bWJTdHlsZShTdHlsZVJlc29sdmVyKiwgUmVuZGVyU3R5bGUq
LCBFbGVtZW50KikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHBhaW50U2xpZGVy
VGh1bWIoUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUaHVtYlN0eWxlKFN0eWxlUmVz
b2x2ZXIqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZp
cnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUqLCBFbGVtZW50Kikg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRodW1iU2l6ZShS
ZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdCBvdmVycmlkZTsKIAogI2lmIEVOQUJMRShEQVRB
TElTVF9FTEVNRU5UKQotICAgIHZpcnR1YWwgSW50U2l6ZSBzbGlkZXJUaWNrU2l6ZSgpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgaW50IHNsaWRlclRpY2tPZmZzZXRGcm9tVHJhY2tDZW50
ZXIoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgc2xpZGVyVGlja1Nu
YXBwaW5nVGhyZXNob2xkKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBJbnRTaXplIHNs
aWRlclRpY2tTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBpbnQgc2xpZGVyVGlj
a09mZnNldEZyb21UcmFja0NlbnRlcigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgTGF5
b3V0VW5pdCBzbGlkZXJUaWNrU25hcHBpbmdUaHJlc2hvbGQoKSBjb25zdCBvdmVycmlkZTsKIAot
ICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0RhdGFMaXN0VUkoY29uc3QgQXRvbWljU3RyaW5nJikg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRGF0YUxpc3RVSShjb25z
dCBBdG9taWNTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbml4L1Njcm9sbGJhclRoZW1lTml4Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvU2Nyb2xsYmFyVGhlbWVOaXguaAppbmRleCA2
ODRkZTljLi40ZmY1NDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgv
U2Nyb2xsYmFyVGhlbWVOaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uaXgvU2Ny
b2xsYmFyVGhlbWVOaXguaApAQCAtMzQsMTAgKzM0LDEwIEBAIGNsYXNzIFNjcm9sbGJhclRoZW1l
Tml4IDogcHVibGljIFNjcm9sbGJhclRoZW1lIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TY3Jv
bGxiYXJUaGVtZU5peCgpOwogCi0gICAgdmlydHVhbCBpbnQgc2Nyb2xsYmFyVGhpY2tuZXNzKFNj
cm9sbGJhckNvbnRyb2xTaXplID0gUmVndWxhclNjcm9sbGJhcikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBpbnQgc2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRyb2xTaXplID0gUmVndWxh
clNjcm9sbGJhcikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJTY3JvbGxi
YXIoU2Nyb2xsYmFyVGhlbWVDbGllbnQqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdW5y
ZWdpc3RlclNjcm9sbGJhcihTY3JvbGxiYXJUaGVtZUNsaWVudCopIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCByZWdpc3RlclNjcm9sbGJhcihTY3JvbGxiYXJUaGVtZUNsaWVudCopIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyU2Nyb2xsYmFyKFNjcm9sbGJhclRoZW1l
Q2xpZW50Kikgb3ZlcnJpZGU7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9M
b2NhbGVJQ1UuaAppbmRleCA3NjA2MzcyLi4xNTE5NzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvTG9jYWxlSUNVLmgKQEAgLTUwLDI1ICs1MCwyNSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB+TG9jYWxlSUNVKCk7CiAKICNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBF
UykKLSAgICB2aXJ0dWFsIFN0cmluZyBkYXRlRm9ybWF0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBTdHJpbmcgbW9udGhGb3JtYXQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBzaG9y
dE1vbnRoRm9ybWF0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgdGltZUZvcm1hdCgp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIHNob3J0VGltZUZvcm1hdCgpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgU3RyaW5nIGRhdGVUaW1lRm9ybWF0V2l0aFNlY29uZHMoKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIFN0cmluZyBkYXRlVGltZUZvcm1hdFdpdGhvdXRTZWNvbmRzKCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbW9udGhMYWJlbHMoKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzaG9ydE1vbnRoTGFi
ZWxzKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3RhbmRB
bG9uZU1vbnRoTGFiZWxzKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgc2hvcnRTdGFuZEFsb25lTW9udGhMYWJlbHMoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0aW1lQU1QTUxhYmVscygpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgU3RyaW5nIGRhdGVGb3JtYXQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBt
b250aEZvcm1hdCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIHNob3J0TW9udGhGb3Jt
YXQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyB0aW1lRm9ybWF0KCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBTdHJpbmcgc2hvcnRUaW1lRm9ybWF0KCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBTdHJpbmcgZGF0ZVRpbWVGb3JtYXRXaXRoU2Vjb25kcygpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgU3RyaW5nIGRhdGVUaW1lRm9ybWF0V2l0aG91dFNlY29uZHMoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBtb250aExhYmVscygpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNob3J0TW9udGhMYWJlbHMoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzdGFuZEFsb25lTW9udGhM
YWJlbHMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzaG9y
dFN0YW5kQWxvbmVNb250aExhYmVscygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIHRpbWVBTVBNTGFiZWxzKCkgb3ZlcnJpZGU7CiAjZW5kaWYKIAogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBMb2NhbGVJQ1UoY29uc3QgY2hhciopOwogICAgIFN0cmluZyBkZWNp
bWFsU3ltYm9sKFVOdW1iZXJGb3JtYXRTeW1ib2wpOwogICAgIFN0cmluZyBkZWNpbWFsVGV4dEF0
dHJpYnV0ZShVTnVtYmVyRm9ybWF0VGV4dEF0dHJpYnV0ZSk7Ci0gICAgdmlydHVhbCB2b2lkIGlu
aXRpYWxpemVMb2NhbGVEYXRhKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGluaXRpYWxp
emVMb2NhbGVEYXRhKCkgb3ZlcnJpZGU7CiAKICAgICBib29sIGRldGVjdFNpZ25BbmRHZXREaWdp
dFJhbmdlKGNvbnN0IFN0cmluZyYgaW5wdXQsIGJvb2wmIGlzTmVnYXRpdmUsIHVuc2lnbmVkJiBz
dGFydEluZGV4LCB1bnNpZ25lZCYgZW5kSW5kZXgpOwogICAgIHVuc2lnbmVkIG1hdGNoZWREZWNp
bWFsU3ltYm9sSW5kZXgoY29uc3QgU3RyaW5nJiBpbnB1dCwgdW5zaWduZWQmIHBvc2l0aW9uKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlTm9uZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZU5vbmUuY3BwCmluZGV4IGZmY2Vm
NGYuLmRjNzc1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9j
YWxlTm9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVOb25l
LmNwcApAQCAtMzUsMjAgKzM1LDIwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Mb2NhbGVOb25l
KCk7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVMb2NhbGVEYXRhKCkg
T1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVMb2NhbGVEYXRhKCkg
b3ZlcnJpZGUgRklOQUw7CiAjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCi0g
ICAgdmlydHVhbCBTdHJpbmcgZGF0ZUZvcm1hdCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3Ry
aW5nIG1vbnRoRm9ybWF0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgc2hvcnRNb250
aEZvcm1hdCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIHRpbWVGb3JtYXQoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBzaG9ydFRpbWVGb3JtYXQoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIFN0cmluZyBkYXRlVGltZUZvcm1hdFdpdGhTZWNvbmRzKCkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBTdHJpbmcgZGF0ZVRpbWVGb3JtYXRXaXRob3V0U2Vjb25kcygpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgY29uc3QgVmVjdG9yPFN0cmluZz4mIG1vbnRoTGFiZWxzKCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2hvcnRNb250aExhYmVscygp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHN0YW5kQWxvbmVN
b250aExhYmVscygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgY29uc3QgVmVjdG9yPFN0cmluZz4m
IHNob3J0U3RhbmRBbG9uZU1vbnRoTGFiZWxzKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgdGltZUFNUE1MYWJlbHMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IFN0cmluZyBkYXRlRm9ybWF0KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgbW9udGhG
b3JtYXQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBzaG9ydE1vbnRoRm9ybWF0KCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgdGltZUZvcm1hdCgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgU3RyaW5nIHNob3J0VGltZUZvcm1hdCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
U3RyaW5nIGRhdGVUaW1lRm9ybWF0V2l0aFNlY29uZHMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IFN0cmluZyBkYXRlVGltZUZvcm1hdFdpdGhvdXRTZWNvbmRzKCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbW9udGhMYWJlbHMoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzaG9ydE1vbnRoTGFiZWxzKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3RhbmRBbG9uZU1vbnRoTGFiZWxz
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2hvcnRTdGFu
ZEFsb25lTW9udGhMYWJlbHMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiB0aW1lQU1QTUxhYmVscygpIG92ZXJyaWRlOwogCiAgICAgVmVjdG9yPFN0cmluZz4g
bV90aW1lQU1QTUxhYmVsczsKICAgICBWZWN0b3I8U3RyaW5nPiBtX3Nob3J0TW9udGhMYWJlbHM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUuY3BwCmlu
ZGV4IDMwZjdhYjIuLjlkMDk3NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvUGxhdGZvcm1Mb2NhbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvUGxhdGZvcm1Mb2NhbGUuY3BwCkBAIC01MSw4ICs1MSw4IEBAIHB1YmxpYzoKIAogcHJpdmF0
ZToKICAgICAvLyBEYXRlVGltZUZvcm1hdDo6VG9rZW5IYW5kbGVyIGZ1bmN0aW9ucy4KLSAgICB2
aXJ0dWFsIHZvaWQgdmlzaXRGaWVsZChEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlLCBpbnQpIE9W
RVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCB2aXNpdExpdGVyYWwoY29uc3QgU3RyaW5n
JikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHZpc2l0RmllbGQoRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZSwgaW50KSBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQg
dmlzaXRMaXRlcmFsKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlIEZJTkFMOwogCiAgICAgU3RyaW5n
IHplcm9QYWRTdHJpbmcoY29uc3QgU3RyaW5nJiwgc2l6ZV90IHdpZHRoKTsKICAgICB2b2lkIGFw
cGVuZE51bWJlcihpbnQgbnVtYmVyLCBzaXplX3Qgd2lkdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMuaAppbmRleCA4NGE4ZmRiLi4wZjFkYzE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMuaApAQCAtNTIsMjkg
KzUyLDI5IEBAIHB1YmxpYzoKICAgICB+TG9jYWxlTWFjKCk7CiAKICNpZiBQTEFURk9STShJT1Mp
Ci0gICAgdmlydHVhbCBmbG9hdCBtYXhpbXVtV2lkdGhGb3JEYXRlVHlwZShEYXRlQ29tcG9uZW50
czo6VHlwZSwgY29uc3QgRm9udCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1h
dERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiwgRm9ybWF0VHlwZSA9IEZvcm1hdFR5cGVV
bnNwZWNpZmllZCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBmbG9hdCBtYXhpbXVtV2lkdGhGb3JE
YXRlVHlwZShEYXRlQ29tcG9uZW50czo6VHlwZSwgY29uc3QgRm9udCYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgU3RyaW5nIGZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiwgRm9y
bWF0VHlwZSA9IEZvcm1hdFR5cGVVbnNwZWNpZmllZCkgb3ZlcnJpZGU7CiAjZW5kaWYKIAogI2lm
IEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQotICAgIHZpcnR1YWwgU3RyaW5nIGRh
dGVGb3JtYXQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBtb250aEZvcm1hdCgpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIHNob3J0TW9udGhGb3JtYXQoKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIFN0cmluZyB0aW1lRm9ybWF0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBT
dHJpbmcgc2hvcnRUaW1lRm9ybWF0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgZGF0
ZVRpbWVGb3JtYXRXaXRoU2Vjb25kcygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIGRh
dGVUaW1lRm9ybWF0V2l0aG91dFNlY29uZHMoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBtb250aExhYmVscygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIHNob3J0TW9udGhMYWJlbHMoKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzdGFuZEFsb25lTW9udGhMYWJlbHMoKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzaG9ydFN0YW5kQWxvbmVNb250
aExhYmVscygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHRp
bWVBTVBNTGFiZWxzKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBTdHJpbmcgZGF0ZUZvcm1hdCgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIG1vbnRoRm9ybWF0KCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBTdHJpbmcgc2hvcnRNb250aEZvcm1hdCgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgU3RyaW5nIHRpbWVGb3JtYXQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBzaG9y
dFRpbWVGb3JtYXQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBkYXRlVGltZUZvcm1h
dFdpdGhTZWNvbmRzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgZGF0ZVRpbWVGb3Jt
YXRXaXRob3V0U2Vjb25kcygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgY29uc3QgVmVjdG9yPFN0
cmluZz4mIG1vbnRoTGFiZWxzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgc2hvcnRNb250aExhYmVscygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHN0YW5kQWxvbmVNb250aExhYmVscygpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNob3J0U3RhbmRBbG9uZU1vbnRoTGFiZWxzKCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdGltZUFNUE1MYWJl
bHMoKSBvdmVycmlkZTsKICNlbmRpZgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IExvY2FsZU1h
YyhOU0xvY2FsZSopOwogICAgIFJldGFpblB0cjxOU0RhdGVGb3JtYXR0ZXI+IHNob3J0RGF0ZUZv
cm1hdHRlcigpOwotICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplTG9jYWxlRGF0YSgpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplTG9jYWxlRGF0YSgpIG92ZXJyaWRlOwog
CiAgICAgUmV0YWluUHRyPE5TTG9jYWxlPiBtX2xvY2FsZTsKICAgICBSZXRhaW5QdHI8TlNDYWxl
bmRhcj4gbV9ncmVnb3JpYW5DYWxlbmRhcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC93aW4vTG9jYWxlV2luLmgKaW5kZXggN2FiMGJlMy4uZWRjZWVmYTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luL0xvY2FsZVdpbi5oCkBAIC00NywxOCArNDcsMTggQEAg
cHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPExvY2FsZVdpbj4gY3JlYXRlKExDSUQpOwog
ICAgIH5Mb2NhbGVXaW4oKTsKICNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykK
LSAgICB2aXJ0dWFsIFN0cmluZyBkYXRlRm9ybWF0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBT
dHJpbmcgbW9udGhGb3JtYXQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBzaG9ydE1v
bnRoRm9ybWF0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgdGltZUZvcm1hdCgpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIHNob3J0VGltZUZvcm1hdCgpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGRhdGVUaW1lRm9ybWF0V2l0aFNlY29uZHMoKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIFN0cmluZyBkYXRlVGltZUZvcm1hdFdpdGhvdXRTZWNvbmRzKCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbW9udGhMYWJlbHMoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzaG9ydE1vbnRoTGFiZWxz
KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3RhbmRBbG9u
ZU1vbnRoTGFiZWxzKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgc2hvcnRTdGFuZEFsb25lTW9udGhMYWJlbHMoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiB0aW1lQU1QTUxhYmVscygpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgU3RyaW5nIGRhdGVGb3JtYXQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBtb250
aEZvcm1hdCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIHNob3J0TW9udGhGb3JtYXQo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyB0aW1lRm9ybWF0KCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBTdHJpbmcgc2hvcnRUaW1lRm9ybWF0KCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBTdHJpbmcgZGF0ZVRpbWVGb3JtYXRXaXRoU2Vjb25kcygpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgU3RyaW5nIGRhdGVUaW1lRm9ybWF0V2l0aG91dFNlY29uZHMoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBtb250aExhYmVscygpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNob3J0TW9udGhMYWJlbHMoKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzdGFuZEFsb25lTW9udGhMYWJl
bHMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzaG9ydFN0
YW5kQWxvbmVNb250aExhYmVscygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIHRpbWVBTVBNTGFiZWxzKCkgb3ZlcnJpZGU7CiAKICAgICBzdGF0aWMgU3RyaW5n
IGRhdGVGb3JtYXQoY29uc3QgU3RyaW5nJik7CiAjZW5kaWYKQEAgLTcwLDcgKzcwLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGVuc3VyZVNob3J0TW9udGhMYWJlbHMoKTsKICAgICB2b2lkIGVuc3Vy
ZU1vbnRoTGFiZWxzKCk7CiAgICAgLy8gTG9jYWxlIGZ1bmN0aW9uOgotICAgIHZpcnR1YWwgdm9p
ZCBpbml0aWFsaXplTG9jYWxlRGF0YSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBpbml0
aWFsaXplTG9jYWxlRGF0YSgpIG92ZXJyaWRlOwogCiAgICAgTENJRCBtX2xjaWQ7CiAjaWYgRU5B
QkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vUG9wdXBNZW51V2luLmgKaW5kZXggMDU3MjkzNS4uZDBmY2E4YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaApAQCAtODgsMjEgKzg4LDIxIEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzZXRTY3JvbGxiYXJDYXB0dXJpbmdNb3VzZShib29sIGIpIHsgbV9zY3Jv
bGxiYXJDYXB0dXJpbmdNb3VzZSA9IGI7IH0KIAogICAgIC8vIFNjcm9sbGFibGVBcmVhCi0gICAg
dmlydHVhbCBpbnQgc2Nyb2xsU2l6ZShTY3JvbGxiYXJPcmllbnRhdGlvbikgY29uc3QgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBpbnQgc2Nyb2xsUG9zaXRpb24oU2Nyb2xsYmFyKikgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbE9mZnNldChjb25zdCBJbnRQb2ludCYp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3Jv
bGxiYXIqLCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGludmFs
aWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNvbnN0IEludFJlY3QmKSBPVkVSUklERSB7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgaXNBY3RpdmUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0g
ICAgU2Nyb2xsYWJsZUFyZWEqIGVuY2xvc2luZ1Njcm9sbGFibGVBcmVhKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1Njcm9sbENvcm5lclZpc2libGUo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgSW50UmVjdCBz
Y3JvbGxDb3JuZXJSZWN0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gSW50UmVjdCgpOyB9Ci0g
ICAgdmlydHVhbCBTY3JvbGxiYXIqIHZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gbV9zY3JvbGxiYXIuZ2V0KCk7IH0KLSAgICB2aXJ0dWFsIGludCB2aXNpYmxlSGVp
Z2h0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBpbnQgdmlzaWJsZVdpZHRoKCkgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJbnRTaXplIGNvbnRlbnRzU2l6ZSgpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgSW50UmVjdCBzY3JvbGxhYmxlQXJlYUJvdW5kaW5nQm94KCkg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHVwZGF0ZXNTY3JvbGxMYXllclBvc2l0
aW9uT25NYWluVGhyZWFkKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZp
cnR1YWwgaW50IHNjcm9sbFNpemUoU2Nyb2xsYmFyT3JpZW50YXRpb24pIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgaW50IHNjcm9sbFBvc2l0aW9uKFNjcm9sbGJhciopIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxPZmZzZXQoY29uc3QgSW50UG9pbnQmKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xs
YmFyKiwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlk
YXRlU2Nyb2xsQ29ybmVyUmVjdChjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGUgeyB9CisgICAgdmly
dHVhbCBib29sIGlzQWN0aXZlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAg
IFNjcm9sbGFibGVBcmVhKiBlbmNsb3NpbmdTY3JvbGxhYmxlQXJlYSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxDb3JuZXJWaXNpYmxlKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIEludFJlY3Qgc2Ny
b2xsQ29ybmVyUmVjdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEludFJlY3QoKTsgfQorICAg
IHZpcnR1YWwgU2Nyb2xsYmFyKiB2ZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIG1fc2Nyb2xsYmFyLmdldCgpOyB9CisgICAgdmlydHVhbCBpbnQgdmlzaWJsZUhlaWdo
dCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgaW50IHZpc2libGVXaWR0aCgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW50U2l6ZSBjb250ZW50c1NpemUoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIEludFJlY3Qgc2Nyb2xsYWJsZUFyZWFCb3VuZGluZ0JveCgpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVzU2Nyb2xsTGF5ZXJQb3NpdGlv
bk9uTWFpblRocmVhZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIC8v
IE5PVEU6IFRoaXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGJ5IHRoZSBvdmVycmlkZW4gc2V0U2Ny
b2xsT2Zmc2V0IGZyb20gU2Nyb2xsYWJsZUFyZWEuCiAgICAgdm9pZCBzY3JvbGxUbyhpbnQgb2Zm
c2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oIGIv
U291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXggNTYyZTJkYi4uOGEzNjYy
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTE4OCw3ICsxODgsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzaG93KCk7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBoaWRlKCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwYWludChHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBJbnRSZWN0Jik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjbGlwUmVj
dENoYW5nZWQoKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGNsaXBSZWN0Q2hhbmdl
ZCgpIG92ZXJyaWRlOwogCiAgICAgICAgIC8vIFRoaXMgbWV0aG9kIGlzIHVzZWQgYnkgcGx1Z2lu
cyBvbiBhbGwgcGxhdGZvcm1zIHRvIG9idGFpbiBhIGNsaXAgcmVjdCB0aGF0IGluY2x1ZGVzIGNs
aXBzIHNldCBieSBXZWJDb3JlLAogICAgICAgICAvLyBlLmcuLCBpbiBvdmVyZmxvdzphdXRvIHNl
Y3Rpb25zLiAgVGhlIGNsaXAgcmVjdHMgY29vcmRpbmF0ZXMgYXJlIGluIHRoZSBjb250YWluaW5n
IHdpbmRvdydzIGNvb3JkaW5hdGUgc3BhY2UuCkBAIC0xOTksNyArMTk5LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0UGFyZW50KFNjcm9sbFZpZXcqKTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHNldFBhcmVudFZpc2libGUoYm9vbCk7CiAKLSAgICAgICAg
dmlydHVhbCBib29sIGlzUGx1Z2luVmlldygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7
IH0KKyAgICAgICAgdmlydHVhbCBib29sIGlzUGx1Z2luVmlldygpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KIAogICAgICAgICBGcmFtZSogcGFyZW50RnJhbWUoKSBjb25zdCB7IHJl
dHVybiBtX3BhcmVudEZyYW1lLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9BdXRvVGFibGVMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9B
dXRvVGFibGVMYXlvdXQuaAppbmRleCA3MjE5ODE4Li40YzBjMzQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvQXV0b1RhYmxlTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0F1dG9UYWJsZUxheW91dC5oCkBAIC0zNiw5ICszNiw5IEBAIHB1YmxpYzoK
ICAgICBleHBsaWNpdCBBdXRvVGFibGVMYXlvdXQoUmVuZGVyVGFibGUqKTsKICAgICB2aXJ0dWFs
IH5BdXRvVGFibGVMYXlvdXQoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW50cmluc2lj
TG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5XaWR0aCwgTGF5b3V0VW5pdCYgbWF4V2lkdGgp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBhcHBseVByZWZlcnJlZExvZ2ljYWxXaWR0aFF1
aXJrcyhMYXlvdXRVbml0JiBtaW5XaWR0aCwgTGF5b3V0VW5pdCYgbWF4V2lkdGgpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluV2lkdGgs
IExheW91dFVuaXQmIG1heFdpZHRoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlQ
cmVmZXJyZWRMb2dpY2FsV2lkdGhRdWlya3MoTGF5b3V0VW5pdCYgbWluV2lkdGgsIExheW91dFVu
aXQmIG1heFdpZHRoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkg
b3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBmdWxsUmVjYWxjKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2xpcFBhdGhPcGVyYXRpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9DbGlwUGF0aE9wZXJhdGlvbi5oCmluZGV4IGE0ZDdiMjIuLmNhYjkx
ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DbGlwUGF0aE9wZXJhdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DbGlwUGF0aE9wZXJhdGlvbi5oCkBA
IC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIGZyYWdtZW50KCkgY29u
c3QgeyByZXR1cm4gbV9mcmFnbWVudDsgfQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IENsaXBQYXRoT3BlcmF0aW9uJiBvKSBjb25zdCBPVkVSUklERQorICAg
IHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENsaXBQYXRoT3BlcmF0aW9uJiBvKSBjb25z
dCBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKCFpc1NhbWVUeXBlKG8pKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtMTE2LDcgKzExNiw3IEBAIHB1YmxpYzoKICAgICBMYXlvdXRC
b3ggcmVmZXJlbmNlQm94KCkgY29uc3QgeyByZXR1cm4gbV9yZWZlcmVuY2VCb3g7IH0KIAogcHJp
dmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDbGlwUGF0aE9wZXJhdGlv
biYgbykgY29uc3QgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBD
bGlwUGF0aE9wZXJhdGlvbiYgbykgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmICgh
aXNTYW1lVHlwZShvKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE1Miw3ICsxNTIs
NyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0Qm94IHJlZmVyZW5jZUJveCgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVmZXJlbmNlQm94OyB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIG9wZXJhdG9y
PT0oY29uc3QgQ2xpcFBhdGhPcGVyYXRpb24mIG8pIGNvbnN0IE9WRVJSSURFCisgICAgdmlydHVh
bCBib29sIG9wZXJhdG9yPT0oY29uc3QgQ2xpcFBhdGhPcGVyYXRpb24mIG8pIGNvbnN0IG92ZXJy
aWRlCiAgICAgewogICAgICAgICBpZiAoIWlzU2FtZVR5cGUobykpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRWxsaXBzaXNC
b3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FbGxpcHNpc0JveC5oCmluZGV4IDcwYmY5
MGIuLjlkZjU5OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FbGxpcHNp
c0JveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FbGxpcHNpc0JveC5oCkBAIC0z
Miw3ICszMiw3IEBAIGNsYXNzIEVsbGlwc2lzQm94IEZJTkFMIDogcHVibGljIElubGluZUVsZW1l
bnRCb3ggewogcHVibGljOgogICAgIEVsbGlwc2lzQm94KFJlbmRlckJsb2NrRmxvdyYsIGNvbnN0
IEF0b21pY1N0cmluZyYgZWxsaXBzaXNTdHIsIElubGluZUZsb3dCb3gqIHBhcmVudCwgaW50IHdp
ZHRoLCBpbnQgaGVpZ2h0LCBpbnQgeSwgYm9vbCBmaXJzdExpbmUsIGJvb2wgaXNWZXJ0aWNhbCwg
SW5saW5lQm94KiBtYXJrdXBCb3gpOwogICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8m
LCBjb25zdCBMYXlvdXRQb2ludCYsIExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5l
Qm90dG9tKTsKLSAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVl
c3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29u
dGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIExheW91dFVuaXQg
bGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJv
b2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29u
c3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2lu
dCYgYWNjdW11bGF0ZWRPZmZzZXQsIExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5l
Qm90dG9tKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFNlbGVjdGlvblN0YXRlKFJlbmRlck9iamVj
dDo6U2VsZWN0aW9uU3RhdGUgcykgeyBtX3NlbGVjdGlvblN0YXRlID0gczsgfQogICAgIEludFJl
Y3Qgc2VsZWN0aW9uUmVjdCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaWx0
ZXJFZmZlY3RSZW5kZXJlci5oCmluZGV4IDM0MjJmMzMuLjA0YmNmNTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5oCkBAIC0xMDEsMTAgKzEw
MSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHNldEZpbHRlclJlZ2lvbihzb3VyY2VJbWFnZVJlY3Qp
OwogICAgICAgICBtX2dyYXBoaWNzQnVmZmVyQXR0YWNoZWQgPSBmYWxzZTsKICAgICB9Ci0gICAg
dmlydHVhbCBGbG9hdFJlY3Qgc291cmNlSW1hZ2VSZWN0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gbV9zb3VyY2VEcmF3aW5nUmVnaW9uOyB9CisgICAgdmlydHVhbCBGbG9hdFJlY3Qgc291cmNl
SW1hZ2VSZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zb3VyY2VEcmF3aW5nUmVnaW9u
OyB9CiAKICAgICB2b2lkIHNldEZpbHRlclJlZ2lvbihjb25zdCBGbG9hdFJlY3QmIGZpbHRlclJl
Z2lvbikgeyBtX2ZpbHRlclJlZ2lvbiA9IGZpbHRlclJlZ2lvbjsgfQotICAgIHZpcnR1YWwgRmxv
YXRSZWN0IGZpbHRlclJlZ2lvbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fZmlsdGVyUmVn
aW9uOyB9CisgICAgdmlydHVhbCBGbG9hdFJlY3QgZmlsdGVyUmVnaW9uKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9maWx0ZXJSZWdpb247IH0KIAogICAgIEdyYXBoaWNzQ29udGV4dCogaW5w
dXRDb250ZXh0KCk7CiAgICAgSW1hZ2VCdWZmZXIqIG91dHB1dCgpIGNvbnN0IHsgcmV0dXJuIGxh
c3RFZmZlY3QoKS0+YXNJbWFnZUJ1ZmZlcigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0ZpeGVkVGFibGVMYXlvdXQuaAppbmRleCBlZTllYTljLi45ZmE1NmQxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmgKQEAgLTM0LDggKzM0LDggQEAgY2xh
c3MgRml4ZWRUYWJsZUxheW91dCA6IHB1YmxpYyBUYWJsZUxheW91dCB7CiBwdWJsaWM6CiAgICAg
ZXhwbGljaXQgRml4ZWRUYWJsZUxheW91dChSZW5kZXJUYWJsZSopOwogCi0gICAgdmlydHVhbCB2
b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbldpZHRoLCBM
YXlvdXRVbml0JiBtYXhXaWR0aCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGFwcGx5UHJl
ZmVycmVkTG9naWNhbFdpZHRoUXVpcmtzKExheW91dFVuaXQmIG1pbldpZHRoLCBMYXlvdXRVbml0
JiBtYXhXaWR0aCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVJbnRy
aW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbldpZHRoLCBMYXlvdXRVbml0JiBtYXhX
aWR0aCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFwcGx5UHJlZmVycmVkTG9naWNhbFdp
ZHRoUXVpcmtzKExheW91dFVuaXQmIG1pbldpZHRoLCBMYXlvdXRVbml0JiBtYXhXaWR0aCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpOwogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUVsZW1lbnRCb3guaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVFbGVtZW50Qm94LmgKaW5kZXggOTg5YTM2MS4u
YzAzMDFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUVsZW1l
bnRCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRWxlbWVudEJveC5o
CkBAIC00NCwxNSArNDQsMTUgQEAgcHVibGljOgogCiAgICAgUmVuZGVyQm94TW9kZWxPYmplY3Qm
IHJlbmRlcmVyKCkgY29uc3QgeyByZXR1cm4gdG9SZW5kZXJCb3hNb2RlbE9iamVjdChJbmxpbmVC
b3g6OnJlbmRlcmVyKCkpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlTGluZSgpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBleHRyYWN0TGluZSgpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBhdHRhY2hMaW5lKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUxp
bmUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZXh0cmFjdExpbmUoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoTGluZSgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2
b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JiwgTGF5b3V0VW5pdCBsaW5l
VG9wLCBMYXlvdXRVbml0IGxpbmVCb3R0b20pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBu
b2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBI
aXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBh
Y2N1bXVsYXRlZE9mZnNldCwgTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVCb3R0
b20pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBM
YXlvdXRQb2ludCYsIExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVl
c3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29u
dGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIExheW91dFVuaXQg
bGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNJbmxpbmVFbGVtZW50Qm94KCkgY29uc3QgT1ZFUlJJREUgRklOQUwg
eyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0lubGluZUVsZW1lbnRCb3goKSBj
b25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiB0cnVlOyB9CiB9OwogCiBJTkxJTkVfQk9YX09C
SkVDVF9UWVBFX0NBU1RTKElubGluZUVsZW1lbnRCb3gsIGlzSW5saW5lRWxlbWVudEJveCgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmgKaW5kZXggZjEyOGMxNi4uZmJj
NTBjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3gu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5oCkBAIC03Miw4
ICs3Miw4IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWZuZGVmIE5ERUJVRwotICAgIHZpcnR1YWwg
dm9pZCBzaG93TGluZVRyZWVBbmRNYXJrKGNvbnN0IElubGluZUJveCogPSAwLCBjb25zdCBjaGFy
KiA9IDAsIGNvbnN0IElubGluZUJveCogPSAwLCBjb25zdCBjaGFyKiA9IDAsIGNvbnN0IFJlbmRl
ck9iamVjdCogPSAwLCBpbnQgPSAwKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGNvbnN0
IGNoYXIqIGJveE5hbWUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd0xp
bmVUcmVlQW5kTWFyayhjb25zdCBJbmxpbmVCb3gqID0gMCwgY29uc3QgY2hhciogPSAwLCBjb25z
dCBJbmxpbmVCb3gqID0gMCwgY29uc3QgY2hhciogPSAwLCBjb25zdCBSZW5kZXJPYmplY3QqID0g
MCwgaW50ID0gMCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiBib3hO
YW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIFJlbmRlckJveE1vZGVsT2JqZWN0
JiByZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIHRvUmVuZGVyQm94TW9kZWxPYmplY3QoSW5saW5l
Qm94OjpyZW5kZXJlcigpKTsgfQpAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAgICAgSW5saW5l
Qm94KiBmaXJzdENoaWxkKCkgY29uc3QgeyBjaGVja0NvbnNpc3RlbmN5KCk7IHJldHVybiBtX2Zp
cnN0Q2hpbGQ7IH0KICAgICBJbmxpbmVCb3gqIGxhc3RDaGlsZCgpIGNvbnN0IHsgY2hlY2tDb25z
aXN0ZW5jeSgpOyByZXR1cm4gbV9sYXN0Q2hpbGQ7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBpc0xl
YWYoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBpc0xlYWYoKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiBmYWxzZTsgfQogICAg
IAogICAgIElubGluZUJveCogZmlyc3RMZWFmQ2hpbGQoKSBjb25zdDsKICAgICBJbmxpbmVCb3gq
IGxhc3RMZWFmQ2hpbGQoKSBjb25zdDsKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGljOgogICAgIHR5
cGVkZWYgdm9pZCAoKkN1c3RvbUlubGluZUJveFJhbmdlUmV2ZXJzZSkodm9pZCogdXNlckRhdGEs
IFZlY3RvcjxJbmxpbmVCb3gqPjo6aXRlcmF0b3IgZmlyc3QsIFZlY3RvcjxJbmxpbmVCb3gqPjo6
aXRlcmF0b3IgbGFzdCk7CiAgICAgdm9pZCBjb2xsZWN0TGVhZkJveGVzSW5Mb2dpY2FsT3JkZXIo
VmVjdG9yPElubGluZUJveCo+JiwgQ3VzdG9tSW5saW5lQm94UmFuZ2VSZXZlcnNlIGN1c3RvbVJl
dmVyc2VJbXBsZW1lbnRhdGlvbiA9IDAsIHZvaWQqIHVzZXJEYXRhID0gMCkgY29uc3Q7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q29uc3RydWN0ZWQoKSBPVkVSUklERSBGSU5BTAorICAgIHZpcnR1
YWwgdm9pZCBzZXRDb25zdHJ1Y3RlZCgpIG92ZXJyaWRlIEZJTkFMCiAgICAgewogICAgICAgICBJ
bmxpbmVCb3g6OnNldENvbnN0cnVjdGVkKCk7CiAgICAgICAgIGZvciAoSW5saW5lQm94KiBjaGls
ZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRPbkxpbmUoKSkKQEAg
LTEwMywxNiArMTAzLDE2IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2b2lkIGFkZFRvTGluZShJ
bmxpbmVCb3gqIGNoaWxkKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlTGluZSgpIE9WRVJSSURF
IEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBleHRyYWN0TGluZSgpIE9WRVJSSURFIEZJTkFMOwot
ICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hMaW5lKCkgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVh
bCB2b2lkIGFkanVzdFBvc2l0aW9uKGZsb2F0IGR4LCBmbG9hdCBkeSkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIGRlbGV0ZUxpbmUoKSBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZv
aWQgZXh0cmFjdExpbmUoKSBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNo
TGluZSgpIG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RQb3NpdGlvbihm
bG9hdCBkeCwgZmxvYXQgZHkpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGV4dHJhY3RM
aW5lQm94RnJvbVJlbmRlck9iamVjdCgpOwogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hMaW5lQm94
VG9SZW5kZXJPYmplY3QoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlTGluZUJveEZyb21SZW5k
ZXJPYmplY3QoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBjbGVhclRydW5jYXRpb24oKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJUcnVuY2F0aW9uKCkgb3ZlcnJpZGU7CiAKICAgICBJ
bnRSZWN0IHJvdW5kZWRGcmFtZVJlY3QoKSBjb25zdDsKICAgICAKQEAgLTEyMSw4ICsxMjEsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBwYWludEZpbGxMYXllcnMoY29uc3QgUGFpbnRJbmZvJiwgY29u
c3QgQ29sb3ImLCBjb25zdCBGaWxsTGF5ZXIqLCBjb25zdCBMYXlvdXRSZWN0JiwgQ29tcG9zaXRl
T3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyKTsKICAgICB2b2lkIHBhaW50RmlsbExheWVy
KGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IENvbG9yJiwgY29uc3QgRmlsbExheWVyKiwgY29uc3Qg
TGF5b3V0UmVjdCYsIENvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3Zlcik7CiAg
ICAgdm9pZCBwYWludEJveFNoYWRvdyhjb25zdCBQYWludEluZm8mLCBjb25zdCBSZW5kZXJTdHls
ZSYsIFNoYWRvd1N0eWxlLCBjb25zdCBMYXlvdXRSZWN0Jik7Ci0gICAgdmlydHVhbCB2b2lkIHBh
aW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JiwgTGF5b3V0VW5pdCBsaW5lVG9wLCBM
YXlvdXRVbml0IGxpbmVCb3R0b20pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQ
b2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0
TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVs
YXRlZE9mZnNldCwgTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVCb3R0b20pIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQ
b2ludCYsIExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBI
aXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVy
LCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIExheW91dFVuaXQgbGluZVRv
cCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tKSBvdmVycmlkZTsKIAogICAgIGJvb2wgYm94U2hhZG93
Q2FuQmVBcHBsaWVkVG9CYWNrZ3JvdW5kKGNvbnN0IEZpbGxMYXllciYpIGNvbnN0OwogCkBAIC0y
MDQsMTAgKzIwNCwxMCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCByZW1vdmVDaGlsZChJbmxp
bmVCb3gqIGNoaWxkKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25TdGF0
ZSBzZWxlY3Rpb25TdGF0ZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0OjpT
ZWxlY3Rpb25TdGF0ZSBzZWxlY3Rpb25TdGF0ZSgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBi
b29sIGNhbkFjY29tbW9kYXRlRWxsaXBzaXMoYm9vbCBsdHIsIGludCBibG9ja0VkZ2UsIGludCBl
bGxpcHNpc1dpZHRoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIGZsb2F0IHBs
YWNlRWxsaXBzaXNCb3goYm9vbCBsdHIsIGZsb2F0IGJsb2NrTGVmdEVkZ2UsIGZsb2F0IGJsb2Nr
UmlnaHRFZGdlLCBmbG9hdCBlbGxpcHNpc1dpZHRoLCBmbG9hdCAmdHJ1bmNhdGVkV2lkdGgsIGJv
b2wmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuQWNjb21tb2RhdGVFbGxpcHNpcyhi
b29sIGx0ciwgaW50IGJsb2NrRWRnZSwgaW50IGVsbGlwc2lzV2lkdGgpIGNvbnN0IG92ZXJyaWRl
IEZJTkFMOworICAgIHZpcnR1YWwgZmxvYXQgcGxhY2VFbGxpcHNpc0JveChib29sIGx0ciwgZmxv
YXQgYmxvY2tMZWZ0RWRnZSwgZmxvYXQgYmxvY2tSaWdodEVkZ2UsIGZsb2F0IGVsbGlwc2lzV2lk
dGgsIGZsb2F0ICZ0cnVuY2F0ZWRXaWR0aCwgYm9vbCYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBo
YXNUZXh0Q2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBtX2hhc1RleHRDaGlsZHJlbjsgfQogICAg
IGJvb2wgaGFzVGV4dERlc2NlbmRhbnRzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNUZXh0RGVzY2Vu
ZGFudHM7IH0KQEAgLTI5NSw3ICsyOTUsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgot
ICAgIHZpcnR1YWwgYm9vbCBpc0lubGluZUZsb3dCb3goKSBjb25zdCBPVkVSUklERSBGSU5BTCB7
IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzSW5saW5lRmxvd0JveCgpIGNvbnN0
IG92ZXJyaWRlIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGJveE1vZGVsT2JqZWN0
KCkgY29uc3QgV1RGX0RFTEVURURfRlVOQ1RJT047CiAKICAgICB2b2lkIGFkZEJveFNoYWRvd1Zp
c3VhbE92ZXJmbG93KExheW91dFJlY3QmIGxvZ2ljYWxWaXN1YWxPdmVyZmxvdyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaAppbmRleCBiMGFhYjMxLi4wZDZkZGIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmgKQEAgLTc3LDcgKzc3LDcg
QEAgcHVibGljOgogCiAgICAgdW5zaWduZWQgc2hvcnQgdHJ1bmNhdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fdHJ1bmNhdGlvbjsgfQogCi0gICAgdmlydHVhbCB2b2lkIG1hcmtEaXJ0eShib29sIGRp
cnR5ID0gdHJ1ZSkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIG1hcmtEaXJ0eShi
b29sIGRpcnR5ID0gdHJ1ZSkgb3ZlcnJpZGUgRklOQUw7CiAKICAgICB1c2luZyBJbmxpbmVCb3g6
Omhhc0h5cGhlbjsKICAgICB1c2luZyBJbmxpbmVCb3g6OnNldEhhc0h5cGhlbjsKQEAgLTg2LDgg
Kzg2LDggQEAgcHVibGljOgogCiAgICAgc3RhdGljIGlubGluZSBib29sIGNvbXBhcmVCeVN0YXJ0
KGNvbnN0IElubGluZVRleHRCb3gqIGZpcnN0LCBjb25zdCBJbmxpbmVUZXh0Qm94KiBzZWNvbmQp
IHsgcmV0dXJuIGZpcnN0LT5zdGFydCgpIDwgc2Vjb25kLT5zdGFydCgpOyB9CiAKLSAgICB2aXJ0
dWFsIGludCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSkgY29uc3QgT1ZFUlJJREUgRklO
QUw7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IGxpbmVIZWlnaHQoKSBjb25zdCBPVkVSUklERSBG
SU5BTDsKKyAgICB2aXJ0dWFsIGludCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSkgY29u
c3Qgb3ZlcnJpZGUgRklOQUw7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IGxpbmVIZWlnaHQoKSBj
b25zdCBvdmVycmlkZSBGSU5BTDsKIAogICAgIGJvb2wgZ2V0RW1waGFzaXNNYXJrUG9zaXRpb24o
Y29uc3QgUmVuZGVyU3R5bGUmLCBUZXh0RW1waGFzaXNQb3NpdGlvbiYpIGNvbnN0OwogCkBAIC0x
MjAsMjIgKzEyMCwyMiBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQg
cGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmLCBMYXlvdXRVbml0IGxpbmVUb3As
IExheW91dFVuaXQgbGluZUJvdHRvbSk7Ci0gICAgdmlydHVhbCBib29sIG5vZGVBdFBvaW50KGNv
bnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlv
biYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zm
c2V0LCBMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUJvdHRvbSkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0
VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwg
Y29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBMYXlvdXRVbml0IGxpbmVUb3As
IExheW91dFVuaXQgbGluZUJvdHRvbSkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVh
bCB2b2lkIGRlbGV0ZUxpbmUoKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgZXh0
cmFjdExpbmUoKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoTGluZSgp
IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVMaW5lKCkgb3ZlcnJpZGUg
RklOQUw7CisgICAgdmlydHVhbCB2b2lkIGV4dHJhY3RMaW5lKCkgb3ZlcnJpZGUgRklOQUw7Cisg
ICAgdmlydHVhbCB2b2lkIGF0dGFjaExpbmUoKSBvdmVycmlkZSBGSU5BTDsKIAogcHVibGljOgot
ICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25TdGF0ZSBzZWxlY3Rpb25TdGF0ZSgp
IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25TdGF0
ZSBzZWxlY3Rpb25TdGF0ZSgpIG92ZXJyaWRlIEZJTkFMOwogCiBwcml2YXRlOgotICAgIHZpcnR1
YWwgdm9pZCBjbGVhclRydW5jYXRpb24oKSBPVkVSUklERSBGSU5BTCB7IG1fdHJ1bmNhdGlvbiA9
IGNOb1RydW5jYXRpb247IH0KLSAgICB2aXJ0dWFsIGZsb2F0IHBsYWNlRWxsaXBzaXNCb3goYm9v
bCBmbG93SXNMVFIsIGZsb2F0IHZpc2libGVMZWZ0RWRnZSwgZmxvYXQgdmlzaWJsZVJpZ2h0RWRn
ZSwgZmxvYXQgZWxsaXBzaXNXaWR0aCwgZmxvYXQgJnRydW5jYXRlZFdpZHRoLCBib29sJiBmb3Vu
ZEJveCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyVHJ1bmNhdGlvbigp
IG92ZXJyaWRlIEZJTkFMIHsgbV90cnVuY2F0aW9uID0gY05vVHJ1bmNhdGlvbjsgfQorICAgIHZp
cnR1YWwgZmxvYXQgcGxhY2VFbGxpcHNpc0JveChib29sIGZsb3dJc0xUUiwgZmxvYXQgdmlzaWJs
ZUxlZnRFZGdlLCBmbG9hdCB2aXNpYmxlUmlnaHRFZGdlLCBmbG9hdCBlbGxpcHNpc1dpZHRoLCBm
bG9hdCAmdHJ1bmNhdGVkV2lkdGgsIGJvb2wmIGZvdW5kQm94KSBvdmVycmlkZSBGSU5BTDsKIAog
cHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc0xpbmVCcmVhaygpIGNvbnN0IE9WRVJSSURFIEZJ
TkFMOworICAgIHZpcnR1YWwgYm9vbCBpc0xpbmVCcmVhaygpIGNvbnN0IG92ZXJyaWRlIEZJTkFM
OwogCiAgICAgdm9pZCBzZXRFeHBhbnNpb24oaW50IG5ld0V4cGFuc2lvbikKICAgICB7CkBAIC0x
NDUsMTEgKzE0NSwxMSBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwg
Ym9vbCBpc0lubGluZVRleHRCb3goKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0cnVl
OyB9CisgICAgdmlydHVhbCBib29sIGlzSW5saW5lVGV4dEJveCgpIGNvbnN0IG92ZXJyaWRlIEZJ
TkFMIHsgcmV0dXJuIHRydWU7IH0KIAogcHVibGljOgotICAgIHZpcnR1YWwgaW50IGNhcmV0TWlu
T2Zmc2V0KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCBpbnQgY2FyZXRNYXhP
ZmZzZXQoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGludCBjYXJldE1pbk9m
ZnNldCgpIGNvbnN0IG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgaW50IGNhcmV0TWF4T2Zm
c2V0KCkgY29uc3Qgb3ZlcnJpZGUgRklOQUw7CiAKIHByaXZhdGU6CiAgICAgZmxvYXQgdGV4dFBv
cygpIGNvbnN0OyAvLyByZXR1cm5zIHRoZSB4IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBsZWZ0
IHN0YXJ0IG9mIHRoZSB0ZXh0IGxpbmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5oCmluZGV4IDQxNTA1OTUuLjAyODIzOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5oCkBAIC03MiwxNiArNzIsMTYgQEAgcHVibGljOgogICAgIGJvb2wgYmVpbmdEZXN0
cm95ZWQoKSBjb25zdCB7IHJldHVybiBtX2JlaW5nRGVzdHJveWVkOyB9CiAKICAgICAvLyBUaGVz
ZSB0d28gZnVuY3Rpb25zIGFyZSBvdmVycmlkZGVuIGZvciBpbmxpbmUtYmxvY2suCi0gICAgdmly
dHVhbCBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25N
b2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBP
VkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIGludCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNl
bGluZSwgYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2Rl
ID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUs
IExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJy
aWRlIEZJTkFMOworICAgIHZpcnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5l
LCBib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQ
b3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgTGF5b3V0VW5p
dCBtaW5MaW5lSGVpZ2h0Rm9yUmVwbGFjZWRSZW5kZXJlcihib29sIGlzRmlyc3RMaW5lLCBMYXlv
dXRVbml0IHJlcGxhY2VkSGVpZ2h0KSBjb25zdDsKIAogICAgIC8vIEZJWE1FLUJMT0NLRkxPVzog
UmVtb3ZlIHZpcnR1YWxpemFpb24gd2hlbiBhbGwgY2FsbGVycyBoYXZlIG1vdmVkIHRvIFJlbmRl
ckJsb2NrRmxvdwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVMaW5lcygpOwogCi0gICAgdmlydHVh
bCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogbmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVm
b3JlQ2hpbGQgPSAwKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ2hpbGQoUmVu
ZGVyT2JqZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9i
amVjdCogbmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0Jikgb3ZlcnJpZGU7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlv
dXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2h0ID0gMCk7CiAKQEAgLTExOCw3ICsxMTgsNyBAQCBwdWJs
aWM6CiAgICAgYm9vbCBnZW5lcmF0ZXNMaW5lQm94ZXNGb3JJbmxpbmVDaGlsZChSZW5kZXJPYmpl
Y3QqKTsKIAogICAgIHZvaWQgbWFya1Bvc2l0aW9uZWRPYmplY3RzRm9yTGF5b3V0KCk7Ci0gICAg
dmlydHVhbCB2b2lkIG1hcmtGb3JQYWdpbmF0aW9uUmVsYXlvdXRJZk5lZWRlZCgpIE9WRVJSSURF
IEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBtYXJrRm9yUGFnaW5hdGlvblJlbGF5b3V0SWZOZWVk
ZWQoKSBvdmVycmlkZSBGSU5BTDsKICAgICAKICAgICAvLyBGSVhNRS1CTE9DS0ZMT1c6IFJlbW92
ZSB2aXJ0dWFsaXphaW9uIHdoZW4gYWxsIG9mIHRoZSBsaW5lIGxheW91dCBjb2RlIGhhcyBiZWVu
IG1vdmVkIG91dCBvZiBSZW5kZXJCbG9jawogICAgIHZpcnR1YWwgYm9vbCBjb250YWluc0Zsb2F0
cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkBAIC0xODYsMTAgKzE4NiwxMCBAQCBwdWJsaWM6
CiAKICAgICBMYXlvdXRVbml0IHRleHRJbmRlbnRPZmZzZXQoKSBjb25zdDsKIAotICAgIHZpcnR1
YWwgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbkZvclBvaW50KGNv
bnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgCiAgICAgLy8gQmxvY2sgZmxvd3Mgc3Vi
Y2xhc3MgYXZhaWxhYmxlV2lkdGggdG8gaGFuZGxlIG11bHRpIGNvbHVtbiBsYXlvdXQgKHNocmlu
a2luZyB0aGUgd2lkdGggYXZhaWxhYmxlIHRvIGNoaWxkcmVuIHdoZW4gbGF5aW5nIG91dC4pCi0g
ICAgdmlydHVhbCBMYXlvdXRVbml0IGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCgpIGNvbnN0IE9WRVJS
SURFIEZJTkFMOworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBhdmFpbGFibGVMb2dpY2FsV2lkdGgo
KSBjb25zdCBvdmVycmlkZSBGSU5BTDsKIAogICAgIExheW91dFBvaW50IGZsaXBGb3JXcml0aW5n
TW9kZUluY2x1ZGluZ0NvbHVtbnMoY29uc3QgTGF5b3V0UG9pbnQmKSBjb25zdDsKICAgICB2b2lk
IGFkanVzdFN0YXJ0RWRnZUZvcldyaXRpbmdNb2RlSW5jbHVkaW5nQ29sdW1ucyhMYXlvdXRSZWN0
JikgY29uc3Q7CkBAIC0yMDUsMTMgKzIwNSwxMyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0UmVjdCBs
b2dpY2FsUmVjdFRvUGh5c2ljYWxSZWN0KGNvbnN0IExheW91dFBvaW50JiBwaHlzaWNhbFBvc2l0
aW9uLCBjb25zdCBMYXlvdXRSZWN0JiBsb2dpY2FsUmVjdCk7CiAKICAgICB2b2lkIGFkanVzdFJl
Y3RGb3JDb2x1bW5zKExheW91dFJlY3QmKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0
Rm9yQ29sdW1ucyhMYXlvdXRTaXplJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBjb25zdCBPVkVSUklE
RSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0Rm9yQ29sdW1ucyhMYXlvdXRTaXplJiwg
Y29uc3QgTGF5b3V0UG9pbnQmKSBjb25zdCBvdmVycmlkZSBGSU5BTDsKICAgICB2b2lkIGFkanVz
dEZvckNvbHVtblJlY3QoTGF5b3V0U2l6ZSYgb2Zmc2V0LCBjb25zdCBMYXlvdXRQb2ludCYgbG9j
YXRpb25JbkNvbnRhaW5lcikgY29uc3Q7CiAKICAgICB2b2lkIGFkZENvbnRpbnVhdGlvbldpdGhP
dXRsaW5lKFJlbmRlcklubGluZSopOwogICAgIGJvb2wgcGFpbnRzQ29udGludWF0aW9uT3V0bGlu
ZShSZW5kZXJJbmxpbmUqKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyQm94TW9kZWxPYmplY3QqIHZp
cnR1YWxDb250aW51YXRpb24oKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBjb250aW51
YXRpb24oKTsgfQorICAgIHZpcnR1YWwgUmVuZGVyQm94TW9kZWxPYmplY3QqIHZpcnR1YWxDb250
aW51YXRpb24oKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiBjb250aW51YXRpb24oKTsg
fQogICAgIGJvb2wgaXNBbm9ueW1vdXNCbG9ja0NvbnRpbnVhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IGlzQW5vbnltb3VzQmxvY2soKSAmJiBjb250aW51YXRpb24oKTsgfQogICAgIFJlbmRlcklubGlu
ZSogaW5saW5lRWxlbWVudENvbnRpbnVhdGlvbigpIGNvbnN0OwogICAgIFJlbmRlckJsb2NrKiBi
bG9ja0VsZW1lbnRDb250aW51YXRpb24oKSBjb25zdDsKQEAgLTIyNyw3ICsyMjcsNyBAQCBwdWJs
aWM6CiAgICAgUmVuZGVyQmxvY2sqIGNyZWF0ZUFub255bW91c0NvbHVtblNwYW5CbG9jaygpIGNv
bnN0IHsgcmV0dXJuIGNyZWF0ZUFub255bW91c0NvbHVtblNwYW5XaXRoUGFyZW50UmVuZGVyZXIo
dGhpcyk7IH0KICAgICBzdGF0aWMgdm9pZCBjb2xsYXBzZUFub255bW91c0JveENoaWxkKFJlbmRl
ckJsb2NrKiBwYXJlbnQsIFJlbmRlckJsb2NrKiBjaGlsZCk7CiAKLSAgICB2aXJ0dWFsIFJlbmRl
ckJveCogY3JlYXRlQW5vbnltb3VzQm94V2l0aFNhbWVUeXBlQXMoY29uc3QgUmVuZGVyT2JqZWN0
KiBwYXJlbnQpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyQm94KiBjcmVhdGVB
bm9ueW1vdXNCb3hXaXRoU2FtZVR5cGVBcyhjb25zdCBSZW5kZXJPYmplY3QqIHBhcmVudCkgY29u
c3Qgb3ZlcnJpZGU7CiAKICAgICBzdGF0aWMgYm9vbCBzaG91bGRTa2lwQ3JlYXRpbmdSdW5zRm9y
T2JqZWN0KFJlbmRlck9iamVjdCogb2JqKQogICAgIHsKQEAgLTM1NywyNSArMzU3LDI1IEBAIHB1
YmxpYzoKICAgICBTaGFwZUluc2lkZUluZm8qIGxheW91dFNoYXBlSW5zaWRlSW5mbygpIGNvbnN0
OwogICAgIGJvb2wgYWxsb3dzU2hhcGVJbnNpZGVJbmZvU2hhcmluZygpIGNvbnN0IHsgcmV0dXJu
ICFpc0lubGluZSgpICYmICFpc0Zsb2F0aW5nKCk7IH0KICAgICBMYXlvdXRTaXplIGxvZ2ljYWxP
ZmZzZXRGcm9tU2hhcGVBbmNlc3RvckNvbnRhaW5lcihjb25zdCBSZW5kZXJCbG9jayogY29udGFp
bmVyKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0
ciwgY29uc3QgSW50UmVjdCogPSAwKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VD
aGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciwgY29uc3QgSW50UmVjdCogPSAwKSBvdmVycmlkZTsKICNl
bmRpZgogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUhpdFRlc3RSZXN1bHQoSGl0VGVzdFJlc3Vs
dCYsIGNvbnN0IExheW91dFBvaW50JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUhpdFRlc3RSZXN1bHQoSGl0VGVzdFJlc3VsdCYsIGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJp
ZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZv
aWQgd2lsbEJlRGVzdHJveWVkKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxCZURl
c3Ryb3llZCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgbGF5b3V0
UG9zaXRpb25lZE9iamVjdHMoYm9vbCByZWxheW91dENoaWxkcmVuLCBib29sIGZpeGVkUG9zaXRp
b25PYmplY3RzT25seSA9IGZhbHNlKTsKICAgICB2b2lkIG1hcmtGaXhlZFBvc2l0aW9uT2JqZWN0
Rm9yTGF5b3V0SWZOZWVkZWQoUmVuZGVyT2JqZWN0JiBjaGlsZCk7CiAKICAgICBMYXlvdXRVbml0
IG1hcmdpbkludHJpbnNpY0xvZ2ljYWxXaWR0aEZvckNoaWxkKFJlbmRlckJveCYpIGNvbnN0Owog
Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50T2JqZWN0KFBhaW50SW5mbyYsIGNvbnN0
IExheW91dFBvaW50JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5m
byYsIGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBhaW50
T2JqZWN0KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIHBhaW50Q2hpbGRyZW4oUGFpbnRJbmZvJiBmb3JTZWxmLCBjb25zdCBMYXlvdXRQ
b2ludCYsIFBhaW50SW5mbyYgZm9yQ2hpbGQsIGJvb2wgdXNlUHJpbnRSZWN0KTsKICAgICBib29s
IHBhaW50Q2hpbGQoUmVuZGVyQm94JiwgUGFpbnRJbmZvJiBmb3JTZWxmLCBjb25zdCBMYXlvdXRQ
b2ludCYsIFBhaW50SW5mbyYgZm9yQ2hpbGQsIGJvb2wgdXNlUHJpbnRSZWN0KTsKICAgIApAQCAt
Mzg4LDE0ICszODgsMTQgQEAgcHJvdGVjdGVkOgogICAgICAgICByZXR1cm4gYWRqdXN0TG9naWNh
bExlZnRPZmZzZXRGb3JMaW5lKGxvZ2ljYWxMZWZ0RmxvYXRPZmZzZXRGb3JMaW5lKGxvZ2ljYWxU
b3AsIGZpeGVkT2Zmc2V0LCBsb2dpY2FsSGVpZ2h0KSwgYXBwbHlUZXh0SW5kZW50KTsKICAgICB9
CiAKLSAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBI
aXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVy
LCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9W
RVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVz
dCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250
YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlv
bikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2ljYWxX
aWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBtYXhMb2dpY2Fs
V2lkdGgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVk
TG9naWNhbFdpZHRocygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW50cmlu
c2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExheW91dFVuaXQm
IG1heExvZ2ljYWxXaWR0aCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvbXB1
dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBhZGp1c3RJbnRy
aW5zaWNMb2dpY2FsV2lkdGhzRm9yQ29sdW1ucyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgs
IExheW91dFVuaXQmIG1heExvZ2ljYWxXaWR0aCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIGludCBm
aXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgaW50IGlubGlu
ZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgaW50IGZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBpbnQgaW5saW5lQmxvY2tCYXNlbGluZShMaW5lRGlyZWN0aW9uTW9kZSkgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICAvLyBEZWxheSB1cGRhdGUgc2Nyb2xsYmFyIHVudGlsIGZpbmlzaERlbGF5UmVw
YWludCgpIHdpbGwgYmUKICAgICAvLyBjYWxsZWQuIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB3aGVu
IGEgZmxleGJveCBpcyBsYXlpbmcgb3V0IGl0cwpAQCAtNDA4LDggKzQwOCw4IEBAIHByb3RlY3Rl
ZDoKICAgICB2b2lkIHVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dCgpOwogICAgIHZvaWQgcmVt
b3ZlRnJvbURlbGF5ZWRVcGRhdGVTY3JvbGxJbmZvU2V0KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0
eWxlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZm
ZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHls
ZSYgbmV3U3R5bGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShT
dHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgb3ZlcnJpZGU7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgaGFzTGluZUlmRW1wdHkoKSBjb25zdDsKICAgICAKQEAgLTQyOSw3
ICs0MjksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBhZGRPdmVyZmxvd0Zyb21Qb3NpdGlvbmVk
T2JqZWN0cygpOwogICAgIHZvaWQgYWRkVmlzdWFsT3ZlcmZsb3dGcm9tVGhlbWUoKTsKIAotICAg
IHZpcnR1YWwgdm9pZCBhZGRGb2N1c1JpbmdSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBjb25zdCBM
YXlvdXRQb2ludCYgYWRkaXRpb25hbE9mZnNldCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcGFpbnRDb250YWluZXIgPSAwKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkRm9j
dXNSaW5nUmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9u
YWxPZmZzZXQsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHBhaW50Q29udGFpbmVyID0g
MCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGFkZEZvY3VzUmluZ1JlY3RzRm9ySW5saW5l
Q2hpbGRyZW4oVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxP
ZmZzZXQsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHBhaW50Q29udGFpbmVyKTsKIAog
ICAgIGJvb2wgdXBkYXRlU2hhcGVzQmVmb3JlQmxvY2tMYXlvdXQoKTsKQEAgLTQ1OCw5ICs0NTgs
OSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVsYXlvdXRTaGFwZURlc2NlbmRhbnRJZk1vdmVkKFJl
bmRlckJsb2NrKiBjaGlsZCwgTGF5b3V0U2l6ZSBvZmZzZXQpOwogI2VuZGlmCiAKLSAgICB2aXJ0
dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwg
Ym9vbCBpc0lubGluZUJsb2NrT3JJbmxpbmVUYWJsZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsg
cmV0dXJuIGlzSW5saW5lKCkgJiYgaXNSZXBsYWNlZCgpOyB9CisgICAgdmlydHVhbCBib29sIGlz
SW5saW5lQmxvY2tPcklubGluZVRhYmxlKCkgY29uc3Qgb3ZlcnJpZGUgRklOQUwgeyByZXR1cm4g
aXNJbmxpbmUoKSAmJiBpc1JlcGxhY2VkKCk7IH0KIAogICAgIHZvaWQgbWFrZUNoaWxkcmVuTm9u
SW5saW5lKFJlbmRlck9iamVjdCogaW5zZXJ0aW9uUG9pbnQgPSBudWxscHRyKTsKICAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlTGVmdG92ZXJBbm9ueW1vdXNCbG9jayhSZW5kZXJCbG9jayogY2hpbGQp
OwpAQCAtNDY5LDEyICs0NjksMTIgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgbW92ZUFs
bENoaWxkcmVuSW5jbHVkaW5nRmxvYXRzVG8oUmVuZGVyQmxvY2sqIHRvQmxvY2ssIGJvb2wgZnVs
bFJlbW92ZUluc2VydCkgeyBtb3ZlQWxsQ2hpbGRyZW5Ubyh0b0Jsb2NrLCBmdWxsUmVtb3ZlSW5z
ZXJ0KTsgfQogCiAgICAgdm9pZCBhZGRDaGlsZFRvQ29udGludWF0aW9uKFJlbmRlck9iamVjdCog
bmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpOwotICAgIHZpcnR1YWwgdm9pZCBh
ZGRDaGlsZElnbm9yaW5nQ29udGludWF0aW9uKFJlbmRlck9iamVjdCogbmV3Q2hpbGQsIFJlbmRl
ck9iamVjdCogYmVmb3JlQ2hpbGQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhZGRDaGls
ZElnbm9yaW5nQ29udGludWF0aW9uKFJlbmRlck9iamVjdCogbmV3Q2hpbGQsIFJlbmRlck9iamVj
dCogYmVmb3JlQ2hpbGQpIG92ZXJyaWRlOwogICAgIHZvaWQgYWRkQ2hpbGRUb0Fub255bW91c0Nv
bHVtbkJsb2NrcyhSZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNo
aWxkKTsKIAogICAgIHZvaWQgYWRkQ2hpbGRJZ25vcmluZ0Fub255bW91c0NvbHVtbkJsb2NrcyhS
ZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCk7CiAg
ICAgCi0gICAgdmlydHVhbCBib29sIGlzU2VsZkNvbGxhcHNpbmdCbG9jaygpIGNvbnN0IE9WRVJS
SURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBpc1NlbGZDb2xsYXBzaW5nQmxvY2soKSBjb25z
dCBvdmVycmlkZSBGSU5BTDsKICAgICAvLyBGSVhNRS1CTE9DS0ZMT1c6IFJlbW92ZSB2aXJ0dWFs
aXphaW9uIHdoZW4gYWxsIGNhbGxlcnMgaGF2ZSBtb3ZlZCB0byBSZW5kZXJCbG9ja0Zsb3cKICAg
ICB2aXJ0dWFsIGJvb2wgaGFzTGluZXMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCkBAIC00
OTgsNyArNDk4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhaW50U2VsZWN0aW9uKFBhaW50SW5m
byYsIGNvbnN0IExheW91dFBvaW50Jik7CiAgICAgdm9pZCBwYWludENhcmV0KFBhaW50SW5mbyYs
IGNvbnN0IExheW91dFBvaW50JiwgQ2FyZXRUeXBlKTsKIAotICAgIHZpcnR1YWwgYm9vbCBhdm9p
ZHNGbG9hdHMoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgYXZvaWRzRmxvYXRz
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBib29sIGhpdFRlc3RDb2x1bW5zKGNvbnN0IEhpdFRl
c3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRp
b25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRU
ZXN0QWN0aW9uKTsKICAgICB2aXJ0dWFsIGJvb2wgaGl0VGVzdENvbnRlbnRzKGNvbnN0IEhpdFRl
c3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRp
b25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRU
ZXN0QWN0aW9uKTsKQEAgLTUxNCwyMCArNTE0LDIwIEBAIHByaXZhdGU6CiAKICAgICAvLyBPYnRh
aW5zIHRoZSBuZWFyZXN0IGVuY2xvc2luZyBibG9jayAoaW5jbHVkaW5nIHRoaXMgYmxvY2spIHRo
YXQgY29udHJpYnV0ZXMgYSBmaXJzdC1saW5lIHN0eWxlIHRvIG91ciBpbmxpbmUKICAgICAvLyBj
aGlsZHJlbi4KLSAgICB2aXJ0dWFsIFJlbmRlckJsb2NrKiBmaXJzdExpbmVCbG9jaygpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyQmxvY2sqIGZpcnN0TGluZUJsb2NrKCkgY29u
c3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIExheW91dFJlY3QgcmVjdFdpdGhPdXRsaW5lRm9y
UmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBM
YXlvdXRVbml0IG91dGxpbmVXaWR0aCkgY29uc3QgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVh
bCBjb25zdCBSZW5kZXJTdHlsZSYgb3V0bGluZVN0eWxlRm9yUmVwYWludCgpIGNvbnN0IE9WRVJS
SURFIEZJTkFMOworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCByZWN0V2l0aE91dGxpbmVGb3JSZXBh
aW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91
dFVuaXQgb3V0bGluZVdpZHRoKSBjb25zdCBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0dWFsIGNv
bnN0IFJlbmRlclN0eWxlJiBvdXRsaW5lU3R5bGVGb3JSZXBhaW50KCkgY29uc3Qgb3ZlcnJpZGUg
RklOQUw7CiAgICAgCi0gICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBob3ZlckFuY2VzdG9yKCkg
Y29uc3QgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZURyYWdTdGF0ZShi
b29sIGRyYWdPbikgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIGNoaWxkQmVjYW1l
Tm9uSW5saW5lKFJlbmRlck9iamVjdCogY2hpbGQpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1
YWwgUmVuZGVyRWxlbWVudCogaG92ZXJBbmNlc3RvcigpIGNvbnN0IG92ZXJyaWRlIEZJTkFMOwor
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVEcmFnU3RhdGUoYm9vbCBkcmFnT24pIG92ZXJyaWRlIEZJ
TkFMOworICAgIHZpcnR1YWwgdm9pZCBjaGlsZEJlY2FtZU5vbklubGluZShSZW5kZXJPYmplY3Qq
IGNoaWxkKSBvdmVycmlkZSBGSU5BTDsKIAotICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBzZWxlY3Rp
b25SZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBib29sIC8qY2xpcFRvVmlzaWJsZUNvbnRlbnQqLykgT1ZFUlJJREUgRklOQUwKKyAg
ICB2aXJ0dWFsIExheW91dFJlY3Qgc2VsZWN0aW9uUmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCAvKmNsaXBUb1Zpc2libGVD
b250ZW50Ki8pIG92ZXJyaWRlIEZJTkFMCiAgICAgewogICAgICAgICByZXR1cm4gc2VsZWN0aW9u
R2FwUmVjdHNGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIpOwogICAgIH0KLSAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkUGFpbnRTZWxlY3Rpb25HYXBzKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7Cisg
ICAgdmlydHVhbCBib29sIHNob3VsZFBhaW50U2VsZWN0aW9uR2FwcygpIGNvbnN0IG92ZXJyaWRl
IEZJTkFMOwogICAgIGJvb2wgaXNTZWxlY3Rpb25Sb290KCkgY29uc3Q7CiAgICAgR2FwUmVjdHMg
c2VsZWN0aW9uR2FwcyhSZW5kZXJCbG9jayYgcm9vdEJsb2NrLCBjb25zdCBMYXlvdXRQb2ludCYg
cm9vdEJsb2NrUGh5c2ljYWxQb3NpdGlvbiwgY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0RnJvbVJv
b3RCbG9jaywKICAgICAgICAgTGF5b3V0VW5pdCYgbGFzdExvZ2ljYWxUb3AsIExheW91dFVuaXQm
IGxhc3RMb2dpY2FsTGVmdCwgTGF5b3V0VW5pdCYgbGFzdExvZ2ljYWxSaWdodCwgY29uc3QgTG9n
aWNhbFNlbGVjdGlvbk9mZnNldENhY2hlcyYsIGNvbnN0IFBhaW50SW5mbyogPSAwKTsKQEAgLTU0
MywxNSArNTQzLDE1IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNsaXBPdXRGbG9hdGlu
Z09iamVjdHMoUmVuZGVyQmxvY2smLCBjb25zdCBQYWludEluZm8qLCBjb25zdCBMYXlvdXRQb2lu
dCYsIGNvbnN0IExheW91dFNpemUmKSB7IH07CiAgICAgZnJpZW5kIGNsYXNzIExvZ2ljYWxTZWxl
Y3Rpb25PZmZzZXRDYWNoZXM7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0
b3I8SW50UmVjdD4mLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1
YWQ+JiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBh
YnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVs
YXRlZE9mZnNldCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVh
ZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBib29sKiB3YXNGaXhlZCkgY29uc3Qgb3ZlcnJpZGU7CiAK
ICAgICBMYXlvdXRVbml0IGRlc2lyZWRDb2x1bW5XaWR0aCgpIGNvbnN0OwogICAgIHVuc2lnbmVk
IGRlc2lyZWRDb2x1bW5Db3VudCgpIGNvbnN0OwogCiAgICAgdm9pZCBwYWludENvbnRpbnVhdGlv
bk91dGxpbmVzKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CiAKLSAgICB2aXJ0dWFs
IExheW91dFJlY3QgbG9jYWxDYXJldFJlY3QoSW5saW5lQm94KiwgaW50IGNhcmV0T2Zmc2V0LCBM
YXlvdXRVbml0KiBleHRyYVdpZHRoVG9FbmRPZkxpbmUgPSAwKSBPVkVSUklERSBGSU5BTDsKKyAg
ICB2aXJ0dWFsIExheW91dFJlY3QgbG9jYWxDYXJldFJlY3QoSW5saW5lQm94KiwgaW50IGNhcmV0
T2Zmc2V0LCBMYXlvdXRVbml0KiBleHRyYVdpZHRoVG9FbmRPZkxpbmUgPSAwKSBvdmVycmlkZSBG
SU5BTDsKIAogICAgIHZvaWQgYWRqdXN0UG9pbnRUb0NvbHVtbkNvbnRlbnRzKExheW91dFBvaW50
JikgY29uc3Q7CiAgICAgCkBAIC01OTcsNyArNTk3LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1
YWwgYm9vbCBjYW5Db2xsYXBzZUFub255bW91c0Jsb2NrQ2hpbGQoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CiAKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgb2Zmc2V0RnJvbUxvZ2lj
YWxUb3BPZkZpcnN0UGFnZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgTGF5b3V0VW5p
dCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
UmVuZGVyUmVnaW9uKiByZWdpb25BdEJsb2NrT2Zmc2V0KExheW91dFVuaXQpIGNvbnN0OwogCiAg
ICAgLy8gRklYTUU6IFRoaXMgaXMgdGVtcG9yYXJ5IHRvIGFsbG93IHVzIHRvIG1vdmUgY29kZSBm
cm9tIFJlbmRlckJsb2NrIGludG8gUmVuZGVyQmxvY2tGbG93IHRoYXQgYWNjZXNzZXMgbWVtYmVy
IHZhcmlhYmxlcyB0aGF0IHdlIGhhdmVuJ3QgbW92ZWQgb3V0IG9mCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgKaW5kZXggMjk1NzA5NS4uYzVkMzVmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaApAQCAtNTYsMTEgKzU2LDEx
IEBAIHB1YmxpYzoKICAgICBSZW5kZXJCbG9ja0Zsb3coRG9jdW1lbnQmLCBQYXNzUmVmPFJlbmRl
clN0eWxlPik7CiAgICAgdmlydHVhbCB+UmVuZGVyQmxvY2tGbG93KCk7CiAgICAgICAgIAotICAg
IHZpcnR1YWwgdm9pZCBsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVu
aXQgcGFnZUxvZ2ljYWxIZWlnaHQgPSAwKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbGF5
b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVp
Z2h0ID0gMCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0
ZWRJbnRvVHJlZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQo
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvVHJlZSgpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZTsKICAgICAKICAg
ICAvLyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYXQgdGhlIHN0YXJ0IG9mIGxheW91dCB0byB3aXBl
IGF3YXkgYWxsIG9mIHRoZSBmbG9hdHMgaW4gb3VyIGZsb2F0aW5nIG9iamVjdHMgbGlzdC4gSXQg
YWxzbwogICAgIC8vIHJlcG9wdWxhdGVzIHRoZSBsaXN0IHdpdGggYW55IGZsb2F0cyB0aGF0IGlu
dHJ1ZGUgZnJvbSBwcmV2aW91cyBzaWJsaW5ncyBvciBwYXJlbnRzLiBGbG9hdHMgdGhhdCB3ZXJl
IGFkZGVkIGJ5CkBAIC03NCwxMSArNzQsMTEgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgbGF5b3V0
SW5saW5lQ2hpbGRyZW4oYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0JiByZXBhaW50
TG9naWNhbFRvcCwgTGF5b3V0VW5pdCYgcmVwYWludExvZ2ljYWxCb3R0b20pOwogCiAgICAgLy8g
UmVuZGVyQmxvY2tGbG93cyBvdmVycmlkZSB0aGVzZSBtZXRob2RzLCBzaW5jZSB0aGV5IGFyZSB0
aGUgb25seSBjbGFzcyB0aGF0IHN1cHBvcnRzIG1hcmdpbiBjb2xsYXBzaW5nLgotICAgIHZpcnR1
YWwgTGF5b3V0VW5pdCBjb2xsYXBzZWRNYXJnaW5CZWZvcmUoKSBjb25zdCBPVkVSUklERSBGSU5B
TCB7IHJldHVybiBtYXhQb3NpdGl2ZU1hcmdpbkJlZm9yZSgpIC0gbWF4TmVnYXRpdmVNYXJnaW5C
ZWZvcmUoKTsgfQotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBjb2xsYXBzZWRNYXJnaW5BZnRlcigp
IGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIG1heFBvc2l0aXZlTWFyZ2luQWZ0ZXIoKSAt
IG1heE5lZ2F0aXZlTWFyZ2luQWZ0ZXIoKTsgfQorICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBjb2xs
YXBzZWRNYXJnaW5CZWZvcmUoKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiBtYXhQb3Np
dGl2ZU1hcmdpbkJlZm9yZSgpIC0gbWF4TmVnYXRpdmVNYXJnaW5CZWZvcmUoKTsgfQorICAgIHZp
cnR1YWwgTGF5b3V0VW5pdCBjb2xsYXBzZWRNYXJnaW5BZnRlcigpIGNvbnN0IG92ZXJyaWRlIEZJ
TkFMIHsgcmV0dXJuIG1heFBvc2l0aXZlTWFyZ2luQWZ0ZXIoKSAtIG1heE5lZ2F0aXZlTWFyZ2lu
QWZ0ZXIoKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpcnR5TGluZXNGcm9tQ2hhbmdlZENoaWxk
KFJlbmRlck9iamVjdCogY2hpbGQpIE9WRVJSSURFIEZJTkFMIHsgbGluZUJveGVzKCkuZGlydHlM
aW5lc0Zyb21DaGFuZ2VkQ2hpbGQodGhpcywgY2hpbGQpOyB9Ci0gICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZUxvZ2ljYWxIZWlnaHQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlydHlMaW5l
c0Zyb21DaGFuZ2VkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCkgb3ZlcnJpZGUgRklOQUwgeyBs
aW5lQm94ZXMoKS5kaXJ0eUxpbmVzRnJvbUNoYW5nZWRDaGlsZCh0aGlzLCBjaGlsZCk7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlTG9naWNhbEhlaWdodCgpIG92ZXJyaWRlOwogCiBwdWJsaWM6
CiAgICAgY2xhc3MgTWFyZ2luVmFsdWVzIHsKQEAgLTI1Nyw3ICsyNTcsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBkaWRCcmVha0F0TGluZVRvQXZvaWRXaWRvdygpIGNvbnN0IHsgcmV0dXJuIGhhc1Jh
cmVCbG9ja0Zsb3dEYXRhKCkgJiYgcmFyZUJsb2NrRmxvd0RhdGEoKS0+bV9kaWRCcmVha0F0TGlu
ZVRvQXZvaWRXaWRvdzsgfQogICAgIGJvb2wgcmVsYXlvdXRUb0F2b2lkV2lkb3dzKExheW91dFN0
YXRlTWFpbnRhaW5lciYpOwogCi0gICAgdmlydHVhbCBib29sIGNhbkhhdmVHZW5lcmF0ZWRDaGls
ZHJlbigpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlR2VuZXJhdGVk
Q2hpbGRyZW4oKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFJvb3RJbmxpbmVCb3gqIGxpbmVHcmlk
Qm94KCkgY29uc3QgeyByZXR1cm4gaGFzUmFyZUJsb2NrRmxvd0RhdGEoKSA/IHJhcmVCbG9ja0Zs
b3dEYXRhKCktPm1fbGluZUdyaWRCb3guZ2V0KCkgOiBudWxscHRyOyB9CiAgICAgdm9pZCBzZXRM
aW5lR3JpZEJveChzdGQ6OnVuaXF1ZV9wdHI8Um9vdElubGluZUJveD4gYm94KQpAQCAtMjY5LDEy
ICsyNjksMTIgQEAgcHVibGljOgogICAgIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KiByZW5kZXJO
YW1lZEZsb3dGcmFnbWVudCgpIGNvbnN0IHsgcmV0dXJuIGhhc1JhcmVCbG9ja0Zsb3dEYXRhKCkg
PyByYXJlQmxvY2tGbG93RGF0YSgpLT5tX3JlbmRlck5hbWVkRmxvd0ZyYWdtZW50IDogbnVsbHB0
cjsgfQogICAgIHZvaWQgc2V0UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQoUmVuZGVyTmFtZWRGbG93
RnJhZ21lbnQqKTsKIAotICAgIGJvb2wgY29udGFpbnNGbG9hdHMoKSBjb25zdCBPVkVSUklERSB7
IHJldHVybiBtX2Zsb2F0aW5nT2JqZWN0cyAmJiAhbV9mbG9hdGluZ09iamVjdHMtPnNldCgpLmlz
RW1wdHkoKTsgfQorICAgIGJvb2wgY29udGFpbnNGbG9hdHMoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX2Zsb2F0aW5nT2JqZWN0cyAmJiAhbV9mbG9hdGluZ09iamVjdHMtPnNldCgpLmlzRW1w
dHkoKTsgfQogICAgIGJvb2wgY29udGFpbnNGbG9hdChSZW5kZXJCb3gmKSBjb25zdDsKIAotICAg
IHZpcnR1YWwgdm9pZCBkZWxldGVMaW5lcygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBj
b21wdXRlT3ZlcmZsb3coTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2UsIGJvb2wgcmVjb21w
dXRlRmxvYXRzID0gZmFsc2UpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9u
IHBvc2l0aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGVsZXRlTGluZXMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0
ZU92ZXJmbG93KExheW91dFVuaXQgb2xkQ2xpZW50QWZ0ZXJFZGdlLCBib29sIHJlY29tcHV0ZUZs
b2F0cyA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBwb3Np
dGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHJl
bW92ZUZsb2F0aW5nT2JqZWN0cygpOwogICAgIHZvaWQgbWFya0FsbERlc2NlbmRhbnRzV2l0aEZs
b2F0c0ZvckxheW91dChSZW5kZXJCb3gqIGZsb2F0VG9SZW1vdmUgPSBudWxscHRyLCBib29sIGlu
TGF5b3V0ID0gdHJ1ZSk7CkBAIC0zMzMsNyArMzMzLDcgQEAgcHVibGljOgogICAgIFJvb3RJbmxp
bmVCb3gqIGZpcnN0Um9vdEJveCgpIGNvbnN0IHsgcmV0dXJuIHRvUm9vdElubGluZUJveChtX2xp
bmVCb3hlcy5maXJzdExpbmVCb3goKSk7IH0KICAgICBSb290SW5saW5lQm94KiBsYXN0Um9vdEJv
eCgpIGNvbnN0IHsgcmV0dXJuIHRvUm9vdElubGluZUJveChtX2xpbmVCb3hlcy5sYXN0TGluZUJv
eCgpKTsgfQogCi0gICAgdmlydHVhbCBib29sIGhhc0xpbmVzKCkgY29uc3QgT1ZFUlJJREUgRklO
QUw7CisgICAgdmlydHVhbCBib29sIGhhc0xpbmVzKCkgY29uc3Qgb3ZlcnJpZGUgRklOQUw7CiAK
ICAgICAvLyBIZWxwZXIgbWV0aG9kcyBmb3IgY29tcHV0aW5nIGxpbmUgY291bnRzIGFuZCBoZWln
aHRzIGZvciBsaW5lIGNvdW50cy4KICAgICBSb290SW5saW5lQm94KiBsaW5lQXRJbmRleChpbnQp
IGNvbnN0OwpAQCAtMzUxLDcgKzM1MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuc3VyZUxpbmVC
b3hlcygpOwogCiAjaWZuZGVmIE5ERUJVRwotICAgIHZpcnR1YWwgdm9pZCBzaG93TGluZVRyZWVB
bmRNYXJrKGNvbnN0IElubGluZUJveCogPSBudWxscHRyLCBjb25zdCBjaGFyKiA9IG51bGxwdHIs
IGNvbnN0IElubGluZUJveCogPSBudWxscHRyLCBjb25zdCBjaGFyKiA9IG51bGxwdHIsIGNvbnN0
IFJlbmRlck9iamVjdCogPSBudWxscHRyKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2hvd0xpbmVUcmVlQW5kTWFyayhjb25zdCBJbmxpbmVCb3gqID0gbnVsbHB0ciwgY29uc3Qg
Y2hhciogPSBudWxscHRyLCBjb25zdCBJbmxpbmVCb3gqID0gbnVsbHB0ciwgY29uc3QgY2hhciog
PSBudWxscHRyLCBjb25zdCBSZW5kZXJPYmplY3QqID0gbnVsbHB0cikgY29uc3Qgb3ZlcnJpZGU7
CiAjZW5kaWYKIAogICAgIC8vIFJldHVybnMgdGhlIGxvZ2ljYWxPZmZzZXQgYXQgdGhlIHRvcCBv
ZiB0aGUgbmV4dCBwYWdlLiBJZiB0aGUgb2Zmc2V0IHBhc3NlZCBpbiBpcyBhbHJlYWR5IGF0IHRo
ZSB0b3Agb2YgdGhlIGN1cnJlbnQgcGFnZSwKQEAgLTQxMiwyMSArNDEyLDIxIEBAIHByb3RlY3Rl
ZDoKICAgICBib29sIG11c3RTZXBhcmF0ZU1hcmdpbkJlZm9yZUZvckNoaWxkKGNvbnN0IFJlbmRl
ckJveCYpIGNvbnN0OwogICAgIGJvb2wgbXVzdFNlcGFyYXRlTWFyZ2luQWZ0ZXJGb3JDaGlsZChj
b25zdCBSZW5kZXJCb3gmKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCBzdHlsZVdpbGxDaGFu
Z2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3U3R5bGUpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0
IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHN0eWxl
V2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5j
ZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBvdmVycmlkZTsKIAogICAgIHZvaWQgY3Jl
YXRlRmxvYXRpbmdPYmplY3RzKCk7CiAKLSAgICB2aXJ0dWFsIGludCBmaXJzdExpbmVCYXNlbGlu
ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgaW50IGlubGluZUJsb2NrQmFzZWxpbmUo
TGluZURpcmVjdGlvbk1vZGUpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgaW50IGZpcnN0
TGluZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBpbnQgaW5saW5lQmxv
Y2tCYXNlbGluZShMaW5lRGlyZWN0aW9uTW9kZSkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6
Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50SW5saW5lQ2hpbGRyZW4oUGFpbnRJbmZvJiwgY29uc3Qg
TGF5b3V0UG9pbnQmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRGbG9hdHMoUGFp
bnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmLCBib29sIHByZXNlcnZlUGhhc2UgPSBmYWxzZSkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhaW50SW5saW5lQ2hpbGRyZW4oUGFpbnRJbmZv
JiwgY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRG
bG9hdHMoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmLCBib29sIHByZXNlcnZlUGhhc2Ug
PSBmYWxzZSkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbW92ZUFsbENoaWxkcmVuSW5j
bHVkaW5nRmxvYXRzVG8oUmVuZGVyQmxvY2sqIHRvQmxvY2ssIGJvb2wgZnVsbFJlbW92ZUluc2Vy
dCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlcGFpbnRPdmVyaGFuZ2luZ0Zsb2F0cyhi
b29sIHBhaW50QWxsRGVzY2VuZGFudHMpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9p
ZCBjbGlwT3V0RmxvYXRpbmdPYmplY3RzKFJlbmRlckJsb2NrJiwgY29uc3QgUGFpbnRJbmZvKiwg
Y29uc3QgTGF5b3V0UG9pbnQmLCBjb25zdCBMYXlvdXRTaXplJikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIG1vdmVBbGxDaGlsZHJlbkluY2x1ZGluZ0Zsb2F0c1RvKFJlbmRlckJsb2NrKiB0
b0Jsb2NrLCBib29sIGZ1bGxSZW1vdmVJbnNlcnQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCByZXBhaW50T3ZlcmhhbmdpbmdGbG9hdHMoYm9vbCBwYWludEFsbERlc2NlbmRhbnRzKSBvdmVy
cmlkZSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xpcE91dEZsb2F0aW5nT2JqZWN0cyhSZW5k
ZXJCbG9jayYsIGNvbnN0IFBhaW50SW5mbyosIGNvbnN0IExheW91dFBvaW50JiwgY29uc3QgTGF5
b3V0U2l6ZSYpIG92ZXJyaWRlOwogCiAgICAgRmxvYXRpbmdPYmplY3QqIGluc2VydEZsb2F0aW5n
T2JqZWN0KFJlbmRlckJveCYpOwogICAgIHZvaWQgcmVtb3ZlRmxvYXRpbmdPYmplY3QoUmVuZGVy
Qm94Jik7CkBAIC00MzksOCArNDM5LDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgbmV3TGluZShF
Q2xlYXIpOwogCi0gICAgdmlydHVhbCBMYXlvdXRVbml0IGxvZ2ljYWxSaWdodEZsb2F0T2Zmc2V0
Rm9yTGluZShMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgZml4ZWRPZmZzZXQsIExh
eW91dFVuaXQgbG9naWNhbEhlaWdodCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBMYXlv
dXRVbml0IGxvZ2ljYWxMZWZ0RmxvYXRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgbG9naWNhbFRv
cCwgTGF5b3V0VW5pdCBmaXhlZE9mZnNldCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0KSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbG9naWNhbFJpZ2h0RmxvYXRPZmZz
ZXRGb3JMaW5lKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBmaXhlZE9mZnNldCwg
TGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExh
eW91dFVuaXQgbG9naWNhbExlZnRGbG9hdE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBsb2dpY2Fs
VG9wLCBMYXlvdXRVbml0IGZpeGVkT2Zmc2V0LCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpIGNv
bnN0IG92ZXJyaWRlOwogCiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsUmlnaHRPZmZzZXRGb3JQb3Np
dGlvbmluZ0Zsb2F0KExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBmaXhlZE9mZnNl
dCwgYm9vbCBhcHBseVRleHRJbmRlbnQsIExheW91dFVuaXQqIGhlaWdodFJlbWFpbmluZykgY29u
c3Q7CiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdE9mZnNldEZvclBvc2l0aW9uaW5nRmxvYXQo
TGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGZpeGVkT2Zmc2V0LCBib29sIGFwcGx5
VGV4dEluZGVudCwgTGF5b3V0VW5pdCogaGVpZ2h0UmVtYWluaW5nKSBjb25zdDsKQEAgLTQ1NSw4
ICs0NTUsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgaGFzT3ZlcmhhbmdpbmdGbG9hdHMoKSB7IHJl
dHVybiBwYXJlbnQoKSAmJiAhaGFzQ29sdW1ucygpICYmIGNvbnRhaW5zRmxvYXRzKCkgJiYgbG93
ZXN0RmxvYXRMb2dpY2FsQm90dG9tKCkgPiBsb2dpY2FsSGVpZ2h0KCk7IH0KICAgICBMYXlvdXRV
bml0IGdldENsZWFyRGVsdGEoUmVuZGVyQm94JiBjaGlsZCwgTGF5b3V0VW5pdCB5UG9zKTsKIAot
ICAgIHZpcnR1YWwgYm9vbCBoaXRUZXN0RmxvYXRzKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0
VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwg
Y29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgaGl0VGVzdElubGluZUNoaWxkcmVuKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0
VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwg
Y29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaGl0VGVzdEZsb2F0cyhjb25zdCBIaXRUZXN0UmVxdWVz
dCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250
YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBib29sIGhpdFRlc3RJbmxpbmVDaGlsZHJlbihjb25zdCBIaXRUZXN0UmVxdWVz
dCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250
YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlv
bikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGFkZE92ZXJmbG93RnJvbUZsb2F0cygpOwogICAgIHZp
cnR1YWwgdm9pZCBhZGRPdmVyZmxvd0Zyb21JbmxpbmVDaGlsZHJlbigpOwpAQCAtNDY3LDExICs0
NjcsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIG1hcmtMaW5lc0RpcnR5SW5CbG9ja1JhbmdlKExh
eW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsQm90dG9tLCBSb290SW5saW5l
Qm94KiBoaWdoZXN0ID0gMCk7CiAKICAgICB2aXJ0dWFsIEdhcFJlY3RzIGlubGluZVNlbGVjdGlv
bkdhcHMoUmVuZGVyQmxvY2smIHJvb3RCbG9jaywgY29uc3QgTGF5b3V0UG9pbnQmIHJvb3RCbG9j
a1BoeXNpY2FsUG9zaXRpb24sIGNvbnN0IExheW91dFNpemUmIG9mZnNldEZyb21Sb290QmxvY2ss
Ci0gICAgICAgIExheW91dFVuaXQmIGxhc3RMb2dpY2FsVG9wLCBMYXlvdXRVbml0JiBsYXN0TG9n
aWNhbExlZnQsIExheW91dFVuaXQmIGxhc3RMb2dpY2FsUmlnaHQsIGNvbnN0IExvZ2ljYWxTZWxl
Y3Rpb25PZmZzZXRDYWNoZXMmLCBjb25zdCBQYWludEluZm8qKSBPVkVSUklERTsKKyAgICAgICAg
TGF5b3V0VW5pdCYgbGFzdExvZ2ljYWxUb3AsIExheW91dFVuaXQmIGxhc3RMb2dpY2FsTGVmdCwg
TGF5b3V0VW5pdCYgbGFzdExvZ2ljYWxSaWdodCwgY29uc3QgTG9naWNhbFNlbGVjdGlvbk9mZnNl
dENhY2hlcyYsIGNvbnN0IFBhaW50SW5mbyopIG92ZXJyaWRlOwogICAgIAogICAgIFBvc2l0aW9u
IHBvc2l0aW9uRm9yQm94KElubGluZUJveCosIGJvb2wgc3RhcnQgPSB0cnVlKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbkZvclBvaW50V2l0aElubGluZUNoaWxk
cmVuKGNvbnN0IExheW91dFBvaW50JiBwb2ludEluTG9naWNhbENvbnRlbnRzKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgYWRkRm9jdXNSaW5nUmVjdHNGb3JJbmxpbmVDaGlsZHJlbihWZWN0
b3I8SW50UmVjdD4mIHJlY3RzLCBjb25zdCBMYXlvdXRQb2ludCYgYWRkaXRpb25hbE9mZnNldCwg
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgVmlz
aWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9yUG9pbnRXaXRoSW5saW5lQ2hpbGRyZW4oY29uc3QgTGF5
b3V0UG9pbnQmIHBvaW50SW5Mb2dpY2FsQ29udGVudHMpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBhZGRGb2N1c1JpbmdSZWN0c0ZvcklubGluZUNoaWxkcmVuKFZlY3RvcjxJbnRSZWN0PiYg
cmVjdHMsIGNvbnN0IExheW91dFBvaW50JiBhZGRpdGlvbmFsT2Zmc2V0LCBjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0Kikgb3ZlcnJpZGU7CiAKIC8vIEZJWE1FLUJMT0NLRkxPVzogVGhlc2Ug
bWV0aG9kcyBoYXZlIGltcGxlbWVudGF0aW9ucyBpbgogLy8gUmVuZGVyQmxvY2tMaW5lTGF5b3V0
LiBUaGV5IHNob3VsZCBiZSBtb3ZlZCB0byB0aGUgcHJvcGVyIGhlYWRlciBvbmNlIHRoZQpAQCAt
NTMwLDcgKzUzMCw3IEBAIHByaXZhdGU6CiAvLyBFTkQgTUVUSE9EUyBERUZJTkVEIElOIFJlbmRl
ckJsb2NrTGluZUxheW91dAogCiAgICAgYm9vbCBuYW1lZEZsb3dGcmFnbWVudE5lZWRzVXBkYXRl
KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCBvdmVycmlkZTsK
IAogI2lmIEVOQUJMRShJT1NfVEVYVF9BVVRPU0laSU5HKQogICAgIGludCBtX3dpZHRoRm9yVGV4
dEF1dG9zaXppbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggMzRhNDk0
MS4uODQ3NWI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtNTAsMTQg
KzUwLDE0IEBAIHB1YmxpYzoKIAogICAgIC8vIGhhc0F1dG9aSW5kZXggb25seSByZXR1cm5zIHRy
dWUgaWYgdGhlIGVsZW1lbnQgaXMgcG9zaXRpb25lZCBvciBhIGZsZXgtaXRlbSBzaW5jZQogICAg
IC8vIHBvc2l0aW9uOnN0YXRpYyBlbGVtZW50cyB0aGF0IGFyZSBub3QgZmxleC1pdGVtcyBnZXQg
dGhlaXIgei1pbmRleCBjb2VyY2VkIHRvIGF1dG8uCi0gICAgdmlydHVhbCBib29sIHJlcXVpcmVz
TGF5ZXIoKSBjb25zdCBPVkVSUklERQorICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkg
Y29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiBpc1Jvb3QoKSB8fCBpc1Bvc2l0
aW9uZWQoKSB8fCBjcmVhdGVzR3JvdXAoKSB8fCBoYXNDbGlwUGF0aCgpIHx8IGhhc092ZXJmbG93
Q2xpcCgpCiAgICAgICAgICAgICB8fCBoYXNUcmFuc2Zvcm0oKSB8fCBoYXNIaWRkZW5CYWNrZmFj
ZSgpIHx8IGhhc1JlZmxlY3Rpb24oKSB8fCBzdHlsZSgpLnNwZWNpZmllc0NvbHVtbnMoKQogICAg
ICAgICAgICAgfHwgIXN0eWxlKCkuaGFzQXV0b1pJbmRleCgpOwogICAgIH0KIAotICAgIHZpcnR1
YWwgYm9vbCBiYWNrZ3JvdW5kSXNLbm93blRvQmVPcGFxdWVJblJlY3QoY29uc3QgTGF5b3V0UmVj
dCYgbG9jYWxSZWN0KSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wgYmFj
a2dyb3VuZElzS25vd25Ub0JlT3BhcXVlSW5SZWN0KGNvbnN0IExheW91dFJlY3QmIGxvY2FsUmVj
dCkgY29uc3Qgb3ZlcnJpZGUgRklOQUw7CiAKICAgICAvLyBVc2UgdGhpcyB3aXRoIGNhdXRpb24h
IE5vIHR5cGUgY2hlY2tpbmcgaXMgZG9uZSEKICAgICBSZW5kZXJCb3gqIGZpcnN0Q2hpbGRCb3go
KSBjb25zdDsKQEAgLTE1NSw3ICsxNTUsNyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0UmVjdCBib3Jk
ZXJCb3hSZWN0KCkgY29uc3QgeyByZXR1cm4gTGF5b3V0UmVjdChMYXlvdXRQb2ludCgpLCBzaXpl
KCkpOyB9CiAgICAgTGF5b3V0UmVjdCBwYWRkaW5nQm94UmVjdCgpIGNvbnN0IHsgcmV0dXJuIExh
eW91dFJlY3QoYm9yZGVyTGVmdCgpLCBib3JkZXJUb3AoKSwgY29udGVudFdpZHRoKCkgKyBwYWRk
aW5nTGVmdCgpICsgcGFkZGluZ1JpZ2h0KCksIGNvbnRlbnRIZWlnaHQoKSArIHBhZGRpbmdUb3Ao
KSArIHBhZGRpbmdCb3R0b20oKSk7IH0KICAgICBJbnRSZWN0IHBpeGVsU25hcHBlZEJvcmRlckJv
eFJlY3QoKSBjb25zdCB7IHJldHVybiBJbnRSZWN0KEludFBvaW50KCksIG1fZnJhbWVSZWN0LnBp
eGVsU25hcHBlZFNpemUoKSk7IH0KLSAgICB2aXJ0dWFsIEludFJlY3QgYm9yZGVyQm91bmRpbmdC
b3goKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBwaXhlbFNuYXBwZWRCb3JkZXJCb3hS
ZWN0KCk7IH0KKyAgICB2aXJ0dWFsIEludFJlY3QgYm9yZGVyQm91bmRpbmdCb3goKSBjb25zdCBv
dmVycmlkZSBGSU5BTCB7IHJldHVybiBwaXhlbFNuYXBwZWRCb3JkZXJCb3hSZWN0KCk7IH0KIAog
ICAgIFJvdW5kZWRSZWN0OjpSYWRpaSBib3JkZXJSYWRpaSgpIGNvbnN0OwogCkBAIC0xNzEsOCAr
MTcxLDggQEAgcHVibGljOgogICAgIExheW91dFJlY3QgY29tcHV0ZWRDU1NDb250ZW50Qm94UmVj
dCgpIGNvbnN0IHsgcmV0dXJuIExheW91dFJlY3QoYm9yZGVyTGVmdCgpICsgY29tcHV0ZWRDU1NQ
YWRkaW5nTGVmdCgpLCBib3JkZXJUb3AoKSArIGNvbXB1dGVkQ1NTUGFkZGluZ1RvcCgpLCBjbGll
bnRXaWR0aCgpIC0gY29tcHV0ZWRDU1NQYWRkaW5nTGVmdCgpIC0gY29tcHV0ZWRDU1NQYWRkaW5n
UmlnaHQoKSwgY2xpZW50SGVpZ2h0KCkgLSBjb21wdXRlZENTU1BhZGRpbmdUb3AoKSAtIGNvbXB1
dGVkQ1NTUGFkZGluZ0JvdHRvbSgpKTsgfQogCiAgICAgLy8gQm91bmRzIG9mIHRoZSBvdXRsaW5l
IGJveCBpbiBhYnNvbHV0ZSBjb29yZHMuIFJlc3BlY3RzIHRyYW5zZm9ybXMKLSAgICB2aXJ0dWFs
IExheW91dFJlY3Qgb3V0bGluZUJvdW5kc0ZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogLypyZXBhaW50Q29udGFpbmVyKi8sIGNvbnN0IFJlbmRlckdlb21ldHJ5TWFwKikg
Y29uc3QgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIGFkZEZvY3VzUmluZ1JlY3Rz
KFZlY3RvcjxJbnRSZWN0PiYsIGNvbnN0IExheW91dFBvaW50JiBhZGRpdGlvbmFsT2Zmc2V0LCBj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBwYWludENvbnRhaW5lciA9IDApIE9WRVJSSURF
OworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBvdXRsaW5lQm91bmRzRm9yUmVwYWludChjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiAvKnJlcGFpbnRDb250YWluZXIqLywgY29uc3QgUmVuZGVy
R2VvbWV0cnlNYXAqKSBjb25zdCBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRk
Rm9jdXNSaW5nUmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0
aW9uYWxPZmZzZXQsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHBhaW50Q29udGFpbmVy
ID0gMCkgb3ZlcnJpZGU7CiAKICAgICAvLyBVc2UgdGhpcyB3aXRoIGNhdXRpb24hIE5vIHR5cGUg
Y2hlY2tpbmcgaXMgZG9uZSEKICAgICBSZW5kZXJCb3gqIHByZXZpb3VzU2libGluZ0JveCgpIGNv
bnN0OwpAQCAtMjExLDExICsyMTEsMTEgQEAgcHVibGljOgogCiAgICAgLy8gSUUgZXh0ZW5zaW9u
cy4gVXNlZCB0byBjYWxjdWxhdGUgb2Zmc2V0V2lkdGgvSGVpZ2h0LiAgT3ZlcnJpZGRlbiBieSBp
bmxpbmVzIChSZW5kZXJGbG93KQogICAgIC8vIHRvIHJldHVybiB0aGUgcmVtYWluaW5nIHdpZHRo
IG9uIGEgZ2l2ZW4gbGluZSAoYW5kIHRoZSBoZWlnaHQgb2YgYSBzaW5nbGUgbGluZSkuCi0gICAg
dmlydHVhbCBMYXlvdXRVbml0IG9mZnNldFdpZHRoKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
d2lkdGgoKTsgfQotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBvZmZzZXRIZWlnaHQoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBoZWlnaHQoKTsgfQorICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBvZmZz
ZXRXaWR0aCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHdpZHRoKCk7IH0KKyAgICB2aXJ0dWFs
IExheW91dFVuaXQgb2Zmc2V0SGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gaGVpZ2h0
KCk7IH0KIAotICAgIHZpcnR1YWwgaW50IHBpeGVsU25hcHBlZE9mZnNldFdpZHRoKCkgY29uc3Qg
T1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCBpbnQgcGl4ZWxTbmFwcGVkT2Zmc2V0SGVpZ2h0
KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBpbnQgcGl4ZWxTbmFwcGVkT2Zm
c2V0V2lkdGgoKSBjb25zdCBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0dWFsIGludCBwaXhlbFNu
YXBwZWRPZmZzZXRIZWlnaHQoKSBjb25zdCBvdmVycmlkZSBGSU5BTDsKIAogICAgIC8vIE1vcmUg
SUUgZXh0ZW5zaW9ucy4gIGNsaWVudFdpZHRoIGFuZCBjbGllbnRIZWlnaHQgcmVwcmVzZW50IHRo
ZSBpbnRlcmlvciBvZiBhbiBvYmplY3QKICAgICAvLyBleGNsdWRpbmcgYm9yZGVyIGFuZCBzY3Jv
bGxiYXIuICBjbGllbnRMZWZ0L1RvcCBhcmUganVzdCB0aGUgYm9yZGVyTGVmdFdpZHRoIGFuZCBi
b3JkZXJUb3BXaWR0aC4KQEAgLTI0MywxMCArMjQzLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxUb3Ao
aW50KTsKIAotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5Ub3AoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBtX21hcmdpbkJveC50b3AoKTsgfQotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBt
YXJnaW5Cb3R0b20oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX21hcmdpbkJveC5ib3R0b20o
KTsgfQotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5MZWZ0KCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gbV9tYXJnaW5Cb3gubGVmdCgpOyB9Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IG1h
cmdpblJpZ2h0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9tYXJnaW5Cb3gucmlnaHQoKTsg
fQorICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5Ub3AoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX21hcmdpbkJveC50b3AoKTsgfQorICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5C
b3R0b20oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX21hcmdpbkJveC5ib3R0b20oKTsgfQor
ICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5MZWZ0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9tYXJnaW5Cb3gubGVmdCgpOyB9CisgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpblJp
Z2h0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9tYXJnaW5Cb3gucmlnaHQoKTsgfQogICAg
IHZvaWQgc2V0TWFyZ2luVG9wKExheW91dFVuaXQgbWFyZ2luKSB7IG1fbWFyZ2luQm94LnNldFRv
cChtYXJnaW4pOyB9CiAgICAgdm9pZCBzZXRNYXJnaW5Cb3R0b20oTGF5b3V0VW5pdCBtYXJnaW4p
IHsgbV9tYXJnaW5Cb3guc2V0Qm90dG9tKG1hcmdpbik7IH0KICAgICB2b2lkIHNldE1hcmdpbkxl
ZnQoTGF5b3V0VW5pdCBtYXJnaW4pIHsgbV9tYXJnaW5Cb3guc2V0TGVmdChtYXJnaW4pOyB9CkBA
IC0yNTUsMTQgKzI1NSwxNCBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdCBtYXJnaW5Mb2dpY2Fs
TGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFyZ2luQm94LmxvZ2ljYWxMZWZ0KHN0eWxlKCkud3Jp
dGluZ01vZGUoKSk7IH0KICAgICBMYXlvdXRVbml0IG1hcmdpbkxvZ2ljYWxSaWdodCgpIGNvbnN0
IHsgcmV0dXJuIG1fbWFyZ2luQm94LmxvZ2ljYWxSaWdodChzdHlsZSgpLndyaXRpbmdNb2RlKCkp
OyB9CiAgICAgCi0gICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkJlZm9yZShjb25zdCBSZW5k
ZXJTdHlsZSogb3ZlcnJpZGVTdHlsZSA9IDApIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJu
IG1fbWFyZ2luQm94LmJlZm9yZSgob3ZlcnJpZGVTdHlsZSA/IG92ZXJyaWRlU3R5bGUgOiAmc3R5
bGUoKSktPndyaXRpbmdNb2RlKCkpOyB9Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkFm
dGVyKGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0gMCkgY29uc3QgT1ZFUlJJREUg
RklOQUwgeyByZXR1cm4gbV9tYXJnaW5Cb3guYWZ0ZXIoKG92ZXJyaWRlU3R5bGUgPyBvdmVycmlk
ZVN0eWxlIDogJnN0eWxlKCkpLT53cml0aW5nTW9kZSgpKTsgfQotICAgIHZpcnR1YWwgTGF5b3V0
VW5pdCBtYXJnaW5TdGFydChjb25zdCBSZW5kZXJTdHlsZSogb3ZlcnJpZGVTdHlsZSA9IDApIGNv
bnN0IE9WRVJSSURFIEZJTkFMCisgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkJlZm9yZShj
b25zdCBSZW5kZXJTdHlsZSogb3ZlcnJpZGVTdHlsZSA9IDApIGNvbnN0IG92ZXJyaWRlIEZJTkFM
IHsgcmV0dXJuIG1fbWFyZ2luQm94LmJlZm9yZSgob3ZlcnJpZGVTdHlsZSA/IG92ZXJyaWRlU3R5
bGUgOiAmc3R5bGUoKSktPndyaXRpbmdNb2RlKCkpOyB9CisgICAgdmlydHVhbCBMYXlvdXRVbml0
IG1hcmdpbkFmdGVyKGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0gMCkgY29uc3Qg
b3ZlcnJpZGUgRklOQUwgeyByZXR1cm4gbV9tYXJnaW5Cb3guYWZ0ZXIoKG92ZXJyaWRlU3R5bGUg
PyBvdmVycmlkZVN0eWxlIDogJnN0eWxlKCkpLT53cml0aW5nTW9kZSgpKTsgfQorICAgIHZpcnR1
YWwgTGF5b3V0VW5pdCBtYXJnaW5TdGFydChjb25zdCBSZW5kZXJTdHlsZSogb3ZlcnJpZGVTdHls
ZSA9IDApIGNvbnN0IG92ZXJyaWRlIEZJTkFMCiAgICAgewogICAgICAgICBjb25zdCBSZW5kZXJT
dHlsZSogc3R5bGVUb1VzZSA9IG92ZXJyaWRlU3R5bGUgPyBvdmVycmlkZVN0eWxlIDogJnN0eWxl
KCk7CiAgICAgICAgIHJldHVybiBtX21hcmdpbkJveC5zdGFydChzdHlsZVRvVXNlLT53cml0aW5n
TW9kZSgpLCBzdHlsZVRvVXNlLT5kaXJlY3Rpb24oKSk7CiAgICAgfQotICAgIHZpcnR1YWwgTGF5
b3V0VW5pdCBtYXJnaW5FbmQoY29uc3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUgPSAwKSBj
b25zdCBPVkVSUklERSBGSU5BTAorICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5FbmQoY29u
c3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUgPSAwKSBjb25zdCBvdmVycmlkZSBGSU5BTAog
ICAgIHsKICAgICAgICAgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlVG9Vc2UgPSBvdmVycmlkZVN0
eWxlID8gb3ZlcnJpZGVTdHlsZSA6ICZzdHlsZSgpOwogICAgICAgICByZXR1cm4gbV9tYXJnaW5C
b3guZW5kKHN0eWxlVG9Vc2UtPndyaXRpbmdNb2RlKCksIHN0eWxlVG9Vc2UtPmRpcmVjdGlvbigp
KTsKQEAgLTI5MSwxOSArMjkxLDE5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIExheW91dFVuaXQg
Y29sbGFwc2VkTWFyZ2luQmVmb3JlKCkgY29uc3QgeyByZXR1cm4gbWFyZ2luQmVmb3JlKCk7IH0K
ICAgICB2aXJ0dWFsIExheW91dFVuaXQgY29sbGFwc2VkTWFyZ2luQWZ0ZXIoKSBjb25zdCB7IHJl
dHVybiBtYXJnaW5BZnRlcigpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhW
ZWN0b3I8SW50UmVjdD4mLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9h
dFF1YWQ+JiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBhYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYsIGNvbnN0IExheW91dFBvaW50JiBhY2N1
bXVsYXRlZE9mZnNldCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFic29sdXRl
UXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBib29sKiB3YXNGaXhlZCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgCiAgICAgTGF5b3V0UmVjdCByZWZsZWN0aW9uQm94KCkgY29uc3Q7CiAgICAgaW50IHJl
ZmxlY3Rpb25PZmZzZXQoKSBjb25zdDsKICAgICAvLyBHaXZlbiBhIHJlY3QgaW4gdGhlIG9iamVj
dCdzIGNvb3JkaW5hdGUgc3BhY2UsIHJldHVybnMgdGhlIGNvcnJlc3BvbmRpbmcgcmVjdCBpbiB0
aGUgcmVmbGVjdGlvbi4KICAgICBMYXlvdXRSZWN0IHJlZmxlY3RlZFJlY3QoY29uc3QgTGF5b3V0
UmVjdCYpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RS
ZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0
IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGxheW91dCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBu
b2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBI
aXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBh
Y2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFs
IExheW91dFVuaXQgbWluUHJlZmVycmVkTG9naWNhbFdpZHRoKCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBMYXlvdXRVbml0IG1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCgpIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtaW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWF4UHJlZmVycmVkTG9n
aWNhbFdpZHRoKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJl
bmFtZSB0aGVzZSBiYWNrIHRvIG92ZXJyaWRlTG9naWNhbEhlaWdodC9XaWR0aCBhbmQgaGF2ZSB0
aGVtIHN0b3JlCiAgICAgLy8gdGhlIGJvcmRlci1ib3ggaGVpZ2h0L3dpZHRoIGxpa2UgdGhlIHJl
Z3VsYXIgaGVpZ2h0L3dpZHRoIGFjY2Vzc29ycyBvbiBSZW5kZXJCb3guCkBAIC0zMjgsNyArMzI4
LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJDb250YWluaW5nQmxvY2tPdmVycmlkZVNpemUo
KTsKICAgICB2b2lkIGNsZWFyT3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhl
aWdodCgpOwogCi0gICAgdmlydHVhbCBMYXlvdXRTaXplIG9mZnNldEZyb21Db250YWluZXIoUmVu
ZGVyT2JqZWN0KiwgY29uc3QgTGF5b3V0UG9pbnQmLCBib29sKiBvZmZzZXREZXBlbmRzT25Qb2lu
dCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgTGF5b3V0U2l6ZSBvZmZzZXRGcm9t
Q29udGFpbmVyKFJlbmRlck9iamVjdCosIGNvbnN0IExheW91dFBvaW50JiwgYm9vbCogb2Zmc2V0
RGVwZW5kc09uUG9pbnQgPSAwKSBjb25zdCBvdmVycmlkZTsKICAgICAKICAgICBMYXlvdXRVbml0
IGFkanVzdEJvcmRlckJveExvZ2ljYWxXaWR0aEZvckJveFNpemluZyhMYXlvdXRVbml0IHdpZHRo
KSBjb25zdDsKICAgICBMYXlvdXRVbml0IGFkanVzdEJvcmRlckJveExvZ2ljYWxIZWlnaHRGb3JC
b3hTaXppbmcoTGF5b3V0VW5pdCBoZWlnaHQpIGNvbnN0OwpAQCAtMzg2LDEyICszODYsMTIgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0SW5saW5lQm94V3JhcHBlcihJbmxpbmVFbGVtZW50Qm94KiBi
b3hXcmFwcGVyKSB7IG1faW5saW5lQm94V3JhcHBlciA9IGJveFdyYXBwZXI7IH0KICAgICB2b2lk
IGRlbGV0ZUxpbmVCb3hXcmFwcGVyKCk7CiAKLSAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBl
ZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lcikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVS
ZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCA9
IGZhbHNlKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHJlcGFpbnREdXJpbmdMYXlvdXRJZk1v
dmVkKGNvbnN0IExheW91dFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludE92ZXJoYW5n
aW5nRmxvYXRzKGJvb2wgcGFpbnRBbGxEZXNjZW5kYW50cyk7CiAKLSAgICB2aXJ0dWFsIExheW91
dFVuaXQgY29udGFpbmluZ0Jsb2NrTG9naWNhbFdpZHRoRm9yQ29udGVudCgpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBjb250YWluaW5nQmxvY2tMb2dpY2FsV2lkdGhG
b3JDb250ZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgTGF5b3V0VW5pdCBjb250YWluaW5nQmxv
Y2tMb2dpY2FsSGVpZ2h0Rm9yQ29udGVudChBdmFpbGFibGVMb2dpY2FsSGVpZ2h0VHlwZSkgY29u
c3Q7CiAKICAgICBMYXlvdXRVbml0IGNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0aEZvckNvbnRl
bnRJblJlZ2lvbihSZW5kZXJSZWdpb24qKSBjb25zdDsKQEAgLTQ3Myw3ICs0NzMsNyBAQCBwdWJs
aWM6CiAgICAgYm9vbCBoYXNVbnNwbGl0dGFibGVTY3JvbGxpbmdPdmVyZmxvdygpIGNvbnN0Owog
ICAgIGJvb2wgaXNVbnNwbGl0dGFibGVGb3JQYWdpbmF0aW9uKCkgY29uc3Q7CiAKLSAgICB2aXJ0
dWFsIExheW91dFJlY3QgbG9jYWxDYXJldFJlY3QoSW5saW5lQm94KiwgaW50IGNhcmV0T2Zmc2V0
LCBMYXlvdXRVbml0KiBleHRyYVdpZHRoVG9FbmRPZkxpbmUgPSAwKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIExheW91dFJlY3QgbG9jYWxDYXJldFJlY3QoSW5saW5lQm94KiwgaW50IGNhcmV0T2Zm
c2V0LCBMYXlvdXRVbml0KiBleHRyYVdpZHRoVG9FbmRPZkxpbmUgPSAwKSBvdmVycmlkZTsKIAog
ICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBvdmVyZmxvd0NsaXBSZWN0KGNvbnN0IExheW91dFBvaW50
JiBsb2NhdGlvbiwgUmVuZGVyUmVnaW9uKiwgT3ZlcmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kg
PSBJZ25vcmVPdmVybGF5U2Nyb2xsYmFyU2l6ZSwgUGFpbnRQaGFzZSA9IFBhaW50UGhhc2VCbG9j
a0JhY2tncm91bmQpOwogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBvdmVyZmxvd0NsaXBSZWN0Rm9y
Q2hpbGRMYXllcnMoY29uc3QgTGF5b3V0UG9pbnQmIGxvY2F0aW9uLCBSZW5kZXJSZWdpb24qIHJl
Z2lvbiwgT3ZlcmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kgcmVsZXZhbmN5KSB7IHJldHVybiBv
dmVyZmxvd0NsaXBSZWN0KGxvY2F0aW9uLCByZWdpb24sIHJlbGV2YW5jeSk7IH0KQEAgLTQ4Niw3
ICs0ODYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50T2JqZWN0KFBhaW50SW5m
byYsIGNvbnN0IExheW91dFBvaW50JikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZp
cnR1YWwgdm9pZCBwYWludEJveERlY29yYXRpb25zKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBv
aW50Jik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50TWFzayhQYWludEluZm8mLCBjb25zdCBMYXlv
dXRQb2ludCYpOwotICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRy
LCBjb25zdCBJbnRSZWN0KiA9IDApIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNo
YW5nZWQoV3JhcHBlZEltYWdlUHRyLCBjb25zdCBJbnRSZWN0KiA9IDApIG92ZXJyaWRlOwogCiAg
ICAgLy8gQ2FsbGVkIHdoZW4gYSBwb3NpdGlvbmVkIG9iamVjdCBtb3ZlcyBidXQgZG9lc24ndCBu
ZWNlc3NhcmlseSBjaGFuZ2Ugc2l6ZS4gIEEgc2ltcGxpZmllZCBsYXlvdXQgaXMgYXR0ZW1wdGVk
CiAgICAgLy8gdGhhdCBqdXN0IHVwZGF0ZXMgdGhlIG9iamVjdCdzIHBvc2l0aW9uLiBJZiB0aGUg
c2l6ZSBkb2VzIGNoYW5nZSwgdGhlIG9iamVjdCByZW1haW5zIGRpcnR5LgpAQCAtNTAzLDcgKzUw
Myw3IEBAIHB1YmxpYzoKIAogICAgIExheW91dFJlY3QgbWFza0NsaXBSZWN0KCk7CiAKLSAgICB2
aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2lu
dChjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlOwogCiAgICAgUmVuZGVyQmxvY2tGbG93KiBv
dXRlcm1vc3RCbG9ja0NvbnRhaW5pbmdGbG9hdGluZ09iamVjdCgpOwogCkBAIC01MjQsMTEgKzUy
NCwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0RlcHJlY2F0ZWRGbGV4SXRlbSgpIGNvbnN0IHsg
cmV0dXJuICFpc0lubGluZSgpICYmICFpc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkg
JiYgcGFyZW50KCkgJiYgcGFyZW50KCktPmlzRGVwcmVjYXRlZEZsZXhpYmxlQm94KCk7IH0KICAg
ICBib29sIGlzRmxleEl0ZW1JbmNsdWRpbmdEZXByZWNhdGVkKCkgY29uc3QgeyByZXR1cm4gIWlz
SW5saW5lKCkgJiYgIWlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiBwYXJlbnQo
KSAmJiBwYXJlbnQoKS0+aXNGbGV4aWJsZUJveEluY2x1ZGluZ0RlcHJlY2F0ZWQoKTsgfQogICAg
IAotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5l
RGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGlu
ZSkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlvbihGb250
QmFzZWxpbmUsIGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9u
TW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBMYXlvdXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25N
b2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGludCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSwg
Ym9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9z
aXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgTGF5
b3V0VW5pdCBvZmZzZXRMZWZ0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBMYXlvdXRV
bml0IG9mZnNldFRvcCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBv
ZmZzZXRMZWZ0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IG9mZnNl
dFRvcCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgTGF5b3V0UG9pbnQgZmxpcEZvcldyaXRpbmdN
b2RlRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94KiBjaGlsZCwgY29uc3QgTGF5b3V0UG9pbnQmKSBj
b25zdDsKICAgICBMYXlvdXRVbml0IGZsaXBGb3JXcml0aW5nTW9kZShMYXlvdXRVbml0IHBvc2l0
aW9uKSBjb25zdDsgLy8gVGhlIG9mZnNldCBpcyBpbiB0aGUgYmxvY2sgZGlyZWN0aW9uICh5IGZv
ciBob3Jpem9udGFsIHdyaXRpbmcgbW9kZXMsIHggZm9yIHZlcnRpY2FsIHdyaXRpbmcgbW9kZXMp
LgpAQCAtNjEwLDE2ICs2MTAsMTYgQEAgcHJvdGVjdGVkOgogICAgIFJlbmRlckJveChFbGVtZW50
JiwgUGFzc1JlZjxSZW5kZXJTdHlsZT4sIHVuc2lnbmVkIGJhc2VUeXBlRmxhZ3MpOwogICAgIFJl
bmRlckJveChEb2N1bWVudCYsIFBhc3NSZWY8UmVuZGVyU3R5bGU+LCB1bnNpZ25lZCBiYXNlVHlw
ZUZsYWdzKTsKIAotICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5
bGUmIG5ld1N0eWxlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2Uo
U3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tU3R5bGUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUm
IG5ld1N0eWxlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5
bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tU3R5bGUoKSBvdmVycmlkZTsKIAogICAgIC8vIFJldHVy
bnMgZmFsc2UgaWYgaXQgY291bGQgbm90IGNoZWFwbHkgY29tcHV0ZSB0aGUgZXh0ZW50IChlLmcu
IGZpeGVkIGJhY2tncm91bmQpLCBpbiB3aGljaCBjYXNlIHRoZSByZXR1cm5lZCByZWN0IG1heSBi
ZSBpbmNvcnJlY3QuCiAgICAgYm9vbCBnZXRCYWNrZ3JvdW5kUGFpbnRlZEV4dGVudChMYXlvdXRS
ZWN0JikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGZvcmVncm91bmRJc0tub3duVG9CZU9wYXF1
ZUluUmVjdChjb25zdCBMYXlvdXRSZWN0JiBsb2NhbFJlY3QsIHVuc2lnbmVkIG1heERlcHRoVG9U
ZXN0KSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUJhY2tncm91bmRJc0tub3duVG9C
ZU9ic2N1cmVkKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGNvbXB1dGVCYWNrZ3JvdW5k
SXNLbm93blRvQmVPYnNjdXJlZCgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBwYWludEJhY2tncm91
bmQoY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UmVjdCYsIEJhY2tncm91bmRCbGVlZEF2
b2lkYW5jZSA9IEJhY2tncm91bmRCbGVlZE5vbmUpOwogICAgIApAQCAtNjQxLDkgKzY0MSw5IEBA
IHByb3RlY3RlZDoKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ29tcHV0ZVNpemVBc1Jl
cGxhY2VkKCkgY29uc3QgeyByZXR1cm4gaXNSZXBsYWNlZCgpICYmICFpc0lubGluZUJsb2NrT3JJ
bmxpbmVUYWJsZSgpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1T
dGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdh
c0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmpl
Y3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCos
IFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG1h
cEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5hdGVzRmxhZ3MsIFRyYW5zZm9ybVN0YXRl
JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3Jt
U3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3
YXNGaXhlZCA9IDApIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2Jq
ZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBt
YXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdzLCBUcmFuc2Zvcm1TdGF0
ZSYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBwYWludFJvb3RCb3hGaWxsTGF5ZXJzKGNv
bnN0IFBhaW50SW5mbyYpOwogCkBAIC02OTIsNyArNjkyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBU
aGVzZSBpbmNsdWRlIHRhYmxlcywgcG9zaXRpb25lZCBvYmplY3RzLCBmbG9hdHMgYW5kIGZsZXhp
YmxlIGJveGVzLgogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRo
cygpIHsgc2V0UHJlZmVycmVkTG9naWNhbFdpZHRoc0RpcnR5KGZhbHNlKTsgfQogCi0gICAgdmly
dHVhbCBMYXlvdXRSZWN0IGZyYW1lUmVjdEZvclN0aWNreVBvc2l0aW9uaW5nKCkgY29uc3QgT1ZF
UlJJREUgRklOQUwgeyByZXR1cm4gZnJhbWVSZWN0KCk7IH0KKyAgICB2aXJ0dWFsIExheW91dFJl
Y3QgZnJhbWVSZWN0Rm9yU3RpY2t5UG9zaXRpb25pbmcoKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7
IHJldHVybiBmcmFtZVJlY3QoKTsgfQogCiBwcml2YXRlOgogICAgIC8vIFRoZSB3aWR0aC9oZWln
aHQgb2YgdGhlIGNvbnRlbnRzICsgYm9yZGVycyArIHBhZGRpbmcuICBUaGUgeC95IGxvY2F0aW9u
IGlzIHJlbGF0aXZlIHRvIG91ciBjb250YWluZXIgKHdoaWNoIGlzIG5vdCBhbHdheXMgb3VyIHBh
cmVudCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9k
ZWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5oCmluZGV4IDIyYzMxOWYuLjE4ZjMzYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCkBAIC04NSw5ICs4NSw5IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGludCBwaXhlbFNuYXBwZWRPZmZzZXRXaWR0aCgpIGNvbnN0OwogICAgIHZpcnR1
YWwgaW50IHBpeGVsU25hcHBlZE9mZnNldEhlaWdodCgpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2
b2lkIHVwZGF0ZUZyb21TdHlsZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVG
cm9tU3R5bGUoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gaXNSb290KCkgfHwgaXNQb3NpdGlvbmVkKCkgfHwgY3Jl
YXRlc0dyb3VwKCkgfHwgaGFzQ2xpcFBhdGgoKSB8fCBoYXNUcmFuc2Zvcm0oKSB8fCBoYXNIaWRk
ZW5CYWNrZmFjZSgpIHx8IGhhc1JlZmxlY3Rpb24oKSB8fCBzdHlsZSgpLnNwZWNpZmllc0NvbHVt
bnMoKTsgfQorICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gaXNSb290KCkgfHwgaXNQb3NpdGlvbmVkKCkgfHwgY3JlYXRlc0dyb3VwKCkgfHwg
aGFzQ2xpcFBhdGgoKSB8fCBoYXNUcmFuc2Zvcm0oKSB8fCBoYXNIaWRkZW5CYWNrZmFjZSgpIHx8
IGhhc1JlZmxlY3Rpb24oKSB8fCBzdHlsZSgpLnNwZWNpZmllc0NvbHVtbnMoKTsgfQogCiAgICAg
Ly8gVGhpcyB3aWxsIHdvcmsgb24gaW5saW5lcyB0byByZXR1cm4gdGhlIGJvdW5kaW5nIGJveCBv
ZiBhbGwgb2YgdGhlIGxpbmVzJyBib3JkZXIgYm94ZXMuCiAgICAgdmlydHVhbCBJbnRSZWN0IGJv
cmRlckJvdW5kaW5nQm94KCkgY29uc3QgPSAwOwpAQCAtMTczLDExICsxNzMsMTEgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5l
RGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGlu
ZSkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2Vs
aW5lLCBib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUg
PSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0ID0gMDsKIAotICAgIHZpcnR1YWwgdm9p
ZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdzLCBUcmFuc2Zvcm1T
dGF0ZSYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9j
YWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdzLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgdm9pZCBoaWdoUXVhbGl0eVJlcGFpbnRUaW1lckZpcmVkKFRpbWVyPFJlbmRl
ckJveE1vZGVsT2JqZWN0PiopOwogCi0gICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGlvblN0YXRl
KFNlbGVjdGlvblN0YXRlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0aW9u
U3RhdGUoU2VsZWN0aW9uU3RhdGUpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBjYW5IYXZlQm94SW5m
b0luUmVnaW9uKCkgY29uc3QgeyByZXR1cm4gIWlzRmxvYXRpbmcoKSAmJiAhaXNSZXBsYWNlZCgp
ICYmICFpc0lubGluZSgpICYmICFoYXNDb2x1bW5zKCkgJiYgIWlzVGFibGVDZWxsKCkgJiYgaXNS
ZW5kZXJCbG9jaygpICYmICFpc1JlbmRlclNWR0Jsb2NrKCk7IH0KIApAQCAtMjAxLDcgKzIwMSw3
IEBAIHByb3RlY3RlZDoKICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdChFbGVtZW50JiwgUGFzc1Jl
ZjxSZW5kZXJTdHlsZT4sIHVuc2lnbmVkIGJhc2VUeXBlRmxhZ3MpOwogICAgIFJlbmRlckJveE1v
ZGVsT2JqZWN0KERvY3VtZW50JiwgUGFzc1JlZjxSZW5kZXJTdHlsZT4sIHVuc2lnbmVkIGJhc2VU
eXBlRmxhZ3MpOwogCi0gICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZTsKIAogICAgIGNs
YXNzIEJhY2tncm91bmRJbWFnZUdlb21ldHJ5IHsKICAgICBwdWJsaWM6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgKaW5kZXggZmZlYTY1My4uNGM5YzAxMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaApAQCAtNDAsMzkgKzQwLDM5IEBAIHB1Ymxp
YzoKIAogICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQmIGZvcm1Db250cm9sRWxlbWVudCgpIGNv
bnN0OwogCi0gICAgdmlydHVhbCBib29sIGNhbkJlU2VsZWN0aW9uTGVhZigpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgYm9vbCBjYW5CZVNlbGVjdGlvbkxlYWYoKSBjb25zdCBvdmVycmlk
ZTsKIAotICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBS
ZW5kZXJPYmplY3QgKmJlZm9yZUNoaWxkID0gMCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IHJlbW92ZUNoaWxkKFJlbmRlck9iamVjdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVMZWZ0b3ZlckFub255bW91c0Jsb2NrKFJlbmRlckJsb2NrKikgT1ZFUlJJREUgeyB9Ci0g
ICAgdmlydHVhbCBib29sIGNyZWF0ZXNBbm9ueW1vdXNXcmFwcGVyKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3Qq
IG5ld0NoaWxkLCBSZW5kZXJPYmplY3QgKmJlZm9yZUNoaWxkID0gMCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHJlbW92ZUNoaWxkKFJlbmRlck9iamVjdCYpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCByZW1vdmVMZWZ0b3ZlckFub255bW91c0Jsb2NrKFJlbmRlckJsb2NrKikgb3Zl
cnJpZGUgeyB9CisgICAgdmlydHVhbCBib29sIGNyZWF0ZXNBbm9ueW1vdXNXcmFwcGVyKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdm9pZCBzZXR1cElubmVyU3R5bGUo
UmVuZGVyU3R5bGUqKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSBvdmVycmlkZTsKIAot
ICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlR2VuZXJhdGVkQ2hpbGRyZW4oKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgaGFzQ29udHJvbENsaXAoKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBMYXlvdXRSZWN0IGNvbnRyb2xDbGlwUmVjdChjb25z
dCBMYXlvdXRQb2ludCYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZl
R2VuZXJhdGVkQ2hpbGRyZW4oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFz
Q29udHJvbENsaXAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVh
bCBMYXlvdXRSZWN0IGNvbnRyb2xDbGlwUmVjdChjb25zdCBMYXlvdXRQb2ludCYpIGNvbnN0IG92
ZXJyaWRlOwogCiAgICAgdm9pZCBzZXRUZXh0KGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmluZyB0
ZXh0KCkgY29uc3Q7CiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgdmlydHVhbCB2b2lkIGxheW91
dCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKICNlbmRp
ZgogCiBwcml2YXRlOgogICAgIHZvaWQgZWxlbWVudCgpIGNvbnN0IFdURl9ERUxFVEVEX0ZVTkNU
SU9OOwogCi0gICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gIlJlbmRlckJ1dHRvbiI7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJC
dXR0b24oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBjb25z
dCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlckJ1dHRv
biI7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJCdXR0b24oKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0eWxl
RGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxlKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJT
dHlsZSogb2xkU3R5bGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdHlsZVdpbGxDaGFu
Z2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3U3R5bGUpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0
IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaGFz
TGluZUlmRW1wdHkoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzTGluZUlm
RW1wdHkoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0ZvcmNl
ZFN0eWxlUmVjYWxjUHJvcGFnYXRpb24oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9
CisgICAgdmlydHVhbCBib29sIHJlcXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbigp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZvaWQgdGltZXJGaXJlZChU
aW1lcjxSZW5kZXJCdXR0b24+Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJDb21iaW5lVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckNvbWJpbmVUZXh0LmgKaW5kZXggZDUyMjAyNS4uOWJlZDQ2MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvbWJpbmVUZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckNvbWJpbmVUZXh0LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGZsb2F0IHdpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbmd0
aCwgY29uc3QgRm9udCYsIGZsb2F0IHhQb3NpdGlvbiwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250
RGF0YSo+KiBmYWxsYmFja0ZvbnRzID0gMCwgR2x5cGhPdmVyZmxvdyogPSAwKSBjb25zdDsKICAg
ICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVy
Q29tYmluZVRleHQiOyB9CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlm
ZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0VGV4dEludGVybmFsKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRUZXh0SW50ZXJuYWwoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAKICAgICBSZWZQdHI8
UmVuZGVyU3R5bGU+IG1fY29tYmluZUZvbnRTdHlsZTsKICAgICBmbG9hdCBtX2NvbWJpbmVkVGV4
dFdpZHRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmgKaW5kZXggZTVh
NThiMS4uMWQ5NmM0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckNvdW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5o
CkBAIC01MCw3ICs1MCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzQ291bnRlcigp
IGNvbnN0OwogICAgIHZpcnR1YWwgU3RyaW5nIG9yaWdpbmFsVGV4dCgpIGNvbnN0OwogICAgIAot
ICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyhmbG9hdCBsZWFk
V2lkdGgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNh
bFdpZHRocyhmbG9hdCBsZWFkV2lkdGgpIG92ZXJyaWRlOwogCiAgICAgLy8gUmVtb3ZlcyB0aGUg
cmVmZXJlbmNlIHRvIHRoZSBDb3VudGVyTm9kZSBhc3NvY2lhdGVkIHdpdGggdGhpcyByZW5kZXJl
ci4KICAgICAvLyBUaGlzIGlzIHVzZWQgdG8gY2F1c2UgYSBjb3VudGVyIGRpc3BsYXkgdXBkYXRl
IHdoZW4gdGhlIENvdW50ZXJOb2RlIHRyZWUgY2hhbmdlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guaAppbmRleCBhYzQy
MjQyLi45MTQ4NmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RGVwcmVjYXRlZEZsZXhpYmxlQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0OwogCi0gICAgdmlydHVh
bCB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxl
JiBuZXdTdHlsZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHN0eWxlV2lsbENoYW5nZShT
dHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSkgb3ZlcnJpZGU7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlv
dXRVbml0IHBhZ2VIZWlnaHQgPSAwKTsKICAgICB2b2lkIGxheW91dEhvcml6b250YWxCb3goYm9v
bCByZWxheW91dENoaWxkcmVuKTsKQEAgLTQ3LDEzICs0NywxMyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIGF2b2lkc0Zsb2F0cygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0
dWFsIGJvb2wgaXNEZXByZWNhdGVkRmxleGlibGVCb3goKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CiAgICAgdmlydHVhbCBib29sIGlzU3RyZXRjaGluZ0NoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4g
bV9zdHJldGNoaW5nQ2hpbGRyZW47IH0KLSAgICB2aXJ0dWFsIGJvb2wgY2FuQ29sbGFwc2VBbm9u
eW1vdXNCbG9ja0NoaWxkKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgY2FuQ29sbGFwc2VBbm9ueW1vdXNCbG9ja0NoaWxkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgcGxhY2VDaGlsZChSZW5kZXJCb3gqIGNo
aWxkLCBjb25zdCBMYXlvdXRQb2ludCYgbG9jYXRpb24sIExheW91dFNpemUqIGNoaWxkTGF5b3V0
RGVsdGEgPSAwKTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUludHJpbnNp
Y0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBt
YXhMb2dpY2FsV2lkdGgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRl
UHJlZmVycmVkTG9naWNhbFdpZHRocygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb21w
dXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExh
eW91dFVuaXQmIG1heExvZ2ljYWxXaWR0aCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgb3ZlcnJpZGU7CiAKICAgICBMYXlv
dXRVbml0IGFsbG93ZWRDaGlsZEZsZXgoUmVuZGVyQm94KiBjaGlsZCwgYm9vbCBleHBhbmRpbmcs
IHVuc2lnbmVkIGdyb3VwKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckRldGFpbHNNYXJrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJE
ZXRhaWxzTWFya2VyLmgKaW5kZXggNjg1MjNmOS4uNTNmYTU3YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtlci5oCkBAIC0zNiw5ICszNiw5IEBAIHB1
YmxpYzoKICAgICBPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIGNvbnN0OwogCiBwcml2YXRlOgot
ICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuICJSZW5kZXJEZXRhaWxzTWFya2VyIjsgfQotICAgIHZpcnR1YWwgYm9vbCBpc0RldGFpbHNN
YXJrZXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCB2b2lk
IHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJl
bmRlckRldGFpbHNNYXJrZXIiOyB9CisgICAgdmlydHVhbCBib29sIGlzRGV0YWlsc01hcmtlcigp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQo
UGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgaXNP
cGVuKCkgY29uc3Q7CiAgICAgUGF0aCBnZXRDYW5vbmljYWxQYXRoKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAppbmRleCBmZTI4NTEzLi4xYjZjZmY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKQEAgLTE2OSw5ICsxNjks
OSBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZURp
ZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSk7CiAgICAgdmlydHVhbCB2b2lk
IHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0
eWxlKTsKIAotICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9UcmVlKCkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIHdpbGxCZVJlbW92ZWRGcm9tVHJlZSgpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
aW5zZXJ0ZWRJbnRvVHJlZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVSZW1v
dmVkRnJvbVRyZWUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVk
KCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNldFJlbmRlcklubGluZUFsd2F5c0NyZWF0ZXNMaW5l
Qm94ZXMoYm9vbCBiKSB7IG1fcmVuZGVySW5saW5lQWx3YXlzQ3JlYXRlc0xpbmVCb3hlcyA9IGI7
IH0KICAgICBib29sIHJlbmRlcklubGluZUFsd2F5c0NyZWF0ZXNMaW5lQm94ZXMoKSBjb25zdCB7
IHJldHVybiBtX3JlbmRlcklubGluZUFsd2F5c0NyZWF0ZXNMaW5lQm94ZXM7IH0KQEAgLTE4Myw4
ICsxODMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgaXNUZXh0KCkgY29uc3QgV1RGX0RFTEVURURf
RlVOQ1RJT047CiAgICAgdm9pZCBpc1JlbmRlckVsZW1lbnQoKSBjb25zdCBXVEZfREVMRVRFRF9G
VU5DVElPTjsKIAotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBmaXJzdENoaWxkU2xvdygpIGNv
bnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIGZpcnN0Q2hpbGQoKTsgfQotICAgIHZpcnR1YWwg
UmVuZGVyT2JqZWN0KiBsYXN0Q2hpbGRTbG93KCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1
cm4gbGFzdENoaWxkKCk7IH0KKyAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogZmlyc3RDaGlsZFNs
b3coKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiBmaXJzdENoaWxkKCk7IH0KKyAgICB2
aXJ0dWFsIFJlbmRlck9iamVjdCogbGFzdENoaWxkU2xvdygpIGNvbnN0IG92ZXJyaWRlIEZJTkFM
IHsgcmV0dXJuIGxhc3RDaGlsZCgpOyB9CiAKICAgICBib29sIHNob3VsZFJlcGFpbnRGb3JTdHls
ZURpZmZlcmVuY2UoU3R5bGVEaWZmZXJlbmNlKSBjb25zdDsKICAgICBib29sIGhhc0ltbWVkaWF0
ZU5vbldoaXRlc3BhY2VUZXh0Q2hpbGRPckJvcmRlck9yT3V0bGluZSgpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaAppbmRleCA5ZmEx
OWEwLi5jZjU2Y2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RW1iZWRkZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1i
ZWRkZWRPYmplY3QuaApAQCAtNjMsMjkgKzYzLDI5IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcm90
ZWN0ZWQ6Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiwgY29uc3Qg
TGF5b3V0UG9pbnQmKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFp
bnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRSZXBsYWNlZChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlIEZJ
TkFMOworICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2lu
dCYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBDdXJzb3JEaXJlY3RpdmUgZ2V0Q3Vyc29yKGNv
bnN0IExheW91dFBvaW50JiwgQ3Vyc29yJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBD
dXJzb3JEaXJlY3RpdmUgZ2V0Q3Vyc29yKGNvbnN0IExheW91dFBvaW50JiwgQ3Vyc29yJikgY29u
c3Qgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGxheW91dCgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgot
ICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuICJSZW5kZXJFbWJlZGRlZE9iamVjdCI7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNFbWJlZGRl
ZE9iamVjdCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0
dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVu
ZGVyRW1iZWRkZWRPYmplY3QiOyB9CisgICAgdmlydHVhbCBib29sIGlzRW1iZWRkZWRPYmplY3Qo
KSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2b2lkIHBhaW50
U25hcHNob3RJbWFnZShQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYsIEltYWdlKik7Ci0g
ICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9p
bnQmKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhQYWlu
dEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlIEZJTkFMOwogCiAjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkg
Y29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBj
b25zdCBvdmVycmlkZSBGSU5BTDsKICNlbmRpZgogCi0gICAgdmlydHVhbCBib29sIG5vZGVBdFBv
aW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RM
b2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxh
dGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJv
b2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29u
c3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2lu
dCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIG92ZXJyaWRlIEZJTkFMOwogCi0g
ICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5
LCBmbG9hdCBtdWx0aXBsaWVyLCBFbGVtZW50Kiogc3RvcEVsZW1lbnQpIE9WRVJSSURFIEZJTkFM
OwotICAgIHZpcnR1YWwgYm9vbCBsb2dpY2FsU2Nyb2xsKFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24s
IFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyLCBFbGVtZW50Kiogc3RvcEVsZW1l
bnQpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBzY3JvbGwoU2Nyb2xsRGlyZWN0
aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciwgRWxlbWVudCoqIHN0b3BF
bGVtZW50KSBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wgbG9naWNhbFNjcm9sbChT
Y3JvbGxMb2dpY2FsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGll
ciwgRWxlbWVudCoqIHN0b3BFbGVtZW50KSBvdmVycmlkZSBGSU5BTDsKIAogICAgIHZvaWQgc2V0
VW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3JJc1ByZXNzZWQoYm9vbCk7CiAgICAgYm9vbCBpc0lu
VW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3IoTW91c2VFdmVudCopIGNvbnN0OwpAQCAtOTMsNyAr
OTMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgZ2V0UmVwbGFjZW1lbnRUZXh0R2VvbWV0cnkoY29u
c3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBGbG9hdFJlY3QmIGNvbnRlbnRSZWN0
LCBGbG9hdFJlY3QmIGluZGljYXRvclJlY3QsIEZsb2F0UmVjdCYgcmVwbGFjZW1lbnRUZXh0UmVj
dCwgRmxvYXRSZWN0JiBhcnJvd1JlY3QsIEZvbnQmLCBUZXh0UnVuJiwgZmxvYXQmIHRleHRXaWR0
aCkgY29uc3Q7CiAgICAgTGF5b3V0UmVjdCB1bmF2YWlsYWJsZVBsdWdpbkluZGljYXRvckJvdW5k
cyhjb25zdCBMYXlvdXRQb2ludCYpIGNvbnN0OwogCi0gICAgdmlydHVhbCBib29sIGNhbkhhdmVD
aGlsZHJlbigpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZl
Q2hpbGRyZW4oKSBjb25zdCBvdmVycmlkZSBGSU5BTDsKICAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2
ZVdpZGdldCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIGJvb2wgbV9pc1BsdWdpblVu
YXZhaWxhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZp
ZWxkc2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuaAppbmRl
eCAwZjU1OWQzLi43MGNkMzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmllbGRzZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmll
bGRzZXQuaApAQCAtNDMsMTYgKzQzLDE2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBl
bGVtZW50KCkgY29uc3QgV1RGX0RFTEVURURfRlVOQ1RJT047CiAKLSAgICB2aXJ0dWFsIGNvbnN0
IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAiUmVuZGVyRmllbGRT
ZXQiOyB9Ci0gICAgdmlydHVhbCBib29sIGlzRmllbGRzZXQoKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlckZpZWxkU2V0IjsgfQorICAgIHZpcnR1YWwgYm9vbCBp
c0ZpZWxkc2V0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVh
bCBSZW5kZXJPYmplY3QqIGxheW91dFNwZWNpYWxFeGNsdWRlZENoaWxkKGJvb2wgcmVsYXlvdXRD
aGlsZHJlbikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGxheW91dFNwZWNp
YWxFeGNsdWRlZENoaWxkKGJvb2wgcmVsYXlvdXRDaGlsZHJlbikgb3ZlcnJpZGU7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgYXZvaWRzRmxvYXRzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBhdm9pZHNGbG9hdHMoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRCb3hEZWNvcmF0aW9ucyhQ
YWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBwYWludE1hc2soUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnRCb3hEZWNvcmF0aW9ucyhQYWludEluZm8mLCBjb25zdCBMYXlv
dXRQb2ludCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwYWludE1hc2soUGFpbnRJbmZv
JiwgY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlkZTsKIH07CiAKIFJFTkRFUl9PQkpFQ1RfVFlQ
RV9DQVNUUyhSZW5kZXJGaWVsZHNldCwgaXNGaWVsZHNldCgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaAppbmRleCA5ZGExZGRjLi43
MDkyNWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVw
bG9hZENvbnRyb2wuaApAQCAtNDQsMjEgKzQ0LDIxIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
dm9pZCBlbGVtZW50KCkgY29uc3QgV1RGX0RFTEVURURfRlVOQ1RJT047CiAKLSAgICB2aXJ0dWFs
IGJvb2wgaXNGaWxlVXBsb2FkQ29udHJvbCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNGaWxlVXBsb2FkQ29udHJvbCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuICJSZW5kZXJGaWxlVXBsb2FkQ29udHJvbCI7IH0KKyAg
ICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biAiUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wiOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuQmVS
ZXBsYWNlZFdpdGhJbmxpbmVSdW5JbigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVGcm9tRWxlbWVudCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRl
SW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExheW91
dFVuaXQmIG1heExvZ2ljYWxXaWR0aCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHBhaW50T2JqZWN0KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBib29sIGNhbkJlUmVwbGFjZWRXaXRoSW5saW5lUnVuSW4oKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5p
dCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBtYXhMb2dpY2FsV2lkdGgpIGNvbnN0IG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwYWludE9iamVjdChQYWludEluZm8mLCBjb25z
dCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIHJlcXVpcmVzRm9y
Y2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNGb3JjZWRTdHlsZVJlY2FsY1Byb3BhZ2F0aW9u
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgaW50IG1heEZpbGVuYW1l
V2lkdGgoKSBjb25zdDsKICAgICAKLSAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBwb3NpdGlv
bkZvclBvaW50KGNvbnN0IExheW91dFBvaW50JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBWaXNp
YmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRl
OwogCiAgICAgSFRNTElucHV0RWxlbWVudCogdXBsb2FkQnV0dG9uKCkgY29uc3Q7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKaW5kZXggNzdkNGJmYS4u
OTMxOTE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhp
YmxlQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94
LmgKQEAgLTQyLDI2ICs0MiwyNiBAQCBwdWJsaWM6CiAgICAgUmVuZGVyRmxleGlibGVCb3goRG9j
dW1lbnQmLCBQYXNzUmVmPFJlbmRlclN0eWxlPik7CiAgICAgdmlydHVhbCB+UmVuZGVyRmxleGli
bGVCb3goKTsKIAotICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCBib29sIGlzRmxleGlibGVCb3goKSBjb25zdCBPVkVSUklERSBG
SU5BTCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIGF2b2lkc0Zsb2F0cygpIGNv
bnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgY2Fu
Q29sbGFwc2VBbm9ueW1vdXNCbG9ja0NoaWxkKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0QmxvY2soYm9vbCByZWxheW91dENo
aWxkcmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2h0ID0gMCkgT1ZFUlJJREUgRklOQUw7
CisgICAgdmlydHVhbCBib29sIGlzRmxleGlibGVCb3goKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7
IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGF2b2lkc0Zsb2F0cygpIGNvbnN0IG92
ZXJyaWRlIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuQ29sbGFw
c2VBbm9ueW1vdXNCbG9ja0NoaWxkKCkgY29uc3Qgb3ZlcnJpZGUgRklOQUwgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVu
LCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2h0ID0gMCkgb3ZlcnJpZGUgRklOQUw7CiAKLSAg
ICB2aXJ0dWFsIGludCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJzdExp
bmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRh
aW5pbmdMaW5lKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGludCBmaXJzdExpbmVCYXNl
bGluZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgaW50IGlubGluZUJsb2NrQmFzZWxp
bmUoTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgaW50IGJh
c2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lLCBib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlv
bk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgaW50IGZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBpbnQgaW5saW5lQmxvY2tCYXNlbGluZShMaW5lRGlyZWN0aW9u
TW9kZSkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDaGlsZHJlbihQ
YWludEluZm8mIGZvclNlbGYsIGNvbnN0IExheW91dFBvaW50JiwgUGFpbnRJbmZvJiBmb3JDaGls
ZCwgYm9vbCB1c2VQcmludFJlY3QpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYWludENo
aWxkcmVuKFBhaW50SW5mbyYgZm9yU2VsZiwgY29uc3QgTGF5b3V0UG9pbnQmLCBQYWludEluZm8m
IGZvckNoaWxkLCBib29sIHVzZVByaW50UmVjdCkgb3ZlcnJpZGU7CiAKICAgICBib29sIGlzSG9y
aXpvbnRhbEZsb3coKSBjb25zdDsKIAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCBjb21w
dXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExh
eW91dFVuaXQmIG1heExvZ2ljYWxXaWR0aCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2lj
YWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBvdmVycmlkZTsK
IAotICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0
IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHN0eWxl
RGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBv
dmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBlbnVtIEZsZXhTaWduIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCmluZGV4IDEwOWY3YTkuLjkzMmNmMDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaApAQCAtNjMsMTMg
KzYzLDEzIEBAIHB1YmxpYzoKICAgICBSZW5kZXJGbG93VGhyZWFkKERvY3VtZW50JiwgUGFzc1Jl
ZjxSZW5kZXJTdHlsZT4pOwogICAgIHZpcnR1YWwgflJlbmRlckZsb3dUaHJlYWQoKSB7IH07CiAg
ICAgCi0gICAgdmlydHVhbCBib29sIGlzUmVuZGVyRmxvd1RocmVhZCgpIGNvbnN0IE9WRVJSSURF
IEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJGbG93VGhy
ZWFkKCkgY29uc3Qgb3ZlcnJpZGUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVh
bCB2b2lkIGxheW91dCgpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQo
KSBvdmVycmlkZSBGSU5BTDsKIAogICAgIC8vIEFsd2F5cyBjcmVhdGUgYSBSZW5kZXJMYXllciBm
b3IgdGhlIFJlbmRlckZsb3dUaHJlYWQgc28gdGhhdCB3ZSAKICAgICAvLyBjYW4gZWFzaWx5IGF2
b2lkIGRyYXdpbmcgdGhlIGNoaWxkcmVuIGRpcmVjdGx5LgotICAgIHZpcnR1YWwgYm9vbCByZXF1
aXJlc0xheWVyKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZp
cnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3Qgb3ZlcnJpZGUgRklOQUwgeyByZXR1cm4g
dHJ1ZTsgfQogICAgIAogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVGbG93Q2hpbGRJbmZvKFJlbmRl
ck9iamVjdCopOwogI2lmbmRlZiBOREVCVUcKQEAgLTgwLDEwICs4MCwxMCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHJlbW92ZVJlZ2lvbkZyb21UaHJlYWQoUmVuZGVyUmVnaW9uKik7CiAg
ICAgY29uc3QgUmVuZGVyUmVnaW9uTGlzdCYgcmVuZGVyUmVnaW9uTGlzdCgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVnaW9uTGlzdDsgfQogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxvZ2ljYWxXaWR0
aCgpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlTG9naWNhbEhlaWdo
dChMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIExheW91dFVuaXQgbG9naWNhbFRvcCwgTG9naWNh
bEV4dGVudENvbXB1dGVkVmFsdWVzJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHVwZGF0ZUxvZ2ljYWxXaWR0aCgpIG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBj
b21wdXRlTG9naWNhbEhlaWdodChMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIExheW91dFVuaXQg
bG9naWNhbFRvcCwgTG9naWNhbEV4dGVudENvbXB1dGVkVmFsdWVzJikgY29uc3Qgb3ZlcnJpZGU7
CiAKLSAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBI
aXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVy
LCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9W
RVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVz
dCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250
YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlv
bikgb3ZlcnJpZGU7CiAKICAgICBib29sIGhhc1JlZ2lvbnMoKSBjb25zdCB7IHJldHVybiBtX3Jl
Z2lvbkxpc3Quc2l6ZSgpOyB9CiAgICAgdmlydHVhbCB2b2lkIHJlZ2lvbkNoYW5nZWRXcml0aW5n
TW9kZShSZW5kZXJSZWdpb24qKSB7IH0KQEAgLTk0LDcgKzk0LDcgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIFBhc3NSZWY8UmVuZGVyU3R5bGU+IGNyZWF0ZUZsb3dUaHJlYWRTdHlsZShSZW5kZXJT
dHlsZSogcGFyZW50U3R5bGUpOwogCi0gICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0
eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5k
ZXJTdHlsZSogb2xkU3R5bGUpIG92ZXJyaWRlOwogCiAgICAgdm9pZCByZXBhaW50UmVjdGFuZ2xl
SW5SZWdpb25zKGNvbnN0IExheW91dFJlY3QmLCBib29sIGltbWVkaWF0ZSkgY29uc3Q7CiAgICAg
CkBAIC0yMjcsNyArMjI3LDcgQEAgcHJvdGVjdGVkOgogICAgIC8vIG5vIHJlZ2lvbnMgaGF2ZSBi
ZWVuIGdlbmVyYXRlZCB5ZXQuCiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGluaXRpYWxMb2dpY2Fs
V2lkdGgoKSBjb25zdCB7IHJldHVybiAwOyB9OwogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2Fs
VG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJG
bGlwLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5
Q29udGFpbmVyRmxpcCwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBvdmVycmlkZTsKIAogICAg
IHZvaWQgdXBkYXRlUmVnaW9uc0Zsb3dUaHJlYWRQb3J0aW9uUmVjdChjb25zdCBSZW5kZXJSZWdp
b24qID0gMCk7CiAgICAgYm9vbCBzaG91bGRSZXBhaW50KGNvbnN0IExheW91dFJlY3QmKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lLmgKaW5kZXggYjdjYWYxYS4uODY3
MDdhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lLmgKQEAgLTQwLDEwICs0
MCwxMCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQgZnJhbWVPd25lckVsZW1lbnQoKSBj
b25zdCBXVEZfREVMRVRFRF9GVU5DVElPTjsKIAotICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVu
ZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuICJSZW5kZXJGcmFtZSI7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgaXNGcmFtZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAg
ICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biAiUmVuZGVyRnJhbWUiOyB9CisgICAgdmlydHVhbCBib29sIGlzRnJhbWUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1l
bnQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSBvdmVy
cmlkZTsKIH07CiAKIFJFTkRFUl9PQkpFQ1RfVFlQRV9DQVNUUyhSZW5kZXJGcmFtZSwgaXNGcmFt
ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuaAppbmRleCBhMmQx
N2M3Li5mMGViMTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RnJhbWVTZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQu
aApAQCAtOTEsMTQgKzkxLDE0IEBAIHByaXZhdGU6CiAgICAgICAgIGludCBtX3NwbGl0UmVzaXpl
T2Zmc2V0OwogICAgIH07CiAKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiAiUmVuZGVyRnJhbWVTZXQiOyB9Ci0gICAgdmlydHVhbCBi
b29sIGlzRnJhbWVTZXQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0KLSAgICB2
aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50KFBh
aW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29s
IGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgaXNDaGlsZEFsbG93ZWQoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUmVu
ZGVyU3R5bGUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEN1cnNvckRpcmVjdGl2ZSBn
ZXRDdXJzb3IoY29uc3QgTGF5b3V0UG9pbnQmLCBDdXJzb3ImKSBjb25zdCBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biAiUmVuZGVyRnJhbWVTZXQiOyB9CisgICAgdmlydHVhbCBib29sIGlzRnJhbWVTZXQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91
dFBvaW50Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNDaGlsZEFs
bG93ZWQoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIEN1cnNvckRpcmVjdGl2ZSBnZXRDdXJzb3IoY29uc3QgTGF5b3V0
UG9pbnQmLCBDdXJzb3ImKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wgZmxhdHRlbkZyYW1l
U2V0KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGdWxsU2NyZWVuLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVl
bi5oCmluZGV4IGJkNjAwNTAuLmI3NDk2YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZ1bGxTY3JlZW4uaApAQCAtMzYsOCArMzYsOCBAQCBjbGFzcyBSZW5kZXJGdWxsU2Ny
ZWVuIEZJTkFMIDogcHVibGljIFJlbmRlckZsZXhpYmxlQm94IHsKIHB1YmxpYzoKICAgICBSZW5k
ZXJGdWxsU2NyZWVuKERvY3VtZW50JiwgUGFzc1JlZjxSZW5kZXJTdHlsZT4pOwogCi0gICAgdmly
dHVhbCBib29sIGlzUmVuZGVyRnVsbFNjcmVlbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRy
dWU7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiAiUmVuZGVyRnVsbFNjcmVlbiI7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5k
ZXJGdWxsU2NyZWVuKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1
YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5k
ZXJGdWxsU2NyZWVuIjsgfQogCiAgICAgdm9pZCBzZXRQbGFjZWhvbGRlcihSZW5kZXJCbG9jayop
OwogICAgIFJlbmRlckJsb2NrKiBwbGFjZWhvbGRlcigpIHsgcmV0dXJuIG1fcGxhY2Vob2xkZXI7
IH0KQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgdW53cmFwUmVuZGVyZXIoKTsK
IAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOwogCiBwcm90ZWN0
ZWQ6CiAgICAgUmVuZGVyQmxvY2sqIG1fcGxhY2Vob2xkZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckdyaWQuaAppbmRleCAwOTQ2ZjE3Li42OTI0NTk3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJHcmlkLmgKQEAgLTQzLDEwICs0MywxMCBAQCBwdWJsaWM6CiAKICAgICBFbGVt
ZW50JiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdG9FbGVtZW50KG5vZGVGb3JOb25Bbm9ueW1v
dXMoKSk7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hp
bGRyZW4sIExheW91dFVuaXQgcGFnZUxvZ2ljYWxIZWlnaHQgPSAwKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgbGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0
IHBhZ2VMb2dpY2FsSGVpZ2h0ID0gMCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgYXZv
aWRzRmxvYXRzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwg
Ym9vbCBjYW5Db2xsYXBzZUFub255bW91c0Jsb2NrQ2hpbGQoKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBhdm9pZHNGbG9hdHMoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGNhbkNvbGxhcHNlQW5vbnlt
b3VzQmxvY2tDaGlsZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBl
bnVtIEdyaWRQb3NpdGlvblNpZGUgewogICAgICAgICBDb2x1bW5TdGFydFNpZGUsCkBAIC01Niwx
MCArNTYsMTAgQEAgcHVibGljOgogICAgIH07CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBjb25z
dCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlz
UmVuZGVyR3JpZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNh
bFdpZHRoLCBMYXlvdXRVbml0JiBtYXhMb2dpY2FsV2lkdGgpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBpc1JlbmRlckdyaWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9CisgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91
dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0
aHMoKSBvdmVycmlkZTsKIAogICAgIGNsYXNzIEdyaWRJdGVyYXRvcjsKICAgICBjbGFzcyBHcmlk
U2l6aW5nRGF0YTsKQEAgLTExNiw3ICsxMTYsNyBAQCBwcml2YXRlOgogCiAgICAgTGF5b3V0VW5p
dCBncmlkQXJlYUJyZWFkdGhGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gqIGNoaWxkLCBUcmFja1Np
emluZ0RpcmVjdGlvbiwgY29uc3QgVmVjdG9yPEdyaWRUcmFjaz4mKSBjb25zdDsKIAotICAgIHZp
cnR1YWwgdm9pZCBwYWludENoaWxkcmVuKFBhaW50SW5mbyYgZm9yU2VsZiwgY29uc3QgTGF5b3V0
UG9pbnQmIHBhaW50T2Zmc2V0LCBQYWludEluZm8mIGZvckNoaWxkLCBib29sIHVzZVByaW50UmVj
dCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q2hpbGRyZW4oUGFpbnRJ
bmZvJiBmb3JTZWxmLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIFBhaW50SW5mbyYg
Zm9yQ2hpbGQsIGJvb2wgdXNlUHJpbnRSZWN0KSBvdmVycmlkZSBGSU5BTDsKIAogI2lmbmRlZiBO
REVCVUcKICAgICBib29sIHRyYWNrc0FyZVdpZGVyVGhhbk1pblRyYWNrQnJlYWR0aChUcmFja1Np
emluZ0RpcmVjdGlvbiwgY29uc3QgVmVjdG9yPEdyaWRUcmFjaz4mKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5oCmluZGV4IDQ0MTRiNWMuLjU4ODVjNzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuaApAQCAtNDIsMTEg
KzQyLDExIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2b2lkIGVsZW1lbnQoKSBjb25zdCBX
VEZfREVMRVRFRF9GVU5DVElPTjsKLSAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc0NhbnZhcygpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiAiUmVuZGVySFRNTENhbnZhcyI7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgcGFpbnRSZXBsYWNlZChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBpbnRyaW5zaWNTaXplQ2hhbmdlZCgpIE9WRVJSSURFIHsg
Y2FudmFzU2l6ZUNoYW5nZWQoKTsgfQorICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzQ2FudmFzKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJIVE1MQ2FudmFzIjsgfQorICAgIHZpcnR1
YWwgdm9pZCBwYWludFJlcGxhY2VkKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGludHJpbnNpY1NpemVDaGFuZ2VkKCkgb3ZlcnJpZGUg
eyBjYW52YXNTaXplQ2hhbmdlZCgpOyB9CiB9OwogCiBSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMo
UmVuZGVySFRNTENhbnZhcywgaXNDYW52YXMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJRnJhbWUuaAppbmRleCBhZTE0MzY4Li4zMWVhZDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklGcmFtZS5oCkBAIC00NCwyNCArNDQsMjQgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICB2b2lkIGZyYW1lT3duZXJFbGVtZW50KCkgY29uc3QgV1RGX0RFTEVURURfRlVOQ1RJT047
CiAKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWluUHJlZmVycmVkTG9naWNhbFdpZHRoKCkgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IG1heFByZWZlcnJlZExvZ2ljYWxX
aWR0aCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtaW5QcmVmZXJy
ZWRMb2dpY2FsV2lkdGgoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQg
bWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkQ29tcHV0ZVNpemVBc1JlcGxhY2VkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIGlzSW5saW5lQmxvY2tPcklubGluZVRhYmxlKCkgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBib29sIHNob3VsZENvbXB1dGVTaXplQXNSZXBsYWNlZCgpIGNvbnN0IG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc0lubGluZUJsb2NrT3JJbmxpbmVUYWJsZSgpIGNv
bnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc1Jl
bmRlcklGcmFtZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaXNSZW5kZXJJRnJhbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAK
ICNpZiBQTEFURk9STShJT1MpCiAgICAgLy8gRklYTUU6IERvIHdlIHN0aWxsIG5lZWQgdGhpcyB3
b3JrYXJvdW5kIHRvIGF2b2lkIGJyZWFraW5nIGxheW91dCB0ZXN0cz8KLSAgICB2aXJ0dWFsIGNv
bnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAiUmVuZGVyUGFy
dE9iamVjdCI7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiAiUmVuZGVyUGFydE9iamVjdCI7IH0KICNlbHNlCi0gICAgdmlydHVh
bCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gIlJlbmRl
cklGcmFtZSI7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiAiUmVuZGVySUZyYW1lIjsgfQogI2VuZGlmCiAKLSAgICB2aXJ0dWFs
IGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBy
ZXF1aXJlc0xheWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGxheW91dFNlYW1sZXNz
bHkoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdl
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAppbmRleCA4NGRmYzkw
Li5mZTA3YWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1h
Z2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaApAQCAtNTgs
NyArNTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBoaWdoUXVhbGl0eVJlcGFpbnRUaW1lckZpcmVk
KFRpbWVyPFJlbmRlckltYWdlPiopOwogICAgIAogI2lmIFBMQVRGT1JNKElPUykKLSAgICB2aXJ0
dWFsIHZvaWQgY29sbGVjdFNlbGVjdGlvblJlY3RzKFZlY3RvcjxTZWxlY3Rpb25SZWN0PiYsIHVu
c2lnbmVkLCB1bnNpZ25lZCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTZWxl
Y3Rpb25SZWN0cyhWZWN0b3I8U2VsZWN0aW9uUmVjdD4mLCB1bnNpZ25lZCwgdW5zaWduZWQpIG92
ZXJyaWRlOwogI2VuZGlmCiAKICAgICB2b2lkIHNldElzR2VuZXJhdGVkQ29udGVudChib29sIGdl
bmVyYXRlZCA9IHRydWUpIHsgbV9pc0dlbmVyYXRlZENvbnRlbnQgPSBnZW5lcmF0ZWQ7IH0KQEAg
LTY5LDQxICs2OSw0MSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBbHRUZXh0KGNvbnN0IFN0cmlu
ZyYgYWx0VGV4dCkgeyBtX2FsdFRleHQgPSBhbHRUZXh0OyB9CiAgICAgCiBwcm90ZWN0ZWQ6Ci0g
ICAgdmlydHVhbCBib29sIG5lZWRzUHJlZmVycmVkV2lkdGhzUmVjYWxjdWxhdGlvbigpIGNvbnN0
IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgUmVuZGVyQm94KiBlbWJlZGRlZENvbnRlbnRC
b3goKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUludHJp
bnNpY1JhdGlvSW5mb3JtYXRpb24oRmxvYXRTaXplJiBpbnRyaW5zaWNTaXplLCBkb3VibGUmIGlu
dHJpbnNpY1JhdGlvLCBib29sJiBpc1BlcmNlbnRhZ2VJbnRyaW5zaWNTaXplKSBjb25zdCBPVkVS
UklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIGJvb2wgZm9yZWdyb3VuZElzS25vd25Ub0JlT3BhcXVl
SW5SZWN0KGNvbnN0IExheW91dFJlY3QmIGxvY2FsUmVjdCwgdW5zaWduZWQgbWF4RGVwdGhUb1Rl
c3QpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBuZWVkc1ByZWZlcnJlZFdpZHRo
c1JlY2FsY3VsYXRpb24oKSBjb25zdCBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0dWFsIFJlbmRl
ckJveCogZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3Qgb3ZlcnJpZGUgRklOQUw7CisgICAgdmly
dHVhbCB2b2lkIGNvbXB1dGVJbnRyaW5zaWNSYXRpb0luZm9ybWF0aW9uKEZsb2F0U2l6ZSYgaW50
cmluc2ljU2l6ZSwgZG91YmxlJiBpbnRyaW5zaWNSYXRpbywgYm9vbCYgaXNQZXJjZW50YWdlSW50
cmluc2ljU2l6ZSkgY29uc3Qgb3ZlcnJpZGUgRklOQUw7CisgICAgdmlydHVhbCBib29sIGZvcmVn
cm91bmRJc0tub3duVG9CZU9wYXF1ZUluUmVjdChjb25zdCBMYXlvdXRSZWN0JiBsb2NhbFJlY3Qs
IHVuc2lnbmVkIG1heERlcHRoVG9UZXN0KSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwg
dm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKikg
T1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlm
ZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqKSBvdmVycmlkZSBGSU5BTDsKIAotICAgIHZpcnR1
YWwgdm9pZCBpbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRyLCBjb25zdCBJbnRSZWN0KiA9IDAp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRy
LCBjb25zdCBJbnRSZWN0KiA9IDApIG92ZXJyaWRlOwogCiAgICAgdm9pZCBwYWludEludG9SZWN0
KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmKTsKLSAgICB2aXJ0dWFsIHZvaWQg
cGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBPVkVSUklERSBGSU5BTDsKLSAg
ICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhaW50
KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGUgRklOQUw7CisgICAgdmly
dHVhbCB2b2lkIGxheW91dCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGludHJpbnNp
Y1NpemVDaGFuZ2VkKCkgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIHZvaWQgaW50cmluc2ljU2l6ZUNo
YW5nZWQoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKG1faW1hZ2VSZXNvdXJjZSkKICAg
ICAgICAgICAgIGltYWdlQ2hhbmdlZChtX2ltYWdlUmVzb3VyY2UtPmltYWdlUHRyKCkpOwogICAg
IH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25z
dCBPVkVSUklERSB7IHJldHVybiAiUmVuZGVySW1hZ2UiOyB9CisgICAgdmlydHVhbCBjb25zdCBj
aGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlckltYWdlIjsg
fQogCi0gICAgdmlydHVhbCBib29sIGlzSW1hZ2UoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0
cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzUmVuZGVySW1hZ2UoKSBjb25zdCBPVkVSUklERSBG
SU5BTCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzSW1hZ2UoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzUmVuZGVySW1hZ2Uo
KSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZv
aWQgcGFpbnRSZXBsYWNlZChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBwYWludFJlcGxhY2VkKFBhaW50SW5mbyYsIGNvbnN0IExheW91
dFBvaW50Jikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY29tcHV0ZUJhY2tncm91bmRJ
c0tub3duVG9CZU9ic2N1cmVkKCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBib29sIGNv
bXB1dGVCYWNrZ3JvdW5kSXNLbm93blRvQmVPYnNjdXJlZCgpIG92ZXJyaWRlIEZJTkFMOwogCi0g
ICAgdmlydHVhbCBMYXlvdXRVbml0IG1pbmltdW1SZXBsYWNlZEhlaWdodCgpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtaW5pbXVtUmVwbGFjZWRIZWlnaHQoKSBjb25z
dCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNv
dXJjZSopIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25z
dCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24m
IGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNl
dCwgSGl0VGVzdEFjdGlvbikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIG5vdGlm
eUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgb3ZlcnJpZGUgRklOQUw7CisgICAgdmlydHVhbCBi
b29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNv
bnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9p
bnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBvdmVycmlkZSBGSU5BTDsKIAot
ICAgIHZpcnR1YWwgYm9vbCBib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tncm91bmQoQmFj
a2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBJbmxpbmVGbG93Qm94KikgY29uc3QgT1ZFUlJJREUgRklO
QUw7CisgICAgdmlydHVhbCBib29sIGJveFNoYWRvd1Nob3VsZEJlQXBwbGllZFRvQmFja2dyb3Vu
ZChCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UsIElubGluZUZsb3dCb3gqKSBjb25zdCBvdmVycmlk
ZSBGSU5BTDsKIAogICAgIEludFNpemUgaW1hZ2VTaXplRm9yRXJyb3IoQ2FjaGVkSW1hZ2UqKSBj
b25zdDsKICAgICB2b2lkIGltYWdlRGltZW5zaW9uc0NoYW5nZWQoYm9vbCBpbWFnZVNpemVDaGFu
Z2VkLCBjb25zdCBJbnRSZWN0KiA9IDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2UuaAppbmRleCA0MGQ5MjNhLi4z
ZWNlN2RmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdl
UmVzb3VyY2VTdHlsZUltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckltYWdlUmVzb3VyY2VTdHlsZUltYWdlLmgKQEAgLTQ0LDIxICs0NCwyMSBAQCBwdWJsaWM6CiAg
ICAgfQogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplKFJlbmRlckVsZW1l
bnQqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2h1dGRvd24oKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZShSZW5kZXJFbGVtZW50Kikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHNodXRkb3duKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaGFz
SW1hZ2UoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBQYXNz
UmVmUHRyPEltYWdlPiBpbWFnZShpbnQgd2lkdGggPSAwLCBpbnQgaGVpZ2h0ID0gMCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGVycm9yT2NjdXJyZWQoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBtX3N0eWxlSW1hZ2UtPmVycm9yT2NjdXJyZWQoKTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBoYXNJbWFnZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKGludCB3aWR0aCA9IDAsIGludCBoZWlnaHQgPSAw
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZXJyb3JPY2N1cnJlZCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fc3R5bGVJbWFnZS0+ZXJyb3JPY2N1cnJlZCgpOyB9CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q29udGFpbmVyU2l6ZUZvclJlbmRlcmVyKGNvbnN0IEludFNpemUm
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaW1hZ2VIYXNSZWxhdGl2ZVdpZHRoKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gbV9zdHlsZUltYWdlLT5pbWFnZUhhc1JlbGF0aXZlV2lkdGgo
KTsgfQotICAgIHZpcnR1YWwgYm9vbCBpbWFnZUhhc1JlbGF0aXZlSGVpZ2h0KCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gbV9zdHlsZUltYWdlLT5pbWFnZUhhc1JlbGF0aXZlSGVpZ2h0KCk7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGFpbmVyU2l6ZUZvclJlbmRlcmVyKGNvbnN0IEludFNp
emUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaW1hZ2VIYXNSZWxhdGl2ZVdpZHRoKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zdHlsZUltYWdlLT5pbWFnZUhhc1JlbGF0aXZlV2lk
dGgoKTsgfQorICAgIHZpcnR1YWwgYm9vbCBpbWFnZUhhc1JlbGF0aXZlSGVpZ2h0KCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9zdHlsZUltYWdlLT5pbWFnZUhhc1JlbGF0aXZlSGVpZ2h0KCk7
IH0KIAotICAgIHZpcnR1YWwgTGF5b3V0U2l6ZSBpbWFnZVNpemUoZmxvYXQgbXVsdGlwbGllcikg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9zdHlsZUltYWdlLT5pbWFnZVNpemUobV9yZW5kZXJl
ciwgbXVsdGlwbGllcik7IH0KLSAgICB2aXJ0dWFsIExheW91dFNpemUgaW50cmluc2ljU2l6ZShm
bG9hdCBtdWx0aXBsaWVyKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3N0eWxlSW1hZ2UtPmlt
YWdlU2l6ZShtX3JlbmRlcmVyLCBtdWx0aXBsaWVyKTsgfQorICAgIHZpcnR1YWwgTGF5b3V0U2l6
ZSBpbWFnZVNpemUoZmxvYXQgbXVsdGlwbGllcikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9z
dHlsZUltYWdlLT5pbWFnZVNpemUobV9yZW5kZXJlciwgbXVsdGlwbGllcik7IH0KKyAgICB2aXJ0
dWFsIExheW91dFNpemUgaW50cmluc2ljU2l6ZShmbG9hdCBtdWx0aXBsaWVyKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX3N0eWxlSW1hZ2UtPmltYWdlU2l6ZShtX3JlbmRlcmVyLCBtdWx0aXBs
aWVyKTsgfQogCi0gICAgdmlydHVhbCBXcmFwcGVkSW1hZ2VQdHIgaW1hZ2VQdHIoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBtX3N0eWxlSW1hZ2UtPmRhdGEoKTsgfQorICAgIHZpcnR1YWwgV3Jh
cHBlZEltYWdlUHRyIGltYWdlUHRyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zdHlsZUlt
YWdlLT5kYXRhKCk7IH0KIAogICAgIGV4cGxpY2l0IFJlbmRlckltYWdlUmVzb3VyY2VTdHlsZUlt
YWdlKFN0eWxlSW1hZ2UmKTsKICAgICBSZWY8U3R5bGVJbWFnZT4gbV9zdHlsZUltYWdlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCmluZGV4IGIwZmQ2NjAuLmJhY2UyZTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKQEAgLTM2LDIxICszNiwy
MSBAQCBwdWJsaWM6CiAgICAgUmVuZGVySW5saW5lKEVsZW1lbnQmLCBQYXNzUmVmPFJlbmRlclN0
eWxlPik7CiAgICAgUmVuZGVySW5saW5lKERvY3VtZW50JiwgUGFzc1JlZjxSZW5kZXJTdHlsZT4p
OwogCi0gICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogbmV3Q2hpbGQsIFJl
bmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
YWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBuZXdDaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGls
ZCA9IDApIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkxlZnQoKSBj
b25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luUmlnaHQo
KSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luVG9w
KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkJv
dHRvbSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJn
aW5CZWZvcmUoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyU3R5bGUgPSAwKSBjb25zdCBPVkVSUklE
RSBGSU5BTDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luQWZ0ZXIoY29uc3QgUmVuZGVy
U3R5bGUqIG90aGVyU3R5bGUgPSAwKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFs
IExheW91dFVuaXQgbWFyZ2luU3RhcnQoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyU3R5bGUgPSAw
KSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luRW5k
KGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlclN0eWxlID0gMCkgY29uc3QgT1ZFUlJJREUgRklOQUw7
CisgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkxlZnQoKSBjb25zdCBvdmVycmlkZSBGSU5B
TDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luUmlnaHQoKSBjb25zdCBvdmVycmlkZSBG
SU5BTDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luVG9wKCkgY29uc3Qgb3ZlcnJpZGUg
RklOQUw7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkJvdHRvbSgpIGNvbnN0IG92ZXJy
aWRlIEZJTkFMOworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5CZWZvcmUoY29uc3QgUmVu
ZGVyU3R5bGUqIG90aGVyU3R5bGUgPSAwKSBjb25zdCBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0
dWFsIExheW91dFVuaXQgbWFyZ2luQWZ0ZXIoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyU3R5bGUg
PSAwKSBjb25zdCBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2lu
U3RhcnQoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyU3R5bGUgPSAwKSBjb25zdCBvdmVycmlkZSBG
SU5BTDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luRW5kKGNvbnN0IFJlbmRlclN0eWxl
KiBvdGhlclN0eWxlID0gMCkgY29uc3Qgb3ZlcnJpZGUgRklOQUw7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBjb25zdCBMYXlvdXRQb2ludCYgYWNj
dW11bGF0ZWRPZmZzZXQpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBh
YnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYs
IGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3Qgb3ZlcnJpZGUgRklO
QUw7CisgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBi
b29sKiB3YXNGaXhlZCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIExheW91dFNpemUg
b2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5kZXJPYmplY3QqLCBjb25zdCBMYXlvdXRQb2ludCYsIGJv
b2wqIG9mZnNldERlcGVuZHNPblBvaW50ID0gMCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAg
dmlydHVhbCBMYXlvdXRTaXplIG9mZnNldEZyb21Db250YWluZXIoUmVuZGVyT2JqZWN0KiwgY29u
c3QgTGF5b3V0UG9pbnQmLCBib29sKiBvZmZzZXREZXBlbmRzT25Qb2ludCA9IDApIGNvbnN0IG92
ZXJyaWRlIEZJTkFMOwogCiAgICAgSW50UmVjdCBsaW5lc0JvdW5kaW5nQm94KCkgY29uc3Q7CiAg
ICAgTGF5b3V0UmVjdCBsaW5lc1Zpc3VhbE92ZXJmbG93Qm91bmRpbmdCb3goKSBjb25zdDsKQEAg
LTcwLDE3ICs3MCwxNyBAQCBwdWJsaWM6CiAgICAgSW5saW5lQm94KiBsYXN0TGluZUJveEluY2x1
ZGluZ0N1bGxpbmcoKSBjb25zdCB7IHJldHVybiBhbHdheXNDcmVhdGVMaW5lQm94ZXMoKSA/IGxh
c3RMaW5lQm94KCkgOiBjdWxsZWRJbmxpbmVMYXN0TGluZUJveCgpOyB9CiAKICNpZiBQTEFURk9S
TShJT1MpCi0gICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHNGb3JTZWxlY3Rpb24oVmVjdG9y
PEZsb2F0UXVhZD4mIHF1YWRzKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYWJz
b2x1dGVRdWFkc0ZvclNlbGVjdGlvbihWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMpIGNvbnN0IG92
ZXJyaWRlOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIFJlbmRlckJveE1vZGVsT2JqZWN0KiB2aXJ0
dWFsQ29udGludWF0aW9uKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gY29udGludWF0
aW9uKCk7IH0KKyAgICB2aXJ0dWFsIFJlbmRlckJveE1vZGVsT2JqZWN0KiB2aXJ0dWFsQ29udGlu
dWF0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgRklOQUwgeyByZXR1cm4gY29udGludWF0aW9uKCk7IH0K
ICAgICBSZW5kZXJJbmxpbmUqIGlubGluZUVsZW1lbnRDb250aW51YXRpb24oKSBjb25zdDsKIAot
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVEcmFnU3RhdGUoYm9vbCBkcmFnT24pIE9WRVJSSURFIEZJ
TkFMOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVEcmFnU3RhdGUoYm9vbCBkcmFnT24pIG92ZXJy
aWRlIEZJTkFMOwogICAgIAogICAgIExheW91dFNpemUgb2Zmc2V0Rm9ySW5GbG93UG9zaXRpb25l
ZElubGluZShjb25zdCBSZW5kZXJCb3gqIGNoaWxkKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9p
ZCBhZGRGb2N1c1JpbmdSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBjb25zdCBMYXlvdXRQb2ludCYg
YWRkaXRpb25hbE9mZnNldCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcGFpbnRDb250
YWluZXIgPSAwKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkRm9jdXNSaW5n
UmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxPZmZz
ZXQsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHBhaW50Q29udGFpbmVyID0gMCkgb3Zl
cnJpZGUgRklOQUw7CiAgICAgdm9pZCBwYWludE91dGxpbmUoUGFpbnRJbmZvJiwgY29uc3QgTGF5
b3V0UG9pbnQmKTsKIAogICAgIHVzaW5nIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb250aW51YXRp
b247CkBAIC05MCwxOSArOTAsMTkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWx3YXlzQ3JlYXRl
TGluZUJveGVzKCkgeyBzZXRSZW5kZXJJbmxpbmVBbHdheXNDcmVhdGVzTGluZUJveGVzKHRydWUp
OyB9CiAgICAgdm9pZCB1cGRhdGVBbHdheXNDcmVhdGVMaW5lQm94ZXMoYm9vbCBmdWxsTGF5b3V0
KTsKIAotICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBsb2NhbENhcmV0UmVjdChJbmxpbmVCb3gqLCBp
bnQsIExheW91dFVuaXQqIGV4dHJhV2lkdGhUb0VuZE9mTGluZSkgT1ZFUlJJREUgRklOQUw7Cisg
ICAgdmlydHVhbCBMYXlvdXRSZWN0IGxvY2FsQ2FyZXRSZWN0KElubGluZUJveCosIGludCwgTGF5
b3V0VW5pdCogZXh0cmFXaWR0aFRvRW5kT2ZMaW5lKSBvdmVycmlkZSBGSU5BTDsKIAogICAgIGJv
b2wgaGl0VGVzdEN1bGxlZElubGluZShjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1
bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExh
eW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCk7CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFs
IHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxC
ZURlc3Ryb3llZCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdl
KFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBS
ZW5kZXJTdHlsZSogb2xkU3R5bGUpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwg
Y29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgY29u
c3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29s
IGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3Qgb3ZlcnJpZGUgRklOQUwg
eyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgTGF5b3V0UmVjdCBjdWxsZWRJbmxpbmVWaXN1YWxPdmVy
Zmxvd0JvdW5kaW5nQm94KCkgY29uc3Q7CiAgICAgSW5saW5lQm94KiBjdWxsZWRJbmxpbmVGaXJz
dExpbmVCb3goKSBjb25zdDsKQEAgLTExNCwzOCArMTE0LDM4IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBnZW5lcmF0ZUN1bGxlZExpbmVCb3hSZWN0cyhHZW5lcmF0b3JDb250ZXh0JiB5aWVsZCwgY29u
c3QgUmVuZGVySW5saW5lKiBjb250YWluZXIpIGNvbnN0OwogCiAgICAgdm9pZCBhZGRDaGlsZFRv
Q29udGludWF0aW9uKFJlbmRlck9iamVjdCogbmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3Jl
Q2hpbGQpOwotICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZElnbm9yaW5nQ29udGludWF0aW9uKFJl
bmRlck9iamVjdCogbmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKSBPVkVS
UklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGRJZ25vcmluZ0NvbnRpbnVhdGlv
bihSZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCkg
b3ZlcnJpZGUgRklOQUw7CiAKICAgICB2b2lkIHNwbGl0SW5saW5lcyhSZW5kZXJCbG9jayogZnJv
bUJsb2NrLCBSZW5kZXJCbG9jayogdG9CbG9jaywgUmVuZGVyQmxvY2sqIG1pZGRsZUJsb2NrLAog
ICAgICAgICAgICAgICAgICAgICAgIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQsIFJlbmRlckJv
eE1vZGVsT2JqZWN0KiBvbGRDb250KTsKICAgICB2b2lkIHNwbGl0RmxvdyhSZW5kZXJPYmplY3Qq
IGJlZm9yZUNoaWxkLCBSZW5kZXJCbG9jayogbmV3QmxvY2tCb3gsCiAgICAgICAgICAgICAgICAg
ICAgUmVuZGVyT2JqZWN0KiBuZXdDaGlsZCwgUmVuZGVyQm94TW9kZWxPYmplY3QqIG9sZENvbnQp
OwogCi0gICAgdmlydHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURFIEZJTkFMIHsgQVNTRVJUX05P
VF9SRUFDSEVEKCk7IH0gLy8gRG8gbm90aGluZyBmb3IgbGF5b3V0KCkKKyAgICB2aXJ0dWFsIHZv
aWQgbGF5b3V0KCkgb3ZlcnJpZGUgRklOQUwgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfSAvLyBE
byBub3RoaW5nIGZvciBsYXlvdXQoKQogCi0gICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5m
byYsIGNvbnN0IExheW91dFBvaW50JikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lk
IHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGUgRklOQUw7CiAK
LSAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRU
ZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBj
b25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9WRVJS
SURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVx
dWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5D
b250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFj
dGlvbikgb3ZlcnJpZGUgRklOQUw7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGlzSW5GbG93UG9zaXRpb25lZCgpIHx8IGNyZWF0ZXNH
cm91cCgpIHx8IGhhc0NsaXBQYXRoKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXll
cigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGlzSW5GbG93UG9zaXRpb25lZCgpIHx8IGNyZWF0
ZXNHcm91cCgpIHx8IGhhc0NsaXBQYXRoKCk7IH0KIAotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBv
ZmZzZXRMZWZ0KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0
IG9mZnNldFRvcCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgTGF5b3V0VW5p
dCBvZmZzZXRXaWR0aCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIGxpbmVzQm91bmRp
bmdCb3goKS53aWR0aCgpOyB9Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IG9mZnNldEhlaWdodCgp
IGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIGxpbmVzQm91bmRpbmdCb3goKS5oZWlnaHQo
KTsgfQorICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBvZmZzZXRMZWZ0KCkgY29uc3Qgb3ZlcnJpZGUg
RklOQUw7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IG9mZnNldFRvcCgpIGNvbnN0IG92ZXJyaWRl
IEZJTkFMOworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBvZmZzZXRXaWR0aCgpIGNvbnN0IG92ZXJy
aWRlIEZJTkFMIHsgcmV0dXJuIGxpbmVzQm91bmRpbmdCb3goKS53aWR0aCgpOyB9CisgICAgdmly
dHVhbCBMYXlvdXRVbml0IG9mZnNldEhlaWdodCgpIGNvbnN0IG92ZXJyaWRlIEZJTkFMIHsgcmV0
dXJuIGxpbmVzQm91bmRpbmdCb3goKS5oZWlnaHQoKTsgfQogCi0gICAgdmlydHVhbCBMYXlvdXRS
ZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgTGF5
b3V0UmVjdCByZWN0V2l0aE91dGxpbmVGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFVuaXQgb3V0bGluZVdpZHRoKSBjb25zdCBP
VkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3Qm
LCBib29sIGZpeGVkKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIExheW91dFJl
Y3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBMYXlv
dXRSZWN0IHJlY3RXaXRoT3V0bGluZUZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0VW5pdCBvdXRsaW5lV2lkdGgpIGNvbnN0IG92
ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0UmVjdCYs
IGJvb2wgZml4ZWQpIGNvbnN0IG92ZXJyaWRlIEZJTkFMOwogCi0gICAgdmlydHVhbCB2b2lkIG1h
cExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250
YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3Rh
dGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNG
aXhlZCA9IDApIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0
KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFu
Y2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAg
ICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBv
aW50JikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24gcG9zaXRp
b25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlIEZJTkFMOwogCi0gICAgdmly
dHVhbCBMYXlvdXRSZWN0IGZyYW1lUmVjdEZvclN0aWNreVBvc2l0aW9uaW5nKCkgY29uc3QgT1ZF
UlJJREUgRklOQUwgeyByZXR1cm4gbGluZXNCb3VuZGluZ0JveCgpOyB9CisgICAgdmlydHVhbCBM
YXlvdXRSZWN0IGZyYW1lUmVjdEZvclN0aWNreVBvc2l0aW9uaW5nKCkgY29uc3Qgb3ZlcnJpZGUg
RklOQUwgeyByZXR1cm4gbGluZXNCb3VuZGluZ0JveCgpOyB9CiAKLSAgICB2aXJ0dWFsIEludFJl
Y3QgYm9yZGVyQm91bmRpbmdCb3goKSBjb25zdCBPVkVSUklERSBGSU5BTAorICAgIHZpcnR1YWwg
SW50UmVjdCBib3JkZXJCb3VuZGluZ0JveCgpIGNvbnN0IG92ZXJyaWRlIEZJTkFMCiAgICAgewog
ICAgICAgICBJbnRSZWN0IGJvdW5kaW5nQm94ID0gbGluZXNCb3VuZGluZ0JveCgpOwogICAgICAg
ICByZXR1cm4gSW50UmVjdCgwLCAwLCBib3VuZGluZ0JveC53aWR0aCgpLCBib3VuZGluZ0JveC5o
ZWlnaHQoKSk7CkBAIC0xNTMsMjIgKzE1MywyMiBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBz
dGQ6OnVuaXF1ZV9wdHI8SW5saW5lRmxvd0JveD4gY3JlYXRlSW5saW5lRmxvd0JveCgpOyAvLyBT
dWJjbGFzc2VkIGJ5IFJlbmRlclNWR0lubGluZQogCi0gICAgdmlydHVhbCB2b2lkIGRpcnR5TGlu
ZXNGcm9tQ2hhbmdlZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQpIE9WRVJSSURFIEZJTkFMIHsg
bV9saW5lQm94ZXMuZGlydHlMaW5lc0Zyb21DaGFuZ2VkQ2hpbGQodGhpcywgY2hpbGQpOyB9Cisg
ICAgdmlydHVhbCB2b2lkIGRpcnR5TGluZXNGcm9tQ2hhbmdlZENoaWxkKFJlbmRlck9iamVjdCog
Y2hpbGQpIG92ZXJyaWRlIEZJTkFMIHsgbV9saW5lQm94ZXMuZGlydHlMaW5lc0Zyb21DaGFuZ2Vk
Q2hpbGQodGhpcywgY2hpbGQpOyB9CiAKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbGluZUhlaWdo
dChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQ
b3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1
YWwgaW50IGJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lLCBib29sIGZpcnN0TGluZSwgTGlu
ZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xp
bmUpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBsaW5lSGVp
Z2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9
IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGUgRklOQUw7CisgICAgdmly
dHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUsIGJvb2wgZmlyc3RMaW5lLCBM
aW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5n
TGluZSkgY29uc3Qgb3ZlcnJpZGUgRklOQUw7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIGNoaWxk
QmVjYW1lTm9uSW5saW5lKFJlbmRlck9iamVjdCogY2hpbGQpIE9WRVJSSURFIEZJTkFMOworICAg
IHZpcnR1YWwgdm9pZCBjaGlsZEJlY2FtZU5vbklubGluZShSZW5kZXJPYmplY3QqIGNoaWxkKSBv
dmVycmlkZSBGSU5BTDsKIAotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVIaXRUZXN0UmVzdWx0KEhp
dFRlc3RSZXN1bHQmLCBjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJSSURFIEZJTkFMOworICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVIaXRUZXN0UmVzdWx0KEhpdFRlc3RSZXN1bHQmLCBjb25zdCBMYXlv
dXRQb2ludCYpIG92ZXJyaWRlIEZJTkFMOwogCi0gICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdl
ZChXcmFwcGVkSW1hZ2VQdHIsIGNvbnN0IEludFJlY3QqID0gMCkgT1ZFUlJJREUgRklOQUw7Cisg
ICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChXcmFwcGVkSW1hZ2VQdHIsIGNvbnN0IEludFJl
Y3QqID0gMCkgb3ZlcnJpZGUgRklOQUw7CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQp
IHx8IEVOQUJMRShEUkFHR0FCTEVfUkVHSU9OKQotICAgIHZpcnR1YWwgdm9pZCBhZGRBbm5vdGF0
ZWRSZWdpb25zKFZlY3RvcjxBbm5vdGF0ZWRSZWdpb25WYWx1ZT4mKSBPVkVSUklERSBGSU5BTDsK
KyAgICB2aXJ0dWFsIHZvaWQgYWRkQW5ub3RhdGVkUmVnaW9ucyhWZWN0b3I8QW5ub3RhdGVkUmVn
aW9uVmFsdWU+Jikgb3ZlcnJpZGUgRklOQUw7CiAjZW5kaWYKICAgICAKLSAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlRnJvbVN0eWxlKCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZUZyb21TdHlsZSgpIG92ZXJyaWRlIEZJTkFMOwogICAgIAogICAgIFJlbmRlclB0cjxSZW5k
ZXJJbmxpbmU+IGNsb25lKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmgKaW5kZXggMWE1MzEzYi4uOTEwYjQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmgKQEAgLTQyNCwyMSArNDI0LDIxIEBAIHB1YmxpYzoKICAgICBib29sIGhhc1Zl
cnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gdmVydGljYWxTY3JvbGxiYXIoKTsgfQog
CiAgICAgLy8gU2Nyb2xsYWJsZUFyZWEgb3ZlcnJpZGVzCi0gICAgdmlydHVhbCBTY3JvbGxiYXIq
IGhvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2hCYXIuZ2V0
KCk7IH0KLSAgICB2aXJ0dWFsIFNjcm9sbGJhciogdmVydGljYWxTY3JvbGxiYXIoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBtX3ZCYXIuZ2V0KCk7IH0KLSAgICB2aXJ0dWFsIFNjcm9sbGFibGVB
cmVhKiBlbmNsb3NpbmdTY3JvbGxhYmxlQXJlYSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgU2Nyb2xsYmFyKiBob3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9oQmFyLmdldCgpOyB9CisgICAgdmlydHVhbCBTY3JvbGxiYXIqIHZlcnRpY2FsU2Nyb2xs
YmFyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV92QmFyLmdldCgpOyB9CisgICAgdmlydHVh
bCBTY3JvbGxhYmxlQXJlYSogZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEoKSBjb25zdCBvdmVycmlk
ZTsKIAogI2lmIFBMQVRGT1JNKElPUykKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIHZp
cnR1YWwgYm9vbCBoYW5kbGVUb3VjaEV2ZW50KGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc1RvdWNoU2Nyb2xsYWJsZSgpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlVG91Y2hFdmVudChj
b25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNU
b3VjaFNjcm9sbGFibGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAjZW5kaWYK
LSAgICB2aXJ0dWFsIGJvb2wgaXNPdmVyZmxvd1Njcm9sbCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNPdmVyZmxvd1Njcm9sbCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRT
Y3JvbGwoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kU2Nyb2xsKCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZVNjcm9sbCgpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBzZXRJc1VzZXJTY3JvbGwoYm9vbCBpc1VzZXJTY3JvbGwpIE9WRVJSSURFIHsg
bV9pblVzZXJTY3JvbGwgPSBpc1VzZXJTY3JvbGw7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3Rh
cnRTY3JvbGwoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kU2Nyb2xsKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZVNjcm9sbCgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBzZXRJc1VzZXJTY3JvbGwoYm9vbCBpc1VzZXJTY3JvbGwpIG92ZXJyaWRl
IHsgbV9pblVzZXJTY3JvbGwgPSBpc1VzZXJTY3JvbGw7IH0KIAogICAgIGJvb2wgaXNJblVzZXJT
Y3JvbGwoKSBjb25zdCB7IHJldHVybiBtX2luVXNlclNjcm9sbDsgfQogCkBAIC03OTksMTEgKzc5
OSwxMSBAQCBwdWJsaWM6CiAgICAgUmVuZGVyTGF5ZXJCYWNraW5nKiBiYWNraW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9iYWNraW5nLmdldCgpOyB9CiAgICAgUmVuZGVyTGF5ZXJCYWNraW5nKiBlbnN1
cmVCYWNraW5nKCk7CiAgICAgdm9pZCBjbGVhckJhY2tpbmcoYm9vbCBsYXllckJlaW5nRGVzdHJv
eWVkID0gZmFsc2UpOwotICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllciogbGF5ZXJGb3JTY3JvbGxp
bmcoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5ZXIqIGxheWVyRm9y
SG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgR3JhcGhp
Y3NMYXllciogbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgR3JhcGhpY3NMYXllciogbGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGJvb2wgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5ZXIqIGxheWVyRm9yU2Nyb2xsaW5nKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBHcmFwaGljc0xheWVyKiBsYXllckZvckhvcml6
b250YWxTY3JvbGxiYXIoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5
ZXIqIGxheWVyRm9yVmVydGljYWxTY3JvbGxiYXIoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIEdyYXBoaWNzTGF5ZXIqIGxheWVyRm9yU2Nyb2xsQ29ybmVyKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIHVzZXNDb21wb3NpdGVkU2Nyb2xsaW5nKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBuZWVkc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdDsKICAgICBib29s
IG5lZWRzQ29tcG9zaXRpbmdMYXllcnNSZWJ1aWx0Rm9yQ2xpcChjb25zdCBSZW5kZXJTdHlsZSog
b2xkU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHlsZSkgY29uc3Q7CiAgICAgYm9vbCBu
ZWVkc0NvbXBvc2l0aW5nTGF5ZXJzUmVidWlsdEZvck92ZXJmbG93KGNvbnN0IFJlbmRlclN0eWxl
KiBvbGRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKSBjb25zdDsKQEAgLTEwNTAs
MzMgKzEwNTAsMzMgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgc2hvdWxkQmVTZWxmUGFpbnRpbmdM
YXllcigpIGNvbnN0OwogCi0gICAgdmlydHVhbCBpbnQgc2Nyb2xsUG9zaXRpb24oU2Nyb2xsYmFy
KikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBpbnQgc2Nyb2xsUG9zaXRpb24oU2Nyb2xs
YmFyKikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCiAgICAgLy8gU2Nyb2xsYWJsZUFyZWEgaW50ZXJm
YWNlCi0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhcios
IGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVNj
cm9sbENvcm5lclJlY3QoY29uc3QgSW50UmVjdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9v
bCBpc0FjdGl2ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc1Njcm9sbENv
cm5lclZpc2libGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEludFJlY3Qgc2Nyb2xs
Q29ybmVyUmVjdCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgSW50UmVjdCBjb252ZXJ0
RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyKiwgY29uc3QgSW50
UmVjdCYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgSW50UmVjdCBjb252ZXJ0RnJvbUNv
bnRhaW5pbmdWaWV3VG9TY3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFyKiwgY29uc3QgSW50UmVjdCYp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgSW50UG9pbnQgY29udmVydEZyb21TY3JvbGxi
YXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJhciosIGNvbnN0IEludFBvaW50JikgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJbnRQb2ludCBjb252ZXJ0RnJvbUNvbnRhaW5pbmdW
aWV3VG9TY3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFyKiwgY29uc3QgSW50UG9pbnQmKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGludCBzY3JvbGxTaXplKFNjcm9sbGJhck9yaWVudGF0aW9u
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsT2Zmc2V0KGNvbnN0
IEludFBvaW50JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJbnRQb2ludCBzY3JvbGxQb3NpdGlv
bigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgSW50UG9pbnQgbWluaW11bVNjcm9sbFBv
c2l0aW9uKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJbnRQb2ludCBtYXhpbXVtU2Ny
b2xsUG9zaXRpb24oKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEludFJlY3QgdmlzaWJs
ZUNvbnRlbnRSZWN0KFZpc2libGVDb250ZW50UmVjdEluY2x1ZGVzU2Nyb2xsYmFycykgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBpbnQgdmlzaWJsZUhlaWdodCgpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgaW50IHZpc2libGVXaWR0aCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgSW50U2l6ZSBjb250ZW50c1NpemUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IEludFNpemUgb3ZlcmhhbmdBbW91bnQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIElu
dFBvaW50IGxhc3RLbm93bk1vdXNlUG9zaXRpb24oKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgaXNIYW5kbGluZ1doZWVsRXZlbnQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkU3VzcGVuZFNjcm9sbEFuaW1hdGlvbnMoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIEludFJlY3Qgc2Nyb2xsYWJsZUFyZWFCb3VuZGluZ0JveCgpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVzU2Nyb2xsTGF5ZXJQb3NpdGlvbk9uTWFp
blRocmVhZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgaW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyKiwgY29uc3QgSW50UmVjdCYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsQ29ybmVyUmVjdChjb25z
dCBJbnRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzQWN0aXZlKCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzU2Nyb2xsQ29ybmVyVmlzaWJsZSgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW50UmVjdCBzY3JvbGxDb3JuZXJSZWN0KCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBJbnRSZWN0IGNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250
YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXIqLCBjb25zdCBJbnRSZWN0JikgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBJbnRSZWN0IGNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9s
bGJhcihjb25zdCBTY3JvbGxiYXIqLCBjb25zdCBJbnRSZWN0JikgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBJbnRQb2ludCBjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXco
Y29uc3QgU2Nyb2xsYmFyKiwgY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIEludFBvaW50IGNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcihjb25z
dCBTY3JvbGxiYXIqLCBjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgaW50IHNjcm9sbFNpemUoU2Nyb2xsYmFyT3JpZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxPZmZzZXQoY29uc3QgSW50UG9pbnQmKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIEludFBvaW50IHNjcm9sbFBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBJbnRQb2ludCBtaW5pbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIEludFBvaW50IG1heGltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW50UmVjdCB2aXNpYmxlQ29udGVudFJlY3QoVmlzaWJs
ZUNvbnRlbnRSZWN0SW5jbHVkZXNTY3JvbGxiYXJzKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGludCB2aXNpYmxlSGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBpbnQg
dmlzaWJsZVdpZHRoKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBJbnRTaXplIGNvbnRl
bnRzU2l6ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW50U2l6ZSBvdmVyaGFuZ0Ft
b3VudCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW50UG9pbnQgbGFzdEtub3duTW91
c2VQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc0hhbmRsaW5n
V2hlZWxFdmVudCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdXNw
ZW5kU2Nyb2xsQW5pbWF0aW9ucygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW50UmVj
dCBzY3JvbGxhYmxlQXJlYUJvdW5kaW5nQm94KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBib29sIHVwZGF0ZXNTY3JvbGxMYXllclBvc2l0aW9uT25NYWluVGhyZWFkKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZvaWQgcmVn
aXN0ZXJBc1RvdWNoRXZlbnRMaXN0ZW5lckZvclNjcm9sbGluZygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4IDE1NTBlNTQuLjMxZjkyMGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAg
LTE2MSwyNCArMTYxLDI0IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZURlYnVnSW5kaWNhdG9y
cyhib29sIHNob3dCb3JkZXIsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKTsKIAogICAgIC8vIEdy
YXBoaWNzTGF5ZXJDbGllbnQgaW50ZXJmYWNlCi0gICAgdmlydHVhbCBib29sIHNob3VsZFVzZVRp
bGVkQmFja2luZyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHRpbGVkQmFja2luZ1VzYWdlQ2hhbmdlZChjb25zdCBHcmFwaGljc0xheWVyKiwg
Ym9vbCAvKnVzaW5nVGlsZWRCYWNraW5nKi8pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBu
b3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgc3RhcnRU
aW1lKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25z
dCBHcmFwaGljc0xheWVyKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNo
QmVmb3JlRGlzcGxheVJlZnJlc2goY29uc3QgR3JhcGhpY3NMYXllciopIE9WRVJSSURFOworICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmcoY29uc3QgR3JhcGhpY3NMYXllciop
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB0aWxlZEJhY2tpbmdVc2FnZUNoYW5n
ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGJvb2wgLyp1c2luZ1RpbGVkQmFja2luZyovKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFw
aGljc0xheWVyKiwgZG91YmxlIHN0YXJ0VGltZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaEJlZm9yZURpc3BsYXlSZWZyZXNoKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBHcmFwaGljc0xheWVyUGFpbnRp
bmdQaGFzZSwgY29uc3QgSW50UmVjdCYgY2xpcCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIEdy
YXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBjbGlwKSBvdmVycmlkZTsK
IAotICAgIHZpcnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGZsb2F0IGNvbnRlbnRzU2NhbGVNdWx0aXBsaWVyRm9yTmV3VGlsZXMoY29u
c3QgR3JhcGhpY3NMYXllciopIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgZmxvYXQgZGV2
aWNlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGZsb2F0IGNvbnRl
bnRzU2NhbGVNdWx0aXBsaWVyRm9yTmV3VGlsZXMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0
IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0Q2hhbmdlc0ZvckxheWVyKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0Q3Vy
cmVudFRyYW5zZm9ybShjb25zdCBHcmFwaGljc0xheWVyKiwgVHJhbnNmb3JtYXRpb25NYXRyaXgm
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIo
Y29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBn
ZXRDdXJyZW50VHJhbnNmb3JtKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGlzVHJhY2tpbmdSZXBh
aW50cygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTa2lwTGF5ZXJJ
bkR1bXAoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGREdW1wUHJvcGVydHlGb3JMYXllcihjb25zdCBHcmFwaGljc0xheWVyKiwgY29u
c3QgY2hhciogcHJvcGVydHlOYW1lKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wg
aXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHNo
b3VsZFNraXBMYXllckluRHVtcChjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIHNob3VsZER1bXBQcm9wZXJ0eUZvckxheWVyKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqLCBjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUpIGNvbnN0IG92ZXJyaWRlOwogCiAj
aWZuZGVmIE5ERUJVRwogICAgIHZpcnR1YWwgdm9pZCB2ZXJpZnlOb3RQYWludGluZygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4
IDc1MWNmOTguLjlkNzgyMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTI0NCwxMSArMjQ0LDExIEBAIHB1YmxpYzoKIAogICAg
IFN0cmluZyBsYXllclRyZWVBc1RleHQoTGF5ZXJUcmVlRmxhZ3MpOwogCi0gICAgdmlydHVhbCBm
bG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgZmxv
YXQgY29udGVudHNTY2FsZU11bHRpcGxpZXJGb3JOZXdUaWxlcyhjb25zdCBHcmFwaGljc0xheWVy
KikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0Q2hhbmdlc0ZvckxheWVy
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
bm90aWZ5Rmx1c2hCZWZvcmVEaXNwbGF5UmVmcmVzaChjb25zdCBHcmFwaGljc0xheWVyKikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgZmxvYXQgY29udGVudHNTY2FsZU11bHRpcGxpZXJGb3JOZXdUaWxl
cyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBmbG9h
dCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
Q29tbWl0Q2hhbmdlc0ZvckxheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hCZWZvcmVEaXNwbGF5UmVmcmVzaChjb25z
dCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGxheWVyVGlsZWRCYWNraW5n
VXNhZ2VDaGFuZ2VkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBib29sIC8qdXNpbmdUaWxlZEJhY2tp
bmcqLyk7CiAgICAgCkBAIC0zMDcsMTUgKzMwNywxNSBAQCBwcml2YXRlOgogICAgIGNsYXNzIE92
ZXJsYXBNYXA7CiAKICAgICAvLyBHcmFwaGljc0xheWVyQ2xpZW50IGltcGxlbWVudGF0aW9uCi0g
ICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhpY3NMYXll
ciosIGRvdWJsZSkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVx
dWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBw
YWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBHcmFw
aGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBk
b3VibGUpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVk
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRD
b250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgR3JhcGhpY3NM
YXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1
YWwgYm9vbCBpc1RyYWNraW5nUmVwYWludHMoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IGJvb2wgaXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCiAgICAgLy8g
R3JhcGhpY3NMYXllclVwZGF0ZXJDbGllbnQgaW1wbGVtZW50YXRpb24KLSAgICB2aXJ0dWFsIHZv
aWQgZmx1c2hMYXllcnMoR3JhcGhpY3NMYXllclVwZGF0ZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgY3VzdG9tUG9zaXRpb25Gb3JWaXNpYmxlUmVjdENvbXB1dGF0aW9uKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBGbG9hdFBvaW50JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGZsdXNoTGF5ZXJzKEdyYXBoaWNzTGF5ZXJVcGRhdGVyKikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGN1c3RvbVBvc2l0aW9uRm9yVmlzaWJsZVJlY3RDb21wdXRhdGlvbihjb25zdCBH
cmFwaGljc0xheWVyKiwgRmxvYXRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIAogICAgIC8v
IFdoZXRoZXIgdGhlIGdpdmVuIFJMIG5lZWRzIGEgY29tcG9zaXRpbmcgbGF5ZXIuCiAgICAgYm9v
bCBuZWVkc1RvQmVDb21wb3NpdGVkKGNvbnN0IFJlbmRlckxheWVyJiwgUmVuZGVyTGF5ZXI6OlZp
ZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uKiA9IDApIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVySW5mby5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVySW5mby5oCmluZGV4IGU5
NWYzYmYuLmI3MDg5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckZpbHRlckluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJGaWx0ZXJJbmZvLmgKQEAgLTgwLDExICs4MCwxMSBAQCBwcml2YXRlOgogICAgIGZyaWVu
ZCB2b2lkIFdURjo6ZGVsZXRlT3duZWRQdHI8RmlsdGVySW5mbz4oRmlsdGVySW5mbyopOwogCiAj
aWYgRU5BQkxFKENTU19TSEFERVJTKQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlDdXN0b21GaWx0
ZXJQcm9ncmFtTG9hZGVkKEN1c3RvbUZpbHRlclByb2dyYW0qKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5Q3VzdG9tRmlsdGVyUHJvZ3JhbUxvYWRlZChDdXN0b21GaWx0ZXJQcm9n
cmFtKikgb3ZlcnJpZGU7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTVkcpCi0gICAgdmlydHVhbCB2
b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgb3ZlcnJpZGU7CiAjZW5kaWYK
IAogICAgIHN0YXRpYyBIYXNoTWFwPGNvbnN0IFJlbmRlckxheWVyKiwgT3duUHRyPEZpbHRlcklu
Zm8+PiYgbWFwKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
TW9kZWxPYmplY3QuaAppbmRleCA2Yzc1YjM3Li5lZjBjNTNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKQEAgLTM5LDggKzM5LDgg
QEAgcHVibGljOgogICAgIGJvb2wgaGFzU2VsZlBhaW50aW5nTGF5ZXIoKSBjb25zdDsKICAgICBS
ZW5kZXJMYXllciogbGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2xheWVyLmdldCgpOyB9CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVu
ZGVyU3R5bGUmIG5ld1N0eWxlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRD
aGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBj
b25zdCBSZW5kZXJTdHlsZSYgbmV3U3R5bGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBz
dHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHls
ZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21TdHlsZSgpIHsgfQogCiAg
ICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCA9IDA7CkBAIC01NSw3ICs1NSw3
IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgY3JlYXRlTGF5ZXIoKTsKIAotICAgIHZpcnR1YWwg
dm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJl
RGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJl
bmRlckxheWVyPiBtX2xheWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpbmVCcmVhay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVC
cmVhay5oCmluZGV4IDYzZmYwMDIuLjg5ZGIyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaW5lQnJlYWsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGluZUJyZWFrLmgKQEAgLTM2LDkgKzM2LDkgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgflJlbmRlckxpbmVCcmVhaygpOwogCiAgICAgLy8gRklYTUU6IFRoZSBsaWVzIGhlcmUga2Vl
cCByZW5kZXIgdHJlZSBkdW1wIGJhc2VkIHRlc3QgcmVzdWx0cyB1bmNoYW5nZWQuCi0gICAgdmly
dHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9p
c1dCUiA/ICJSZW5kZXJXb3JkQnJlYWsiIDogIlJlbmRlckJSIjsgfQorICAgIHZpcnR1YWwgY29u
c3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faXNXQlIgPyAi
UmVuZGVyV29yZEJyZWFrIiA6ICJSZW5kZXJCUiI7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBpc1dC
UigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1faXNXQlI7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
aXNXQlIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lzV0JSOyB9CiAKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8SW5saW5lRWxlbWVudEJveD4gY3JlYXRlSW5saW5lQm94KCk7CiAgICAgSW5saW5l
RWxlbWVudEJveCogaW5saW5lQm94V3JhcHBlcigpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5lQm94
V3JhcHBlcjsgfQpAQCAtNDksNDEgKzQ5LDQxIEBAIHB1YmxpYzoKIAogICAgIEludFJlY3QgbGlu
ZXNCb3VuZGluZ0JveCgpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIGFic29sdXRlUmVjdHMo
VmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8Rmxv
YXRRdWFkPiYsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBjb25zdCBMYXlvdXRQb2ludCYgYWNj
dW11bGF0ZWRPZmZzZXQpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0
ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0IG92ZXJyaWRl
OwogCiBwcml2YXRlOgogICAgIHZvaWQgbm9kZSgpIGNvbnN0IFdURl9ERUxFVEVEX0ZVTkNUSU9O
OwogCi0gICAgdmlydHVhbCBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0
IExheW91dFBvaW50JikgT1ZFUlJJREUgRklOQUwgeyB9Ci0KLSAgICB2aXJ0dWFsIFZpc2libGVQ
b3NpdGlvbiBwb3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50JikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBpbnQgY2FyZXRNaW5PZmZzZXQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGludCBjYXJldE1heE9mZnNldCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9v
bCBjYW5CZVNlbGVjdGlvbkxlYWYoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIExheW91
dFJlY3QgbG9jYWxDYXJldFJlY3QoSW5saW5lQm94KiwgaW50IGNhcmV0T2Zmc2V0LCBMYXlvdXRV
bml0KiBleHRyYVdpZHRoVG9FbmRPZkxpbmUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBz
ZXRTZWxlY3Rpb25TdGF0ZShTZWxlY3Rpb25TdGF0ZSkgT1ZFUlJJREU7Ci0KLSAgICB2aXJ0dWFs
IExheW91dFVuaXQgbGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUs
IExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgaW50IGJhc2Vs
aW5lUG9zaXRpb24oRm9udEJhc2VsaW5lLCBib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1v
ZGUsIExpbmVQb3NpdGlvbk1vZGUpIGNvbnN0IE9WRVJSSURFOwotCi0gICAgdmlydHVhbCBMYXlv
dXRVbml0IG1hcmdpblRvcCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0
dWFsIExheW91dFVuaXQgbWFyZ2luQm90dG9tKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gMDsg
fQotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5MZWZ0KCkgY29uc3QgT1ZFUlJJREUgeyBy
ZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5SaWdodCgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luQmVmb3Jl
KGNvbnN0IFJlbmRlclN0eWxlKikgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQotICAgIHZp
cnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5BZnRlcihjb25zdCBSZW5kZXJTdHlsZSopIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luU3RhcnQo
Y29uc3QgUmVuZGVyU3R5bGUqKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAwOyB9Ci0gICAgdmly
dHVhbCBMYXlvdXRVbml0IG1hcmdpbkVuZChjb25zdCBSZW5kZXJTdHlsZSopIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIExheW91dFVuaXQgb2Zmc2V0V2lkdGgoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiBsaW5lc0JvdW5kaW5nQm94KCkud2lkdGgoKTsgfQotICAg
IHZpcnR1YWwgTGF5b3V0VW5pdCBvZmZzZXRIZWlnaHQoKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biBsaW5lc0JvdW5kaW5nQm94KCkuaGVpZ2h0KCk7IH0KLSAgICB2aXJ0dWFsIEludFJlY3QgYm9y
ZGVyQm91bmRpbmdCb3goKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIExheW91dFJlY3Qg
ZnJhbWVSZWN0Rm9yU3RpY2t5UG9zaXRpb25pbmcoKSBjb25zdCBPVkVSUklERSB7IEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOyByZXR1cm4gTGF5b3V0UmVjdCgpOyB9Ci0gICAgdmlydHVhbCBMYXlvdXRS
ZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBMYXlvdXRSZWN0KCk7IH0KLQotICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVGcm9tU3R5bGUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
cmVxdWlyZXNMYXllcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50
Jikgb3ZlcnJpZGUgRklOQUwgeyB9CisKKyAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBwb3Np
dGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBp
bnQgY2FyZXRNaW5PZmZzZXQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGludCBjYXJl
dE1heE9mZnNldCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjYW5CZVNlbGVj
dGlvbkxlYWYoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgbG9jYWxD
YXJldFJlY3QoSW5saW5lQm94KiwgaW50IGNhcmV0T2Zmc2V0LCBMYXlvdXRVbml0KiBleHRyYVdp
ZHRoVG9FbmRPZkxpbmUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3Rpb25T
dGF0ZShTZWxlY3Rpb25TdGF0ZSkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIExheW91dFVuaXQg
bGluZUhlaWdodChib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlv
bk1vZGUpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24o
Rm9udEJhc2VsaW5lLCBib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3Np
dGlvbk1vZGUpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdp
blRvcCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIExheW91dFVu
aXQgbWFyZ2luQm90dG9tKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1
YWwgTGF5b3V0VW5pdCBtYXJnaW5MZWZ0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQor
ICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5SaWdodCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIDA7IH0KKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luQmVmb3JlKGNvbnN0IFJlbmRl
clN0eWxlKikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgTGF5b3V0
VW5pdCBtYXJnaW5BZnRlcihjb25zdCBSZW5kZXJTdHlsZSopIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIDA7IH0KKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luU3RhcnQoY29uc3QgUmVuZGVy
U3R5bGUqKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBMYXlvdXRV
bml0IG1hcmdpbkVuZChjb25zdCBSZW5kZXJTdHlsZSopIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IDA7IH0KKyAgICB2aXJ0dWFsIExheW91dFVuaXQgb2Zmc2V0V2lkdGgoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBsaW5lc0JvdW5kaW5nQm94KCkud2lkdGgoKTsgfQorICAgIHZpcnR1YWwgTGF5
b3V0VW5pdCBvZmZzZXRIZWlnaHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBsaW5lc0JvdW5k
aW5nQm94KCkuaGVpZ2h0KCk7IH0KKyAgICB2aXJ0dWFsIEludFJlY3QgYm9yZGVyQm91bmRpbmdC
b3goKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgZnJhbWVSZWN0Rm9y
U3RpY2t5UG9zaXRpb25pbmcoKSBjb25zdCBvdmVycmlkZSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OyByZXR1cm4gTGF5b3V0UmVjdCgpOyB9CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRP
dmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBMYXlvdXRSZWN0KCk7IH0KKworICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVGcm9tU3R5bGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXll
cigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBJbmxpbmVFbGVtZW50
Qm94KiBtX2lubGluZUJveFdyYXBwZXI7CiAgICAgbXV0YWJsZSBpbnQgbV9jYWNoZWRMaW5lSGVp
Z2h0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3gu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKaW5kZXggZjRiZWUy
ZC4uMzE0MmQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCkBA
IC02Miw3MSArNjIsNzEgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIGVsZW1lbnQoKSBj
b25zdCBXVEZfREVMRVRFRF9GVU5DVElPTjsKIAotICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVu
ZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuICJSZW5kZXJMaXN0Qm94IjsgfQorICAg
IHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
ICJSZW5kZXJMaXN0Qm94IjsgfQogCi0gICAgdmlydHVhbCBib29sIGlzTGlzdEJveCgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNMaXN0Qm94KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUZyb21FbGVtZW50KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNhbkJlUmVwbGFjZWRX
aXRoSW5saW5lUnVuSW4oKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaGFzQ29u
dHJvbENsaXAoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCB2
b2lkIHBhaW50T2JqZWN0KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBMYXlvdXRSZWN0IGNvbnRyb2xDbGlwUmVjdChjb25zdCBMYXlvdXRQb2lu
dCYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjYW5CZVJlcGxhY2VkV2l0aElubGluZVJ1bklu
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGhhc0NvbnRyb2xDbGlwKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBwYWludE9iamVj
dChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
TGF5b3V0UmVjdCBjb250cm9sQ2xpcFJlY3QoY29uc3QgTGF5b3V0UG9pbnQmKSBjb25zdCBvdmVy
cmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc1BvaW50SW5PdmVyZmxvd0NvbnRyb2woSGl0VGVz
dFJlc3VsdCYsIGNvbnN0IExheW91dFBvaW50JiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBM
YXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9v
bCBpc1BvaW50SW5PdmVyZmxvd0NvbnRyb2woSGl0VGVzdFJlc3VsdCYsIGNvbnN0IExheW91dFBv
aW50JiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRP
ZmZzZXQpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rp
b24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMSwgRWxlbWVudCoqIHN0
b3BFbGVtZW50ID0gMCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGxvZ2ljYWxTY3JvbGwo
U2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IG11bHRpcGxp
ZXIgPSAxLCBFbGVtZW50Kiogc3RvcEVsZW1lbnQgPSAwKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IGJvb2wgc2Nyb2xsKFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IG11
bHRpcGxpZXIgPSAxLCBFbGVtZW50Kiogc3RvcEVsZW1lbnQgPSAwKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgbG9naWNhbFNjcm9sbChTY3JvbGxMb2dpY2FsRGlyZWN0aW9uLCBTY3JvbGxH
cmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEsIEVsZW1lbnQqKiBzdG9wRWxlbWVudCA9
IDApIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2Fs
V2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNh
bFdpZHRoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVByZWZlcnJl
ZExvZ2ljYWxXaWR0aHMoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGludCBiYXNlbGluZVBvc2l0
aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5l
UG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBsb2dpY2Fs
SGVpZ2h0LCBMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVl
cyYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW50cmluc2ljTG9n
aWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExheW91dFVuaXQmIG1heExv
Z2ljYWxXaWR0aCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVQcmVm
ZXJyZWRMb2dpY2FsV2lkdGhzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQ
b3NpdGlvbihGb250QmFzZWxpbmUsIGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwg
TGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQgbG9n
aWNhbEhlaWdodCwgTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMb2dpY2FsRXh0ZW50Q29tcHV0ZWRW
YWx1ZXMmKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgYWRkRm9jdXNSaW5nUmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9p
bnQmIGFkZGl0aW9uYWxPZmZzZXQsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHBhaW50
Q29udGFpbmVyID0gMCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGFkZEZvY3VzUmluZ1Jl
Y3RzKFZlY3RvcjxJbnRSZWN0PiYsIGNvbnN0IExheW91dFBvaW50JiBhZGRpdGlvbmFsT2Zmc2V0
LCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBwYWludENvbnRhaW5lciA9IDApIG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCBib29sIGNhbkJlUHJvZ3JhbWF0aWNhbGx5U2Nyb2xsZWQoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCB2b2lkIGF1dG9zY3Jv
bGwoY29uc3QgSW50UG9pbnQmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcEF1dG9z
Y3JvbGwoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuQmVQcm9ncmFtYXRpY2FsbHlT
Y3JvbGxlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgYXV0b3Njcm9sbChjb25zdCBJbnRQb2ludCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzdG9wQXV0b3Njcm9sbCgpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHNob3VsZFBh
blNjcm9sbCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcGFuU2Ny
b2xsKGNvbnN0IEludFBvaW50JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhblNjcm9s
bChjb25zdCBJbnRQb2ludCYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBpbnQgdmVydGljYWxT
Y3JvbGxiYXJXaWR0aCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgaW50IHNjcm9sbExl
ZnQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGludCBzY3JvbGxUb3AoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGludCBzY3JvbGxXaWR0aCgpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgaW50IHNjcm9sbEhlaWdodCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBzZXRTY3JvbGxMZWZ0KGludCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNl
dFNjcm9sbFRvcChpbnQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgaW50IHZlcnRpY2FsU2Nyb2xs
YmFyV2lkdGgoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGludCBzY3JvbGxMZWZ0KCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBpbnQgc2Nyb2xsVG9wKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBpbnQgc2Nyb2xsV2lkdGgoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGludCBzY3JvbGxIZWlnaHQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0U2Nyb2xsTGVmdChpbnQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRTY3Jv
bGxUb3AoaW50KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25z
dCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24m
IGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNl
dCwgSGl0VGVzdEFjdGlvbikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIG5vZGVBdFBvaW50
KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2Nh
dGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVk
T2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBvdmVycmlkZTsKIAogICAgIC8vIFNjcm9sbGFibGVBcmVh
IGludGVyZmFjZS4KLSAgICB2aXJ0dWFsIGludCBzY3JvbGxTaXplKFNjcm9sbGJhck9yaWVudGF0
aW9uKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGludCBzY3JvbGxQb3NpdGlvbihTY3Jv
bGxiYXIqKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsT2Zmc2V0
KGNvbnN0IEludFBvaW50JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVT
Y3JvbGxiYXJSZWN0KFNjcm9sbGJhciosIGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGJvb2wgaXNBY3RpdmUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
aXNTY3JvbGxDb3JuZXJWaXNpYmxlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0g
Ly8gV2UgZG9uJ3Qgc3VwcG9ydCByZXNpemUgb24gbGlzdCBib3hlcyB5ZXQuIElmIHdlIGRpZCB0
aGVzZSB3b3VsZCBoYXZlIHRvIGNoYW5nZS4KLSAgICB2aXJ0dWFsIEludFJlY3Qgc2Nyb2xsQ29y
bmVyUmVjdCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIEludFJlY3QoKTsgfQotICAgIHZpcnR1
YWwgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsQ29ybmVyUmVjdChjb25zdCBJbnRSZWN0JikgT1ZFUlJJ
REUgeyB9Ci0gICAgdmlydHVhbCBJbnRSZWN0IGNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWlu
aW5nVmlldyhjb25zdCBTY3JvbGxiYXIqLCBjb25zdCBJbnRSZWN0JikgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBJbnRSZWN0IGNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJh
cihjb25zdCBTY3JvbGxiYXIqLCBjb25zdCBJbnRSZWN0JikgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBJbnRQb2ludCBjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29u
c3QgU2Nyb2xsYmFyKiwgY29uc3QgSW50UG9pbnQmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIEludFBvaW50IGNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcihjb25zdCBT
Y3JvbGxiYXIqLCBjb25zdCBJbnRQb2ludCYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
U2Nyb2xsYmFyKiB2ZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1f
dkJhci5nZXQoKTsgfQotICAgIHZpcnR1YWwgSW50U2l6ZSBjb250ZW50c1NpemUoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGludCB2aXNpYmxlSGVpZ2h0KCkgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBpbnQgdmlzaWJsZVdpZHRoKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBJbnRQb2ludCBsYXN0S25vd25Nb3VzZVBvc2l0aW9uKCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBib29sIGlzSGFuZGxpbmdXaGVlbEV2ZW50KCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBib29sIHNob3VsZFN1c3BlbmRTY3JvbGxBbmltYXRpb25zKCkgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBib29sIHVwZGF0ZXNTY3JvbGxMYXllclBvc2l0aW9uT25NYWlu
VGhyZWFkKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQotCi0gICAgdmlydHVhbCBT
Y3JvbGxhYmxlQXJlYSogZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIEludFJlY3Qgc2Nyb2xsYWJsZUFyZWFCb3VuZGluZ0JveCgpIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgaW50IHNjcm9sbFNpemUoU2Nyb2xsYmFyT3JpZW50YXRpb24p
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgaW50IHNjcm9sbFBvc2l0aW9uKFNjcm9sbGJh
ciopIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxPZmZzZXQoY29u
c3QgSW50UG9pbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVNjcm9s
bGJhclJlY3QoU2Nyb2xsYmFyKiwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1Nj
cm9sbENvcm5lclZpc2libGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfSAvLyBX
ZSBkb24ndCBzdXBwb3J0IHJlc2l6ZSBvbiBsaXN0IGJveGVzIHlldC4gSWYgd2UgZGlkIHRoZXNl
IHdvdWxkIGhhdmUgdG8gY2hhbmdlLgorICAgIHZpcnR1YWwgSW50UmVjdCBzY3JvbGxDb3JuZXJS
ZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gSW50UmVjdCgpOyB9CisgICAgdmlydHVhbCB2
b2lkIGludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNvbnN0IEludFJlY3QmKSBvdmVycmlkZSB7
IH0KKyAgICB2aXJ0dWFsIEludFJlY3QgY29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdW
aWV3KGNvbnN0IFNjcm9sbGJhciosIGNvbnN0IEludFJlY3QmKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIEludFJlY3QgY29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNv
bnN0IFNjcm9sbGJhciosIGNvbnN0IEludFJlY3QmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIEludFBvaW50IGNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBT
Y3JvbGxiYXIqLCBjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
SW50UG9pbnQgY29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9s
bGJhciosIGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTY3Jv
bGxiYXIqIHZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV92QmFy
LmdldCgpOyB9CisgICAgdmlydHVhbCBJbnRTaXplIGNvbnRlbnRzU2l6ZSgpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgaW50IHZpc2libGVIZWlnaHQoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGludCB2aXNpYmxlV2lkdGgoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IEludFBvaW50IGxhc3RLbm93bk1vdXNlUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNIYW5kbGluZ1doZWVsRXZlbnQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkU3VzcGVuZFNjcm9sbEFuaW1hdGlvbnMoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlc1Njcm9sbExheWVyUG9zaXRpb25Pbk1haW5UaHJl
YWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisKKyAgICB2aXJ0dWFsIFNjcm9s
bGFibGVBcmVhKiBlbmNsb3NpbmdTY3JvbGxhYmxlQXJlYSgpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgSW50UmVjdCBzY3JvbGxhYmxlQXJlYUJvdW5kaW5nQm94KCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICAvLyBOT1RFOiBUaGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBieSB0aGUgb3Zl
cnJpZGVuIHNldFNjcm9sbE9mZnNldCBmcm9tIFNjcm9sbGFibGVBcmVhLgogICAgIHZvaWQgc2Ny
b2xsVG8oaW50IG5ld09mZnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdEl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
SXRlbS5oCmluZGV4IDRkNzYxZjEuLjNjZTAwYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaXN0SXRlbS5oCkBAIC01NiwyOCArNTYsMjggQEAgcHVibGljOgogICAgIHN0YXRp
YyB1bnNpZ25lZCBpdGVtQ291bnRGb3JPcmRlcmVkTGlzdChjb25zdCBIVE1MT0xpc3RFbGVtZW50
Kik7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gIlJlbmRlckxpc3RJdGVtIjsgfQorICAgIHZpcnR1YWwgY29u
c3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJMaXN0
SXRlbSI7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBpc0xpc3RJdGVtKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0xpc3RJdGVtKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIAotICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0
cm95ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvVHJlZSgpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVSZW1vdmVkRnJvbVRyZWUoKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvVHJlZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCB3aWxsQmVSZW1vdmVkRnJvbVRyZWUoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBp
c0VtcHR5KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5m
byYsIGNvbnN0IExheW91dFBvaW50JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlzRW1w
dHkoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwg
Y29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQo
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgb3ZlcnJpZGU7CiAKICAgICB2
b2lkIHBvc2l0aW9uTGlzdE1hcmtlcigpOwogCi0gICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hh
bmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25z
dCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIHJl
cXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNGb3JjZWRTdHlsZVJlY2FsY1By
b3BhZ2F0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVh
bCB2b2lkIGFkZE92ZXJmbG93RnJvbUNoaWxkcmVuKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGFkZE92ZXJmbG93RnJvbUNoaWxkcmVuKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lk
IGluc2VydE9yTW92ZU1hcmtlclJlbmRlcmVySWZOZWVkZWQoKTsKICAgICBpbmxpbmUgaW50IGNh
bGNWYWx1ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RNYXJrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFy
a2VyLmgKaW5kZXggZDEzNjUzYi4uYmE3ZWMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdE1hcmtlci5oCkBAIC00OCwzNCArNDgsMzQgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICB2b2lkIGVsZW1lbnQoKSBjb25zdCBXVEZfREVMRVRFRF9GVU5DVElPTjsKIAotICAg
IHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
ICJSZW5kZXJMaXN0TWFya2VyIjsgfQotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVk
TG9naWNhbFdpZHRocygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVy
TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJMaXN0TWFya2VyIjsgfQorICAg
IHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpIG92ZXJyaWRlOwog
Ci0gICAgdmlydHVhbCBib29sIGlzTGlzdE1hcmtlcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNMaXN0TWFya2VyKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlQ2hp
bGRyZW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCB2
b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJp
ZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGxheW91dCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChX
cmFwcGVkSW1hZ2VQdHIsIGNvbnN0IEludFJlY3QqID0gMCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGltYWdlQ2hhbmdlZChXcmFwcGVkSW1hZ2VQdHIsIGNvbnN0IEludFJlY3QqID0gMCkg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxJbmxpbmVFbGVtZW50Qm94
PiBjcmVhdGVJbmxpbmVCb3goKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0
cjxJbmxpbmVFbGVtZW50Qm94PiBjcmVhdGVJbmxpbmVCb3goKSBvdmVycmlkZTsKIAotICAgIHZp
cnR1YWwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9u
TW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUs
IGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBv
c2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBMYXlv
dXRVbml0IGxpbmVIZWlnaHQoYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5l
UG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGludCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJz
dExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNv
bnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdl
KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlzSW1hZ2UoKSBjb25zdCBvdmVy
cmlkZTsKICAgICBib29sIGlzVGV4dCgpIGNvbnN0IHsgcmV0dXJuICFpc0ltYWdlKCk7IH0KIAot
ICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3Rpb25TdGF0ZShTZWxlY3Rpb25TdGF0ZSkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBMYXlvdXRSZWN0IHNlbGVjdGlvblJlY3RGb3JSZXBhaW50KGNvbnN0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRvVmlz
aWJsZUNvbnRlbnQgPSB0cnVlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgY2FuQmVTZWxl
Y3Rpb25MZWFmKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwg
dm9pZCBzZXRTZWxlY3Rpb25TdGF0ZShTZWxlY3Rpb25TdGF0ZSkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBMYXlvdXRSZWN0IHNlbGVjdGlvblJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQg
PSB0cnVlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdm9pZCB1cGRhdGVNYXJnaW5z
KCk7CiAgICAgdm9pZCB1cGRhdGVDb250ZW50KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3R5bGVE
aWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2Us
IGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgb3ZlcnJpZGU7CiAKICAgICBJbnRSZWN0IGdl
dFJlbGF0aXZlTWFya2VyUmVjdCgpOwogICAgIExheW91dFJlY3QgbG9jYWxTZWxlY3Rpb25SZWN0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5oCmluZGV4IGRiYmMyZGUuLjVl
ZGRmMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5oCkBAIC00NywxNCAr
NDcsMTQgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB2b2lkIGVsZW1lbnQoKSBjb25zdCBX
VEZfREVMRVRFRF9GVU5DVElPTjsKIAotICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4o
KSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29s
IGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0K
IAotICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuICJSZW5kZXJNZWRpYSI7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNNZWRpYSgpIGNvbnN0
IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNJbWFn
ZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2
b2lkIHBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiAiUmVuZGVyTWVkaWEiOyB9CisgICAgdmlydHVhbCBib29sIGlzTWVkaWEoKSBjb25z
dCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzSW1h
Z2UoKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
dm9pZCBwYWludFJlcGxhY2VkKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJp
ZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNGb3JjZWRTdHlsZVJlY2FsY1Byb3BhZ2F0
aW9uKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCByZXF1aXJlc0ZvcmNlZFN0eWxlUmVjYWxjUHJvcGFnYXRpb24oKSBjb25zdCBvdmVycmlk
ZSBGSU5BTCB7IHJldHVybiB0cnVlOyB9CiB9OwogCiBSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMo
UmVuZGVyTWVkaWEsIGlzTWVkaWEoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZW51TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmgKaW5kZXggYjJiMTc1Mi4uZTg1NjY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lbnVMaXN0LmgKQEAgLTYzLDY5ICs2Myw2OSBAQCBwdWJsaWM6CiBwcml2YXRl
OgogICAgIHZvaWQgZWxlbWVudCgpIGNvbnN0IFdURl9ERUxFVEVEX0ZVTkNUSU9OOwogCi0gICAg
dmlydHVhbCBib29sIGlzTWVudUxpc3QoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9
CisgICAgdmlydHVhbCBib29sIGlzTWVudUxpc3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBuZXdDaGls
ZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVDaGlsZChSZW5kZXJPYmplY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJv
b2wgY3JlYXRlc0Fub255bW91c1dyYXBwZXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVl
OyB9CisgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogbmV3Q2hpbGQsIFJl
bmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGNy
ZWF0ZXNBbm9ueW1vdXNXcmFwcGVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQog
Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCkgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIExh
eW91dFJlY3QgY29udHJvbENsaXBSZWN0KGNvbnN0IExheW91dFBvaW50JikgY29uc3QgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBib29sIGhhc0NvbnRyb2xDbGlwKCkgY29uc3QgT1ZFUlJJREUgeyBy
ZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlR2VuZXJhdGVkQ2hpbGRyZW4o
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBjYW5C
ZVJlcGxhY2VkV2l0aElubGluZVJ1bkluKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBM
YXlvdXRSZWN0IGNvbnRyb2xDbGlwUmVjdChjb25zdCBMYXlvdXRQb2ludCYpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgYm9vbCBoYXNDb250cm9sQ2xpcCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUdlbmVyYXRlZENoaWxkcmVu
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2Fu
QmVSZXBsYWNlZFdpdGhJbmxpbmVSdW5JbigpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVh
bCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gIlJlbmRl
ck1lbnVMaXN0IjsgfQorICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJNZW51TGlzdCI7IH0KIAotICAgIHZpcnR1YWwgdm9p
ZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lk
dGgsIExheW91dFVuaXQmIG1heExvZ2ljYWxXaWR0aCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1p
bkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBvdmVy
cmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2Us
IGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0
eWxlKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0ZvcmNlZFN0eWxlUmVj
YWxjUHJvcGFnYXRpb24oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmly
dHVhbCBib29sIHJlcXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbigpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIC8vIFBvcHVwTWVudUNsaWVudCBtZXRob2Rz
Ci0gICAgdmlydHVhbCB2b2lkIHZhbHVlQ2hhbmdlZCh1bnNpZ25lZCBsaXN0SW5kZXgsIGJvb2wg
ZmlyZU9uQ2hhbmdlID0gdHJ1ZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNlbGVjdGlv
bkNoYW5nZWQodW5zaWduZWQsIGJvb2wpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBz
ZWxlY3Rpb25DbGVhcmVkKCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCBTdHJpbmcgaXRlbVRl
eHQodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBpdGVtTGFiZWwodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBpdGVtSWNvbih1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1Ub29sVGlwKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgaXRlbUFjY2Vzc2liaWxpdHlUZXh0KHVuc2ln
bmVkIGxpc3RJbmRleCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGl0ZW1Jc0Vu
YWJsZWQodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFBv
cHVwTWVudVN0eWxlIGl0ZW1TdHlsZSh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5bGUgbWVudVN0eWxlKCkgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBpbnQgY2xpZW50SW5zZXRMZWZ0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBpbnQgY2xpZW50SW5zZXRSaWdodCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgTGF5b3V0VW5pdCBjbGllbnRQYWRkaW5nTGVmdCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgTGF5b3V0VW5pdCBjbGllbnRQYWRkaW5nUmlnaHQoKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGludCBsaXN0U2l6ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgaW50
IHNlbGVjdGVkSW5kZXgoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcG9wdXBE
aWRIaWRlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGl0ZW1Jc1NlcGFyYXRvcih1bnNp
Z25lZCBsaXN0SW5kZXgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpdGVtSXNM
YWJlbCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9v
bCBpdGVtSXNTZWxlY3RlZCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRQb3BPdmVyKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gIVBP
UFVQX01FTlVfUFVMTFNfRE9XTjsgfQotICAgIHZpcnR1YWwgYm9vbCB2YWx1ZVNob3VsZENoYW5n
ZU9uSG90VHJhY2soKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVh
bCB2b2lkIHNldFRleHRGcm9tSXRlbSh1bnNpZ25lZCBsaXN0SW5kZXgpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBsaXN0Qm94U2VsZWN0SXRlbShpbnQgbGlzdEluZGV4LCBib29sIGFsbG93
TXVsdGlwbHlTZWxlY3Rpb25zLCBib29sIHNoaWZ0LCBib29sIGZpcmVPbkNoYW5nZU5vdyA9IHRy
dWUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBtdWx0aXBsZSgpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgRm9udFNlbGVjdG9yKiBmb250U2VsZWN0b3IoKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIEhvc3RXaW5kb3cqIGhvc3RXaW5kb3coKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2Nyb2xsYmFyPiBjcmVhdGVTY3JvbGxiYXIoU2Nyb2xs
YWJsZUFyZWEqLCBTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Nyb2xsYmFyQ29udHJvbFNpemUpIE9W
RVJSSURFOwotCi0gICAgdmlydHVhbCBib29sIGhhc0xpbmVJZkVtcHR5KCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCB2YWx1ZUNoYW5nZWQodW5zaWdu
ZWQgbGlzdEluZGV4LCBib29sIGZpcmVPbkNoYW5nZSA9IHRydWUpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBzZWxlY3Rpb25DaGFuZ2VkKHVuc2lnbmVkLCBib29sKSBvdmVycmlkZSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0aW9uQ2xlYXJlZCgpIG92ZXJyaWRlIHsgfQorICAgIHZp
cnR1YWwgU3RyaW5nIGl0ZW1UZXh0KHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBTdHJpbmcgaXRlbUxhYmVsKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgaXRlbUljb24odW5zaWduZWQgbGlzdEluZGV4
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVtVG9vbFRpcCh1bnNpZ25l
ZCBsaXN0SW5kZXgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1BY2Nl
c3NpYmlsaXR5VGV4dCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgYm9vbCBpdGVtSXNFbmFibGVkKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBQb3B1cE1lbnVTdHlsZSBpdGVtU3R5bGUodW5zaWduZWQgbGlzdElu
ZGV4KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxlIG1lbnVTdHls
ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0TGVmdCgpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0UmlnaHQoKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgY2xpZW50UGFkZGluZ0xlZnQoKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgY2xpZW50UGFkZGluZ1JpZ2h0KCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBpbnQgbGlzdFNpemUoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGludCBzZWxlY3RlZEluZGV4KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHBvcHVwRGlkSGlkZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBp
dGVtSXNTZXBhcmF0b3IodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgaXRlbUlzTGFiZWwodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXRlbUlzU2VsZWN0ZWQodW5zaWduZWQgbGlzdEluZGV4KSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUG9wT3ZlcigpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuICFQT1BVUF9NRU5VX1BVTExTX0RPV047IH0KKyAgICB2aXJ0dWFsIGJv
b2wgdmFsdWVTaG91bGRDaGFuZ2VPbkhvdFRyYWNrKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0RnJvbUl0ZW0odW5zaWduZWQgbGlzdElu
ZGV4KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbGlzdEJveFNlbGVjdEl0ZW0oaW50IGxp
c3RJbmRleCwgYm9vbCBhbGxvd011bHRpcGx5U2VsZWN0aW9ucywgYm9vbCBzaGlmdCwgYm9vbCBm
aXJlT25DaGFuZ2VOb3cgPSB0cnVlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgbXVsdGlw
bGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEZvbnRTZWxlY3RvciogZm9udFNlbGVj
dG9yKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBIb3N0V2luZG93KiBob3N0V2luZG93
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNjcm9sbGJhcj4gY3Jl
YXRlU2Nyb2xsYmFyKFNjcm9sbGFibGVBcmVhKiwgU2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9s
bGJhckNvbnRyb2xTaXplKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgYm9vbCBoYXNMaW5lSWZF
bXB0eSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIC8vIEZsZXhib3gg
ZGVmaW5lcyBiYXNlbGluZXMgZGlmZmVyZW50bHkgdGhhbiByZWd1bGFyIGJsb2Nrcy4KICAgICAv
LyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIG1lbnVsaXN0cyBuZWVkIHRvIGRvIHRoZSBy
ZWd1bGFyIGJsb2NrIGJlaGF2aW9yLgotICAgIHZpcnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24o
Rm9udEJhc2VsaW5lIGJhc2VsaW5lLCBib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUg
ZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2RlIHBvc2l0aW9uKSBjb25zdCBPVkVSUklERQorICAg
IHZpcnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lIGJhc2VsaW5lLCBib29s
IGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUgZGlyZWN0aW9uLCBMaW5lUG9zaXRpb25Nb2Rl
IHBvc2l0aW9uKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgcmV0dXJuIFJlbmRlckJs
b2NrOjpiYXNlbGluZVBvc2l0aW9uKGJhc2VsaW5lLCBmaXJzdExpbmUsIGRpcmVjdGlvbiwgcG9z
aXRpb24pOwogICAgIH0KLSAgICB2aXJ0dWFsIGludCBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIFJlbmRlckJsb2NrOjpmaXJzdExpbmVCYXNlbGluZSgpOyB9Ci0g
ICAgdmlydHVhbCBpbnQgaW5saW5lQmxvY2tCYXNlbGluZShMaW5lRGlyZWN0aW9uTW9kZSBkaXJl
Y3Rpb24pIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFJlbmRlckJsb2NrOjppbmxpbmVCbG9ja0Jh
c2VsaW5lKGRpcmVjdGlvbik7IH0KKyAgICB2aXJ0dWFsIGludCBmaXJzdExpbmVCYXNlbGluZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFJlbmRlckJsb2NrOjpmaXJzdExpbmVCYXNlbGluZSgp
OyB9CisgICAgdmlydHVhbCBpbnQgaW5saW5lQmxvY2tCYXNlbGluZShMaW5lRGlyZWN0aW9uTW9k
ZSBkaXJlY3Rpb24pIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFJlbmRlckJsb2NrOjppbmxpbmVC
bG9ja0Jhc2VsaW5lKGRpcmVjdGlvbik7IH0KIAogICAgIHZvaWQgZ2V0SXRlbUJhY2tncm91bmRD
b2xvcih1bnNpZ25lZCBsaXN0SW5kZXgsIENvbG9yJiwgYm9vbCYgaXRlbUhhc0N1c3RvbUJhY2tn
cm91bmRDb2xvcikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZXRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1ldGVyLmgK
aW5kZXggMmUzMGI0Yi4uNjcwY2I1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1ldGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
dGVyLmgKQEAgLTM2LDE1ICszNiwxNSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVuZGVyTWV0
ZXIoKTsKIAogICAgIEhUTUxNZXRlckVsZW1lbnQqIG1ldGVyRWxlbWVudCgpIGNvbnN0OwotICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVMb2dpY2FsV2lkdGgoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBMYXlvdXRVbml0
IGxvZ2ljYWxUb3AsIExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMb2dpY2FsV2lkdGgoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0
LCBMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYpIGNv
bnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gIlJlbmRlck1ldGVyIjsgfQotICAgIHZpcnR1YWwgYm9vbCBp
c01ldGVyKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9v
bCByZXF1aXJlc0ZvcmNlZFN0eWxlUmVjYWxjUHJvcGFnYXRpb24oKSBjb25zdCBPVkVSUklERSB7
IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlck1ldGVyIjsgfQorICAgIHZpcnR1YWwgYm9vbCBp
c01ldGVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9v
bCByZXF1aXJlc0ZvcmNlZFN0eWxlUmVjYWxjUHJvcGFnYXRpb24oKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CiB9OwogCiBSRU5ERVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyTWV0
ZXIsIGlzTWV0ZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJNdWx0aUNvbHVtbkJsb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVs
dGlDb2x1bW5CbG9jay5oCmluZGV4IGFlNDc0MzguLjhkMDFjOTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suaApAQCAtNTEsMTUgKzUx
LDE1IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyTXVsdGlDb2x1bW5CbG9j
aygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRl
ck5hbWUoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBsYXlvdXRTcGVjaWFs
RXhjbHVkZWRDaGlsZChib29sIHJlbGF5b3V0Q2hpbGRyZW4pIE9WRVJSSURFOworICAgIHZpcnR1
YWwgUmVuZGVyT2JqZWN0KiBsYXlvdXRTcGVjaWFsRXhjbHVkZWRDaGlsZChib29sIHJlbGF5b3V0
Q2hpbGRyZW4pIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0
eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSop
IG92ZXJyaWRlOwogICAgIAotICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVMb2dpY2FsV2lkdGhBbmRD
b2x1bW5XaWR0aCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjaGVja0ZvclBhZ2luYXRp
b25Mb2dpY2FsSGVpZ2h0Q2hhbmdlKExheW91dFVuaXQmIHBhZ2VMb2dpY2FsSGVpZ2h0LCBib29s
JiBwYWdlTG9naWNhbEhlaWdodENoYW5nZWQsIGJvb2wmIGhhc1NwZWNpZmllZFBhZ2VMb2dpY2Fs
SGVpZ2h0KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcmVsYXlvdXRGb3JQYWdpbmF0aW9u
KGJvb2wgaGFzU3BlY2lmaWVkUGFnZUxvZ2ljYWxIZWlnaHQsIExheW91dFVuaXQgcGFnZUxvZ2lj
YWxIZWlnaHQsIExheW91dFN0YXRlTWFpbnRhaW5lciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
Ym9vbCB1cGRhdGVMb2dpY2FsV2lkdGhBbmRDb2x1bW5XaWR0aCgpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBjaGVja0ZvclBhZ2luYXRpb25Mb2dpY2FsSGVpZ2h0Q2hhbmdlKExheW91dFVu
aXQmIHBhZ2VMb2dpY2FsSGVpZ2h0LCBib29sJiBwYWdlTG9naWNhbEhlaWdodENoYW5nZWQsIGJv
b2wmIGhhc1NwZWNpZmllZFBhZ2VMb2dpY2FsSGVpZ2h0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IGJvb2wgcmVsYXlvdXRGb3JQYWdpbmF0aW9uKGJvb2wgaGFzU3BlY2lmaWVkUGFnZUxvZ2ljYWxI
ZWlnaHQsIExheW91dFVuaXQgcGFnZUxvZ2ljYWxIZWlnaHQsIExheW91dFN0YXRlTWFpbnRhaW5l
ciYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCog
bmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBuZXdDaGlsZCwgUmVuZGVyT2JqZWN0
KiBiZWZvcmVDaGlsZCA9IDApIG92ZXJyaWRlOwogCiAgICAgdm9pZCBjb21wdXRlQ29sdW1uQ291
bnRBbmRXaWR0aCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkLmgKaW5kZXggZjM2ODEyYy4uYmNlNWFmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uRmxvd1RocmVh
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3dU
aHJlYWQuaApAQCAtMzcsMTIgKzM3LDEyIEBAIHB1YmxpYzoKICAgICB+UmVuZGVyTXVsdGlDb2x1
bW5GbG93VGhyZWFkKCk7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5k
ZXJOYW1lKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVMb2dpY2Fs
SGVpZ2h0KExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBM
b2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgYXV0b0dlbmVyYXRlUmVnaW9uc1RvQmxvY2tPZmZzZXQoTGF5b3V0VW5pdCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IGluaXRpYWxMb2dpY2FsV2lkdGgoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UGFnZUJyZWFrKGNvbnN0IFJlbmRlckJsb2Nr
KiwgTGF5b3V0VW5pdCBvZmZzZXQsIExheW91dFVuaXQgc3BhY2VTaG9ydGFnZSkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZU1pbmltdW1QYWdlSGVpZ2h0KGNvbnN0IFJlbmRlckJs
b2NrKiwgTGF5b3V0VW5pdCBvZmZzZXQsIExheW91dFVuaXQgbWluSGVpZ2h0KSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBsb2dpY2FsSGVp
Z2h0LCBMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhdXRvR2VuZXJhdGVSZWdpb25zVG9C
bG9ja09mZnNldChMYXlvdXRVbml0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQg
aW5pdGlhbExvZ2ljYWxXaWR0aCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRQYWdlQnJlYWsoY29uc3QgUmVuZGVyQmxvY2sqLCBMYXlvdXRVbml0IG9mZnNldCwgTGF5b3V0
VW5pdCBzcGFjZVNob3J0YWdlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTWlu
aW11bVBhZ2VIZWlnaHQoY29uc3QgUmVuZGVyQmxvY2sqLCBMYXlvdXRVbml0IG9mZnNldCwgTGF5
b3V0VW5pdCBtaW5IZWlnaHQpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1u
U2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaApp
bmRleCA2ZjAwMzZkLi40YjM2NTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTXVsdGlDb2x1bW5TZXQuaApAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBSZW5kZXJNdWx0
aUNvbHVtblNldCBGSU5BTCA6IHB1YmxpYyBSZW5kZXJSZWdpb25TZXQgewogcHVibGljOgogICAg
IFJlbmRlck11bHRpQ29sdW1uU2V0KFJlbmRlckZsb3dUaHJlYWQmLCBQYXNzUmVmPFJlbmRlclN0
eWxlPik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJNdWx0aUNvbHVtblNldCgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJNdWx0
aUNvbHVtblNldCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHVuc2ln
bmVkIGNvbXB1dGVkQ29sdW1uQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2NvbXB1dGVkQ29sdW1u
Q291bnQ7IH0KICAgICBMYXlvdXRVbml0IGNvbXB1dGVkQ29sdW1uV2lkdGgoKSBjb25zdCB7IHJl
dHVybiBtX2NvbXB1dGVkQ29sdW1uV2lkdGg7IH0KQEAgLTkzLDI4ICs5MywyOCBAQCBwdWJsaWM6
CiAgICAgLy8gYWZ0ZXIgbGF5b3V0IHRoYXQgdGhlIGNvbHVtbnMgd2VyZW4ndCB0YWxsIGVub3Vn
aC4KICAgICB2b2lkIHJlY29yZFNwYWNlU2hvcnRhZ2UoTGF5b3V0VW5pdCBzcGFjZVNob3J0YWdl
KTsKIAotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMb2dpY2FsV2lkdGgoKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlTG9naWNhbFdpZHRoKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lk
IHByZXBhcmVGb3JMYXlvdXQoKTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0
ZUxvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBMYXlvdXRVbml0IGxvZ2lj
YWxUb3AsIExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYpIGNvbnN0IE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBjb21wdXRlTG9naWNhbEhlaWdodChMYXlvdXRVbml0IGxvZ2ljYWxIZWln
aHQsIExheW91dFVuaXQgbG9naWNhbFRvcCwgTG9naWNhbEV4dGVudENvbXB1dGVkVmFsdWVzJikg
Y29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRPYmplY3QoUGFpbnRJbmZv
JiwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgcGFpbnRPYmplY3QoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zm
c2V0KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbFdpZHRo
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9jb21wdXRlZENvbHVtbldpZHRoOyB9Ci0gICAg
dmlydHVhbCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2h0KCkgY29uc3QgT1ZFUlJJREUgeyBy
ZXR1cm4gbV9jb21wdXRlZENvbHVtbkhlaWdodDsgfQorICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBw
YWdlTG9naWNhbFdpZHRoKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb21wdXRlZENvbHVt
bldpZHRoOyB9CisgICAgdmlydHVhbCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2h0KCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb21wdXRlZENvbHVtbkhlaWdodDsgfQogCi0gICAgdmly
dHVhbCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsVG9wRm9yT2Zmc2V0KExheW91dFVuaXQgb2Zmc2V0
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFnZUxvZ2ljYWxUb3BG
b3JPZmZzZXQoTGF5b3V0VW5pdCBvZmZzZXQpIGNvbnN0IG92ZXJyaWRlOwogICAgIAogICAgIC8v
IEZJWE1FOiBUaGlzIHdpbGwgY2hhbmdlIG9uY2Ugd2UgaGF2ZSBjb2x1bW4gc2V0cyBjb25zdHJh
aW5lZCBieSBlbmNsb3NpbmcgcGFnZXMsIGV0Yy4KLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbG9n
aWNhbEhlaWdodE9mQWxsRmxvd1RocmVhZENvbnRlbnQoKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biBtX2NvbXB1dGVkQ29sdW1uSGVpZ2h0OyB9CisgICAgdmlydHVhbCBMYXlvdXRVbml0IGxvZ2lj
YWxIZWlnaHRPZkFsbEZsb3dUaHJlYWRDb250ZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9jb21wdXRlZENvbHVtbkhlaWdodDsgfQogICAgIAotICAgIHZpcnR1YWwgdm9pZCByZXBhaW50
Rmxvd1RocmVhZENvbnRlbnQoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgaW1t
ZWRpYXRlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVwYWludEZsb3dUaHJlYWRDb250
ZW50KGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGltbWVkaWF0ZSkgb3ZlcnJp
ZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdExheWVyRnJhZ21lbnRzKExheWVyRnJhZ21l
bnRzJiwgY29uc3QgTGF5b3V0UmVjdCYgbGF5ZXJCb3VuZGluZ0JveCwgY29uc3QgTGF5b3V0UmVj
dCYgZGlydHlSZWN0KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdExheWVyRnJh
Z21lbnRzKExheWVyRnJhZ21lbnRzJiwgY29uc3QgTGF5b3V0UmVjdCYgbGF5ZXJCb3VuZGluZ0Jv
eCwgY29uc3QgTGF5b3V0UmVjdCYgZGlydHlSZWN0KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwg
dm9pZCBhZGp1c3RSZWdpb25Cb3VuZHNGcm9tRmxvd1RocmVhZFBvcnRpb25SZWN0KGNvbnN0IElu
dFBvaW50JiBsYXllck9mZnNldCwgSW50UmVjdCYgcmVnaW9uQm91bmRzKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgYWRqdXN0UmVnaW9uQm91bmRzRnJvbUZsb3dUaHJlYWRQb3J0aW9uUmVj
dChjb25zdCBJbnRQb2ludCYgbGF5ZXJPZmZzZXQsIEludFJlY3QmIHJlZ2lvbkJvdW5kcykgb3Zl
cnJpZGU7CiAKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdDsKICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dG
cmFnbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdt
ZW50LmgKaW5kZXggODk0MWYzOS4uNWZkYzU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmgKQEAgLTU0LDggKzU0LDggQEAgcHVi
bGljOgogCiAgICAgc3RhdGljIFBhc3NSZWY8UmVuZGVyU3R5bGU+IGNyZWF0ZVN0eWxlKGNvbnN0
IFJlbmRlclN0eWxlJiBwYXJlbnRTdHlsZSk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJO
YW1lZEZsb3dGcmFnbWVudCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBS
ZW5kZXJTdHlsZSogb2xkU3R5bGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRl
ck5hbWVkRmxvd0ZyYWdtZW50KCkgY29uc3Qgb3ZlcnJpZGUgRklOQUwgeyByZXR1cm4gdHJ1ZTsg
fQorICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0
IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIExheW91dFVu
aXQgcGFnZUxvZ2ljYWxIZWlnaHQoKSBjb25zdDsKICAgICBMYXlvdXRVbml0IG1heFBhZ2VMb2dp
Y2FsSGVpZ2h0KCkgY29uc3Q7CkBAIC03NiwxMSArNzYsMTEgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0UmVnaW9uT2JqZWN0c1JlZ2lvblN0eWxlKCk7CiAgICAgdm9pZCByZXN0b3JlUmVnaW9uT2Jq
ZWN0c09yaWdpbmFsU3R5bGUoKTsKICAgICAKLSAgICB2aXJ0dWFsIExheW91dFJlY3QgdmlzdWFs
T3ZlcmZsb3dSZWN0KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IHZp
c3VhbE92ZXJmbG93UmVjdCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgUmVuZGVyTmFtZWRGbG93
VGhyZWFkKiBuYW1lZEZsb3dUaHJlYWQoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgYm9vbCBoYXNB
dXRvTG9naWNhbEhlaWdodCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1faGFzQXV0b0xvZ2lj
YWxIZWlnaHQ7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFzQXV0b0xvZ2ljYWxIZWlnaHQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX2hhc0F1dG9Mb2dpY2FsSGVpZ2h0OyB9CiAKICAgICBMYXlv
dXRVbml0IGNvbXB1dGVkQXV0b0hlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fY29tcHV0ZWRBdXRv
SGVpZ2h0OyB9CiAKQEAgLTk4LDE3ICs5OCwxNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc0Nv
bXB1dGVkQXV0b0hlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzQ29tcHV0ZWRBdXRvSGVpZ2h0
OyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUmVnaW9uKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGRldGFjaFJlZ2lvbigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhdHRh
Y2hSZWdpb24oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoUmVnaW9uKCkgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTG9naWNhbEhlaWdodCgpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMb2dpY2FsSGVpZ2h0KCkgb3ZlcnJpZGU7CiAKIC8v
IEZJWE1FOiBUZW1wb3JhcmlseSBwdWJsaWMgdW50aWwgd2UgbW92ZSBhbGwgdGhlIENTU1JlZ2lv
bnMgZnVuY3Rpb25hbGl0eSBmcm9tIFJlbmRlclJlZ2lvbiB0byBoZXJlLgogcHVibGljOgogICAg
IHZvaWQgY2hlY2tSZWdpb25TdHlsZSgpOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgY29uc3Qg
Y2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuICJSZW5kZXJOYW1lZEZs
b3dGcmFnbWVudCI7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQiOyB9CiAKICAgICBQ
YXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjb21wdXRlU3R5bGVJblJlZ2lvbihjb25zdCBSZW5kZXJP
YmplY3QqKTsKICAgICB2b2lkIGNvbXB1dGVDaGlsZHJlblN0eWxlSW5SZWdpb24oY29uc3QgUmVu
ZGVyRWxlbWVudCopOwpAQCAtMTIxLDcgKzEyMSw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIHNo
b3VsZEhhdmVBdXRvTG9naWNhbEhlaWdodCgpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIGxh
eW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhl
aWdodCA9IDApIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBsYXlvdXRCbG9jayhib29sIHJl
bGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQgcGFnZUxvZ2ljYWxIZWlnaHQgPSAwKSBvdmVycmlk
ZTsKIAogICAgIHN0cnVjdCBPYmplY3RSZWdpb25TdHlsZUluZm8gewogICAgICAgICAvLyBVc2Vk
IHRvIHN0b3JlIHRoZSBvcmlnaW5hbCBzdHlsZSBvZiB0aGUgb2JqZWN0IGluIHJlZ2lvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oCmluZGV4
IDJkNDdiZDIuLjFiMjNiYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJOYW1lZEZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTmFtZWRGbG93VGhyZWFkLmgKQEAgLTY0LDEwICs2NCwxMCBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHB1c2hEZXBlbmRlbmNpZXMoUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdCYpOwogCi0gICAg
dmlydHVhbCB2b2lkIGFkZFJlZ2lvblRvVGhyZWFkKFJlbmRlclJlZ2lvbiopIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmVSZWdpb25Gcm9tVGhyZWFkKFJlbmRlclJlZ2lvbiopIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhZGRSZWdpb25Ub1RocmVhZChSZW5kZXJSZWdpb24q
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlUmVnaW9uRnJvbVRocmVhZChSZW5k
ZXJSZWdpb24qKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCByZWdpb25DaGFuZ2VkV3Jp
dGluZ01vZGUoUmVuZGVyUmVnaW9uKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lv
bkNoYW5nZWRXcml0aW5nTW9kZShSZW5kZXJSZWdpb24qKSBvdmVycmlkZTsKIAogICAgIGJvb2wg
b3ZlcnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcnNldDsgfQogICAgIHZvaWQgY29tcHV0ZU92
ZXJzZXRTdGF0ZUZvclJlZ2lvbnMoTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2UpOwpAQCAt
ODEsNyArODEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRSYW5nZXMoVmVjdG9yPFJlZlB0cjxS
YW5nZT4+JiwgY29uc3QgUmVuZGVyUmVnaW9uKikgY29uc3Q7CiAKICNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCi0gICAgdmlydHVhbCBib29sIGNvbGxlY3RzR3JhcGhpY3NMYXllcnNV
bmRlclJlZ2lvbnMoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgY29sbGVjdHNH
cmFwaGljc0xheWVyc1VuZGVyUmVnaW9ucygpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKICAg
ICAvLyBDaGVjayBpZiB0aGUgY29udGVudCBpcyBmbG93biBpbnRvIGF0IGxlYXN0IGEgcmVnaW9u
IHdpdGggcmVnaW9uIHN0eWxpbmcgcnVsZXMuCkBAIC05MCwxOSArOTAsMTkgQEAgcHVibGljOgog
CiAgICAgdm9pZCBjbGVhclJlbmRlck9iamVjdEN1c3RvbVN0eWxlKGNvbnN0IFJlbmRlck9iamVj
dCopOwogCi0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUZsb3dDaGlsZEluZm8oUmVuZGVyT2JqZWN0
KikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUZsb3dDaGlsZEluZm8o
UmVuZGVyT2JqZWN0Kikgb3ZlcnJpZGUgRklOQUw7CiAKIHByb3RlY3RlZDoKICAgICB2b2lkIHNl
dE1hcmtGb3JEZXN0cnVjdGlvbigpOwogICAgIHZvaWQgcmVzZXRNYXJrRm9yRGVzdHJ1Y3Rpb24o
KTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJOYW1lZEZsb3dUaHJlYWQoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzQ2hpbGRB
bGxvd2VkKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBib29sIGlzUmVuZGVyTmFtZWRGbG93VGhyZWFkKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0NoaWxkQWxsb3dlZChj
b25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJyaWRlOwog
Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hSZWdpb25PdmVyc2V0Q2hhbmdlRXZlbnQo
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVF
dmVudCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFJlZ2lvbk92ZXJzZXRD
aGFuZ2VFdmVudCgpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBkZXBlbmRzT24oUmVuZGVyTmFtZWRG
bG93VGhyZWFkKiBvdGhlclJlbmRlckZsb3dUaHJlYWQpIGNvbnN0OwogICAgIHZvaWQgYWRkRGVw
ZW5kZW5jeU9uRmxvd1RocmVhZChSZW5kZXJOYW1lZEZsb3dUaHJlYWQqKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCA1NmU5ZTQzLi5hYTk5YzAzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC04NTksOSArODU5LDkgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgaW50IHByZXZpb3VzT2Zmc2V0Rm9yQmFja3dhcmREZWxldGlvbihp
bnQgY3VycmVudCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgbmV4dE9mZnNldChpbnQgY3VycmVu
dCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlKiwg
Y29uc3QgSW50UmVjdCogPSAwKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFu
Z2VkKENhY2hlZEltYWdlKiwgY29uc3QgSW50UmVjdCogPSAwKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciwgY29uc3QgSW50UmVjdCogPSAw
KSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlbmRlckltYWdlKENhY2hlZEltYWdlKikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBib29sIHdpbGxSZW5kZXJJbWFnZShDYWNoZWRJbWFnZSopIG92
ZXJyaWRlOwogCiAgICAgdm9pZCBzZWxlY3Rpb25TdGFydEVuZChpbnQmIHNwb3MsIGludCYgZXBv
cykgY29uc3Q7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUHJvZ3Jlc3MuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5o
CmluZGV4IDlhMTUzYmIuLjc4ZWU0NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJQcm9ncmVzcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJQcm9ncmVzcy5oCkBAIC0zOCwxNiArMzgsMTYgQEAgcHVibGljOgogICAgIGRvdWJsZSBhbmlt
YXRpb25TdGFydFRpbWUoKSBjb25zdCB7IHJldHVybiBtX2FuaW1hdGlvblN0YXJ0VGltZTsgfQog
CiAgICAgYm9vbCBpc0RldGVybWluYXRlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUZyb21FbGVtZW50KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVt
ZW50KCkgb3ZlcnJpZGU7CiAKICAgICBIVE1MUHJvZ3Jlc3NFbGVtZW50KiBwcm9ncmVzc0VsZW1l
bnQoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5h
bWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAiUmVuZGVyUHJvZ3Jlc3MiOyB9Ci0gICAgdmly
dHVhbCBib29sIGlzUHJvZ3Jlc3MoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0g
ICAgdmlydHVhbCBib29sIHJlcXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbigpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgY2FuQmVSZXBs
YWNlZFdpdGhJbmxpbmVSdW5JbigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBj
b21wdXRlTG9naWNhbEhlaWdodChMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIExheW91dFVuaXQg
bG9naWNhbFRvcCwgTG9naWNhbEV4dGVudENvbXB1dGVkVmFsdWVzJikgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gIlJlbmRlclByb2dyZXNzIjsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1Byb2dyZXNzKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCByZXF1aXJl
c0ZvcmNlZFN0eWxlUmVjYWxjUHJvcGFnYXRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CisgICAgdmlydHVhbCBib29sIGNhbkJlUmVwbGFjZWRXaXRoSW5saW5lUnVuSW4oKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoTGF5
b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExvZ2ljYWxFeHRl
bnRDb21wdXRlZFZhbHVlcyYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBhbmltYXRpb25U
aW1lckZpcmVkKFRpbWVyPFJlbmRlclByb2dyZXNzPiYpOwogICAgIHZvaWQgdXBkYXRlQW5pbWF0
aW9uU3RhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJR
dW90ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmgKaW5kZXggNWU0
NjY4MS4uMzhhNmE0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clF1b3RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmgKQEAg
LTM3LDEyICszNywxMiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQgZGV0YWNoUXVvdGUo
KTsKIAotICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAi
UmVuZGVyUXVvdGUiOyB9Ci0gICAgdmlydHVhbCBib29sIGlzUXVvdGUoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiB0cnVlOyB9OwotICAgIHZpcnR1YWwgU3RyaW5nIG9yaWdpbmFsVGV4dCgpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZl
cmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHdp
bGxCZVJlbW92ZWRGcm9tVHJlZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVE
ZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVyUXVvdGUiOyB9CisgICAgdmlydHVhbCBi
b29sIGlzUXVvdGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9OworICAgIHZpcnR1
YWwgU3RyaW5nIG9yaWdpbmFsVGV4dCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxCZVJlbW92ZWRGcm9tVHJlZSgpIG92ZXJyaWRl
OwogCiAgICAgdm9pZCB1cGRhdGVEZXB0aCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVnaW9uLmgKaW5kZXggNTE3ZTY1Yy4uMDY1M2I3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZWdpb24uaApAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBSZW5kZXJOYW1lZEZs
b3dUaHJlYWQ7CiAKIGNsYXNzIFJlbmRlclJlZ2lvbiA6IHB1YmxpYyBSZW5kZXJCbG9ja0Zsb3cg
ewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclJlZ2lvbigpIGNvbnN0IE9WRVJS
SURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJSZWdp
b24oKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFs
IHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSog
b2xkU3R5bGUpOwogCkBAIC0xMjksOSArMTI5LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmVn
aW9uT2JqZWN0c1JlZ2lvblN0eWxlKCk7CiAgICAgdm9pZCByZXN0b3JlUmVnaW9uT2JqZWN0c09y
aWdpbmFsU3R5bGUoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25z
dCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlR2Vu
ZXJhdGVkQ2hpbGRyZW4oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmly
dHVhbCBWaXNpYmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlR2VuZXJhdGVk
Q2hpbGRyZW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBW
aXNpYmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJy
aWRlOwogCiAgICAgdmlydHVhbCBib29sIGhhc0F1dG9Mb2dpY2FsSGVpZ2h0KCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KIApAQCAtMTQxLDggKzE0MSw4IEBAIHByb3RlY3RlZDoKIAogICAgIHZv
aWQgZW5zdXJlT3ZlcmZsb3dGb3JCb3goY29uc3QgUmVuZGVyQm94KiwgUmVmUHRyPFJlbmRlck92
ZXJmbG93PiYsIGJvb2wpOwogCi0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dp
Y2FsV2lkdGhzKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVJbnRyaW5zaWNM
b2dpY2FsV2lkdGhzKExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4
TG9naWNhbFdpZHRoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVBy
ZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0
ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlv
dXRVbml0JiBtYXhMb2dpY2FsV2lkdGgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgZW51bSBPdmVy
Zmxvd1R5cGUgewogICAgICAgICBMYXlvdXRPdmVyZmxvdyA9IDAsCkBAIC0xNTcsOCArMTU3LDgg
QEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5h
bWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyUmVnaW9uIjsgfQogCi0gICAgdmlydHVhbCB2b2lk
IGluc2VydGVkSW50b1RyZWUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlUmVt
b3ZlZEZyb21UcmVlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b1Ry
ZWUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlUmVtb3ZlZEZyb21UcmVlKCkg
b3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgaW5zdGFsbEZsb3dUaHJlYWQoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvblNldC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvblNldC5oCmluZGV4IDI2MmY5NmYuLjVi
NWQ2MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb25T
ZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uU2V0LmgKQEAg
LTUwLDEzICs1MCwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyUmVnaW9uU2V0KERvY3VtZW50
JiwgUGFzc1JlZjxSZW5kZXJTdHlsZT4sIFJlbmRlckZsb3dUaHJlYWQmKTsKIAogcHJpdmF0ZToK
LSAgICB2aXJ0dWFsIHZvaWQgaW5zdGFsbEZsb3dUaHJlYWQoKSBPVkVSUklERSBGSU5BTDsKKyAg
ICB2aXJ0dWFsIHZvaWQgaW5zdGFsbEZsb3dUaHJlYWQoKSBvdmVycmlkZSBGSU5BTDsKIAotICAg
IHZpcnR1YWwgdm9pZCBleHBhbmRUb0VuY29tcGFzc0Zsb3dUaHJlYWRDb250ZW50c0lmTmVlZGVk
KCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGV4cGFuZFRvRW5jb21wYXNzRmxv
d1RocmVhZENvbnRlbnRzSWZOZWVkZWQoKSBvdmVycmlkZSBGSU5BTDsKIAogICAgIHZpcnR1YWwg
Y29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0ID0gMDsKICAgICAKLSAgICB2aXJ0dWFsIGJv
b2wgaXNSZW5kZXJSZWdpb25TZXQoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0cnVl
OyB9CisgICAgdmlydHVhbCBib29sIGlzUmVuZGVyUmVnaW9uU2V0KCkgY29uc3Qgb3ZlcnJpZGUg
RklOQUwgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAppbmRleCA0ODg3MmM0Li5hNTQ4
NDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaApAQCAtMzAs
OCArMzAsOCBAQCBjbGFzcyBSZW5kZXJSZXBsYWNlZCA6IHB1YmxpYyBSZW5kZXJCb3ggewogcHVi
bGljOgogICAgIHZpcnR1YWwgflJlbmRlclJlcGxhY2VkKCk7CiAKLSAgICB2aXJ0dWFsIExheW91
dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKFNob3VsZENvbXB1dGVQcmVmZXJyZWQg
ID0gQ29tcHV0ZUFjdHVhbCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0
IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKFNob3VsZENvbXB1dGVQ
cmVmZXJyZWQgID0gQ29tcHV0ZUFjdHVhbCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBM
YXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoKSBjb25zdCBvdmVycmlkZTsK
IAogICAgIExheW91dFJlY3QgcmVwbGFjZWRDb250ZW50UmVjdChjb25zdCBMYXlvdXRTaXplJiBp
bnRyaW5zaWNTaXplKSBjb25zdDsKIApAQCAtNDMsNDcgKzQzLDQ3IEBAIHByb3RlY3RlZDoKICAg
ICBSZW5kZXJSZXBsYWNlZChFbGVtZW50JiwgUGFzc1JlZjxSZW5kZXJTdHlsZT4sIGNvbnN0IExh
eW91dFNpemUmIGludHJpbnNpY1NpemUpOwogICAgIFJlbmRlclJlcGxhY2VkKERvY3VtZW50Jiwg
UGFzc1JlZjxSZW5kZXJTdHlsZT4sIGNvbnN0IExheW91dFNpemUmIGludHJpbnNpY1NpemUpOwog
Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBs
YXlvdXQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgb3ZlcnJpZGU7CiAK
LSAgICB2aXJ0dWFsIExheW91dFNpemUgaW50cmluc2ljU2l6ZSgpIGNvbnN0IE9WRVJSSURFIEZJ
TkFMIHsgcmV0dXJuIG1faW50cmluc2ljU2l6ZTsgfQotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRl
SW50cmluc2ljUmF0aW9JbmZvcm1hdGlvbihGbG9hdFNpemUmIGludHJpbnNpY1NpemUsIGRvdWJs
ZSYgaW50cmluc2ljUmF0aW8sIGJvb2wmIGlzUGVyY2VudGFnZUludHJpbnNpY1NpemUpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgTGF5b3V0U2l6ZSBpbnRyaW5zaWNTaXplKCkgY29uc3Qg
b3ZlcnJpZGUgRklOQUwgeyByZXR1cm4gbV9pbnRyaW5zaWNTaXplOyB9CisgICAgdmlydHVhbCB2
b2lkIGNvbXB1dGVJbnRyaW5zaWNSYXRpb0luZm9ybWF0aW9uKEZsb2F0U2l6ZSYgaW50cmluc2lj
U2l6ZSwgZG91YmxlJiBpbnRyaW5zaWNSYXRpbywgYm9vbCYgaXNQZXJjZW50YWdlSW50cmluc2lj
U2l6ZSkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUludHJpbnNp
Y0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBt
YXhMb2dpY2FsV2lkdGgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBj
b21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgs
IExheW91dFVuaXQmIG1heExvZ2ljYWxXaWR0aCkgY29uc3Qgb3ZlcnJpZGUgRklOQUw7CiAKICAg
ICB2aXJ0dWFsIExheW91dFVuaXQgbWluaW11bVJlcGxhY2VkSGVpZ2h0KCkgY29uc3QgeyByZXR1
cm4gTGF5b3V0VW5pdCgpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0aW9uU3RhdGUo
U2VsZWN0aW9uU3RhdGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3Rpb25T
dGF0ZShTZWxlY3Rpb25TdGF0ZSkgb3ZlcnJpZGU7CiAKICAgICBib29sIGlzU2VsZWN0ZWQoKSBj
b25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2Us
IGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0
eWxlKSBvdmVycmlkZTsKIAogICAgIHZvaWQgc2V0SW50cmluc2ljU2l6ZShjb25zdCBMYXlvdXRT
aXplJiBpbnRyaW5zaWNTaXplKSB7IG1faW50cmluc2ljU2l6ZSA9IGludHJpbnNpY1NpemU7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgaW50cmluc2ljU2l6ZUNoYW5nZWQoKTsKICAgICB2aXJ0dWFsIGJv
b2wgaGFzUmVsYXRpdmVJbnRyaW5zaWNMb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBv
aW50JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0
IExheW91dFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzaG91bGRQYWludChQYWludEluZm8m
LCBjb25zdCBMYXlvdXRQb2ludCYpOwogICAgIExheW91dFJlY3QgbG9jYWxTZWxlY3Rpb25SZWN0
KGJvb2wgY2hlY2tXaGV0aGVyU2VsZWN0ZWQgPSB0cnVlKSBjb25zdDsgLy8gVGhpcyBpcyBpbiBs
b2NhbCBjb29yZGluYXRlcywgYnV0IGl0J3MgYSBwaHlzaWNhbCByZWN0IChzbyB0aGUgdG9wIGxl
ZnQgY29ybmVyIGlzIHBoeXNpY2FsIHRvcCBsZWZ0KS4KIAogcHJpdmF0ZToKICAgICB2aXJ0dWFs
IFJlbmRlckJveCogZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAg
IHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
ICJSZW5kZXJSZXBsYWNlZCI7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVyUmVwbGFjZWQiOyB9CiAKLSAgICB2aXJ0
dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNh
bFdpZHRocygpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVy
cmVkTG9naWNhbFdpZHRocygpIG92ZXJyaWRlIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBwYWlu
dFJlcGxhY2VkKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgeyB9CiAKLSAgICB2aXJ0
dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0IG92ZXJyaWRlOwog
Ci0gICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlv
dXRQb2ludCYpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uIHBv
c2l0aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlkZSBGSU5BTDsKICAgICAK
LSAgICB2aXJ0dWFsIGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3QgT1ZFUlJJREUgeyBy
ZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5CZVNlbGVjdGlvbkxlYWYoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIExheW91dFJlY3Qgc2Vs
ZWN0aW9uUmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgYm9vbCBjbGlwVG9WaXNpYmxlQ29udGVudCA9IHRydWUpIE9WRVJSSURFIEZJ
TkFMOworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yUmVwYWludChjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGNsaXBUb1Zp
c2libGVDb250ZW50ID0gdHJ1ZSkgb3ZlcnJpZGUgRklOQUw7CiAgICAgdm9pZCBjb21wdXRlQXNw
ZWN0UmF0aW9JbmZvcm1hdGlvbkZvclJlbmRlckJveChSZW5kZXJCb3gqLCBGbG9hdFNpemUmIGNv
bnN0cmFpbmVkU2l6ZSwgZG91YmxlJiBpbnRyaW5zaWNSYXRpbywgYm9vbCYgaXNQZXJjZW50YWdl
SW50cmluc2ljU2l6ZSkgY29uc3Q7CiAKICAgICBtdXRhYmxlIExheW91dFNpemUgbV9pbnRyaW5z
aWNTaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxp
Y2EuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmgKaW5kZXggNDE0
ZjRiMi4uNGNmOTA1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlcGxpY2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5o
CkBAIC00Nyw5ICs0Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJ
bmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wg
aXNSZXBsaWNhKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwg
Ym9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQot
ICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgYm9vbCBpc1JlcGxpY2EoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CisgICAgdmlydHVhbCBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dp
Y2FsV2lkdGhzKCkgb3ZlcnJpZGU7CiAKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSdWJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UnVieS5oCmluZGV4IGNjY2Q1NmMuLmZkZTQ3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSdWJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclJ1YnkuaApAQCAtNTYsMTYgKzU2LDE2IEBAIHB1YmxpYzoKICAgICBSZW5kZXJSdWJ5QXNJ
bmxpbmUoRWxlbWVudCYsIFBhc3NSZWY8UmVuZGVyU3R5bGU+KTsKICAgICB2aXJ0dWFsIH5SZW5k
ZXJSdWJ5QXNJbmxpbmUoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmpl
Y3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCkgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIHJlbW92ZUNoaWxkKFJlbmRlck9iamVjdCYgY2hpbGQpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJPYmpl
Y3QqIGJlZm9yZUNoaWxkID0gMCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNo
aWxkKFJlbmRlck9iamVjdCYgY2hpbGQpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6Ci0gICAgdmly
dHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5
bGUqIG9sZFN0eWxlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2Uo
U3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIG92ZXJyaWRlOwog
CiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBpc1J1YnkoKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qg
T1ZFUlJJREUgeyByZXR1cm4gIlJlbmRlclJ1YnkgKGlubGluZSkiOyB9Ci0gICAgdmlydHVhbCBi
b29sIGNyZWF0ZXNBbm9ueW1vdXNXcmFwcGVyKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1J1YnkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gIlJlbmRlclJ1YnkgKGlubGluZSkiOyB9CisgICAgdmlydHVhbCBib29sIGNy
ZWF0ZXNBbm9ueW1vdXNXcmFwcGVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQog
fTsKIAogLy8gPHJ1Ynk+IHdoZW4gdXNlZCBhcyAnZGlzcGxheTpibG9jaycgb3IgJ2Rpc3BsYXk6
aW5saW5lLWJsb2NrJwpAQCAtNzYsMTcgKzc2LDE3IEBAIHB1YmxpYzoKIAogICAgIEVsZW1lbnQm
IGVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0b0VsZW1lbnQobm9kZUZvck5vbkFub255bW91cygp
KTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJl
bmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
cmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0JiBjaGlsZCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hp
bGQgPSAwKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ2hpbGQoUmVuZGVyT2Jq
ZWN0JiBjaGlsZCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgc3R5
bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVu
Y2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0g
ICAgdmlydHVhbCBib29sIGlzUnVieSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0K
LSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiAiUmVuZGVyUnVieSAoYmxvY2spIjsgfQotICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVzQW5v
bnltb3VzV3JhcHBlcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlTGVmdG92ZXJBbm9ueW1vdXNCbG9jayhSZW5kZXJCbG9jayopIE9WRVJS
SURFIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSdWJ5KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgY29uc3QgY2hhciog
cmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJSdWJ5IChibG9jayki
OyB9CisgICAgdmlydHVhbCBib29sIGNyZWF0ZXNBbm9ueW1vdXNXcmFwcGVyKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZW1vdmVMZWZ0b3ZlckFu
b255bW91c0Jsb2NrKFJlbmRlckJsb2NrKikgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJSdWJ5UnVuLmgKaW5kZXggMWM2NjBhYy4uZmM0MzFlZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIGJvb2wgaXNDaGlsZEFsbG93ZWQoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29u
c3QgUmVuZGVyU3R5bGUmKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVy
T2JqZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApOwotICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVDaGlsZChSZW5kZXJPYmplY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0Jikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFs
IFJlbmRlckJsb2NrKiBmaXJzdExpbmVCbG9jaygpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVGaXJzdExldHRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclJ1YnlUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVRl
eHQuaAppbmRleCBjNDg5MTJkLi4yY2ZkNDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUnVieVRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUnVieVRleHQuaApAQCAtNDIsMTYgKzQyLDE2IEBAIHB1YmxpYzoKIAogICAgIEVsZW1l
bnQmIGVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0b0VsZW1lbnQobm9kZUZvck5vbkFub255bW91
cygpKTsgfQogCi0gICAgdmlydHVhbCBib29sIGlzQ2hpbGRBbGxvd2VkKGNvbnN0IFJlbmRlck9i
amVjdCYsIGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBi
b29sIGlzQ2hpbGRBbGxvd2VkKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFJlbmRlclN0eWxl
JikgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBy
ZW5kZXJOYW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gIlJlbmRlclJ1YnlUZXh0IjsgfQot
ICAgIHZpcnR1YWwgYm9vbCBpc1J1YnlUZXh0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuICJSZW5kZXJSdWJ5VGV4dCI7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSdWJ5VGV4
dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBh
dm9pZHNGbG9hdHMoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgYXZvaWRzRmxv
YXRzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIEVUZXh0QWxpZ24gdGV4dEFsaWdu
bWVudEZvckxpbmUoYm9vbCBlbmRzV2l0aFNvZnRCcmVhaykgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIGFkanVzdElubGluZURpcmVjdGlvbkxpbmVCb3VuZHMoaW50IGV4cGFuc2lv
bk9wcG9ydHVuaXR5Q291bnQsIGZsb2F0JiBsb2dpY2FsTGVmdCwgZmxvYXQmIGxvZ2ljYWxXaWR0
aCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBFVGV4dEFsaWduIHRleHRBbGlnbm1lbnRG
b3JMaW5lKGJvb2wgZW5kc1dpdGhTb2Z0QnJlYWspIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBhZGp1c3RJbmxpbmVEaXJlY3Rpb25MaW5lQm91bmRzKGludCBleHBhbnNpb25PcHBv
cnR1bml0eUNvdW50LCBmbG9hdCYgbG9naWNhbExlZnQsIGZsb2F0JiBsb2dpY2FsV2lkdGgpIGNv
bnN0IG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5oCmluZGV4IGMxMDhiOGEuLjZhZjBmZDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmgKQEAgLTY0LDE3ICs2
NCwxNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFJlbmRlclNjcm9sbGJhcihTY3JvbGxhYmxl
QXJlYSosIFNjcm9sbGJhck9yaWVudGF0aW9uLCBFbGVtZW50KiwgRnJhbWUqKTsKIAotICAgIHZp
cnR1YWwgdm9pZCBzZXRQYXJlbnQoU2Nyb2xsVmlldyopIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBzZXRFbmFibGVkKGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRQYXJl
bnQoU2Nyb2xsVmlldyopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRFbmFibGVkKGJv
b2wpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCos
IGNvbnN0IEludFJlY3QmIGRhbWFnZVJlY3QpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBw
YWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0KSBvdmVycmlk
ZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRIb3ZlcmVkUGFydChTY3JvbGxiYXJQYXJ0KSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlc3NlZFBhcnQoU2Nyb2xsYmFyUGFydCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEhvdmVyZWRQYXJ0KFNjcm9sbGJhclBhcnQpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRQcmVzc2VkUGFydChTY3JvbGxiYXJQYXJ0KSBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzdHlsZUNoYW5nZWQoKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc3R5bGVDaGFuZ2VkKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJv
b2wgaXNDdXN0b21TY3JvbGxiYXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Cisg
ICAgdmlydHVhbCBib29sIGlzQ3VzdG9tU2Nyb2xsYmFyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQogCiAgICAgdm9pZCB1cGRhdGVTY3JvbGxiYXJQYXJ0cygpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhclBhcnQuaAppbmRleCA5ZTZiYmM5
Li43MDg3YjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Ny
b2xsYmFyUGFydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxi
YXJQYXJ0LmgKQEAgLTQ4LDEwICs0OCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYWludEludG9S
ZWN0KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFBvaW50JiwgY29uc3QgTGF5b3V0UmVj
dCYpOwogCiAgICAgLy8gU2Nyb2xsYmFyIHBhcnRzIG5lZWRzIHRvIGJlIHJlbmRlcmVkIGF0IGRl
dmljZSBwaXhlbCBib3VuZGFyaWVzLgotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5Ub3Ao
KSBjb25zdCBPVkVSUklERSB7IEFTU0VSVChpc0ludGVnZXJWYWx1ZShtX21hcmdpbkJveC50b3Ao
KSkpOyByZXR1cm4gbV9tYXJnaW5Cb3gudG9wKCk7IH0KLSAgICB2aXJ0dWFsIExheW91dFVuaXQg
bWFyZ2luQm90dG9tKCkgY29uc3QgT1ZFUlJJREUgeyBBU1NFUlQoaXNJbnRlZ2VyVmFsdWUobV9t
YXJnaW5Cb3guYm90dG9tKCkpKTsgcmV0dXJuIG1fbWFyZ2luQm94LmJvdHRvbSgpOyB9Ci0gICAg
dmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkxlZnQoKSBjb25zdCBPVkVSUklERSB7IEFTU0VSVChp
c0ludGVnZXJWYWx1ZShtX21hcmdpbkJveC5sZWZ0KCkpKTsgcmV0dXJuIG1fbWFyZ2luQm94Lmxl
ZnQoKTsgfQotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5SaWdodCgpIGNvbnN0IE9WRVJS
SURFIHsgQVNTRVJUKGlzSW50ZWdlclZhbHVlKG1fbWFyZ2luQm94LnJpZ2h0KCkpKTsgcmV0dXJu
IG1fbWFyZ2luQm94LnJpZ2h0KCk7IH0KKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luVG9w
KCkgY29uc3Qgb3ZlcnJpZGUgeyBBU1NFUlQoaXNJbnRlZ2VyVmFsdWUobV9tYXJnaW5Cb3gudG9w
KCkpKTsgcmV0dXJuIG1fbWFyZ2luQm94LnRvcCgpOyB9CisgICAgdmlydHVhbCBMYXlvdXRVbml0
IG1hcmdpbkJvdHRvbSgpIGNvbnN0IG92ZXJyaWRlIHsgQVNTRVJUKGlzSW50ZWdlclZhbHVlKG1f
bWFyZ2luQm94LmJvdHRvbSgpKSk7IHJldHVybiBtX21hcmdpbkJveC5ib3R0b20oKTsgfQorICAg
IHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5MZWZ0KCkgY29uc3Qgb3ZlcnJpZGUgeyBBU1NFUlQo
aXNJbnRlZ2VyVmFsdWUobV9tYXJnaW5Cb3gubGVmdCgpKSk7IHJldHVybiBtX21hcmdpbkJveC5s
ZWZ0KCk7IH0KKyAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luUmlnaHQoKSBjb25zdCBvdmVy
cmlkZSB7IEFTU0VSVChpc0ludGVnZXJWYWx1ZShtX21hcmdpbkJveC5yaWdodCgpKSk7IHJldHVy
biBtX21hcmdpbkJveC5yaWdodCgpOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJTY3Jv
bGxiYXJQYXJ0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIFJlbmRlckJveCogcmVuZGVy
ZXJPd25pbmdTY3JvbGxiYXIoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTY3JvbGxiYXJUaGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNjcm9sbGJhclRoZW1lLmgKaW5kZXggODkwN2ExNy4uZTMzMWQwMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhclRoZW1lLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhclRoZW1lLmgKQEAgLTY4LDE1
ICs2OCwxNSBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBJbnRSZWN0IGZvcndhcmRCdXR0b25S
ZWN0KFNjcm9sbGJhclRoZW1lQ2xpZW50KiwgU2Nyb2xsYmFyUGFydCwgYm9vbCBwYWludGluZyA9
IGZhbHNlKTsKICAgICB2aXJ0dWFsIEludFJlY3QgdHJhY2tSZWN0KFNjcm9sbGJhclRoZW1lQ2xp
ZW50KiwgYm9vbCBwYWludGluZyA9IGZhbHNlKTsKIAotICAgIHZpcnR1YWwgdm9pZCB3aWxsUGFp
bnRTY3JvbGxiYXIoR3JhcGhpY3NDb250ZXh0KiwgU2Nyb2xsYmFyVGhlbWVDbGllbnQqKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUGFpbnRTY3JvbGxiYXIoR3JhcGhpY3NDb250ZXh0
KiwgU2Nyb2xsYmFyVGhlbWVDbGllbnQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgd2ls
bFBhaW50U2Nyb2xsYmFyKEdyYXBoaWNzQ29udGV4dCosIFNjcm9sbGJhclRoZW1lQ2xpZW50Kikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFBhaW50U2Nyb2xsYmFyKEdyYXBoaWNzQ29u
dGV4dCosIFNjcm9sbGJhclRoZW1lQ2xpZW50Kikgb3ZlcnJpZGU7CiAgICAgCiAgICAgdmlydHVh
bCB2b2lkIHBhaW50U2Nyb2xsYmFyQmFja2dyb3VuZChHcmFwaGljc0NvbnRleHQqLCBTY3JvbGxi
YXJUaGVtZUNsaWVudCopOwogICAgIHZpcnR1YWwgdm9pZCBwYWludFRyYWNrQmFja2dyb3VuZChH
cmFwaGljc0NvbnRleHQqLCBTY3JvbGxiYXJUaGVtZUNsaWVudCosIGNvbnN0IEludFJlY3QmKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUcmFja1BpZWNlKEdyYXBoaWNzQ29udGV4dCosIFNjcm9s
bGJhclRoZW1lQ2xpZW50KiwgY29uc3QgSW50UmVjdCYsIFNjcm9sbGJhclBhcnQpOwogICAgIHZp
cnR1YWwgdm9pZCBwYWludEJ1dHRvbihHcmFwaGljc0NvbnRleHQqLCBTY3JvbGxiYXJUaGVtZUNs
aWVudCosIGNvbnN0IEludFJlY3QmLCBTY3JvbGxiYXJQYXJ0KTsKICAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRUaHVtYihHcmFwaGljc0NvbnRleHQqLCBTY3JvbGxiYXJUaGVtZUNsaWVudCosIGNvbnN0
IEludFJlY3QmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUaWNrbWFya3MoR3JhcGhpY3NDb250
ZXh0KiwgU2Nyb2xsYmFyVGhlbWVDbGllbnQqLCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHBhaW50VGlja21hcmtzKEdyYXBoaWNzQ29udGV4dCosIFNjcm9sbGJh
clRoZW1lQ2xpZW50KiwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBJ
bnRSZWN0IGNvbnN0cmFpblRyYWNrUmVjdFRvVHJhY2tQaWVjZXMoU2Nyb2xsYmFyVGhlbWVDbGll
bnQqLCBjb25zdCBJbnRSZWN0Jik7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU2VhcmNoRmllbGQuaAppbmRleCA2NDQ2ZjI3Li41ODY5NzhkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuaApAQCAtNDYsNDEgKzQ2LDQxIEBAIHB1
YmxpYzoKICAgICB2b2lkIGhpZGVQb3B1cCgpOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9p
ZCBjZW50ZXJDb250YWluZXJJZk5lZWRlZChSZW5kZXJCb3gqKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIExheW91dFVuaXQgY29tcHV0ZUNvbnRyb2xMb2dpY2FsSGVpZ2h0KExheW91dFVu
aXQgbGluZUhlaWdodCwgTGF5b3V0VW5pdCBub25Db250ZW50SGVpZ2h0KSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgY29tcHV0ZUxvZ2ljYWxIZWlnaHRMaW1pdCgpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBjZW50ZXJDb250YWluZXJJZk5lZWRlZChSZW5kZXJCb3gq
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgY29tcHV0ZUNvbnRyb2xM
b2dpY2FsSGVpZ2h0KExheW91dFVuaXQgbGluZUhlaWdodCwgTGF5b3V0VW5pdCBub25Db250ZW50
SGVpZ2h0KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgY29tcHV0ZUxv
Z2ljYWxIZWlnaHRMaW1pdCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVGcm9tRWxlbWVudCgpIG92ZXJyaWRlOwogICAgIEVWaXNpYmlsaXR5IHZpc2liaWxpdHlGb3JD
YW5jZWxCdXR0b24oKSBjb25zdDsKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGF1dG9zYXZlTmFt
ZSgpIGNvbnN0OwogCiAgICAgLy8gUG9wdXBNZW51Q2xpZW50IG1ldGhvZHMKLSAgICB2aXJ0dWFs
IHZvaWQgdmFsdWVDaGFuZ2VkKHVuc2lnbmVkIGxpc3RJbmRleCwgYm9vbCBmaXJlRXZlbnRzID0g
dHJ1ZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNlbGVjdGlvbkNoYW5nZWQodW5zaWdu
ZWQsIGJvb2wpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBzZWxlY3Rpb25DbGVhcmVk
KCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCBTdHJpbmcgaXRlbVRleHQodW5zaWduZWQgbGlz
dEluZGV4KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBpdGVtTGFiZWwodW5z
aWduZWQgbGlzdEluZGV4KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBpdGVt
SWNvbih1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGl0ZW1Ub29sVGlwKHVuc2lnbmVkKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBTdHJpbmco
KTsgfQotICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1BY2Nlc3NpYmlsaXR5VGV4dCh1bnNpZ25lZCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gU3RyaW5nKCk7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXRl
bUlzRW5hYmxlZCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgUG9wdXBNZW51U3R5bGUgaXRlbVN0eWxlKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBQb3B1cE1lbnVTdHlsZSBtZW51U3R5bGUoKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGludCBjbGllbnRJbnNldExlZnQoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGludCBjbGllbnRJbnNldFJpZ2h0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBMYXlvdXRVbml0IGNsaWVudFBhZGRpbmdMZWZ0KCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBMYXlvdXRVbml0IGNsaWVudFBhZGRpbmdSaWdodCgpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgaW50IGxpc3RTaXplKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBpbnQgc2VsZWN0ZWRJbmRleCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBw
b3B1cERpZEhpZGUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXRlbUlzU2VwYXJhdG9y
KHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGl0
ZW1Jc0xhYmVsKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBib29sIGl0ZW1Jc1NlbGVjdGVkKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBib29sIHNob3VsZFBvcE92ZXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCB2YWx1ZVNob3VsZENoYW5nZU9uSG90VHJhY2so
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRU
ZXh0RnJvbUl0ZW0odW5zaWduZWQgbGlzdEluZGV4KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEZv
bnRTZWxlY3RvciogZm9udFNlbGVjdG9yKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBI
b3N0V2luZG93KiBob3N0V2luZG93KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQYXNz
UmVmUHRyPFNjcm9sbGJhcj4gY3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGFibGVBcmVhKiwgU2Nyb2xs
YmFyT3JpZW50YXRpb24sIFNjcm9sbGJhckNvbnRyb2xTaXplKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgdmFsdWVDaGFuZ2VkKHVuc2lnbmVkIGxpc3RJbmRleCwgYm9vbCBmaXJlRXZlbnRz
ID0gdHJ1ZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNlbGVjdGlvbkNoYW5nZWQodW5z
aWduZWQsIGJvb2wpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZWxlY3Rpb25DbGVh
cmVkKCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCBTdHJpbmcgaXRlbVRleHQodW5zaWduZWQg
bGlzdEluZGV4KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVtTGFiZWwo
dW5zaWduZWQgbGlzdEluZGV4KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBp
dGVtSWNvbih1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
U3RyaW5nIGl0ZW1Ub29sVGlwKHVuc2lnbmVkKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTdHJp
bmcoKTsgfQorICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW1BY2Nlc3NpYmlsaXR5VGV4dCh1bnNpZ25l
ZCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gU3RyaW5nKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
aXRlbUlzRW5hYmxlZCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgUG9wdXBNZW51U3R5bGUgaXRlbVN0eWxlKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBQb3B1cE1lbnVTdHlsZSBtZW51U3R5bGUoKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGludCBjbGllbnRJbnNldExlZnQoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGludCBjbGllbnRJbnNldFJpZ2h0KCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBMYXlvdXRVbml0IGNsaWVudFBhZGRpbmdMZWZ0KCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBMYXlvdXRVbml0IGNsaWVudFBhZGRpbmdSaWdodCgpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgaW50IGxpc3RTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBpbnQgc2VsZWN0ZWRJbmRleCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBwb3B1cERpZEhpZGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXRlbUlzU2VwYXJh
dG9yKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IGl0ZW1Jc0xhYmVsKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIGl0ZW1Jc1NlbGVjdGVkKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBib29sIHNob3VsZFBvcE92ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCB2YWx1ZVNob3VsZENoYW5nZU9uSG90VHJh
Y2soKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBz
ZXRUZXh0RnJvbUl0ZW0odW5zaWduZWQgbGlzdEluZGV4KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IEZvbnRTZWxlY3RvciogZm9udFNlbGVjdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBIb3N0V2luZG93KiBob3N0V2luZG93KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFNjcm9sbGJhcj4gY3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGFibGVBcmVhKiwgU2Ny
b2xsYmFyT3JpZW50YXRpb24sIFNjcm9sbGJhckNvbnRyb2xTaXplKSBvdmVycmlkZTsKIAogICAg
IEhUTUxFbGVtZW50KiByZXN1bHRzQnV0dG9uRWxlbWVudCgpIGNvbnN0OwogICAgIEhUTUxFbGVt
ZW50KiBjYW5jZWxCdXR0b25FbGVtZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyU2xpZGVyLmgKaW5kZXggZjEzMTJhZC4uNDZhYzVhNDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgKQEAgLTQxLDE1ICs0MSwxNSBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpbkRyYWdNb2RlKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBjb25zdCBj
aGFyKiByZW5kZXJOYW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gIlJlbmRlclNsaWRlciI7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTbGlkZXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0
cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIGNhbkJlUmVwbGFjZWRXaXRoSW5saW5lUnVuSW4oKSBj
b25zdCBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24oRm9udEJh
c2VsaW5lLCBib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1v
ZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dp
Y2FsV2lkdGgsIExheW91dFVuaXQmIG1heExvZ2ljYWxXaWR0aCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBib29sIHJlcXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbigp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlclNsaWRlciI7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNT
bGlkZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29s
IGNhbkJlUmVwbGFjZWRXaXRoSW5saW5lUnVuSW4oKSBjb25zdCBvdmVycmlkZTsKKworICAgIHZp
cnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lLCBib29sIGZpcnN0TGluZSwg
TGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmlu
Z0xpbmUpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW50cmluc2lj
TG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExheW91dFVuaXQmIG1h
eExvZ2ljYWxXaWR0aCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVQ
cmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHJlcXVp
cmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgb3ZlcnJpZGU7CiB9OwogCiBSRU5E
RVJfT0JKRUNUX1RZUEVfQ0FTVFMoUmVuZGVyU2xpZGVyLCBpc1NsaWRlcigpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAppbmRleCAw
MWFkMDcyLi4xMmJhYmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW4uaApAQCAtNDksMTUgKzQ5LDE1IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBmcmFtZU93bmVyRWxlbWVudCgpIGNvbnN0IFdURl9ERUxFVEVEX0ZVTkNUSU9OOwogICAg
IHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbiI7IH0KIAotICAgIHZpcnR1YWwgQ3Vyc29yRGlyZWN0aXZlIGdldEN1
cnNvcihjb25zdCBMYXlvdXRQb2ludCYsIEN1cnNvciYpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwot
ICAgIHZpcnR1YWwgYm9vbCBpc1NuYXBzaG90dGVkUGx1Z0luKCkgY29uc3QgT1ZFUlJJREUgRklO
QUwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBj
b25zdCBMYXlvdXRQb2ludCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgQ3Vyc29yRGlyZWN0aXZl
IGdldEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYsIEN1cnNvciYpIGNvbnN0IG92ZXJyaWRlIEZJ
TkFMOworICAgIHZpcnR1YWwgYm9vbCBpc1NuYXBzaG90dGVkUGx1Z0luKCkgY29uc3Qgb3ZlcnJp
ZGUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludElu
Zm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlOwogICAgIAotICAgIHZpcnR1YWwgYm9v
bCBjYW5IYXZlV2lkZ2V0KCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZVdpZGdldCgpIGNvbnN0IG92ZXJyaWRlIEZJTkFMIHsg
cmV0dXJuIGZhbHNlOyB9CiAKICAgICB2b2lkIHBhaW50U25hcHNob3QoUGFpbnRJbmZvJiwgY29u
c3QgTGF5b3V0UG9pbnQmKTsKIAotICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgb3ZlcnJpZGU7CiAKICAgICBPd25QdHI8UmVuZGVy
SW1hZ2VSZXNvdXJjZT4gbV9zbmFwc2hvdFJlc291cmNlOwogICAgIGJvb2wgbV9pc1BvdGVudGlh
bE1vdXNlQWN0aXZhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgKaW5k
ZXggYmFiZWMyOS4uYmNkNzk4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
LmgKQEAgLTUzLDMzICs1MywzMyBAQCBwdWJsaWM6CiAgICAgCiAgICAgYm9vbCBjb2xsYXBzZUJv
cmRlcnMoKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLmJvcmRlckNvbGxhcHNlKCk7IH0KIAotICAg
IHZpcnR1YWwgaW50IGJvcmRlclN0YXJ0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9ib3Jk
ZXJTdGFydDsgfQotICAgIHZpcnR1YWwgaW50IGJvcmRlckVuZCgpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIG1fYm9yZGVyRW5kOyB9Ci0gICAgdmlydHVhbCBpbnQgYm9yZGVyQmVmb3JlKCkgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBpbnQgYm9yZGVyQWZ0ZXIoKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGludCBib3JkZXJTdGFydCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IG1fYm9yZGVyU3RhcnQ7IH0KKyAgICB2aXJ0dWFsIGludCBib3JkZXJFbmQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX2JvcmRlckVuZDsgfQorICAgIHZpcnR1YWwgaW50IGJvcmRlckJlZm9y
ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgaW50IGJvcmRlckFmdGVyKCkgY29uc3Qg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGludCBib3JkZXJMZWZ0KCkgY29uc3QgT1ZFUlJJREUK
KyAgICB2aXJ0dWFsIGludCBib3JkZXJMZWZ0KCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAg
ICAgIGlmIChzdHlsZSgpLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBib3JkZXJTdGFydCgpIDog
Ym9yZGVyRW5kKCk7CiAgICAgICAgIHJldHVybiBzdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRp
bmdNb2RlKCkgPyBib3JkZXJBZnRlcigpIDogYm9yZGVyQmVmb3JlKCk7CiAgICAgfQogCi0gICAg
dmlydHVhbCBpbnQgYm9yZGVyUmlnaHQoKSBjb25zdCBPVkVSUklERQorICAgIHZpcnR1YWwgaW50
IGJvcmRlclJpZ2h0KCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmIChzdHlsZSgp
LmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgICAgICByZXR1cm4gc3R5bGUoKS5p
c0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBib3JkZXJFbmQoKSA6IGJvcmRlclN0YXJ0KCk7CiAg
ICAgICAgIHJldHVybiBzdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkgPyBib3Jk
ZXJCZWZvcmUoKSA6IGJvcmRlckFmdGVyKCk7CiAgICAgfQogCi0gICAgdmlydHVhbCBpbnQgYm9y
ZGVyVG9wKCkgY29uc3QgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIGludCBib3JkZXJUb3AoKSBjb25z
dCBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKHN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUoKSkKICAgICAgICAgICAgIHJldHVybiBzdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRp
bmdNb2RlKCkgPyBib3JkZXJBZnRlcigpIDogYm9yZGVyQmVmb3JlKCk7CiAgICAgICAgIHJldHVy
biBzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IGJvcmRlclN0YXJ0KCkgOiBib3Jk
ZXJFbmQoKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGludCBib3JkZXJCb3R0b20oKSBjb25zdCBP
VkVSUklERQorICAgIHZpcnR1YWwgaW50IGJvcmRlckJvdHRvbSgpIGNvbnN0IG92ZXJyaWRlCiAg
ICAgewogICAgICAgICBpZiAoc3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQogICAg
ICAgICAgICAgcmV0dXJuIHN0eWxlKCkuaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSA/IGJv
cmRlckJlZm9yZSgpIDogYm9yZGVyQWZ0ZXIoKTsKQEAgLTEyNSw3ICsxMjUsNyBAQCBwdWJsaWM6
CiAgICAgaW50IGNhbGNCb3JkZXJFbmQoKSBjb25zdDsKICAgICB2b2lkIHJlY2FsY0JvcmRlcnNJ
blJvd0RpcmVjdGlvbigpOwogCi0gICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVj
dCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKSBPVkVSUklERSBGSU5BTDsK
KyAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVyT2Jq
ZWN0KiBiZWZvcmVDaGlsZCA9IDApIG92ZXJyaWRlIEZJTkFMOwogCiAgICAgc3RydWN0IENvbHVt
blN0cnVjdCB7CiAgICAgICAgIGV4cGxpY2l0IENvbHVtblN0cnVjdCh1bnNpZ25lZCBpbml0aWFs
U3BhbiA9IDEpCkBAIC0xOTYsOCArMTk2LDggQEAgcHVibGljOgogICAgIH0KIAogICAgIC8vIE92
ZXJyaWRlIHBhZGRpbmdTdGFydC9FbmQgdG8gcmV0dXJuIHBpeGVsIHZhbHVlcyB0byBtYXRjaCBi
ZWhhdm9yIG9mIFJlbmRlclRhYmxlQ2VsbC4KLSAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGlu
Z0VuZCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oUmVu
ZGVyQmxvY2s6OnBhZGRpbmdFbmQoKSk7IH0KLSAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGlu
Z1N0YXJ0KCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihS
ZW5kZXJCbG9jazo6cGFkZGluZ1N0YXJ0KCkpOyB9CisgICAgdmlydHVhbCBMYXlvdXRVbml0IHBh
ZGRpbmdFbmQoKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+
KFJlbmRlckJsb2NrOjpwYWRkaW5nRW5kKCkpOyB9CisgICAgdmlydHVhbCBMYXlvdXRVbml0IHBh
ZGRpbmdTdGFydCgpIGNvbnN0IG92ZXJyaWRlIEZJTkFMIHsgcmV0dXJuIHN0YXRpY19jYXN0PGlu
dD4oUmVuZGVyQmxvY2s6OnBhZGRpbmdTdGFydCgpKTsgfQogCiAgICAgTGF5b3V0VW5pdCBib3Jk
ZXJzUGFkZGluZ0FuZFNwYWNpbmdJblJvd0RpcmVjdGlvbigpIGNvbnN0CiAgICAgewpAQCAtMjUw
LDcgKzI1MCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgUmVuZGVyVGFibGUqIGNy
ZWF0ZUFub255bW91c1dpdGhQYXJlbnRSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqKTsKLSAg
ICB2aXJ0dWFsIFJlbmRlckJveCogY3JlYXRlQW5vbnltb3VzQm94V2l0aFNhbWVUeXBlQXMoY29u
c3QgUmVuZGVyT2JqZWN0KiBwYXJlbnQpIGNvbnN0IE9WRVJSSURFCisgICAgdmlydHVhbCBSZW5k
ZXJCb3gqIGNyZWF0ZUFub255bW91c0JveFdpdGhTYW1lVHlwZUFzKGNvbnN0IFJlbmRlck9iamVj
dCogcGFyZW50KSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgcmV0dXJuIGNyZWF0ZUFu
b255bW91c1dpdGhQYXJlbnRSZW5kZXJlcihwYXJlbnQpOwogICAgIH0KQEAgLTI2NCw0NiArMjY0
LDQ2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUNvbHVtbihjb25zdCBSZW5kZXJUYWJsZUNv
bCopOwogCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxl
RGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBPVkVSUklERSBGSU5BTDsK
LSAgICB2aXJ0dWFsIHZvaWQgc2ltcGxpZmllZE5vcm1hbEZsb3dMYXlvdXQoKSBPVkVSUklERSBG
SU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBj
b25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwg
dm9pZCBzaW1wbGlmaWVkTm9ybWFsRmxvd0xheW91dCgpIG92ZXJyaWRlIEZJTkFMOwogCiBwcml2
YXRlOgotICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuICJSZW5kZXJUYWJsZSI7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRl
ck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVyVGFibGUiOyB9CiAKLSAgICB2
aXJ0dWFsIGJvb2wgaXNUYWJsZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNUYWJsZSgpIGNvbnN0IG92ZXJyaWRlIEZJTkFMIHsgcmV0
dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBhdm9pZHNGbG9hdHMoKSBjb25zdCBPVkVS
UklERSBGSU5BTCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGF2b2lkc0Zsb2F0
cygpIGNvbnN0IG92ZXJyaWRlIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwg
dm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJSSURFIEZJTkFM
OwotICAgIHZpcnR1YWwgdm9pZCBwYWludE9iamVjdChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQ
b2ludCYpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBwYWludEJveERlY29yYXRp
b25zKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgT1ZFUlJJREUgRklOQUw7Ci0gICAg
dmlydHVhbCB2b2lkIHBhaW50TWFzayhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIE9W
RVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklERSBGSU5BTDsK
LSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5p
dCYgbWluV2lkdGgsIExheW91dFVuaXQmIG1heFdpZHRoKSBjb25zdCBPVkVSUklERSBGSU5BTDsK
LSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBI
aXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVy
LCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQ
b2ludCYpIG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBwYWludE9iamVjdChQYWlu
dEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwg
dm9pZCBwYWludEJveERlY29yYXRpb25zKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikg
b3ZlcnJpZGUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHBhaW50TWFzayhQYWludEluZm8mLCBj
b25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBsYXlv
dXQoKSBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUludHJpbnNpY0xv
Z2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluV2lkdGgsIExheW91dFVuaXQmIG1heFdpZHRoKSBj
b25zdCBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVByZWZlcnJlZExv
Z2ljYWxXaWR0aHMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29u
c3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9u
JiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZz
ZXQsIEhpdFRlc3RBY3Rpb24pIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQ
b3NpdGlvbihGb250QmFzZWxpbmUsIGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwg
TGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgT1ZFUlJJ
REUgRklOQUw7Ci0gICAgdmlydHVhbCBpbnQgZmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGludCBpbmxpbmVCbG9ja0Jhc2VsaW5lKExpbmVEaXJlY3Rpb25N
b2RlKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGludCBiYXNlbGluZVBvc2l0
aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5l
UG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRhaW5pbmdMaW5lKSBjb25zdCBvdmVycmlkZSBG
SU5BTDsKKyAgICB2aXJ0dWFsIGludCBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgaW50IGlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUp
IGNvbnN0IG92ZXJyaWRlIEZJTkFMOwogCiAgICAgUmVuZGVyVGFibGVDb2wqIHNsb3dDb2xFbGVt
ZW50KHVuc2lnbmVkIGNvbCwgYm9vbCogc3RhcnRFZGdlLCBib29sKiBlbmRFZGdlKSBjb25zdDsK
IAogICAgIHZvaWQgdXBkYXRlQ29sdW1uQ2FjaGUoKSBjb25zdDsKICAgICB2b2lkIGludmFsaWRh
dGVDYWNoZWRDb2x1bW5zKCk7CiAKLSAgICB2aXJ0dWFsIFJlbmRlckJsb2NrKiBmaXJzdExpbmVC
bG9jaygpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGaXJz
dExldHRlcigpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgUmVuZGVyQmxvY2sqIGZpcnN0
TGluZUJsb2NrKCkgY29uc3Qgb3ZlcnJpZGUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUZpcnN0TGV0dGVyKCkgb3ZlcnJpZGUgRklOQUw7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZUxvZ2ljYWxXaWR0aCgpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVMb2dpY2FsV2lkdGgoKSBvdmVycmlkZSBGSU5BTDsKIAogICAgIExheW91dFVuaXQgY29udmVy
dFN0eWxlTG9naWNhbFdpZHRoVG9Db21wdXRlZFdpZHRoKGNvbnN0IExlbmd0aCYgc3R5bGVMb2dp
Y2FsV2lkdGgsIExheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgpOwogICAgIExheW91dFVuaXQgY29u
dmVydFN0eWxlTG9naWNhbEhlaWdodFRvQ29tcHV0ZWRIZWlnaHQoY29uc3QgTGVuZ3RoJiBzdHls
ZUxvZ2ljYWxIZWlnaHQpOwogCi0gICAgdmlydHVhbCBMYXlvdXRSZWN0IG92ZXJmbG93Q2xpcFJl
Y3QoY29uc3QgTGF5b3V0UG9pbnQmIGxvY2F0aW9uLCBSZW5kZXJSZWdpb24qLCBPdmVybGF5U2Ny
b2xsYmFyU2l6ZVJlbGV2YW5jeSA9IElnbm9yZU92ZXJsYXlTY3JvbGxiYXJTaXplLCBQYWludFBo
YXNlID0gUGFpbnRQaGFzZUJsb2NrQmFja2dyb3VuZCkgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmly
dHVhbCBMYXlvdXRSZWN0IG92ZXJmbG93Q2xpcFJlY3RGb3JDaGlsZExheWVycyhjb25zdCBMYXlv
dXRQb2ludCYgbG9jYXRpb24sIFJlbmRlclJlZ2lvbiogcmVnaW9uLCBPdmVybGF5U2Nyb2xsYmFy
U2l6ZVJlbGV2YW5jeSByZWxldmFuY3kpIE9WRVJSSURFIHsgcmV0dXJuIFJlbmRlckJveDo6b3Zl
cmZsb3dDbGlwUmVjdChsb2NhdGlvbiwgcmVnaW9uLCByZWxldmFuY3kpOyB9CisgICAgdmlydHVh
bCBMYXlvdXRSZWN0IG92ZXJmbG93Q2xpcFJlY3QoY29uc3QgTGF5b3V0UG9pbnQmIGxvY2F0aW9u
LCBSZW5kZXJSZWdpb24qLCBPdmVybGF5U2Nyb2xsYmFyU2l6ZVJlbGV2YW5jeSA9IElnbm9yZU92
ZXJsYXlTY3JvbGxiYXJTaXplLCBQYWludFBoYXNlID0gUGFpbnRQaGFzZUJsb2NrQmFja2dyb3Vu
ZCkgb3ZlcnJpZGUgRklOQUw7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IG92ZXJmbG93Q2xpcFJl
Y3RGb3JDaGlsZExheWVycyhjb25zdCBMYXlvdXRQb2ludCYgbG9jYXRpb24sIFJlbmRlclJlZ2lv
biogcmVnaW9uLCBPdmVybGF5U2Nyb2xsYmFyU2l6ZVJlbGV2YW5jeSByZWxldmFuY3kpIG92ZXJy
aWRlIHsgcmV0dXJuIFJlbmRlckJveDo6b3ZlcmZsb3dDbGlwUmVjdChsb2NhdGlvbiwgcmVnaW9u
LCByZWxldmFuY3kpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkT3ZlcmZsb3dGcm9tQ2hpbGRy
ZW4oKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkT3ZlcmZsb3dGcm9tQ2hp
bGRyZW4oKSBvdmVycmlkZSBGSU5BTDsKIAogICAgIHZvaWQgc3VidHJhY3RDYXB0aW9uUmVjdChM
YXlvdXRSZWN0JikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZUNhcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZUNhcHRpb24uaAppbmRleCAyOTRmNDBmLi4xZDE4YjA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDYXB0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2FwdGlvbi5oCkBAIC0zMywxMyArMzMsMTMgQEAgcHVi
bGljOgogCiAgICAgRWxlbWVudCYgZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRvRWxlbWVudChu
b2RlRm9yTm9uQW5vbnltb3VzKCkpOyB9CiAKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgY29udGFp
bmluZ0Jsb2NrTG9naWNhbFdpZHRoRm9yQ29udGVudCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgTGF5b3V0VW5pdCBjb250YWluaW5nQmxvY2tMb2dpY2FsV2lkdGhGb3JDb250ZW50KCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgCiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBpc1RhYmxl
Q2FwdGlvbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgaXNUYWJsZUNhcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvVHJlZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCB3aWxsQmVSZW1vdmVkRnJvbVRyZWUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
aW5zZXJ0ZWRJbnRvVHJlZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVSZW1v
dmVkRnJvbVRyZWUoKSBvdmVycmlkZTsKIAogICAgIFJlbmRlclRhYmxlKiB0YWJsZSgpIGNvbnN0
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNl
bGwuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAppbmRleCA4
NTY4NGNmLi42ZTVkMDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGVDZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
Q2VsbC5oCkBAIC0xMTAsMjEgKzExMCwyMSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldENlbGxM
b2dpY2FsV2lkdGgoaW50IGNvbnN0cmFpbmVkTG9naWNhbFdpZHRoKTsKIAotICAgIHZpcnR1YWwg
aW50IGJvcmRlckxlZnQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGludCBib3JkZXJS
aWdodCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgaW50IGJvcmRlclRvcCgpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgaW50IGJvcmRlckJvdHRvbSgpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgaW50IGJvcmRlclN0YXJ0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBpbnQgYm9yZGVyRW5kKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBpbnQgYm9y
ZGVyQmVmb3JlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBpbnQgYm9yZGVyQWZ0ZXIo
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGludCBib3JkZXJMZWZ0KCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBpbnQgYm9yZGVyUmlnaHQoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGludCBib3JkZXJUb3AoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGlu
dCBib3JkZXJCb3R0b20oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGludCBib3JkZXJT
dGFydCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgaW50IGJvcmRlckVuZCgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgaW50IGJvcmRlckJlZm9yZSgpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgaW50IGJvcmRlckFmdGVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2
b2lkIGNvbGxlY3RCb3JkZXJWYWx1ZXMoUmVuZGVyVGFibGU6OkNvbGxhcHNlZEJvcmRlclZhbHVl
cyYpIGNvbnN0OwogICAgIHN0YXRpYyB2b2lkIHNvcnRCb3JkZXJWYWx1ZXMoUmVuZGVyVGFibGU6
OkNvbGxhcHNlZEJvcmRlclZhbHVlcyYpOwogCi0gICAgdmlydHVhbCB2b2lkIGxheW91dCgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1
YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIG92
ZXJyaWRlOwogCiAgICAgYm9vbCBhbGlnbkxlZnRSaWdodEJvcmRlclBhaW50UmVjdChpbnQmIGxl
ZnRYT2Zmc2V0LCBpbnQmIHJpZ2h0WE9mZnNldCk7CiAgICAgYm9vbCBhbGlnblRvcEJvdHRvbUJv
cmRlclBhaW50UmVjdChpbnQmIHRvcFlPZmZzZXQsIGludCYgYm90dG9tWU9mZnNldCk7CkBAIC0x
NDQsMjYgKzE0NCwyNiBAQCBwdWJsaWM6CiAgICAgaW50IGludHJpbnNpY1BhZGRpbmdCZWZvcmUo
KSBjb25zdCB7IHJldHVybiBtX2ludHJpbnNpY1BhZGRpbmdCZWZvcmU7IH0KICAgICBpbnQgaW50
cmluc2ljUGFkZGluZ0FmdGVyKCkgY29uc3QgeyByZXR1cm4gbV9pbnRyaW5zaWNQYWRkaW5nQWZ0
ZXI7IH0KIAotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nVG9wKCkgY29uc3QgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IHBhZGRpbmdCb3R0b20oKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGluZ0xlZnQoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGluZ1JpZ2h0KCkgY29uc3QgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBMYXlvdXRVbml0IHBhZGRpbmdUb3AoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIExheW91dFVuaXQgcGFkZGluZ0JvdHRvbSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nTGVmdCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgTGF5b3V0VW5pdCBwYWRkaW5nUmlnaHQoKSBjb25zdCBvdmVycmlkZTsKICAgICAKICAgICAv
LyBGSVhNRTogRm9yIG5vdyB3ZSBqdXN0IGFzc3VtZSB0aGUgY2VsbCBoYXMgdGhlIHNhbWUgYmxv
Y2sgZmxvdyBkaXJlY3Rpb24gYXMgdGhlIHRhYmxlLiBJdCdzIGxpa2VseSB3ZSdsbAogICAgIC8v
IGNyZWF0ZSBhbiBleHRyYSBhbm9ueW1vdXMgUmVuZGVyQmxvY2sgdG8gaGFuZGxlIG1peGluZyBk
aXJlY3Rpb25hbGl0eSBhbnl3YXksIGluIHdoaWNoIGNhc2Ugd2UgY2FuIGxvY2sKICAgICAvLyB0
aGUgYmxvY2sgZmxvdyBkaXJlY3Rpb25hbGl0eSBvZiB0aGUgY2VsbHMgdG8gdGhlIHRhYmxlJ3Mg
ZGlyZWN0aW9uYWxpdHkuCi0gICAgdmlydHVhbCBMYXlvdXRVbml0IHBhZGRpbmdCZWZvcmUoKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGluZ0FmdGVyKCkgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IHBhZGRpbmdCZWZvcmUoKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGluZ0FmdGVyKCkgY29uc3Qg
b3ZlcnJpZGU7CiAKICAgICB2b2lkIHNldE92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHRGcm9t
Um93SGVpZ2h0KExheW91dFVuaXQpOwogCi0gICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhcnNDaGFu
Z2VkKGJvb2wgaG9yaXpvbnRhbFNjcm9sbGJhckNoYW5nZWQsIGJvb2wgdmVydGljYWxTY3JvbGxi
YXJDaGFuZ2VkKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyc0NoYW5nZWQo
Ym9vbCBob3Jpem9udGFsU2Nyb2xsYmFyQ2hhbmdlZCwgYm9vbCB2ZXJ0aWNhbFNjcm9sbGJhckNo
YW5nZWQpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBjZWxsV2lkdGhDaGFuZ2VkKCkgY29uc3QgeyBy
ZXR1cm4gbV9jZWxsV2lkdGhDaGFuZ2VkOyB9CiAgICAgdm9pZCBzZXRDZWxsV2lkdGhDaGFuZ2Vk
KGJvb2wgYiA9IHRydWUpIHsgbV9jZWxsV2lkdGhDaGFuZ2VkID0gYjsgfQogCiAgICAgc3RhdGlj
IFJlbmRlclRhYmxlQ2VsbCogY3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyKGNvbnN0
IFJlbmRlck9iamVjdCopOwotICAgIHZpcnR1YWwgUmVuZGVyQm94KiBjcmVhdGVBbm9ueW1vdXNC
b3hXaXRoU2FtZVR5cGVBcyhjb25zdCBSZW5kZXJPYmplY3QqIHBhcmVudCkgY29uc3QgT1ZFUlJJ
REUKKyAgICB2aXJ0dWFsIFJlbmRlckJveCogY3JlYXRlQW5vbnltb3VzQm94V2l0aFNhbWVUeXBl
QXMoY29uc3QgUmVuZGVyT2JqZWN0KiBwYXJlbnQpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAg
ICAgICByZXR1cm4gY3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyKHBhcmVudCk7CiAg
ICAgfQpAQCAtMjE5LDI2ICsyMTksMjYgQEAgcHVibGljOgogICAgIH0KICNlbmRpZgogcHJvdGVj
dGVkOgotICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNv
bnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNv
bXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0
eWxlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxX
aWR0aHMoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJl
bmRlck5hbWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAoaXNBbm9ueW1vdXMoKSB8fCBpc1Bz
ZXVkb0VsZW1lbnQoKSkgPyAiUmVuZGVyVGFibGVDZWxsIChhbm9ueW1vdXMpIiA6ICJSZW5kZXJU
YWJsZUNlbGwiOyB9CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gKGlzQW5vbnltb3VzKCkgfHwgaXNQc2V1ZG9FbGVtZW50KCkpID8g
IlJlbmRlclRhYmxlQ2VsbCAoYW5vbnltb3VzKSIgOiAiUmVuZGVyVGFibGVDZWxsIjsgfQogCi0g
ICAgdmlydHVhbCBib29sIGlzVGFibGVDZWxsKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1RhYmxlQ2VsbCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVSZW1vdmVkRnJvbVRyZWUoKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlUmVtb3ZlZEZyb21UcmVlKCkgb3ZlcnJp
ZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTG9naWNhbFdpZHRoKCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxvZ2ljYWxXaWR0aCgpIG92ZXJyaWRlOwogCi0gICAgdmly
dHVhbCB2b2lkIHBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9p
bnQmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRNYXNrKFBhaW50SW5mbyYsIGNv
bnN0IExheW91dFBvaW50JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhaW50Qm94RGVj
b3JhdGlvbnMoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRNYXNrKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgYm94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNr
Z3JvdW5kKEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSwgSW5saW5lRmxvd0JveCopIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBib3hTaGFkb3dTaG91bGRCZUFwcGxpZWRUb0JhY2tn
cm91bmQoQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBJbmxpbmVGbG93Qm94KikgY29uc3Qgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIExheW91dFNpemUgb2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5k
ZXJPYmplY3QqLCBjb25zdCBMYXlvdXRQb2ludCYsIGJvb2wqIG9mZnNldERlcGVuZHNPblBvaW50
ID0gMCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVy
Zmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUmVjdEZv
clJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
TGF5b3V0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3QgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBMYXlvdXRTaXplIG9mZnNldEZyb21Db250YWluZXIoUmVuZGVyT2JqZWN0KiwgY29uc3Qg
TGF5b3V0UG9pbnQmLCBib29sKiBvZmZzZXREZXBlbmRzT25Qb2ludCA9IDApIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWlu
dChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QmLCBib29s
IGZpeGVkID0gZmFsc2UpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgaW50IGJvcmRlckhhbGZMZWZ0
KGJvb2wgb3V0ZXIpIGNvbnN0OwogICAgIGludCBib3JkZXJIYWxmUmlnaHQoYm9vbCBvdXRlcikg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVD
b2wuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5oCmluZGV4IGFi
MTNmYjkuLjdmOGQwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZUNvbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNv
bC5oCkBAIC03MiwyMyArNzIsMjMgQEAgcHVibGljOgogICAgIGNvbnN0IEJvcmRlclZhbHVlJiBi
b3JkZXJBZGpvaW5pbmdDZWxsQWZ0ZXIoY29uc3QgUmVuZGVyVGFibGVDZWxsKikgY29uc3Q7CiAK
IHByaXZhdGU6Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gIlJlbmRlclRhYmxlQ29sIjsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1Jl
bmRlclRhYmxlQ29sKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBj
b21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpIE9WRVJSSURFIHsgQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiAiUmVuZGVyVGFibGVDb2wiOyB9CisgICAgdmlydHVhbCBib29sIGlzUmVu
ZGVyVGFibGVDb2woKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNv
bXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgb3ZlcnJpZGUgeyBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b1RyZWUoKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlUmVtb3ZlZEZyb21UcmVlKCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIGluc2VydGVkSW50b1RyZWUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgd2lsbEJlUmVtb3ZlZEZyb21UcmVlKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wg
aXNDaGlsZEFsbG93ZWQoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUmVuZGVyU3R5bGUmKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0NoaWxkQWxsb3dlZChjb25z
dCBSZW5kZXJPYmplY3QmLCBjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
CiAKLSAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChXcmFwcGVkSW1hZ2VQdHIsIGNv
bnN0IEludFJlY3QqID0gMCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBw
ZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNo
YW5nZWQoV3JhcHBlZEltYWdlUHRyLCBjb25zdCBJbnRSZWN0KiA9IDApIG92ZXJyaWRlOwogCi0g
ICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVu
ZGVyU3R5bGUqIG9sZFN0eWxlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFp
bnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xk
U3R5bGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25z
dCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlIHsgfQogCiAgICAgUmVuZGVyVGFibGUqIHRhYmxlKCkg
Y29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJs
ZVJvdy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmgKaW5kZXgg
MzU3ZGI4MC4uNTRmYWZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlUm93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
Um93LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIHZvaWQgcGFpbnRPdXRsaW5lRm9y
Um93SWZOZWVkZWQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKIAogICAgIHN0YXRp
YyBSZW5kZXJUYWJsZVJvdyogY3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyKGNvbnN0
IFJlbmRlck9iamVjdCopOwotICAgIHZpcnR1YWwgUmVuZGVyQm94KiBjcmVhdGVBbm9ueW1vdXNC
b3hXaXRoU2FtZVR5cGVBcyhjb25zdCBSZW5kZXJPYmplY3QqIHBhcmVudCkgY29uc3QgT1ZFUlJJ
REUKKyAgICB2aXJ0dWFsIFJlbmRlckJveCogY3JlYXRlQW5vbnltb3VzQm94V2l0aFNhbWVUeXBl
QXMoY29uc3QgUmVuZGVyT2JqZWN0KiBwYXJlbnQpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAg
ICAgICByZXR1cm4gY3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRlcmVyKHBhcmVudCk7CiAg
ICAgfQpAQCAtODgsMjggKzg4LDI4IEBAIHB1YmxpYzoKICAgICBjb25zdCBCb3JkZXJWYWx1ZSYg
Ym9yZGVyQWRqb2luaW5nU3RhcnRDZWxsKGNvbnN0IFJlbmRlclRhYmxlQ2VsbCopIGNvbnN0Owog
ICAgIGNvbnN0IEJvcmRlclZhbHVlJiBib3JkZXJBZGpvaW5pbmdFbmRDZWxsKGNvbnN0IFJlbmRl
clRhYmxlQ2VsbCopIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9i
amVjdCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0
KiBiZWZvcmVDaGlsZCA9IDApIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIG5vZGVBdFBv
aW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RM
b2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxh
dGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgbm9k
ZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0
VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNj
dW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAg
IHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IChpc0Fub255bW91cygpIHx8IGlzUHNldWRvRWxlbWVudCgpKSA/ICJSZW5kZXJUYWJsZVJvdyAo
YW5vbnltb3VzKSIgOiAiUmVuZGVyVGFibGVSb3ciOyB9CisgICAgdmlydHVhbCBjb25zdCBjaGFy
KiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gKGlzQW5vbnltb3VzKCkgfHwg
aXNQc2V1ZG9FbGVtZW50KCkpID8gIlJlbmRlclRhYmxlUm93IChhbm9ueW1vdXMpIiA6ICJSZW5k
ZXJUYWJsZVJvdyI7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBpc1RhYmxlUm93KCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1RhYmxlUm93KCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBib29sIGNhbkhhdmVD
aGlsZHJlbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgd2lsbEJlUmVtb3ZlZEZyb21UcmVlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGNh
bkhhdmVDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgd2lsbEJlUmVtb3ZlZEZyb21UcmVlKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgbGF5b3V0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRP
dmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJl
cGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29u
c3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIGhhc092ZXJmbG93Q2xpcCgpIHx8IGhhc1RyYW5zZm9ybSgpIHx8IGhh
c0hpZGRlbkJhY2tmYWNlKCkgfHwgaGFzQ2xpcFBhdGgoKSB8fCBjcmVhdGVzR3JvdXAoKTsgfQor
ICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
aGFzT3ZlcmZsb3dDbGlwKCkgfHwgaGFzVHJhbnNmb3JtKCkgfHwgaGFzSGlkZGVuQmFja2ZhY2Uo
KSB8fCBoYXNDbGlwUGF0aCgpIHx8IGNyZWF0ZXNHcm91cCgpOyB9CiAKLSAgICB2aXJ0dWFsIHZv
aWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlk
ZTsKIAotICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRyLCBjb25z
dCBJbnRSZWN0KiA9IDApIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBpbWFnZUNoYW5nZWQo
V3JhcHBlZEltYWdlUHRyLCBjb25zdCBJbnRSZWN0KiA9IDApIG92ZXJyaWRlOwogCi0gICAgdmly
dHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5
bGUqIG9sZFN0eWxlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2Uo
U3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIG92ZXJyaWRlOwog
CiAgICAgdm9pZCBmaXJzdENoaWxkKCkgY29uc3QgV1RGX0RFTEVURURfRlVOQ1RJT047CiAgICAg
dm9pZCBsYXN0Q2hpbGQoKSBjb25zdCBXVEZfREVMRVRFRF9GVU5DVElPTjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaAppbmRleCA0YzhjMDVhLi4wZDY1
Yzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5o
CkBAIC03MSw5ICs3MSw5IEBAIHB1YmxpYzoKICAgICBSZW5kZXJUYWJsZVJvdyogZmlyc3RSb3co
KSBjb25zdDsKICAgICBSZW5kZXJUYWJsZVJvdyogbGFzdFJvdygpIGNvbnN0OwogCi0gICAgdmly
dHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVm
b3JlQ2hpbGQgPSAwKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVy
T2JqZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApIG92ZXJyaWRlOwog
Ci0gICAgdmlydHVhbCBpbnQgZmlyc3RMaW5lQmFzZWxpbmUoKSBjb25zdCBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIGludCBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
dm9pZCBhZGRDZWxsKFJlbmRlclRhYmxlQ2VsbCosIFJlbmRlclRhYmxlUm93KiByb3cpOwogCkBA
IC0yMTksMjkgKzIxOSwyOSBAQCBwdWJsaWM6CiAgICAgaW50IGRpc3RyaWJ1dGVFeHRyYUxvZ2lj
YWxIZWlnaHRUb1Jvd3MoaW50IGV4dHJhTG9naWNhbEhlaWdodCk7CiAKICAgICBzdGF0aWMgUmVu
ZGVyVGFibGVTZWN0aW9uKiBjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXIoY29uc3Qg
UmVuZGVyT2JqZWN0Kik7Ci0gICAgdmlydHVhbCBSZW5kZXJCb3gqIGNyZWF0ZUFub255bW91c0Jv
eFdpdGhTYW1lVHlwZUFzKGNvbnN0IFJlbmRlck9iamVjdCogcGFyZW50KSBjb25zdCBPVkVSUklE
RQorICAgIHZpcnR1YWwgUmVuZGVyQm94KiBjcmVhdGVBbm9ueW1vdXNCb3hXaXRoU2FtZVR5cGVB
cyhjb25zdCBSZW5kZXJPYmplY3QqIHBhcmVudCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAg
ICAgIHJldHVybiBjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXIocGFyZW50KTsKICAg
ICB9CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91
dFBvaW50JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNv
bnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZv
aWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xk
U3R5bGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURp
ZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgb3ZlcnJpZGU7CiAKIHByaXZh
dGU6Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gKGlzQW5vbnltb3VzKCkgfHwgaXNQc2V1ZG9FbGVtZW50KCkpID8gIlJlbmRlclRh
YmxlU2VjdGlvbiAoYW5vbnltb3VzKSIgOiAiUmVuZGVyVGFibGVTZWN0aW9uIjsgfQorICAgIHZp
cnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIChp
c0Fub255bW91cygpIHx8IGlzUHNldWRvRWxlbWVudCgpKSA/ICJSZW5kZXJUYWJsZVNlY3Rpb24g
KGFub255bW91cykiIDogIlJlbmRlclRhYmxlU2VjdGlvbiI7IH0KIAotICAgIHZpcnR1YWwgYm9v
bCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAg
dmlydHVhbCBib29sIGNhbkhhdmVDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBpc1RhYmxlU2VjdGlvbigpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNUYWJsZVNlY3Rpb24oKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlUmVt
b3ZlZEZyb21UcmVlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxCZVJlbW92ZWRG
cm9tVHJlZSgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgcGFpbnRD
ZWxsKFJlbmRlclRhYmxlQ2VsbCosIFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7Ci0g
ICAgdmlydHVhbCB2b2lkIHBhaW50T2JqZWN0KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhaW50T2JqZWN0KFBhaW50SW5mbyYsIGNv
bnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWludFJvd0dyb3VwQm9yZGVy
KGNvbnN0IFBhaW50SW5mbyYsIGJvb2wgYW50aWFsaWFzLCBMYXlvdXRSZWN0LCBCb3hTaWRlLCBD
U1NQcm9wZXJ0eUlEIGJvcmRlckNvbG9yLCBFQm9yZGVyU3R5bGUsIEVCb3JkZXJTdHlsZSB0YWJs
ZUJvcmRlclN0eWxlKTsKICAgICB2b2lkIHBhaW50Um93R3JvdXBCb3JkZXJJZlJlcXVpcmVkKGNv
bnN0IFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgdW5zaWduZWQg
cm93LCB1bnNpZ25lZCBjb2wsIEJveFNpZGUsIFJlbmRlclRhYmxlQ2VsbCogPSAwKTsKICAgICBp
bnQgb2Zmc2V0TGVmdEZvclJvd0dyb3VwQm9yZGVyKFJlbmRlclRhYmxlQ2VsbCosIGNvbnN0IExh
eW91dFJlY3QmIHJvd0dyb3VwUmVjdCwgdW5zaWduZWQgcm93KTsKQEAgLTI1MCw5ICsyNTAsOSBA
QCBwcml2YXRlOgogICAgIGludCB2ZXJ0aWNhbFJvd0dyb3VwQm9yZGVySGVpZ2h0KFJlbmRlclRh
YmxlQ2VsbCosIGNvbnN0IExheW91dFJlY3QmIHJvd0dyb3VwUmVjdCwgdW5zaWduZWQgcm93KTsK
ICAgICBpbnQgaG9yaXpvbnRhbFJvd0dyb3VwQm9yZGVyV2lkdGgoUmVuZGVyVGFibGVDZWxsKiwg
Y29uc3QgTGF5b3V0UmVjdCYgcm93R3JvdXBSZWN0LCB1bnNpZ25lZCByb3csIHVuc2lnbmVkIGNv
bHVtbik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciwg
Y29uc3QgSW50UmVjdCogPSAwKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFu
Z2VkKFdyYXBwZWRJbWFnZVB0ciwgY29uc3QgSW50UmVjdCogPSAwKSBvdmVycmlkZTsKIAotICAg
IHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RS
ZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0
IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0
VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwg
Y29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBvdmVy
cmlkZTsKIAogICAgIHZvaWQgZW5zdXJlUm93cyh1bnNpZ25lZCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dC5oCmluZGV4IDQxNzMwMDMuLjczYjYyZWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHQuaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIH5SZW5kZXJUZXh0KCk7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5h
bWUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUo
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIFRleHQqIHRleHROb2RlKCkgY29uc3Q7CiAKQEAgLTYx
LDE4ICs2MSwxOCBAQCBwdWJsaWM6CiAgICAgSW5saW5lVGV4dEJveCogY3JlYXRlSW5saW5lVGV4
dEJveCgpIHsgcmV0dXJuIG1fbGluZUJveGVzLmNyZWF0ZUFuZEFwcGVuZExpbmVCb3goKnRoaXMp
OyB9CiAgICAgdm9pZCBkaXJ0eUxpbmVCb3hlcyhib29sIGZ1bGxMYXlvdXQpOwogCi0gICAgdmly
dHVhbCB2b2lkIGFic29sdXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9p
bnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFs
IHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBjb25zdCBMYXlvdXRQb2ludCYg
YWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0IG92ZXJyaWRlIEZJTkFMOwogICAgIFZlY3RvcjxJbnRS
ZWN0PiBhYnNvbHV0ZVJlY3RzRm9yUmFuZ2UodW5zaWduZWQgc3RhcnRPZmZzZXQgPSAwLCB1bnNp
Z25lZCBlbmRPZmZzZXQgPSBVSU5UX01BWCwgYm9vbCB1c2VTZWxlY3Rpb25IZWlnaHQgPSBmYWxz
ZSwgYm9vbCogd2FzRml4ZWQgPSBudWxscHRyKSBjb25zdDsKICNpZiBQTEFURk9STShJT1MpCi0g
ICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTZWxlY3Rpb25SZWN0cyhWZWN0b3I8U2VsZWN0aW9uUmVj
dD4mLCB1bnNpZ25lZCBzdGFydE9mZnNldCA9IDAsIHVuc2lnbmVkIGVuZE9mZnNldCA9IHN0ZDo6
bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGNvbGxlY3RTZWxlY3Rpb25SZWN0cyhWZWN0b3I8U2VsZWN0aW9uUmVjdD4mLCB1bnNpZ25l
ZCBzdGFydE9mZnNldCA9IDAsIHVuc2lnbmVkIGVuZE9mZnNldCA9IHN0ZDo6bnVtZXJpY19saW1p
dHM8dW5zaWduZWQ+OjptYXgoKSkgb3ZlcnJpZGU7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9p
ZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0
IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxG
bG9hdFF1YWQ+JiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0IG92ZXJyaWRlIEZJTkFMOwogICAgIFZl
Y3RvcjxGbG9hdFF1YWQ+IGFic29sdXRlUXVhZHNGb3JSYW5nZSh1bnNpZ25lZCBzdGFydE9mZnNl
dCA9IDAsIHVuc2lnbmVkIGVuZE9mZnNldCA9IFVJTlRfTUFYLCBib29sIHVzZVNlbGVjdGlvbkhl
aWdodCA9IGZhbHNlLCBib29sKiB3YXNGaXhlZCA9IG51bGxwdHIpIGNvbnN0OwogCiAgICAgVmVj
dG9yPEZsb2F0UXVhZD4gYWJzb2x1dGVRdWFkc0NsaXBwZWRUb0VsbGlwc2lzKCkgY29uc3Q7CiAK
LSAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91
dFBvaW50JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24gcG9zaXRpb25G
b3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBpczhCaXQo
KSBjb25zdCB7IHJldHVybiBtX3RleHQuaXM4Qml0KCk7IH0KICAgICBjb25zdCBMQ2hhciogY2hh
cmFjdGVyczgoKSBjb25zdCB7IHJldHVybiBtX3RleHQuaW1wbCgpLT5jaGFyYWN0ZXJzOCgpOyB9
CkBAIC0xMDcsMjkgKzEwNywyOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFRleHQo
Y29uc3QgU3RyaW5nJiwgYm9vbCBmb3JjZSA9IGZhbHNlKTsKICAgICB2b2lkIHNldFRleHRXaXRo
T2Zmc2V0KGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuLCBib29s
IGZvcmNlID0gZmFsc2UpOwogCi0gICAgdmlydHVhbCBib29sIGNhbkJlU2VsZWN0aW9uTGVhZigp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2Vs
ZWN0aW9uU3RhdGUoU2VsZWN0aW9uU3RhdGUgcykgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVh
bCBMYXlvdXRSZWN0IHNlbGVjdGlvblJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQgPSB0
cnVlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIExheW91dFJlY3QgbG9jYWxDYXJldFJlY3QoSW5s
aW5lQm94KiwgaW50IGNhcmV0T2Zmc2V0LCBMYXlvdXRVbml0KiBleHRyYVdpZHRoVG9FbmRPZkxp
bmUgPSAwKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxl
Y3Rpb25TdGF0ZShTZWxlY3Rpb25TdGF0ZSBzKSBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0dWFs
IExheW91dFJlY3Qgc2VsZWN0aW9uUmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBjbGlwVG9WaXNpYmxlQ29udGVudCA9IHRy
dWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBsb2NhbENhcmV0UmVjdChJbmxp
bmVCb3gqLCBpbnQgY2FyZXRPZmZzZXQsIExheW91dFVuaXQqIGV4dHJhV2lkdGhUb0VuZE9mTGlu
ZSA9IDApIG92ZXJyaWRlOwogCiAgICAgTGF5b3V0VW5pdCBtYXJnaW5MZWZ0KCkgY29uc3QgeyBy
ZXR1cm4gbWluaW11bVZhbHVlRm9yTGVuZ3RoKHN0eWxlKCkubWFyZ2luTGVmdCgpLCAwKTsgfQog
ICAgIExheW91dFVuaXQgbWFyZ2luUmlnaHQoKSBjb25zdCB7IHJldHVybiBtaW5pbXVtVmFsdWVG
b3JMZW5ndGgoc3R5bGUoKS5tYXJnaW5SaWdodCgpLCAwKTsgfQogCi0gICAgdmlydHVhbCBMYXlv
dXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZp
cnR1YWwgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdCBvdmVycmlkZSBGSU5B
TDsKIAogICAgIElubGluZVRleHRCb3gqIGZpcnN0VGV4dEJveCgpIGNvbnN0IHsgcmV0dXJuIG1f
bGluZUJveGVzLmZpcnN0KCk7IH0KICAgICBJbmxpbmVUZXh0Qm94KiBsYXN0VGV4dEJveCgpIGNv
bnN0IHsgcmV0dXJuIG1fbGluZUJveGVzLmxhc3QoKTsgfQogCi0gICAgdmlydHVhbCBpbnQgY2Fy
ZXRNaW5PZmZzZXQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGludCBjYXJldE1heE9m
ZnNldCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgaW50IGNhcmV0TWluT2Zmc2V0KCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBpbnQgY2FyZXRNYXhPZmZzZXQoKSBjb25zdCBv
dmVycmlkZTsKICAgICB1bnNpZ25lZCBjb3VudFJlbmRlcmVkQ2hhcmFjdGVyT2Zmc2V0c1VudGls
KHVuc2lnbmVkKSBjb25zdDsKICAgICBib29sIGNvbnRhaW5zUmVuZGVyZWRDaGFyYWN0ZXJPZmZz
ZXQodW5zaWduZWQpIGNvbnN0OwogICAgIGJvb2wgY29udGFpbnNDYXJldE9mZnNldCh1bnNpZ25l
ZCkgY29uc3Q7CiAgICAgYm9vbCBoYXNSZW5kZXJlZFRleHQoKSBjb25zdDsKIAotICAgIHZpcnR1
YWwgaW50IHByZXZpb3VzT2Zmc2V0KGludCBjdXJyZW50KSBjb25zdCBPVkVSUklERSBGSU5BTDsK
LSAgICB2aXJ0dWFsIGludCBwcmV2aW91c09mZnNldEZvckJhY2t3YXJkRGVsZXRpb24oaW50IGN1
cnJlbnQpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgaW50IG5leHRPZmZzZXQo
aW50IGN1cnJlbnQpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgaW50IHByZXZp
b3VzT2Zmc2V0KGludCBjdXJyZW50KSBjb25zdCBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0dWFs
IGludCBwcmV2aW91c09mZnNldEZvckJhY2t3YXJkRGVsZXRpb24oaW50IGN1cnJlbnQpIGNvbnN0
IG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgaW50IG5leHRPZmZzZXQoaW50IGN1cnJlbnQp
IGNvbnN0IG92ZXJyaWRlIEZJTkFMOwogCiAgICAgYm9vbCBjb250YWluc1JldmVyc2VkVGV4dCgp
IGNvbnN0IHsgcmV0dXJuIG1fY29udGFpbnNSZXZlcnNlZFRleHQ7IH0KIApAQCAtMTU5LDEzICsx
NTksMTMgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVQ
cmVmZXJyZWRMb2dpY2FsV2lkdGhzKGZsb2F0IGxlYWRXaWR0aCk7Ci0gICAgdmlydHVhbCB2b2lk
IHdpbGxCZURlc3Ryb3llZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0
cm95ZWQoKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0SW50ZXJuYWwoY29u
c3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBVQ2hhciBwcmV2aW91c0NoYXJhY3RlcigpIGNvbnN0
OwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCBP
VkVSUklERSBGSU5BTCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZl
Q2hpbGRyZW4oKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAg
dm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyhmbG9hdCBsZWFkV2lkdGgsIEhhc2hT
ZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiYgZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyYp
OwogCkBAIC0xNzQsOSArMTc0LDkgQEAgcHJpdmF0ZToKICAgICAvLyBNYWtlIGxlbmd0aCgpIHBy
aXZhdGUgc28gdGhhdCBjYWxsZXJzIHRoYXQgaGF2ZSBhIFJlbmRlclRleHQqCiAgICAgLy8gd2ls
bCB1c2UgdGhlIG1vcmUgZWZmaWNpZW50IHRleHRMZW5ndGgoKSBpbnN0ZWFkLCB3aGlsZQogICAg
IC8vIGNhbGxlcnMgd2l0aCBhIFJlbmRlck9iamVjdCogY2FuIGNvbnRpbnVlIHRvIHVzZSBsZW5n
dGgoKS4KLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IE9WRVJSSURFIEZJTkFM
IHsgcmV0dXJuIHRleHRMZW5ndGgoKTsgfQorICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkg
Y29uc3Qgb3ZlcnJpZGUgRklOQUwgeyByZXR1cm4gdGV4dExlbmd0aCgpOyB9CiAKLSAgICB2aXJ0
dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0
JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiwgY29uc3QgTGF5b3V0UG9pbnQmLCBIaXRUZXN0QWN0
aW9uKSBPVkVSUklERSBGSU5BTCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBI
aXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiwgY29uc3QgTGF5b3V0UG9pbnQm
LCBIaXRUZXN0QWN0aW9uKSBvdmVycmlkZSBGSU5BTCB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyBy
ZXR1cm4gZmFsc2U7IH0KIAogICAgIGJvb2wgY29udGFpbnNPbmx5V2hpdGVzcGFjZSh1bnNpZ25l
ZCBmcm9tLCB1bnNpZ25lZCBsZW4pIGNvbnN0OwogICAgIGZsb2F0IHdpZHRoRnJvbUNhY2hlKGNv
bnN0IEZvbnQmLCBpbnQgc3RhcnQsIGludCBsZW4sIGZsb2F0IHhQb3MsIEhhc2hTZXQ8Y29uc3Qg
U2ltcGxlRm9udERhdGEqPiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyosIGNvbnN0IFJl
bmRlclN0eWxlJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dENvbnRyb2wuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
Q29udHJvbC5oCmluZGV4IDkzNjNjMDEuLjVjZTJhOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGNhblNjcm9sbCgpIGNvbnN0OwogCiAgICAgLy8gUmV0dXJucyB0aGUgbGluZSBoZWln
aHQgb2YgdGhlIGlubmVyIHJlbmRlcmVyLgotICAgIHZpcnR1YWwgaW50IGlubmVyTGluZUhlaWdo
dCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgaW50IGlubmVyTGluZUhlaWdodCgpIGNv
bnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKIHByb3RlY3RlZDoKQEAgLTUzLDcgKzUzLDcgQEAgcHJv
dGVjdGVkOgogICAgIGludCBzY3JvbGxiYXJUaGlja25lc3MoKSBjb25zdDsKICAgICB2b2lkIGFk
anVzdElubmVyVGV4dFN0eWxlKGNvbnN0IFJlbmRlclN0eWxlKiBzdGFydFN0eWxlLCBSZW5kZXJT
dHlsZSogdGV4dEJsb2NrU3R5bGUpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIHN0eWxlRGlk
Q2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBj
b25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBoaXRJbm5l
clRleHRFbGVtZW50KEhpdFRlc3RSZXN1bHQmLCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnRJbkNv
bnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KTsKIApAQCAtNjcs
MjcgKzY3LDI3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIExheW91dFVuaXQgcHJlZmVycmVk
Q29udGVudExvZ2ljYWxXaWR0aChmbG9hdCBjaGFyV2lkdGgpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIExheW91dFVuaXQgY29tcHV0ZUNvbnRyb2xMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQgbGlu
ZUhlaWdodCwgTGF5b3V0VW5pdCBub25Db250ZW50SGVpZ2h0KSBjb25zdCA9IDA7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBMYXlvdXRV
bml0IGxvZ2ljYWxUb3AsIExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBsYXlvdXRTcGVjaWFsRXhjbHVkZWRDaGls
ZChib29sIHJlbGF5b3V0Q2hpbGRyZW4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVGcm9tRWxlbWVudCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlTG9naWNh
bEhlaWdodChMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIExheW91dFVuaXQgbG9naWNhbFRvcCwg
TG9naWNhbEV4dGVudENvbXB1dGVkVmFsdWVzJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBSZW5kZXJPYmplY3QqIGxheW91dFNwZWNpYWxFeGNsdWRlZENoaWxkKGJvb2wgcmVsYXlvdXRD
aGlsZHJlbikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBlbGVtZW50KCkgY29uc3Qg
V1RGX0RFTEVURURfRlVOQ1RJT047CiAKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5h
bWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAiUmVuZGVyVGV4dENvbnRyb2wiOyB9Ci0gICAg
dmlydHVhbCBib29sIGlzVGV4dENvbnRyb2woKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVy
biB0cnVlOyB9Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhz
KExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRo
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2lj
YWxXaWR0aHMoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlTGVmdG92ZXJBbm9u
eW1vdXNCbG9jayhSZW5kZXJCbG9jayopIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgYm9vbCBh
dm9pZHNGbG9hdHMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVh
bCBib29sIGNhbkhhdmVHZW5lcmF0ZWRDaGlsZHJlbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGNhbkJlUmVwbGFjZWRXaXRoSW5saW5lUnVuSW4o
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVyVGV4dENvbnRyb2wiOyB9CisgICAgdmlydHVh
bCBib29sIGlzVGV4dENvbnRyb2woKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiB0cnVl
OyB9CisgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91
dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0
aHMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlTGVmdG92ZXJBbm9ueW1vdXNC
bG9jayhSZW5kZXJCbG9jayopIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgYm9vbCBhdm9pZHNG
bG9hdHMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29s
IGNhbkhhdmVHZW5lcmF0ZWRDaGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIGNhbkJlUmVwbGFjZWRXaXRoSW5saW5lUnVuSW4oKSBjb25z
dCBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkRm9jdXNSaW5nUmVjdHMoVmVj
dG9yPEludFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxPZmZzZXQsIGNvbnN0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHBhaW50Q29udGFpbmVyID0gMCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIGFkZEZvY3VzUmluZ1JlY3RzKFZlY3RvcjxJbnRSZWN0PiYsIGNvbnN0
IExheW91dFBvaW50JiBhZGRpdGlvbmFsT2Zmc2V0LCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiBwYWludENvbnRhaW5lciA9IDApIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGNh
bkJlUHJvZ3JhbWF0aWNhbGx5U2Nyb2xsZWQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVl
OyB9CisgICAgdmlydHVhbCBib29sIGNhbkJlUHJvZ3JhbWF0aWNhbGx5U2Nyb2xsZWQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNG
b3JjZWRTdHlsZVJlY2FsY1Byb3BhZ2F0aW9uKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0ZvcmNlZFN0eWxlUmVjYWxjUHJvcGFnYXRp
b24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiB9OwogCiBSRU5ERVJfT0JKRUNU
X1RZUEVfQ0FTVFMoUmVuZGVyVGV4dENvbnRyb2wsIGlzVGV4dENvbnRyb2woKSkKQEAgLTEwMywx
MiArMTAzLDEyIEBAIHB1YmxpYzoKICAgICB7IH0KICAgICB2aXJ0dWFsIH5SZW5kZXJUZXh0Q29u
dHJvbElubmVyQ29udGFpbmVyKCkgeyB9CiAKLSAgICB2aXJ0dWFsIGludCBiYXNlbGluZVBvc2l0
aW9uKEZvbnRCYXNlbGluZSBiYXNlbGluZSwgYm9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25N
b2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9uTW9kZSBwb3NpdGlvbikgY29uc3QgT1ZFUlJJREUK
KyAgICB2aXJ0dWFsIGludCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSBiYXNlbGluZSwg
Ym9vbCBmaXJzdExpbmUsIExpbmVEaXJlY3Rpb25Nb2RlIGRpcmVjdGlvbiwgTGluZVBvc2l0aW9u
TW9kZSBwb3NpdGlvbikgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiBSZW5k
ZXJCbG9jazo6YmFzZWxpbmVQb3NpdGlvbihiYXNlbGluZSwgZmlyc3RMaW5lLCBkaXJlY3Rpb24s
IHBvc2l0aW9uKTsKICAgICB9Ci0gICAgdmlydHVhbCBpbnQgZmlyc3RMaW5lQmFzZWxpbmUoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiBSZW5kZXJCbG9jazo6Zmlyc3RMaW5lQmFzZWxpbmUoKTsg
fQotICAgIHZpcnR1YWwgaW50IGlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUg
ZGlyZWN0aW9uKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBSZW5kZXJCbG9jazo6aW5saW5lQmxv
Y2tCYXNlbGluZShkaXJlY3Rpb24pOyB9CisgICAgdmlydHVhbCBpbnQgZmlyc3RMaW5lQmFzZWxp
bmUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBSZW5kZXJCbG9jazo6Zmlyc3RMaW5lQmFzZWxp
bmUoKTsgfQorICAgIHZpcnR1YWwgaW50IGlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlv
bk1vZGUgZGlyZWN0aW9uKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBSZW5kZXJCbG9jazo6aW5s
aW5lQmxvY2tCYXNlbGluZShkaXJlY3Rpb24pOyB9CiAKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmgKaW5kZXggY2Ix
ZmExMC4uZjAyM2Y2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sTXVsdGlMaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHRDb250cm9sTXVsdGlMaW5lLmgKQEAgLTQwLDExICs0MCwxMSBAQCBwcml2YXRlOgog
CiAgICAgdmlydHVhbCBib29sIGlzVGV4dEFyZWEoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAK
LSAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRU
ZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBj
b25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9WRVJS
SURFOworICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYs
IEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWlu
ZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikg
b3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGZsb2F0IGdldEF2Z0NoYXJXaWR0aChBdG9taWNTdHJp
bmcgZmFtaWx5KTsKICAgICB2aXJ0dWFsIExheW91dFVuaXQgcHJlZmVycmVkQ29udGVudExvZ2lj
YWxXaWR0aChmbG9hdCBjaGFyV2lkdGgpIGNvbnN0OwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBj
b21wdXRlQ29udHJvbExvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBsaW5lSGVpZ2h0LCBMYXlvdXRV
bml0IG5vbkNvbnRlbnRIZWlnaHQpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgTGF5b3V0
VW5pdCBjb21wdXRlQ29udHJvbExvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBsaW5lSGVpZ2h0LCBM
YXlvdXRVbml0IG5vbkNvbnRlbnRIZWlnaHQpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
aW50IGJhc2VsaW5lUG9zaXRpb24oRm9udEJhc2VsaW5lLCBib29sIGZpcnN0TGluZSwgTGluZURp
cmVjdGlvbk1vZGUsIExpbmVQb3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUp
IGNvbnN0OwogCiAgICAgdmlydHVhbCBQYXNzUmVmPFJlbmRlclN0eWxlPiBjcmVhdGVJbm5lclRl
eHRTdHlsZShjb25zdCBSZW5kZXJTdHlsZSogc3RhcnRTdHlsZSkgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgK
aW5kZXggMzgxY2JlNS4uZGRmYTc2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApAQCAtMzUsNyArMzUsNyBAQCBw
dWJsaWM6CiAgICAgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKEhUTUxJbnB1dEVsZW1lbnQm
LCBQYXNzUmVmPFJlbmRlclN0eWxlPik7CiAgICAgdmlydHVhbCB+UmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lKCk7CiAgICAgLy8gRklYTUU6IE1vdmUgY3JlYXRlKlN0eWxlKCkgdG8gdGhlaXIg
Y2xhc3Nlcy4KLSAgICB2aXJ0dWFsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IGNyZWF0ZUlubmVyVGV4
dFN0eWxlKGNvbnN0IFJlbmRlclN0eWxlKiBzdGFydFN0eWxlKSBjb25zdCBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IGNyZWF0ZUlubmVyVGV4dFN0eWxlKGNvbnN0
IFJlbmRlclN0eWxlKiBzdGFydFN0eWxlKSBjb25zdCBvdmVycmlkZTsKICAgICBQYXNzUmVmPFJl
bmRlclN0eWxlPiBjcmVhdGVJbm5lckJsb2NrU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUqIHN0YXJ0
U3R5bGUpIGNvbnN0OwogCiAgICAgdm9pZCBjYXBzTG9ja1N0YXRlTWF5SGF2ZUNoYW5nZWQoKTsK
QEAgLTUwLDMzICs1MCwzMyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHZvaWQgdGV4dEZv
cm1Db250cm9sRWxlbWVudCgpIGNvbnN0IFdURl9ERUxFVEVEX0ZVTkNUSU9OOwogCi0gICAgdmly
dHVhbCBib29sIGhhc0NvbnRyb2xDbGlwKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBM
YXlvdXRSZWN0IGNvbnRyb2xDbGlwUmVjdChjb25zdCBMYXlvdXRQb2ludCYpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBpc1RleHRGaWVsZCgpIGNvbnN0IE9WRVJSSURFIEZJTkFM
IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFzQ29udHJvbENsaXAoKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgY29udHJvbENsaXBSZWN0KGNvbnN0
IExheW91dFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzVGV4dEZp
ZWxkKCkgY29uc3Qgb3ZlcnJpZGUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVh
bCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYWlu
dChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChj
b25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRp
b24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9m
ZnNldCwgSGl0VGVzdEFjdGlvbikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIG5vZGVBdFBv
aW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RM
b2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxh
dGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBh
dXRvc2Nyb2xsKGNvbnN0IEludFBvaW50JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGF1
dG9zY3JvbGwoY29uc3QgSW50UG9pbnQmKSBvdmVycmlkZTsKIAogICAgIC8vIFN1YmNsYXNzZWQg
dG8gZm9yd2FyZCB0byBvdXIgaW5uZXIgZGl2LgotICAgIHZpcnR1YWwgaW50IHNjcm9sbExlZnQo
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGludCBzY3JvbGxUb3AoKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGludCBzY3JvbGxXaWR0aCgpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgaW50IHNjcm9sbEhlaWdodCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBzZXRTY3JvbGxMZWZ0KGludCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNj
cm9sbFRvcChpbnQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzY3JvbGwoU2Nyb2xsRGly
ZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEsIEVsZW1lbnQq
KiBzdG9wRWxlbWVudCA9IDApIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgYm9vbCBsb2dp
Y2FsU2Nyb2xsKFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9h
dCBtdWx0aXBsaWVyID0gMSwgRWxlbWVudCoqIHN0b3BFbGVtZW50ID0gMCkgT1ZFUlJJREUgRklO
QUw7CisgICAgdmlydHVhbCBpbnQgc2Nyb2xsTGVmdCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgaW50IHNjcm9sbFRvcCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgaW50IHNj
cm9sbFdpZHRoKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBpbnQgc2Nyb2xsSGVpZ2h0
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbExlZnQoaW50KSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsVG9wKGludCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5
LCBmbG9hdCBtdWx0aXBsaWVyID0gMSwgRWxlbWVudCoqIHN0b3BFbGVtZW50ID0gMCkgb3ZlcnJp
ZGUgRklOQUw7CisgICAgdmlydHVhbCBib29sIGxvZ2ljYWxTY3JvbGwoU2Nyb2xsTG9naWNhbERp
cmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IG11bHRpcGxpZXIgPSAxLCBFbGVtZW50
Kiogc3RvcEVsZW1lbnQgPSAwKSBvdmVycmlkZSBGSU5BTDsKIAogICAgIGludCB0ZXh0QmxvY2tX
aWR0aCgpIGNvbnN0OwotICAgIHZpcnR1YWwgZmxvYXQgZ2V0QXZnQ2hhcldpZHRoKEF0b21pY1N0
cmluZyBmYW1pbHkpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwcmVmZXJyZWRD
b250ZW50TG9naWNhbFdpZHRoKGZsb2F0IGNoYXJXaWR0aCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBMYXlvdXRVbml0IGNvbXB1dGVDb250cm9sTG9naWNhbEhlaWdodChMYXlvdXRVbml0
IGxpbmVIZWlnaHQsIExheW91dFVuaXQgbm9uQ29udGVudEhlaWdodCkgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBmbG9hdCBnZXRBdmdDaGFyV2lkdGgoQXRvbWljU3RyaW5nIGZhbWlseSkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IHByZWZlcnJlZENvbnRlbnRMb2dpY2Fs
V2lkdGgoZmxvYXQgY2hhcldpZHRoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91
dFVuaXQgY29tcHV0ZUNvbnRyb2xMb2dpY2FsSGVpZ2h0KExheW91dFVuaXQgbGluZUhlaWdodCwg
TGF5b3V0VW5pdCBub25Db250ZW50SGVpZ2h0KSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICB2
aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJT
dHlsZSogb2xkU3R5bGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5n
ZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgb3ZlcnJpZGU7
CiAKICAgICBib29sIHRleHRTaG91bGRCZVRydW5jYXRlZCgpIGNvbnN0OwogCkBAIC0xMDgsOCAr
MTA4LDggQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgaGFz
TGluZUlmRW1wdHkoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVh
bCBib29sIGlzVGV4dENvbnRyb2xJbm5lckJsb2NrKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
dHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBoYXNMaW5lSWZFbXB0eSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0Q29udHJvbElubmVyQmxv
Y2soKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiB9OwogCiBSRU5ERVJfT0JKRUNU
X1RZUEVfQ0FTVFMoUmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrLCBpc1RleHRDb250cm9sSW5u
ZXJCbG9jaygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRGcmFnbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVu
dC5oCmluZGV4IDZmN2Q5NjguLmYyOTRmMDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRGcmFnbWVudC5oCkBAIC0zOSw5ICszOSw5IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgflJlbmRlclRleHRGcmFnbWVudCgpOwogCi0gICAgdmlydHVhbCBib29sIGlzVGV4
dEZyYWdtZW50KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBpc1RleHRGcmFnbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAot
ICAgIHZpcnR1YWwgYm9vbCBjYW5CZVNlbGVjdGlvbkxlYWYoKSBjb25zdCBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAg
ICB1bnNpZ25lZCBzdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnQ7IH0KICAgICB1bnNpZ25l
ZCBlbmQoKSBjb25zdCB7IHJldHVybiBtX2VuZDsgfQpAQCAtNTEsMTYgKzUxLDE2IEBAIHB1Ymxp
YzoKIAogICAgIFN0cmluZ0ltcGwqIGNvbnRlbnRTdHJpbmcoKSBjb25zdCB7IHJldHVybiBtX2Nv
bnRlbnRTdHJpbmcuaW1wbCgpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dChjb25zdCBT
dHJpbmcmLCBib29sIGZvcmNlID0gZmFsc2UpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRUZXh0KGNvbnN0IFN0cmluZyYsIGJvb2wgZm9yY2UgPSBmYWxzZSkgb3ZlcnJpZGU7CiAKICAg
ICBjb25zdCBTdHJpbmcmIGFsdFRleHQoKSBjb25zdCB7IHJldHVybiBtX2FsdFRleHQ7IH0KICAg
ICB2b2lkIHNldEFsdFRleHQoY29uc3QgU3RyaW5nJiBhbHRUZXh0KSB7IG1fYWx0VGV4dCA9IGFs
dFRleHQ7IH0KICAgICAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdl
KFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUq
IG9sZFN0eWxlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFVDaGFyIHByZXZpb3VzQ2hhcmFjdGVyKCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBVQ2hhciBwcmV2aW91c0NoYXJhY3RlcigpIGNvbnN0IG92
ZXJyaWRlOwogICAgIFJlbmRlckJsb2NrKiBibG9ja0ZvckFjY29tcGFueWluZ0ZpcnN0TGV0dGVy
KCk7CiAKICAgICB1bnNpZ25lZCBtX3N0YXJ0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRUcmFja0N1ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRUcmFja0N1ZS5oCmluZGV4IDc4MzAwNmYuLjJmYWMzYTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0VHJhY2tDdWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dFRyYWNrQ3VlLmgKQEAgLTQyLDcgKzQyLDcg
QEAgcHVibGljOgogICAgIFJlbmRlclRleHRUcmFja0N1ZShUZXh0VHJhY2tDdWVCb3gmLCBQYXNz
UmVmPFJlbmRlclN0eWxlPik7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIGxheW91dCgp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKIAogICAgIGJv
b2wgaXNPdXRzaWRlKCkgY29uc3Q7CiAgICAgYm9vbCByZWN0SXNXaXRoaW5Db250YWluZXIoY29u
c3QgSW50UmVjdCYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJ
T1MuaAppbmRleCA2MmU1ZTQwLi4xMGIyNzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MuaApAQCAtMzksNzUgKzM5LDc1IEBAIGNsYXNzIFJlbmRlclRoZW1lSU9T
IDogcHVibGljIFJlbmRlclRoZW1lIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxS
ZW5kZXJUaGVtZT4gY3JlYXRlKCk7CiAKLSAgICB2aXJ0dWFsIGludCBwb3B1cEludGVybmFsUGFk
ZGluZ1JpZ2h0KFJlbmRlclN0eWxlKikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBpbnQg
cG9wdXBJbnRlcm5hbFBhZGRpbmdSaWdodChSZW5kZXJTdHlsZSopIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgc3RhdGljIHZvaWQgYWRqdXN0Um91bmRCb3JkZXJSYWRpdXMoUmVuZGVyU3R5bGUmLCBS
ZW5kZXJCb3gqKTsKIAotICAgIHZpcnR1YWwgdm9pZCBzeXN0ZW1Gb250KENTU1ZhbHVlSUQsIEZv
bnREZXNjcmlwdGlvbiYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzeXN0ZW1G
b250KENTU1ZhbHVlSUQsIEZvbnREZXNjcmlwdGlvbiYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
c3RhdGljIENGU3RyaW5nUmVmIGNvbnRlbnRTaXplQ2F0ZWdvcnkoKTsKIAogcHJvdGVjdGVkOgot
ICAgIHZpcnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24oY29uc3QgUmVuZGVyT2JqZWN0KikgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlvbihjb25zdCBSZW5k
ZXJPYmplY3QqKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRyb2xT
dHlsZWQoY29uc3QgUmVuZGVyU3R5bGUqLCBjb25zdCBCb3JkZXJEYXRhJiwgY29uc3QgRmlsbExh
eWVyJiBiYWNrZ3JvdW5kLCBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9yKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNDb250cm9sU3R5bGVkKGNvbnN0IFJlbmRlclN0eWxl
KiwgY29uc3QgQm9yZGVyRGF0YSYsIGNvbnN0IEZpbGxMYXllciYgYmFja2dyb3VuZCwgY29uc3Qg
Q29sb3ImIGJhY2tncm91bmRDb2xvcikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBNZXRob2Rz
IGZvciBlYWNoIGFwcGVhcmFuY2UgdmFsdWUuCi0gICAgdmlydHVhbCB2b2lkIGFkanVzdENoZWNr
Ym94U3R5bGUoU3R5bGVSZXNvbHZlciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBwYWludENoZWNrYm94RGVjb3JhdGlvbnMoUmVuZGVy
T2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBhZGp1c3RDaGVja2JveFN0eWxlKFN0eWxlUmVzb2x2ZXIqLCBSZW5kZXJT
dHlsZSosIEVsZW1lbnQqKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRD
aGVja2JveERlY29yYXRpb25zKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0
IEludFJlY3QmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RSYWRpb1N0eWxl
KFN0eWxlUmVzb2x2ZXIqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgcGFpbnRSYWRpb0RlY29yYXRpb25zKFJlbmRlck9iamVjdCosIGNv
bnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgYWRqdXN0UmFkaW9TdHlsZShTdHlsZVJlc29sdmVyKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50
KikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHBhaW50UmFkaW9EZWNvcmF0aW9u
cyhSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJp
ZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0QnV0dG9uU3R5bGUoU3R5bGVSZXNvbHZlcios
IFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9v
bCBwYWludEJ1dHRvbkRlY29yYXRpb25zKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYs
IGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcGFpbnRQdXNoQnV0
dG9uRGVjb3JhdGlvbnMoUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50
UmVjdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRCdXR0b25TaXplKFJlbmRlclN0
eWxlKikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGFkanVzdEJ1dHRvblN0eWxl
KFN0eWxlUmVzb2x2ZXIqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRCdXR0b25EZWNvcmF0aW9ucyhSZW5kZXJPYmplY3QqLCBj
b25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBi
b29sIHBhaW50UHVzaEJ1dHRvbkRlY29yYXRpb25zKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50
SW5mbyYsIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QnV0
dG9uU2l6ZShSZW5kZXJTdHlsZSopIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29s
IHBhaW50RmlsZVVwbG9hZEljb25EZWNvcmF0aW9ucyhSZW5kZXJPYmplY3QqIGlucHV0UmVuZGVy
ZXIsIFJlbmRlck9iamVjdCogYnV0dG9uUmVuZGVyZXIsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0
IEludFJlY3QmLCBJY29uKiwgRmlsZVVwbG9hZERlY29yYXRpb25zKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGJvb2wgcGFpbnRGaWxlVXBsb2FkSWNvbkRlY29yYXRpb25zKFJlbmRlck9iamVjdCog
aW5wdXRSZW5kZXJlciwgUmVuZGVyT2JqZWN0KiBidXR0b25SZW5kZXJlciwgY29uc3QgUGFpbnRJ
bmZvJiwgY29uc3QgSW50UmVjdCYsIEljb24qLCBGaWxlVXBsb2FkRGVjb3JhdGlvbnMpIG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCBib29sIHBhaW50VGV4dEZpZWxkRGVjb3JhdGlvbnMoUmVuZGVy
T2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBwYWludFRleHRBcmVhRGVjb3JhdGlvbnMoUmVuZGVyT2JqZWN0KiwgY29u
c3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9v
bCBwYWludFRleHRGaWVsZERlY29yYXRpb25zKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5m
byYsIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRUZXh0
QXJlYURlY29yYXRpb25zKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IElu
dFJlY3QmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RNZW51TGlzdEJ1dHRv
blN0eWxlKFN0eWxlUmVzb2x2ZXIqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZW51TGlzdEJ1dHRvbkRlY29yYXRpb25zKFJl
bmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0TWVudUxpc3RCdXR0b25TdHlsZShTdHlsZVJlc29sdmVy
KiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBi
b29sIHBhaW50TWVudUxpc3RCdXR0b25EZWNvcmF0aW9ucyhSZW5kZXJPYmplY3QqLCBjb25zdCBQ
YWludEluZm8mLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
YWRqdXN0U2xpZGVyVHJhY2tTdHlsZShTdHlsZVJlc29sdmVyKiwgUmVuZGVyU3R5bGUqLCBFbGVt
ZW50KikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHBhaW50U2xpZGVyVHJhY2so
UmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUcmFja1N0eWxlKFN0eWxlUmVzb2x2ZXIq
LCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJv
b2wgcGFpbnRTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2xpZGVyVGh1
bWJTaXplKFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgYm9vbCBwYWludFNsaWRlclRodW1iRGVjb3JhdGlvbnMoUmVuZGVyT2JqZWN0KiwgY29uc3Qg
UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBh
ZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBib29sIHBhaW50U2xpZGVyVGh1bWJEZWNvcmF0aW9ucyhSZW5kZXJP
YmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAKICNp
ZiBFTkFCTEUoUFJPR1JFU1NfRUxFTUVOVCkKICAgICAvLyBSZXR1cm5zIHRoZSByZXBlYXQgaW50
ZXJ2YWwgb2YgdGhlIGFuaW1hdGlvbiBmb3IgdGhlIHByb2dyZXNzIGJhci4KLSAgICB2aXJ0dWFs
IGRvdWJsZSBhbmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFyKFJlbmRlclByb2dy
ZXNzKikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBkb3VibGUgYW5pbWF0aW9uUmVwZWF0
SW50ZXJ2YWxGb3JQcm9ncmVzc0JhcihSZW5kZXJQcm9ncmVzcyopIGNvbnN0IG92ZXJyaWRlOwog
ICAgIC8vIFJldHVybnMgdGhlIGR1cmF0aW9uIG9mIHRoZSBhbmltYXRpb24gZm9yIHRoZSBwcm9n
cmVzcyBiYXIuCi0gICAgdmlydHVhbCBkb3VibGUgYW5pbWF0aW9uRHVyYXRpb25Gb3JQcm9ncmVz
c0JhcihSZW5kZXJQcm9ncmVzcyopIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgZG91Ymxl
IGFuaW1hdGlvbkR1cmF0aW9uRm9yUHJvZ3Jlc3NCYXIoUmVuZGVyUHJvZ3Jlc3MqKSBjb25zdCBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBwYWludFByb2dyZXNzQmFyKFJlbmRlck9iamVj
dCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIGJvb2wgcGFpbnRQcm9ncmVzc0JhcihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8m
LCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShEQVRBTElT
VF9FTEVNRU5UKQotICAgIHZpcnR1YWwgSW50U2l6ZSBzbGlkZXJUaWNrU2l6ZSgpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgaW50IHNsaWRlclRpY2tPZmZzZXRGcm9tVHJhY2tDZW50ZXIo
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEludFNpemUgc2xpZGVyVGlja1NpemUoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGludCBzbGlkZXJUaWNrT2Zmc2V0RnJvbVRyYWNr
Q2VudGVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBhZGp1
c3RTZWFyY2hGaWVsZFN0eWxlKFN0eWxlUmVzb2x2ZXIqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQq
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcGFpbnRTZWFyY2hGaWVsZERlY29y
YXRpb25zKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2VhcmNoRmllbGRTdHlsZShTdHlsZVJl
c29sdmVyKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIHBhaW50U2VhcmNoRmllbGREZWNvcmF0aW9ucyhSZW5kZXJPYmplY3QqLCBjb25z
dCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIENv
bG9yIHBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3Vu
ZENvbG9yKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2
ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
Q29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0IG92
ZXJyaWRlOwogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLSAgICB2aXJ0dWFsIENvbG9yIHBs
YXRmb3JtVGFwSGlnaGxpZ2h0Q29sb3IoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAweDREMUEx
QTFBOyB9CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybVRhcEhpZ2hsaWdodENvbG9yKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gMHg0RDFBMUExQTsgfQogI2VuZGlmCiAKLSAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkU2hvd1BsYWNlaG9sZGVyV2hlbkZvY3VzZWQoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSGF2ZVNwaW5CdXR0b24oSFRNTElucHV0RWxlbWVudCop
IGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTaG93UGxhY2Vob2xkZXJX
aGVuRm9jdXNlZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRIYXZl
U3BpbkJ1dHRvbihIVE1MSW5wdXRFbGVtZW50KikgY29uc3Qgb3ZlcnJpZGU7CiAKICNpZiBFTkFC
TEUoVklERU8pCi0gICAgdmlydHVhbCBTdHJpbmcgbWVkaWFDb250cm9sc1N0eWxlU2hlZXQoKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYUNvbnRyb2xzU2NyaXB0KCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBTdHJpbmcgbWVkaWFDb250cm9sc1N0eWxlU2hlZXQoKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYUNvbnRyb2xzU2NyaXB0KCkgb3ZlcnJpZGU7CiAj
ZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
LmgKaW5kZXggZTI1MTljMy4uMzgxZTRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lTWFjLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIC8vIEEgZ2VuZXJh
bCBtZXRob2QgYXNraW5nIGlmIGFueSBjb250cm9sIHRpbnRpbmcgaXMgc3VwcG9ydGVkIGF0IGFs
bC4KICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNDb250cm9sVGludHMoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0UmVwYWludFJlY3QoY29uc3QgUmVu
ZGVyT2JqZWN0KiwgSW50UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RS
ZXBhaW50UmVjdChjb25zdCBSZW5kZXJPYmplY3QqLCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgaXNDb250cm9sU3R5bGVkKGNvbnN0IFJlbmRlclN0eWxlKiwgY29uc3Qg
Qm9yZGVyRGF0YSYsIGNvbnN0IEZpbGxMYXllciYsIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5kQ29s
b3IpIGNvbnN0OwogCkBAIC02OSw4ICs2OSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
YWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0OwogCiAj
aWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCi0gICAgdmlydHVhbCBJbnRTaXplIHNsaWRlclRp
Y2tTaXplKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBpbnQgc2xpZGVyVGlja09mZnNl
dEZyb21UcmFja0NlbnRlcigpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgSW50U2l6ZSBz
bGlkZXJUaWNrU2l6ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgaW50IHNsaWRlclRp
Y2tPZmZzZXRGcm9tVHJhY2tDZW50ZXIoKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgogCiAgICAg
dmlydHVhbCBpbnQgcG9wdXBJbnRlcm5hbFBhZGRpbmdMZWZ0KFJlbmRlclN0eWxlKikgY29uc3Q7
CkBAIC03OCwxMiArNzgsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgaW50IHBvcHVwSW50ZXJu
YWxQYWRkaW5nVG9wKFJlbmRlclN0eWxlKikgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgcG9wdXBJ
bnRlcm5hbFBhZGRpbmdCb3R0b20oUmVuZGVyU3R5bGUqKSBjb25zdDsKIAotICAgIHZpcnR1YWwg
Ym9vbCBwYWludENhcHNMb2NrSW5kaWNhdG9yKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5m
byYsIGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRDYXBz
TG9ja0luZGljYXRvcihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRS
ZWN0Jikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcG9wc01lbnVCeUFycm93S2V5cygp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcG9wc01l
bnVCeUFycm93S2V5cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogI2lmIEVO
QUJMRShNRVRFUl9FTEVNRU5UKQotICAgIHZpcnR1YWwgSW50U2l6ZSBtZXRlclNpemVGb3JCb3Vu
ZHMoY29uc3QgUmVuZGVyTWV0ZXIqLCBjb25zdCBJbnRSZWN0JikgY29uc3QgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBJbnRTaXplIG1ldGVyU2l6ZUZvckJvdW5kcyhjb25zdCBSZW5kZXJNZXRlcios
IGNvbnN0IEludFJlY3QmKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRN
ZXRlcihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAg
ICAgdmlydHVhbCBib29sIHN1cHBvcnRzTWV0ZXIoQ29udHJvbFBhcnQpIGNvbnN0OwogI2VuZGlm
CkBAIC05Myw3ICs5Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGRvdWJsZSBhbmltYXRpb25S
ZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFyKFJlbmRlclByb2dyZXNzKikgY29uc3Q7CiAgICAg
Ly8gUmV0dXJucyB0aGUgZHVyYXRpb24gb2YgdGhlIGFuaW1hdGlvbiBmb3IgdGhlIHByb2dyZXNz
IGJhci4KICAgICB2aXJ0dWFsIGRvdWJsZSBhbmltYXRpb25EdXJhdGlvbkZvclByb2dyZXNzQmFy
KFJlbmRlclByb2dyZXNzKikgY29uc3Q7Ci0gICAgdmlydHVhbCBJbnRSZWN0IHByb2dyZXNzQmFy
UmVjdEZvckJvdW5kcyhjb25zdCBSZW5kZXJPYmplY3QqLCBjb25zdCBJbnRSZWN0JikgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBJbnRSZWN0IHByb2dyZXNzQmFyUmVjdEZvckJvdW5kcyhj
b25zdCBSZW5kZXJPYmplY3QqLCBjb25zdCBJbnRSZWN0JikgY29uc3Qgb3ZlcnJpZGU7CiAjZW5k
aWYKIAogICAgIHZpcnR1YWwgQ29sb3Igc3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCkgY29uc3Q7CkBA
IC0xMDksOCArMTA5LDggQEAgcHJvdGVjdGVkOgogCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIC8v
IE1lZGlhIGNvbnRyb2xzCi0gICAgdmlydHVhbCBTdHJpbmcgbWVkaWFDb250cm9sc1N0eWxlU2hl
ZXQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYUNvbnRyb2xzU2NyaXB0KCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBTdHJpbmcgbWVkaWFDb250cm9sc1N0eWxlU2hlZXQoKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYUNvbnRyb2xzU2NyaXB0KCkgb3ZlcnJp
ZGU7CiAjZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNTZWxlY3Rpb25Gb3JlZ3JvdW5k
Q29sb3JzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIApAQCAtMTYxLDcgKzE2MSw3IEBAIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRTbmFwc2hvdHRlZFBsdWdpbk92ZXJsYXko
UmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogCiBwcml2
YXRlOgotICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVMaXN0TmFtZUZvcldpZHRoKGNvbnN0IEZpbGVM
aXN0KiwgY29uc3QgRm9udCYsIGludCB3aWR0aCwgYm9vbCBtdWx0aXBsZUZpbGVzQWxsb3dlZCkg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBTdHJpbmcgZmlsZUxpc3ROYW1lRm9yV2lkdGgo
Y29uc3QgRmlsZUxpc3QqLCBjb25zdCBGb250JiwgaW50IHdpZHRoLCBib29sIG11bHRpcGxlRmls
ZXNBbGxvd2VkKSBjb25zdCBvdmVycmlkZTsKIAogICAgIEludFJlY3QgaW5mbGF0ZVJlY3QoY29u
c3QgSW50UmVjdCYsIGNvbnN0IEludFNpemUmLCBjb25zdCBpbnQqIG1hcmdpbnMsIGZsb2F0IHpv
b21MZXZlbCA9IDEuMGYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVTYWZhcmkuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZVNhZmFyaS5oCmluZGV4IDZjZjQ2NGYuLjk4OWNkMzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVNhZmFyaS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZVNhZmFyaS5oCkBAIC0xMzksMTAgKzEzOSwxMCBAQCBw
cm90ZWN0ZWQ6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRVRFUl9FTEVNRU5UKQotICAgIHZpcnR1
YWwgSW50U2l6ZSBtZXRlclNpemVGb3JCb3VuZHMoY29uc3QgUmVuZGVyTWV0ZXIqLCBjb25zdCBJ
bnRSZWN0JikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzTWV0ZXIo
Q29udHJvbFBhcnQpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RNZXRl
clN0eWxlKFN0eWxlUmVzb2x2ZXIqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZXRlcihSZW5kZXJPYmplY3QqLCBjb25zdCBQ
YWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBJbnRTaXpl
IG1ldGVyU2l6ZUZvckJvdW5kcyhjb25zdCBSZW5kZXJNZXRlciosIGNvbnN0IEludFJlY3QmKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNNZXRlcihDb250cm9sUGFy
dCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFkanVzdE1ldGVyU3R5bGUoU3R5
bGVSZXNvbHZlciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBwYWludE1ldGVyKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYs
IGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKICNlbmRpZgogCiAgICAgdmlydHVhbCBib29sIHNo
b3VsZFNob3dQbGFjZWhvbGRlcldoZW5Gb2N1c2VkKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lV2luLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uaAppbmRleCBmMjZmODY1Li43
MmQwNzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVX
aW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVXaW4uaApAQCAt
MTIzLDE1ICsxMjMsMTUgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3Vz
UmluZyhjb25zdCBSZW5kZXJTdHlsZSopIGNvbnN0OwogCiAjaWYgRU5BQkxFKFZJREVPKQotICAg
IHZpcnR1YWwgU3RyaW5nIG1lZGlhQ29udHJvbHNTdHlsZVNoZWV0KCkgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBTdHJpbmcgbWVkaWFDb250cm9sc1NjcmlwdCgpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgU3RyaW5nIG1lZGlhQ29udHJvbHNTdHlsZVNoZWV0KCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBTdHJpbmcgbWVkaWFDb250cm9sc1NjcmlwdCgpIG92ZXJyaWRlOwogI2VuZGlmCiAKICNpZiBF
TkFCTEUoTUVURVJfRUxFTUVOVCkKLSAgICB2aXJ0dWFsIEludFNpemUgbWV0ZXJTaXplRm9yQm91
bmRzKGNvbnN0IFJlbmRlck1ldGVyKiwgY29uc3QgSW50UmVjdCYpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c01ldGVyKENvbnRyb2xQYXJ0KSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0TWV0ZXJTdHlsZShTdHlsZVJlc29sdmVyKiwgUmVu
ZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHBh
aW50TWV0ZXIoUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgSW50U2l6ZSBtZXRlclNpemVGb3JCb3VuZHMoY29uc3Qg
UmVuZGVyTWV0ZXIqLCBjb25zdCBJbnRSZWN0JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBib29sIHN1cHBvcnRzTWV0ZXIoQ29udHJvbFBhcnQpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBhZGp1c3RNZXRlclN0eWxlKFN0eWxlUmVzb2x2ZXIqLCBSZW5kZXJTdHlsZSos
IEVsZW1lbnQqKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZXRlcihS
ZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7
CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTaG93UGxhY2Vob2xkZXJXaGVuRm9j
dXNlZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWRlby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZGVvLmgKaW5kZXggZjVhODdiNS4uZTRlYWVlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZGVvLmgKQEAgLTc0LDkgKzc0LDkgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwg
dm9pZCBsYXlvdXQoKTsKIAotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRM
b2dpY2FsV2lkdGgoU2hvdWxkQ29tcHV0ZVByZWZlcnJlZCAgPSBDb21wdXRlQWN0dWFsKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNh
bFdpZHRoKFNob3VsZENvbXB1dGVQcmVmZXJyZWQgID0gQ29tcHV0ZUFjdHVhbCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWln
aHQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWluaW11bVJlcGxhY2VkSGVpZ2h0
KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IG1pbmltdW1SZXBsYWNl
ZEhlaWdodCgpIGNvbnN0IG92ZXJyaWRlOwogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQog
ICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBvZmZzZXRMZWZ0KCkgY29uc3Q7CkBAIC04Nyw3ICs4Nyw3
IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHVwZGF0ZVBsYXllcigpOwogCi0gICAgdmlydHVhbCBi
b29sIGZvcmVncm91bmRJc0tub3duVG9CZU9wYXF1ZUluUmVjdChjb25zdCBMYXlvdXRSZWN0JiBs
b2NhbFJlY3QsIHVuc2lnbmVkIG1heERlcHRoVG9UZXN0KSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGJvb2wgZm9yZWdyb3VuZElzS25vd25Ub0JlT3BhcXVlSW5SZWN0KGNvbnN0IExheW91
dFJlY3QmIGxvY2FsUmVjdCwgdW5zaWduZWQgbWF4RGVwdGhUb1Rlc3QpIGNvbnN0IG92ZXJyaWRl
OwogCiAgICAgTGF5b3V0U2l6ZSBtX2NhY2hlZEltYWdlU2l6ZTsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCA2ZjNiYjdkLi44MmMyN2EzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKQEAgLTUwLDE3ICs1MCwxNyBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBoaXRUZXN0KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYpOwogICAg
IGJvb2wgaGl0VGVzdChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlv
biYsIEhpdFRlc3RSZXN1bHQmKTsKIAotICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFt
ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuICJSZW5kZXJWaWV3IjsgfQorICAgIHZpcnR1YWwg
Y29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJW
aWV3IjsgfQogCi0gICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNDaGlsZEFs
bG93ZWQoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNDaGlsZEFsbG93ZWQoY29uc3QgUmVuZGVyT2JqZWN0
JiwgY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9p
ZCBsYXlvdXQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTG9naWNhbFdpZHRo
KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KExheW91
dFVuaXQgbG9naWNhbEhlaWdodCwgTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMb2dpY2FsRXh0ZW50
Q29tcHV0ZWRWYWx1ZXMmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxvZ2ljYWxXaWR0aCgpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlTG9naWNhbEhlaWdodChMYXlvdXRVbml0IGxv
Z2ljYWxIZWlnaHQsIExheW91dFVuaXQgbG9naWNhbFRvcCwgTG9naWNhbEV4dGVudENvbXB1dGVk
VmFsdWVzJikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgYXZhaWxh
YmxlTG9naWNhbEhlaWdodChBdmFpbGFibGVMb2dpY2FsSGVpZ2h0VHlwZSkgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IGF2YWlsYWJsZUxvZ2ljYWxIZWlnaHQoQXZhaWxh
YmxlTG9naWNhbEhlaWdodFR5cGUpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gVGhlIHNhbWUg
YXMgdGhlIEZyYW1lVmlldydzIGxheW91dEhlaWdodC9sYXlvdXRXaWR0aCBidXQgd2l0aCBudWxs
IGNoZWNrIGd1YXJkcy4KICAgICBpbnQgdmlld0hlaWdodCgpIGNvbnN0OwpAQCAtNzIsOCArNzIs
OCBAQCBwdWJsaWM6CiAKICAgICBGcmFtZVZpZXcmIGZyYW1lVmlldygpIGNvbnN0IHsgcmV0dXJu
IG1fZnJhbWVWaWV3OyB9CiAKLSAgICB2aXJ0dWFsIExheW91dFJlY3QgdmlzdWFsT3ZlcmZsb3dS
ZWN0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVw
YWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlv
dXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IExheW91dFJlY3QgdmlzdWFsT3ZlcmZsb3dSZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBj
b25zdCBvdmVycmlkZTsKICAgICB2b2lkIHJlcGFpbnRSb290Q29udGVudHMoKTsKICAgICB2b2lk
IHJlcGFpbnRWaWV3UmVjdGFuZ2xlKGNvbnN0IExheW91dFJlY3QmLCBib29sIGltbWVkaWF0ZSA9
IGZhbHNlKSBjb25zdDsKICAgICAvLyBSZXBhaW50IHRoZSB2aWV3LCBhbmQgYWxsIGNvbXBvc2l0
ZWQgbGF5ZXJzIHRoYXQgaW50ZXJzZWN0IHRoZSBnaXZlbiBhYnNvbHV0ZSByZWN0YW5nbGUuCkBA
IC04MSw4ICs4MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcGFpbnRSZWN0YW5nbGVJblZpZXdB
bmRDb21wb3NpdGVkTGF5ZXJzKGNvbnN0IExheW91dFJlY3QmLCBib29sIGltbWVkaWF0ZSA9IGZh
bHNlKTsKICAgICB2b2lkIHJlcGFpbnRWaWV3QW5kQ29tcG9zaXRlZExheWVycygpOwogCi0gICAg
dmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiwgY29u
c3QgTGF5b3V0UG9pbnQmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJ
bmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFp
bnRCb3hEZWNvcmF0aW9ucyhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRl
OwogCiAgICAgZW51bSBTZWxlY3Rpb25SZXBhaW50TW9kZSB7IFJlcGFpbnROZXdYT1JPbGQsIFJl
cGFpbnROZXdNaW51c09sZCwgUmVwYWludE5vdGhpbmcgfTsKICAgICB2b2lkIHNldFNlbGVjdGlv
bihSZW5kZXJPYmplY3QqIHN0YXJ0LCBpbnQgc3RhcnRQb3MsIFJlbmRlck9iamVjdCogZW5kLCBp
bnQgZW5kUG9zLCBTZWxlY3Rpb25SZXBhaW50TW9kZSA9IFJlcGFpbnROZXdYT1JPbGQpOwpAQCAt
OTYsOCArOTYsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIHByaW50aW5nKCkgY29uc3Q7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBjb25zdCBMYXlv
dXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiwgYm9vbCogd2FzRml4ZWQpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRS
ZWN0PiYsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBi
b29sKiB3YXNGaXhlZCkgY29uc3Qgb3ZlcnJpZGU7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAgICAgdm9pZCBzZXRNYXhpbWFsT3V0bGluZVNpemUoaW50IG8pOwpAQCAtMTUx
LDcgKzE1MSw3IEBAIHB1YmxpYzoKICAgICBib29sIGxheW91dFN0YXRlRW5hYmxlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fbGF5b3V0U3RhdGVEaXNhYmxlQ291bnQgPT0gMCAmJiBtX2xheW91dFN0YXRl
OyB9CiAgICAgTGF5b3V0U3RhdGUqIGxheW91dFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9sYXlv
dXRTdGF0ZS5nZXQoKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUhpdFRlc3RSZXN1bHQo
SGl0VGVzdFJlc3VsdCYsIGNvbnN0IExheW91dFBvaW50JikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZUhpdFRlc3RSZXN1bHQoSGl0VGVzdFJlc3VsdCYsIGNvbnN0IExheW91dFBv
aW50Jikgb3ZlcnJpZGU7CiAKICAgICBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2h0KCkgY29u
c3QgeyByZXR1cm4gbV9wYWdlTG9naWNhbEhlaWdodDsgfQogICAgIHZvaWQgc2V0UGFnZUxvZ2lj
YWxIZWlnaHQoTGF5b3V0VW5pdCBoZWlnaHQpCkBAIC0yMDIsNyArMjAyLDcgQEAgcHVibGljOgog
ICAgIGJvb2wgY2hlY2tUd29QYXNzTGF5b3V0Rm9yQXV0b0hlaWdodFJlZ2lvbnMoKSBjb25zdDsK
ICAgICBGbG93VGhyZWFkQ29udHJvbGxlciYgZmxvd1RocmVhZENvbnRyb2xsZXIoKTsKIAotICAg
IHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRl
clN0eWxlKiBvbGRTdHlsZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hh
bmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBvdmVycmlk
ZTsKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBlbnVtIENvbnRhaW5pbmdCbG9ja0NoZWNrIHsg
Q2hlY2tDb250YWluaW5nQmxvY2ssIERvbnRDaGVja0NvbnRhaW5pbmdCbG9jayB9OwpAQCAtMjI0
LDcgKzIyNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZVJlbmRlckNvdW50ZXIoKSB7IEFT
U0VSVChtX3JlbmRlckNvdW50ZXJDb3VudCA+IDApOyBtX3JlbmRlckNvdW50ZXJDb3VudC0tOyB9
CiAgICAgYm9vbCBoYXNSZW5kZXJDb3VudGVycygpIHsgcmV0dXJuIG1fcmVuZGVyQ291bnRlckNv
dW50OyB9CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogbmV3
Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBuZXdDaGlsZCwgUmVuZGVyT2JqZWN0KiBi
ZWZvcmVDaGlsZCA9IDApIG92ZXJyaWRlOwogCiAgICAgSW50UmVjdCBwaXhlbFNuYXBwZWRMYXlv
dXRPdmVyZmxvd1JlY3QoKSBjb25zdCB7IHJldHVybiBwaXhlbFNuYXBwZWRJbnRSZWN0KGxheW91
dE92ZXJmbG93UmVjdCgpKTsgfQogCkBAIC0yNDAsMTYgKzI0MCwxNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkaWREZXN0cm95UmVuZGVyZXIoKSB7IC0tbV9yZW5kZXJlckNvdW50OyB9CiAKIHByb3Rl
Y3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENv
b3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0gMCkg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBw
aW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0
b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgbWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncywgVHJhbnNmb3Jt
U3RhdGUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNDb2x1bW5z
KGludCBkZXNpcmVkQ29sdW1uQ291bnQpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5
Q29udGFpbmVyRmxpcCwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1h
cCYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQ
b2ludChNYXBDb29yZGluYXRlc0ZsYWdzLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0NvbHVtbnMoaW50IGRlc2lyZWRDb2x1bW5Db3Vu
dCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCiBwcml2YXRlOgogICAgIGJvb2wgaW5pdGlhbGl6ZUxh
eW91dFN0YXRlKExheW91dFN0YXRlJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY2FsY0NvbHVtbldp
ZHRoKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBDb2x1bW5JbmZvOjpQYWdpbmF0aW9uVW5pdCBw
YWdpbmF0aW9uVW5pdCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjYWxjQ29s
dW1uV2lkdGgoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIENvbHVtbkluZm86OlBhZ2luYXRpb25V
bml0IHBhZ2luYXRpb25Vbml0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBib29sIHNob3VsZFJl
cGFpbnQoY29uc3QgTGF5b3V0UmVjdCYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyV2lkZ2V0LmgKaW5kZXggNzBlZDIyZi4uMTdmMWEwMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJXaWRnZXQuaApAQCAtNzksMjYgKzc5LDI2IEBAIHB1YmxpYzoKIHByb3Rl
Y3RlZDoKICAgICBSZW5kZXJXaWRnZXQoSFRNTEZyYW1lT3duZXJFbGVtZW50JiwgUGFzc1JlZjxS
ZW5kZXJTdHlsZT4pOwogCi0gICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlm
ZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBPVkVSUklERSBGSU5BTDsKLSAg
ICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50
KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNv
bnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9p
bnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHls
ZSogb2xkU3R5bGUpIG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0
UG9pbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0
VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2Nh
dGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhp
dFRlc3RBY3Rpb24pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKFBh
aW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQotICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKICNlbmRp
ZgogCiBwcml2YXRlOgogICAgIHZvaWQgZWxlbWVudCgpIGNvbnN0IFdURl9ERUxFVEVEX0ZVTkNU
SU9OOwogCi0gICAgdmlydHVhbCBib29sIGlzV2lkZ2V0KCkgY29uc3QgT1ZFUlJJREUgRklOQUwg
eyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1dpZGdldCgpIGNvbnN0IG92ZXJy
aWRlIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBuZWVkc1ByZWZl
cnJlZFdpZHRoc1JlY2FsY3VsYXRpb24oKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0
dWFsIFJlbmRlckJveCogZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7
CisgICAgdmlydHVhbCBib29sIG5lZWRzUHJlZmVycmVkV2lkdGhzUmVjYWxjdWxhdGlvbigpIGNv
bnN0IG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgUmVuZGVyQm94KiBlbWJlZGRlZENvbnRl
bnRCb3goKSBjb25zdCBvdmVycmlkZSBGSU5BTDsKIAotICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVE
ZXN0cm95ZWQoKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0aW9u
U3RhdGUoU2VsZWN0aW9uU3RhdGUpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBz
ZXRPdmVybGFwVGVzdFJlc3VsdChib29sKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZv
aWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHNl
dFNlbGVjdGlvblN0YXRlKFNlbGVjdGlvblN0YXRlKSBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0T3ZlcmxhcFRlc3RSZXN1bHQoYm9vbCkgb3ZlcnJpZGUgRklOQUw7CiAKICAg
ICBib29sIHNldFdpZGdldEdlb21ldHJ5KGNvbnN0IExheW91dFJlY3QmKTsKICAgICBib29sIHVw
ZGF0ZVdpZGdldEdlb21ldHJ5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUm9vdElubGluZUJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVC
b3guaAppbmRleCBkZTA4NmE2Li42OTQzYTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUm9vdElubGluZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
b290SW5saW5lQm94LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIFJvb3RJbmxpbmVC
b3gqIG5leHRSb290Qm94KCkgY29uc3Q7CiAgICAgUm9vdElubGluZUJveCogcHJldlJvb3RCb3go
KSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RQb3NpdGlvbihmbG9hdCBkeCwgZmxv
YXQgZHkpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RQb3NpdGlvbihm
bG9hdCBkeCwgZmxvYXQgZHkpIG92ZXJyaWRlIEZJTkFMOwogCiAgICAgTGF5b3V0VW5pdCBsaW5l
VG9wKCkgY29uc3QgeyByZXR1cm4gbV9saW5lVG9wOyB9CiAgICAgTGF5b3V0VW5pdCBsaW5lQm90
dG9tKCkgY29uc3QgeyByZXR1cm4gbV9saW5lQm90dG9tOyB9CkBAIC0xMDQsMzIgKzEwNCwzMiBA
QCBwdWJsaWM6CiAgICAgLy8gUmV0dXJuIHRoZSB0cnVuY2F0ZWRXaWR0aCwgdGhlIHdpZHRoIG9m
IHRoZSB0cnVuY2F0ZWQgdGV4dCArIGVsbGlwc2lzLgogICAgIGZsb2F0IHBsYWNlRWxsaXBzaXMo
Y29uc3QgQXRvbWljU3RyaW5nJiBlbGxpcHNpc1N0ciwgYm9vbCBsdHIsIGZsb2F0IGJsb2NrTGVm
dEVkZ2UsIGZsb2F0IGJsb2NrUmlnaHRFZGdlLCBmbG9hdCBlbGxpcHNpc1dpZHRoLCBJbmxpbmVC
b3gqIG1hcmt1cEJveCA9IDApOwogICAgIC8vIFJldHVybiB0aGUgcG9zaXRpb24gb2YgdGhlIEVs
bGlwc2lzQm94IG9yIC0xLgotICAgIHZpcnR1YWwgZmxvYXQgcGxhY2VFbGxpcHNpc0JveChib29s
IGx0ciwgZmxvYXQgYmxvY2tMZWZ0RWRnZSwgZmxvYXQgYmxvY2tSaWdodEVkZ2UsIGZsb2F0IGVs
bGlwc2lzV2lkdGgsIGZsb2F0ICZ0cnVuY2F0ZWRXaWR0aCwgYm9vbCYgZm91bmRCb3gpIE9WRVJS
SURFIEZJTkFMOworICAgIHZpcnR1YWwgZmxvYXQgcGxhY2VFbGxpcHNpc0JveChib29sIGx0ciwg
ZmxvYXQgYmxvY2tMZWZ0RWRnZSwgZmxvYXQgYmxvY2tSaWdodEVkZ2UsIGZsb2F0IGVsbGlwc2lz
V2lkdGgsIGZsb2F0ICZ0cnVuY2F0ZWRXaWR0aCwgYm9vbCYgZm91bmRCb3gpIG92ZXJyaWRlIEZJ
TkFMOwogCiAgICAgdXNpbmcgSW5saW5lQm94OjpoYXNFbGxpcHNpc0JveDsKICAgICBFbGxpcHNp
c0JveCogZWxsaXBzaXNCb3goKSBjb25zdDsKIAogICAgIHZvaWQgcGFpbnRFbGxpcHNpc0JveChQ
YWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYsIExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0
VW5pdCBsaW5lQm90dG9tKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCBjbGVhclRydW5jYXRp
b24oKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJUcnVuY2F0aW9uKCkg
b3ZlcnJpZGUgRklOQUw7CiAKICAgICBib29sIGlzSHlwaGVuYXRlZCgpIGNvbnN0OwogCi0gICAg
dmlydHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUgYmFzZWxpbmVUeXBlKSBj
b25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbGluZUhlaWdodCgp
IGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgaW50IGJhc2VsaW5lUG9zaXRpb24o
Rm9udEJhc2VsaW5lIGJhc2VsaW5lVHlwZSkgY29uc3Qgb3ZlcnJpZGUgRklOQUw7CisgICAgdmly
dHVhbCBMYXlvdXRVbml0IGxpbmVIZWlnaHQoKSBjb25zdCBvdmVycmlkZSBGSU5BTDsKIAogI2lm
IFBMQVRGT1JNKE1BQykKICAgICB2b2lkIGFkZEhpZ2hsaWdodE92ZXJmbG93KCk7CiAgICAgdm9p
ZCBwYWludEN1c3RvbUhpZ2hsaWdodChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYsIGNv
bnN0IEF0b21pY1N0cmluZyYgaGlnaGxpZ2h0VHlwZSk7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwg
dm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYsIExheW91dFVuaXQgbGlu
ZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3Qg
SGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYg
YWNjdW11bGF0ZWRPZmZzZXQsIExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90
dG9tKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwg
Y29uc3QgTGF5b3V0UG9pbnQmLCBMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUJv
dHRvbSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRl
c3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRp
b25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBMYXlv
dXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUJvdHRvbSkgb3ZlcnJpZGUgRklOQUw7CiAK
ICAgICB1c2luZyBJbmxpbmVCb3g6Omhhc1NlbGVjdGVkQ2hpbGRyZW47CiAgICAgdXNpbmcgSW5s
aW5lQm94OjpzZXRIYXNTZWxlY3RlZENoaWxkcmVuOwogCi0gICAgdmlydHVhbCBSZW5kZXJPYmpl
Y3Q6OlNlbGVjdGlvblN0YXRlIHNlbGVjdGlvblN0YXRlKCkgT1ZFUlJJREUgRklOQUw7CisgICAg
dmlydHVhbCBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvblN0YXRlIHNlbGVjdGlvblN0YXRlKCkgb3Zl
cnJpZGUgRklOQUw7CiAgICAgSW5saW5lQm94KiBmaXJzdFNlbGVjdGVkQm94KCk7CiAgICAgSW5s
aW5lQm94KiBsYXN0U2VsZWN0ZWRCb3goKTsKIApAQCAtMTUyLDkgKzE1Miw5IEBAIHB1YmxpYzoK
IAogICAgIFZlY3RvcjxSZW5kZXJCb3gqPiogZmxvYXRzUHRyKCkgeyBBU1NFUlQoIWlzRGlydHko
KSk7IHJldHVybiBtX2Zsb2F0cy5nZXQoKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGV4dHJhY3RM
aW5lQm94RnJvbVJlbmRlck9iamVjdCgpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9p
ZCBhdHRhY2hMaW5lQm94VG9SZW5kZXJPYmplY3QoKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlTGluZUJveEZyb21SZW5kZXJPYmplY3QoKSBPVkVSUklERSBGSU5BTDsK
KyAgICB2aXJ0dWFsIHZvaWQgZXh0cmFjdExpbmVCb3hGcm9tUmVuZGVyT2JqZWN0KCkgb3ZlcnJp
ZGUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGF0dGFjaExpbmVCb3hUb1JlbmRlck9iamVjdCgp
IG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVMaW5lQm94RnJvbVJlbmRl
ck9iamVjdCgpIG92ZXJyaWRlIEZJTkFMOwogICAgIAogICAgIEZvbnRCYXNlbGluZSBiYXNlbGlu
ZVR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxGb250QmFzZWxpbmU+KG1fYmFzZWxp
bmVUeXBlKTsgfQogCkBAIC0xOTgsMTAgKzE5OCwxMCBAQCBwdWJsaWM6CiAgICAgTm9kZSogZ2V0
TG9naWNhbEVuZEJveFdpdGhOb2RlKElubGluZUJveComKSBjb25zdDsKIAogI2lmbmRlZiBOREVC
VUcKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGJveE5hbWUoKSBjb25zdCBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGJveE5hbWUoKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgog
cHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgaXNSb290SW5saW5lQm94KCkgY29uc3QgT1ZFUlJJ
REUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1Jvb3RJbmxpbmVC
b3goKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBMYXlvdXRV
bml0IGxpbmVTbmFwQWRqdXN0bWVudChMYXlvdXRVbml0IGRlbHRhID0gMCkgY29uc3Q7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxv
Y2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2su
aAppbmRleCA1M2YzNzkzLi4wM2Y0NDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oCkBAIC00NCw3ICs0NCw3IEBAIHB1Ymxp
YzoKICAgICBSZW5kZXJNYXRoTUxCbG9jayhFbGVtZW50JiwgUGFzc1JlZjxSZW5kZXJTdHlsZT4p
OwogICAgIFJlbmRlck1hdGhNTEJsb2NrKERvY3VtZW50JiwgUGFzc1JlZjxSZW5kZXJTdHlsZT4p
OwogCi0gICAgdmlydHVhbCBib29sIGlzQ2hpbGRBbGxvd2VkKGNvbnN0IFJlbmRlck9iamVjdCYs
IGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlz
Q2hpbGRBbGxvd2VkKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFJlbmRlclN0eWxlJikgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgCiAgICAgLy8gTWF0aE1MIGRlZmluZXMgYW4gImVtYmVsbGlzaGVk
IG9wZXJhdG9yIiBhcyByb3VnaGx5IGFuIDxtbz4gdGhhdCBtYXkgaGF2ZSBzdWJzY3JpcHRzLAog
ICAgIC8vIHN1cGVyc2NyaXB0cywgdW5kZXJzY3JpcHRzLCBvdmVyc2NyaXB0cywgb3IgYSBkZW5v
bWluYXRvciAoYXMgaW4gZC9keCwgd2hlcmUgImQiIGlzIHNvbWUKQEAgLTU1LDcgKzU1LDcgQEAg
cHVibGljOgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
ODYxNy4KICAgICB2aXJ0dWFsIFJlbmRlck1hdGhNTE9wZXJhdG9yKiB1bmVtYmVsbGlzaGVkT3Bl
cmF0b3IoKSB7IHJldHVybiAwOyB9CiAgICAgCi0gICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQb3Np
dGlvbihGb250QmFzZWxpbmUsIGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGlu
ZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlvbihGb250QmFzZWxpbmUsIGJvb2wgZmly
c3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSA9IFBvc2l0aW9uT25D
b250YWluaW5nTGluZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCiAjaWYgRU5BQkxFKERFQlVHX01B
VEhfTEFZT1VUKQogICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlv
dXRQb2ludCYpOwpAQCAtNjgsOCArNjgsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpZ25vcmVJbkFj
Y2Vzc2liaWxpdHlUcmVlKCkgY29uc3QgeyByZXR1cm4gbV9pZ25vcmVJbkFjY2Vzc2liaWxpdHlU
cmVlOyB9CiAgICAgCiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlck1hdGhNTEJs
b2NrKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwg
Y29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9v
bCBpc1JlbmRlck1hdGhNTEJsb2NrKCkgY29uc3Qgb3ZlcnJpZGUgRklOQUwgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRl
OwogCiAgICAgYm9vbCBtX2lnbm9yZUluQWNjZXNzaWJpbGl0eVRyZWU7CiB9OwpAQCAtODQsMTAg
Kzg0LDEwIEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogICAgIAotICAgIHZpcnR1YWwgaW50IGZp
cnN0TGluZUJhc2VsaW5lKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBpbnQgZmlyc3RM
aW5lQmFzZWxpbmUoKSBjb25zdCBvdmVycmlkZTsKICAgICAKIHByaXZhdGU6Ci0gICAgdmlydHVh
bCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gIlJlbmRl
ck1hdGhNTFRhYmxlIjsgfQorICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJNYXRoTUxUYWJsZSI7IH0KIH07CiAKIC8vIFBh
cnNpbmcgZnVuY3Rpb25zIGZvciBNYXRoTUwgTGVuZ3RoIHZhbHVlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmgKaW5kZXggZTNm
Yzc3NS4uOGE0ZWMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGht
bC9SZW5kZXJNYXRoTUxGZW5jZWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0
aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5oCkBAIC00MCwxMiArNDAsMTIgQEAgcHVibGljOgogICAg
IE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQmIGVsZW1lbnQoKSB7IHJldHVybiBzdGF0aWNf
Y2FzdDxNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50Jj4obm9kZUZvck5vbkFub255bW91cygp
KTsgfQogICAgIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJNYXRoTUxGZW5j
ZWQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBjb25zdCBj
aGFyKiByZW5kZXJOYW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gIlJlbmRlck1hdGhNTEZl
bmNlZCI7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwg
UmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHN0
eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxl
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJNYXRoTUxGZW5jZWQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5k
ZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlck1hdGhNTEZlbmNlZCI7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVyT2Jq
ZWN0KiBiZWZvcmVDaGlsZCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hh
bmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBvdmVycmlk
ZTsKIAotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpIG92ZXJyaWRlOwogCiAgICAgUmVuZGVy
UHRyPFJlbmRlck1hdGhNTE9wZXJhdG9yPiBjcmVhdGVNYXRoTUxPcGVyYXRvcihVQ2hhciwgUmVu
ZGVyTWF0aE1MT3BlcmF0b3I6Ok9wZXJhdG9yVHlwZSk7CiAgICAgdm9pZCBtYWtlRmVuY2VzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhN
TEZyYWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhN
TEZyYWN0aW9uLmgKaW5kZXggZmQ5MGZhZC4uZjMwODZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGcmFjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRnJhY3Rpb24uaApAQCAtNDIs
MTYgKzQyLDE2IEBAIHB1YmxpYzoKICAgICBmbG9hdCBsaW5lVGhpY2tuZXNzKCkgY29uc3QgeyBy
ZXR1cm4gbV9saW5lVGhpY2tuZXNzOyB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGlz
UmVuZGVyTWF0aE1MRnJhY3Rpb24oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0g
ICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gIlJlbmRlck1hdGhNTEZyYWN0aW9uIjsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlck1h
dGhNTEZyYWN0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1
YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5k
ZXJNYXRoTUxGcmFjdGlvbiI7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJP
YmplY3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGlu
dCBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBw
YWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgUmVuZGVyTWF0aE1MT3BlcmF0b3IqIHVuZW1iZWxsaXNoZWRPcGVyYXRvcigpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5
bGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIGNo
aWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlRnJvbUVsZW1lbnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGludCBmaXJzdExp
bmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWlu
dEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVy
TWF0aE1MT3BlcmF0b3IqIHVuZW1iZWxsaXNoZWRPcGVyYXRvcigpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRD
aGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIG92ZXJy
aWRlOwogCiAgICAgdm9pZCBmaXhDaGlsZFN0eWxlKFJlbmRlck9iamVjdCopOwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxNYXRo
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE1hdGguaApp
bmRleCBiNzliMTRlLi5jNDE5MWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbWF0aG1sL1JlbmRlck1hdGhNTE1hdGguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbWF0aG1sL1JlbmRlck1hdGhNTE1hdGguaApAQCAtMzcsOCArMzcsOCBAQCBwdWJsaWM6CiAg
ICAgUmVuZGVyTWF0aE1MTWF0aChFbGVtZW50JiwgUGFzc1JlZjxSZW5kZXJTdHlsZT4pOwogCiBw
cml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlck1hdGhNTE1hdGgoKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1l
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gIlJlbmRlck1hdGhNTE1hdGgiOyB9CisgICAgdmly
dHVhbCBib29sIGlzUmVuZGVyTWF0aE1MTWF0aCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiAiUmVuZGVyTWF0aE1MTWF0aCI7IH0KIH07CiAgICAgCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmgK
aW5kZXggNTY5MzA4YS4uMjkyNDkwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuaApAQCAtNjAsMTggKzYwLDE4IEBA
IHB1YmxpYzoKICAgICAgICAgVUNoYXIgbWlkZGxlR2x5cGg7CiAgICAgfTsKIAotICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVGcm9tRWxlbWVudCgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgY29u
c3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGlzQW5vbnltb3Vz
KCkgPyAiUmVuZGVyTWF0aE1MT3BlcmF0b3IgKGFub255bW91cykiIDogIlJlbmRlck1hdGhNTE9w
ZXJhdG9yIjsgfQotICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVu
Y2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHBhaW50Q2hpbGRyZW4oUGFpbnRJbmZvJiBmb3JTZWxmLCBjb25zdCBMYXlvdXRQb2ludCYs
IFBhaW50SW5mbyYgZm9yQ2hpbGQsIGJvb2wgdXNlUHJpbnRSZWN0KSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGJvb2wgaXNSZW5kZXJNYXRoTUxPcGVyYXRvcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNDaGlsZEFsbG93ZWQoY29uc3QgUmVuZGVy
T2JqZWN0JiwgY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBM
YXlvdXRVbml0IGxvZ2ljYWxUb3AsIExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgaW50IGZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBSZW5kZXJNYXRoTUxPcGVyYXRvciogdW5lbWJlbGxpc2hlZE9w
ZXJhdG9yKCkgT1ZFUlJJREUgeyByZXR1cm4gdGhpczsgfQorICAgIHZpcnR1YWwgY29uc3QgY2hh
ciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGlzQW5vbnltb3VzKCkgPyAi
UmVuZGVyTWF0aE1MT3BlcmF0b3IgKGFub255bW91cykiIDogIlJlbmRlck1hdGhNTE9wZXJhdG9y
IjsgfQorICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNv
bnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBh
aW50Q2hpbGRyZW4oUGFpbnRJbmZvJiBmb3JTZWxmLCBjb25zdCBMYXlvdXRQb2ludCYsIFBhaW50
SW5mbyYgZm9yQ2hpbGQsIGJvb2wgdXNlUHJpbnRSZWN0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IGJvb2wgaXNSZW5kZXJNYXRoTUxPcGVyYXRvcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNDaGlsZEFsbG93ZWQoY29uc3QgUmVuZGVyT2JqZWN0
JiwgY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBMYXlvdXRV
bml0IGxvZ2ljYWxUb3AsIExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgaW50IGZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBSZW5kZXJNYXRoTUxPcGVyYXRvciogdW5lbWJlbGxpc2hlZE9wZXJhdG9y
KCkgb3ZlcnJpZGUgeyByZXR1cm4gdGhpczsgfQogCiAgICAgYm9vbCBzaG91bGRBbGxvd1N0cmV0
Y2hpbmcoVUNoYXImIGNoYXJhY3RlckZvclN0cmV0Y2hpbmcpOwogICAgIFN0cmV0Y2h5Q2hhcmFj
dGVyKiBmaW5kQWNjZXB0YWJsZVN0cmV0Y2h5Q2hhcmFjdGVyKFVDaGFyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm9vdC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb290LmgKaW5kZXggOTRj
MzZjNC4uM2YyYzcxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGht
bC9SZW5kZXJNYXRoTUxSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGht
bC9SZW5kZXJNYXRoTUxSb290LmgKQEAgLTM3LDI1ICszNywyNSBAQCBjbGFzcyBSZW5kZXJNYXRo
TUxSb290IDogcHVibGljIFJlbmRlck1hdGhNTEJsb2NrIHsKIHB1YmxpYzoKICAgICBSZW5kZXJN
YXRoTUxSb290KEVsZW1lbnQmLCBQYXNzUmVmPFJlbmRlclN0eWxlPik7CiAKLSAgICB2aXJ0dWFs
IExheW91dFVuaXQgcGFkZGluZ1RvcCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgTGF5
b3V0VW5pdCBwYWRkaW5nQm90dG9tKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBMYXlv
dXRVbml0IHBhZGRpbmdMZWZ0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBMYXlvdXRV
bml0IHBhZGRpbmdSaWdodCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgTGF5b3V0VW5p
dCBwYWRkaW5nQmVmb3JlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0
IHBhZGRpbmdBZnRlcigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBw
YWRkaW5nU3RhcnQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFk
ZGluZ0VuZCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5n
VG9wKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IHBhZGRpbmdCb3R0
b20oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGluZ0xlZnQo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGluZ1JpZ2h0KCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IHBhZGRpbmdCZWZvcmUoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGluZ0FmdGVyKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IHBhZGRpbmdTdGFydCgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nRW5kKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBuZXdDaGls
ZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9y
ZUNoaWxkID0gMCkgb3ZlcnJpZGU7CiAgICAgCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB2b2lk
IGxheW91dCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsK
ICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9p
bnQmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3Qg
TGF5b3V0UG9pbnQmKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgaXNS
ZW5kZXJNYXRoTUxSb290KCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQot
ICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuICJSZW5kZXJNYXRoTUxSb290IjsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlck1hdGhN
TFJvb3QoKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVh
bCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRl
ck1hdGhNTFJvb3QiOyB9CiAgICAgCiAgICAgLy8gVGhpcyBtYXkgcmV0dXJuIDAgZm9yIGEgbm9u
LU1hdGhNTCBpbmRleCAod2hpY2ggd29uJ3Qgb2NjdXIgaW4gdmFsaWQgTWF0aE1MKS4KICAgICBS
ZW5kZXJCb3gqIGluZGV4KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFJvdy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxSb3cuaAppbmRleCA5MjY1NTAyLi5jYTQ3MTEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFJvdy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm93LmgKQEAg
LTQ1LDggKzQ1LDggQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKIAog
cHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJNYXRoTUxSb3coKSBjb25zdCBPVkVS
UklERSBGSU5BTCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5k
ZXJOYW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gaXNBbm9ueW1vdXMoKSA/ICJSZW5kZXJN
YXRoTUxSb3cgKGFub255bW91cykiIDogIlJlbmRlck1hdGhNTFJvdyI7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaXNSZW5kZXJNYXRoTUxSb3coKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiB0
cnVlOyB9CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gaXNBbm9ueW1vdXMoKSA/ICJSZW5kZXJNYXRoTUxSb3cgKGFub255bW91cyki
IDogIlJlbmRlck1hdGhNTFJvdyI7IH0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU2NyaXB0cy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTY3JpcHRzLmgKaW5kZXggNDgwN2U1Mi4u
YzljNDc3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxTY3JpcHRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9S
ZW5kZXJNYXRoTUxTY3JpcHRzLmgKQEAgLTQyLDggKzQyLDggQEAgZnJpZW5kIGNsYXNzIFJlbmRl
ck1hdGhNTFNjcmlwdHM7CiBwdWJsaWM6CiAgICAgZW51bSBXcmFwcGVyVHlwZSB7IEJhc2UsIFN1
YlN1cFBhaXIgfTsKIAotICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIGNo
aWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHJlbW92ZUNoaWxkKFJlbmRlck9iamVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNo
aWxkID0gMCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNoaWxkKFJlbmRlck9i
amVjdCYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIFJlbmRlck1hdGhNTFNjcmlwdHNXcmFw
cGVyKERvY3VtZW50JiBkb2N1bWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUsIFdyYXBw
ZXJUeXBlIGtpbmQpCkBAIC01Nyw4ICs1Nyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRDaGls
ZEludGVybmFsKGJvb2wgbm9ybWFsSW5zZXJ0aW9uLCBSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5k
ZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCk7CiAgICAgdm9pZCByZW1vdmVDaGlsZEludGVybmFs
KGJvb2wgbm9ybWFsUmVtb3ZhbCwgUmVuZGVyT2JqZWN0JiBjaGlsZCk7CiAKLSAgICB2aXJ0dWFs
IGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2tpbmQg
PT0gQmFzZSA/ICJCYXNlIFdyYXBwZXIiIDogIlN1YlN1cFBhaXIgV3JhcHBlciI7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgaXNSZW5kZXJNYXRoTUxTY3JpcHRzV3JhcHBlcigpIGNvbnN0IE9WRVJSSURF
IEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5h
bWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2tpbmQgPT0gQmFzZSA/ICJCYXNlIFdyYXBw
ZXIiIDogIlN1YlN1cFBhaXIgV3JhcHBlciI7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJN
YXRoTUxTY3JpcHRzV3JhcHBlcigpIGNvbnN0IG92ZXJyaWRlIEZJTkFMIHsgcmV0dXJuIHRydWU7
IH0KIAogICAgIFJlbmRlck1hdGhNTFNjcmlwdHMqIHBhcmVudE1hdGhNTFNjcmlwdHMoKTsKIApA
QCAtNzQsMTEgKzc0LDExIEBAIGZyaWVuZCBjbGFzcyBSZW5kZXJNYXRoTUxTY3JpcHRzV3JhcHBl
cjsKIAogcHVibGljOgogICAgIFJlbmRlck1hdGhNTFNjcmlwdHMoRWxlbWVudCYsIFBhc3NSZWY8
UmVuZGVyU3R5bGU+KTsKLSAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBj
aGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVDaGlsZChSZW5kZXJPYmplY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVD
aGlsZCA9IDApIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVDaGlsZChSZW5kZXJP
YmplY3QmKSBvdmVycmlkZTsKICAgICAKICAgICB2aXJ0dWFsIFJlbmRlck1hdGhNTE9wZXJhdG9y
KiB1bmVtYmVsbGlzaGVkT3BlcmF0b3IoKTsKLSAgICB2aXJ0dWFsIGludCBmaXJzdExpbmVCYXNl
bGluZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgaW50IGZpcnN0TGluZUJhc2VsaW5l
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0
KCk7CkBAIC04NywxMyArODcsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZENoaWxkSW50ZXJu
YWwoYm9vbCBub3JtYWxJbnNlcnRpb24sIFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVj
dCogYmVmb3JlQ2hpbGQgPSAwKTsKICAgICB2b2lkIHJlbW92ZUNoaWxkSW50ZXJuYWwoYm9vbCBu
b3JtYWxSZW1vdmFsLCBSZW5kZXJPYmplY3QmIGNoaWxkKTsKIAotICAgIHZpcnR1YWwgYm9vbCBp
c1JlbmRlck1hdGhNTFNjcmlwdHMoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0cnVl
OyB9Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gIlJlbmRlck1hdGhNTFNjcmlwdHMiOyB9CisgICAgdmlydHVhbCBib29sIGlzUmVu
ZGVyTWF0aE1MU2NyaXB0cygpIGNvbnN0IG92ZXJyaWRlIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0K
KyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiAiUmVuZGVyTWF0aE1MU2NyaXB0cyI7IH0KIAogICAgIHZvaWQgZml4QW5vbnltb3VzU3R5
bGVGb3JTdWJTdXBQYWlyKFJlbmRlck9iamVjdCogc3ViU3VwUGFpciwgYm9vbCBpc1Bvc3RTY3Jp
cHQpOwogICAgIHZvaWQgZml4QW5vbnltb3VzU3R5bGVzKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5
bGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZl
cmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgb3ZlcnJpZGU7CiAKICAgICAvLyBP
bWl0IG91ciBzdWJzY3JpcHQgYW5kL29yIHN1cGVyc2NyaXB0LiBUaGlzIG1heSByZXR1cm4gMCBm
b3IgYSBub24tTWF0aE1MIGJhc2UgKHdoaWNoCiAgICAgLy8gd29uJ3Qgb2NjdXIgaW4gdmFsaWQg
TWF0aE1MKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVu
ZGVyTWF0aE1MU3BhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MU3BhY2UuaAppbmRleCBkNGIzYjkzLi43ZjI4ZThmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFNwYWNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTcGFjZS5oCkBAIC0zOSwxNSAr
MzksMTUgQEAgcHVibGljOgogICAgIE1hdGhNTFRleHRFbGVtZW50JiBlbGVtZW50KCkgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8TWF0aE1MVGV4dEVsZW1lbnQmPihub2RlRm9yTm9uQW5vbnltb3VzKCkp
OyB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gaXNBbm9ueW1vdXMoKSA/ICJSZW5kZXJNYXRoTUxTcGFjZSAo
YW5vbnltb3VzKSIgOiAiUmVuZGVyTWF0aE1MU3BhY2UiOyB9Ci0gICAgdmlydHVhbCBib29sIGlz
UmVuZGVyTWF0aE1MU3BhY2UoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAg
dmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVy
U3R5bGUqIG9sZFN0eWxlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNDaGlsZEFsbG93
ZWQoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW50cmluc2ljTG9n
aWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExheW91dFVuaXQmIG1heExv
Z2ljYWxXaWR0aCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21F
bGVtZW50KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBpbnQgZmlyc3RMaW5lQmFzZWxpbmUoKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTG9naWNhbFdpZHRoKCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBpc0Fub255bW91cygpID8gIlJlbmRlck1hdGhNTFNwYWNlIChhbm9ueW1vdXMpIiA6ICJS
ZW5kZXJNYXRoTUxTcGFjZSI7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJNYXRoTUxTcGFj
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3R5
bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc0NoaWxkQWxsb3dlZChjb25zdCBSZW5kZXJP
YmplY3QmLCBjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVJbnRyaW5zaWNMb2dpY2FsV2lkdGhzKExheW91
dFVuaXQmIG1pbkxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGludCBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMb2dpY2FsV2lkdGgoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlTG9naWNhbEhlaWdodCgpIG92ZXJyaWRlOwogCiAgICAgTGF5b3V0VW5p
dCBtX3dpZHRoOwogICAgIExheW91dFVuaXQgbV9oZWlnaHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFNxdWFyZVJvb3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU3F1YXJlUm9vdC5oCmluZGV4
IDgyYzc5ODguLjFlZTFkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9t
YXRobWwvUmVuZGVyTWF0aE1MU3F1YXJlUm9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9tYXRobWwvUmVuZGVyTWF0aE1MU3F1YXJlUm9vdC5oCkBAIC0zOCw4ICszOCw4IEBAIHB1
YmxpYzoKICAgICBSZW5kZXJNYXRoTUxTcXVhcmVSb290KEVsZW1lbnQmLCBQYXNzUmVmPFJlbmRl
clN0eWxlPik7CiAgICAgCiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlck1hdGhN
TFNxdWFyZVJvb3QoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVh
bCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gIlJlbmRl
ck1hdGhNTFNxdWFyZVJvb3QiOyB9CisgICAgdmlydHVhbCBib29sIGlzUmVuZGVyTWF0aE1MU3F1
YXJlUm9vdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGNv
bnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVyTWF0
aE1MU3F1YXJlUm9vdCI7IH0KIH07CiAgICAgCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFVuZGVyT3Zlci5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxVbmRlck92ZXIuaAppbmRleCBjNTVkYWMw
Li45NDA5Nzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTFVuZGVyT3Zlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRo
bWwvUmVuZGVyTWF0aE1MVW5kZXJPdmVyLmgKQEAgLTM4LDExICszOCwxMSBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgdmlydHVhbCBSZW5kZXJNYXRoTUxPcGVyYXRvciogdW5lbWJlbGxpc2hlZE9wZXJh
dG9yKCk7CiAKLSAgICB2aXJ0dWFsIGludCBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgaW50IGZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgCiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlck1hdGhNTFVuZGVyT3Zl
cigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IGNo
YXIqIHJlbmRlck5hbWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAiUmVuZGVyTWF0aE1MVW5k
ZXJPdmVyIjsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlck1hdGhNTFVuZGVyT3ZlcigpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJl
bmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVyTWF0aE1MVW5kZXJPdmVy
IjsgfQogCiAgICAgZW51bSBVbmRlck92ZXJUeXBlIHsgVW5kZXIsIE92ZXIsIFVuZGVyT3ZlciB9
OwogICAgIFVuZGVyT3ZlclR5cGUgbV9raW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3No
YXBlcy9Cb3hTaGFwZS5oCmluZGV4IGRkNTUyMDEuLjk3NTU3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmgKQEAgLTQyLDE0ICs0MiwxNCBAQCBwdWJsaWM6
CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBzaGFwZU1hcmdpbkxvZ2lj
YWxCb3VuZGluZ0JveCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBz
aGFwZVBhZGRpbmdMb2dpY2FsQm91bmRpbmdCb3goKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgaXNFbXB0eSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fYm91bmRzLmlzRW1w
dHkoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBnZXRFeGNsdWRlZEludGVydmFscyhMYXlvdXRVbml0
IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0SW5jbHVkZWRJbnRlcnZhbHMoTGF5b3V0
VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0Jikg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGZpcnN0SW5jbHVkZWRJbnRlcnZhbExv
Z2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IEZsb2F0U2l6
ZSYgbWluTG9naWNhbEludGVydmFsU2l6ZSwgTGF5b3V0VW5pdCYpIGNvbnN0IE9WRVJSSURFOwot
Ci0gICAgdmlydHVhbCB2b2lkIGJ1aWxkRGlzcGxheVBhdGhzKERpc3BsYXlQYXRocyYpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBzaGFwZU1hcmdpbkxvZ2ljYWxCb3Vu
ZGluZ0JveCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBzaGFwZVBh
ZGRpbmdMb2dpY2FsQm91bmRpbmdCb3goKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJv
b2wgaXNFbXB0eSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fYm91bmRzLmlzRW1wdHkoKTsg
fQorICAgIHZpcnR1YWwgdm9pZCBnZXRFeGNsdWRlZEludGVydmFscyhMYXlvdXRVbml0IGxvZ2lj
YWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0SW5jbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBs
b2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxU
b3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IEZsb2F0U2l6ZSYgbWlu
TG9naWNhbEludGVydmFsU2l6ZSwgTGF5b3V0VW5pdCYpIGNvbnN0IG92ZXJyaWRlOworCisgICAg
dmlydHVhbCB2b2lkIGJ1aWxkRGlzcGxheVBhdGhzKERpc3BsYXlQYXRocyYpIGNvbnN0IG92ZXJy
aWRlOwogCiBwcml2YXRlOgogICAgIEZsb2F0Um91bmRlZFJlY3Qgc2hhcGVNYXJnaW5Cb3VuZHMo
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUG9s
eWdvblNoYXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1BvbHlnb25TaGFw
ZS5oCmluZGV4IDhiMzJlYWQuLjA5ZjcxNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zaGFwZXMvUG9seWdvblNoYXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3NoYXBlcy9Qb2x5Z29uU2hhcGUuaApAQCAtNjcsOCArNjcsOCBAQCBwdWJsaWM6CiAgICAg
ewogICAgIH0KIAotICAgIHZpcnR1YWwgY29uc3QgRmxvYXRQb2ludCYgdmVydGV4MSgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIG1fdmVydGV4MTsgfQotICAgIHZpcnR1YWwgY29uc3QgRmxvYXRQ
b2ludCYgdmVydGV4MigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fdmVydGV4MjsgfQorICAg
IHZpcnR1YWwgY29uc3QgRmxvYXRQb2ludCYgdmVydGV4MSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG1fdmVydGV4MTsgfQorICAgIHZpcnR1YWwgY29uc3QgRmxvYXRQb2ludCYgdmVydGV4Migp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fdmVydGV4MjsgfQogICAgIGludCBlZGdlSW5kZXgo
KSBjb25zdCB7IHJldHVybiBtX2VkZ2VJbmRleDsgfQogICAgIEJhc2lzIGJhc2lzKCkgY29uc3Qg
eyByZXR1cm4gbV9iYXNpczsgfQogCkBAIC04OSwxNCArODksMTQgQEAgcHVibGljOgogICAgIHsK
ICAgICB9CiAKLSAgICB2aXJ0dWFsIExheW91dFJlY3Qgc2hhcGVNYXJnaW5Mb2dpY2FsQm91bmRp
bmdCb3goKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBzdGF0aWNfY2FzdDxMYXlvdXRSZWN0Pihz
aGFwZU1hcmdpbkJvdW5kcygpLmJvdW5kaW5nQm94KCkpOyB9Ci0gICAgdmlydHVhbCBMYXlvdXRS
ZWN0IHNoYXBlUGFkZGluZ0xvZ2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIHN0YXRpY19jYXN0PExheW91dFJlY3Q+KHNoYXBlUGFkZGluZ0JvdW5kcygpLmJvdW5kaW5n
Qm94KCkpOyB9Ci0gICAgdmlydHVhbCBib29sIGlzRW1wdHkoKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiBtX3BvbHlnb24uaXNFbXB0eSgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGdldEV4Y2x1ZGVk
SW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0
LCBTZWdtZW50TGlzdCYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBnZXRJbmNs
dWRlZEludGVydmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhl
aWdodCwgU2VnbWVudExpc3QmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgZmly
c3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRlcnZh
bFRvcCwgY29uc3QgRmxvYXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0
JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IHNoYXBlTWFyZ2luTG9n
aWNhbEJvdW5kaW5nQm94KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3RhdGljX2Nhc3Q8TGF5
b3V0UmVjdD4oc2hhcGVNYXJnaW5Cb3VuZHMoKS5ib3VuZGluZ0JveCgpKTsgfQorICAgIHZpcnR1
YWwgTGF5b3V0UmVjdCBzaGFwZVBhZGRpbmdMb2dpY2FsQm91bmRpbmdCb3goKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBzdGF0aWNfY2FzdDxMYXlvdXRSZWN0PihzaGFwZVBhZGRpbmdCb3VuZHMo
KS5ib3VuZGluZ0JveCgpKTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5KCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbV9wb2x5Z29uLmlzRW1wdHkoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBn
ZXRFeGNsdWRlZEludGVydmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9n
aWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0SW5jbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0
IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBib29sIGZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dp
Y2FsSW50ZXJ2YWxUb3AsIGNvbnN0IEZsb2F0U2l6ZSYgbWluTG9naWNhbEludGVydmFsU2l6ZSwg
TGF5b3V0VW5pdCYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGJ1aWxkRGlz
cGxheVBhdGhzKERpc3BsYXlQYXRocyYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBidWlsZERpc3BsYXlQYXRocyhEaXNwbGF5UGF0aHMmKSBjb25zdCBvdmVycmlkZTsKIAogcHJp
dmF0ZToKICAgICBjb25zdCBGbG9hdFBvbHlnb24mIHNoYXBlTWFyZ2luQm91bmRzKCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1Jhc3RlclNoYXBl
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1Jhc3RlclNoYXBlLmgKaW5kZXgg
NjM2OGRkZS4uYzA0ZWYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3No
YXBlcy9SYXN0ZXJTaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMv
UmFzdGVyU2hhcGUuaApAQCAtOTUsMTQgKzk1LDE0IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQog
Ci0gICAgdmlydHVhbCBMYXlvdXRSZWN0IHNoYXBlTWFyZ2luTG9naWNhbEJvdW5kaW5nQm94KCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gc3RhdGljX2Nhc3Q8TGF5b3V0UmVjdD4obWFyZ2luSW50
ZXJ2YWxzKCkuYm91bmRzKCkpOyB9Ci0gICAgdmlydHVhbCBMYXlvdXRSZWN0IHNoYXBlUGFkZGlu
Z0xvZ2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHN0YXRpY19jYXN0
PExheW91dFJlY3Q+KHBhZGRpbmdJbnRlcnZhbHMoKS5ib3VuZHMoKSk7IH0KLSAgICB2aXJ0dWFs
IGJvb2wgaXNFbXB0eSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1faW50ZXJ2YWxzLT5pc0Vt
cHR5KCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZ2V0RXhjbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5p
dCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JikgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGdldEluY2x1ZGVkSW50ZXJ2YWxzKExheW91
dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBmaXJzdEluY2x1ZGVkSW50ZXJ2YWxM
b2dpY2FsVG9wKExheW91dFVuaXQgbWluTG9naWNhbEludGVydmFsVG9wLCBjb25zdCBGbG9hdFNp
emUmIG1pbkxvZ2ljYWxJbnRlcnZhbFNpemUsIExheW91dFVuaXQmKSBjb25zdCBPVkVSUklERTsK
LQotICAgIHZpcnR1YWwgdm9pZCBidWlsZERpc3BsYXlQYXRocyhEaXNwbGF5UGF0aHMmIHBhdGhz
KSBjb25zdCBPVkVSUklERQorICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBzaGFwZU1hcmdpbkxvZ2lj
YWxCb3VuZGluZ0JveCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0YXRpY19jYXN0PExheW91
dFJlY3Q+KG1hcmdpbkludGVydmFscygpLmJvdW5kcygpKTsgfQorICAgIHZpcnR1YWwgTGF5b3V0
UmVjdCBzaGFwZVBhZGRpbmdMb2dpY2FsQm91bmRpbmdCb3goKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBzdGF0aWNfY2FzdDxMYXlvdXRSZWN0PihwYWRkaW5nSW50ZXJ2YWxzKCkuYm91bmRzKCkp
OyB9CisgICAgdmlydHVhbCBib29sIGlzRW1wdHkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X2ludGVydmFscy0+aXNFbXB0eSgpOyB9CisgICAgdmlydHVhbCB2b2lkIGdldEV4Y2x1ZGVkSW50
ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBT
ZWdtZW50TGlzdCYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBnZXRJbmNsdWRl
ZEludGVydmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdo
dCwgU2VnbWVudExpc3QmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZmlyc3RJ
bmNsdWRlZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0IG1pbkxvZ2ljYWxJbnRlcnZhbFRv
cCwgY29uc3QgRmxvYXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2YWxTaXplLCBMYXlvdXRVbml0Jikg
Y29uc3Qgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgYnVpbGREaXNwbGF5UGF0aHMoRGlz
cGxheVBhdGhzJiBwYXRocykgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIG1faW50ZXJ2
YWxzLT5idWlsZEJvdW5kc1BhdGgocGF0aHMuc2hhcGUpOwogICAgICAgICBpZiAoc2hhcGVNYXJn
aW4oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmVjdGFu
Z2xlU2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvUmVjdGFuZ2xlU2hh
cGUuaAppbmRleCBiOTQwZjIzLi43ZmRlNWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc2hhcGVzL1JlY3RhbmdsZVNoYXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3NoYXBlcy9SZWN0YW5nbGVTaGFwZS5oCkBAIC00NywxNCArNDcsMTQgQEAgcHVibGlj
OgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIExheW91dFJlY3Qgc2hhcGVNYXJnaW5Mb2dp
Y2FsQm91bmRpbmdCb3goKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBzdGF0aWNfY2FzdDxMYXlv
dXRSZWN0PihzaGFwZU1hcmdpbkJvdW5kcygpKTsgfQotICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBz
aGFwZVBhZGRpbmdMb2dpY2FsQm91bmRpbmdCb3goKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBz
dGF0aWNfY2FzdDxMYXlvdXRSZWN0PihzaGFwZVBhZGRpbmdCb3VuZHMoKSk7IH0KLSAgICB2aXJ0
dWFsIGJvb2wgaXNFbXB0eSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fYm91bmRzLmlzRW1w
dHkoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBnZXRFeGNsdWRlZEludGVydmFscyhMYXlvdXRVbml0
IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0SW5jbHVkZWRJbnRlcnZhbHMoTGF5b3V0
VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0Jikg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGZpcnN0SW5jbHVkZWRJbnRlcnZhbExv
Z2ljYWxUb3AoTGF5b3V0VW5pdCBtaW5Mb2dpY2FsSW50ZXJ2YWxUb3AsIGNvbnN0IEZsb2F0U2l6
ZSYgbWluTG9naWNhbEludGVydmFsU2l6ZSwgTGF5b3V0VW5pdCYpIGNvbnN0IE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBzaGFwZU1hcmdpbkxvZ2ljYWxCb3VuZGluZ0JveCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0YXRpY19jYXN0PExheW91dFJlY3Q+KHNoYXBlTWFyZ2lu
Qm91bmRzKCkpOyB9CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IHNoYXBlUGFkZGluZ0xvZ2ljYWxC
b3VuZGluZ0JveCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0YXRpY19jYXN0PExheW91dFJl
Y3Q+KHNoYXBlUGFkZGluZ0JvdW5kcygpKTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9ib3VuZHMuaXNFbXB0eSgpOyB9CisgICAgdmlydHVh
bCB2b2lkIGdldEV4Y2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0
VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBnZXRJbmNsdWRlZEludGVydmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExh
eW91dFVuaXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGJvb2wgZmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChMYXlvdXRVbml0
IG1pbkxvZ2ljYWxJbnRlcnZhbFRvcCwgY29uc3QgRmxvYXRTaXplJiBtaW5Mb2dpY2FsSW50ZXJ2
YWxTaXplLCBMYXlvdXRVbml0JikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
YnVpbGREaXNwbGF5UGF0aHMoRGlzcGxheVBhdGhzJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGJ1aWxkRGlzcGxheVBhdGhzKERpc3BsYXlQYXRocyYpIGNvbnN0IG92ZXJyaWRl
OwogCiBwcml2YXRlOgogICAgIEZsb2F0UmVjdCBzaGFwZU1hcmdpbkJvdW5kcygpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUlu
Zm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmgK
aW5kZXggNGQ5ZjQ2MC4uMDUyYmVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5oCkBAIC0xMDEsMTMgKzEwMSwxMyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXROZWVkc0xheW91dChib29sIHZhbHVlKSB7IG1fbmVlZHNMYXlvdXQgPSB2
YWx1ZTsgfQogICAgIGJvb2wgbmVlZHNMYXlvdXQoKSB7IHJldHVybiBtX25lZWRzTGF5b3V0OyB9
CiAKLSAgICB2aXJ0dWFsIGJvb2wgbGluZU92ZXJsYXBzU2hhcGVCb3VuZHMoKSBjb25zdCBPVkVS
UklERQorICAgIHZpcnR1YWwgYm9vbCBsaW5lT3ZlcmxhcHNTaGFwZUJvdW5kcygpIGNvbnN0IG92
ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gY29tcHV0ZWRTaGFwZSgpLmxpbmVPdmVybGFw
c1NoYXBlUGFkZGluZ0JvdW5kcyhtX3NoYXBlTGluZVRvcCwgbV9saW5lSGVpZ2h0KTsKICAgICB9
CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIExheW91dEJveCByZXNvbHZlZExheW91dEJveCgp
IGNvbnN0IE9WRVJSSURFCisgICAgdmlydHVhbCBMYXlvdXRCb3ggcmVzb2x2ZWRMYXlvdXRCb3go
KSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKHNoYXBlVmFsdWUoKS0+bGF5b3V0
Qm94KCkgPT0gQm94TWlzc2luZykKICAgICAgICAgICAgIHJldHVybiBDb250ZW50Qm94OwpAQCAt
MTE2LDkgKzExNiw5IEBAIHByb3RlY3RlZDoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVh
bCBMYXlvdXRSZWN0IGNvbXB1dGVkU2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiBjb21wdXRlZFNoYXBlKCkuc2hhcGVQYWRkaW5nTG9naWNhbEJvdW5kaW5n
Qm94KCk7IH0KLSAgICB2aXJ0dWFsIFNoYXBlVmFsdWUqIHNoYXBlVmFsdWUoKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0SW50ZXJ2YWxzKExheW91dFVuaXQgbGluZVRvcCwg
TGF5b3V0VW5pdCBsaW5lSGVpZ2h0LCBTZWdtZW50TGlzdCYgc2VnbWVudHMpIGNvbnN0IE9WRVJS
SURFCisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNvbXB1dGVkU2hhcGVMb2dpY2FsQm91bmRpbmdC
b3goKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBjb21wdXRlZFNoYXBlKCkuc2hhcGVQYWRkaW5n
TG9naWNhbEJvdW5kaW5nQm94KCk7IH0KKyAgICB2aXJ0dWFsIFNoYXBlVmFsdWUqIHNoYXBlVmFs
dWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0SW50ZXJ2YWxzKExheW91
dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0LCBTZWdtZW50TGlzdCYgc2VnbWVu
dHMpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gY29tcHV0ZWRTaGFwZSgp
LmdldEluY2x1ZGVkSW50ZXJ2YWxzKGxpbmVUb3AsIGxpbmVIZWlnaHQsIHNlZ21lbnRzKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0
c2lkZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRl
SW5mby5oCmluZGV4IDcxYmQ4MmEuLmQ5Yzc4OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5oCkBAIC01NSwxMyArNTUsMTMgQEAg
cHVibGljOgogCiAgICAgdm9pZCB1cGRhdGVEZWx0YXNGb3JDb250YWluaW5nQmxvY2tMaW5lKGNv
bnN0IFJlbmRlckJsb2NrRmxvdyYsIGNvbnN0IEZsb2F0aW5nT2JqZWN0JiwgTGF5b3V0VW5pdCBs
aW5lVG9wLCBMYXlvdXRVbml0IGxpbmVIZWlnaHQpOwogCi0gICAgdmlydHVhbCBib29sIGxpbmVP
dmVybGFwc1NoYXBlQm91bmRzKCkgY29uc3QgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIGJvb2wgbGlu
ZU92ZXJsYXBzU2hhcGVCb3VuZHMoKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgcmV0
dXJuIGNvbXB1dGVkU2hhcGUoKS5saW5lT3ZlcmxhcHNTaGFwZU1hcmdpbkJvdW5kcyhtX3NoYXBl
TGluZVRvcCwgbV9saW5lSGVpZ2h0KTsKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFs
IExheW91dEJveCByZXNvbHZlZExheW91dEJveCgpIGNvbnN0IE9WRVJSSURFCisgICAgdmlydHVh
bCBMYXlvdXRCb3ggcmVzb2x2ZWRMYXlvdXRCb3goKSBjb25zdCBvdmVycmlkZQogICAgIHsKICAg
ICAgICAgaWYgKHNoYXBlVmFsdWUoKS0+bGF5b3V0Qm94KCkgPT0gQm94TWlzc2luZykgewogICAg
ICAgICAgICAgaWYgKHNoYXBlVmFsdWUoKS0+dHlwZSgpID09IFNoYXBlVmFsdWU6OkltYWdlKQpA
QCAtNzIsOSArNzIsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgfQogCiBwcml2YXRlOgotICAgIHZpcnR1
YWwgTGF5b3V0UmVjdCBjb21wdXRlZFNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gY29tcHV0ZWRTaGFwZSgpLnNoYXBlTWFyZ2luTG9naWNhbEJvdW5kaW5n
Qm94KCk7IH0KLSAgICB2aXJ0dWFsIFNoYXBlVmFsdWUqIHNoYXBlVmFsdWUoKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0SW50ZXJ2YWxzKExheW91dFVuaXQgbGluZVRvcCwg
TGF5b3V0VW5pdCBsaW5lSGVpZ2h0LCBTZWdtZW50TGlzdCYgc2VnbWVudHMpIGNvbnN0IE9WRVJS
SURFCisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNvbXB1dGVkU2hhcGVMb2dpY2FsQm91bmRpbmdC
b3goKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBjb21wdXRlZFNoYXBlKCkuc2hhcGVNYXJnaW5M
b2dpY2FsQm91bmRpbmdCb3goKTsgfQorICAgIHZpcnR1YWwgU2hhcGVWYWx1ZSogc2hhcGVWYWx1
ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBnZXRJbnRlcnZhbHMoTGF5b3V0
VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVIZWlnaHQsIFNlZ21lbnRMaXN0JiBzZWdtZW50
cykgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIHJldHVybiBjb21wdXRlZFNoYXBlKCku
Z2V0RXhjbHVkZWRJbnRlcnZhbHMobGluZVRvcCwgbGluZUhlaWdodCwgc2VnbWVudHMpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBl
cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmgKaW5kZXgg
MzE2MGE0Zi4uZTBmMzQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0Jhc2ljU2hhcGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0Jh
c2ljU2hhcGVzLmgKQEAgLTEwOCwxMCArMTA4LDEwIEBAIHB1YmxpYzoKICAgICAgICAgbV9jb3Ju
ZXJSYWRpdXNZID0gc3RkOjptb3ZlKHJhZGl1c1kpOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9p
ZCBwYXRoKFBhdGgmLCBjb25zdCBGbG9hdFJlY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8QmFzaWNTaGFwZT4gYmxlbmQoY29uc3QgQmFzaWNTaGFwZSosIGRvdWJsZSwgY29u
c3QgUmVuZGVyQm94JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhdGgoUGF0
aCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxC
YXNpY1NoYXBlPiBibGVuZChjb25zdCBCYXNpY1NoYXBlKiwgZG91YmxlLCBjb25zdCBSZW5kZXJC
b3gmKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gQmFzaWNTaGFwZVJlY3RhbmdsZVR5cGU7IH0KKyAgICB2aXJ0dWFsIFR5
cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEJhc2ljU2hhcGVSZWN0YW5nbGVUeXBl
OyB9CiBwcml2YXRlOgogICAgIEJhc2ljU2hhcGVSZWN0YW5nbGUoKSB7IH0KIApAQCAtMTk5LDEw
ICsxOTksMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q2VudGVyWShCYXNpY1NoYXBlQ2VudGVy
Q29vcmRpbmF0ZSBjZW50ZXJZKSB7IG1fY2VudGVyWSA9IHN0ZDo6bW92ZShjZW50ZXJZKTsgfQog
ICAgIHZvaWQgc2V0UmFkaXVzKEJhc2ljU2hhcGVSYWRpdXMgcmFkaXVzKSB7IG1fcmFkaXVzID0g
c3RkOjptb3ZlKHJhZGl1cyk7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBwYXRoKFBhdGgmLCBjb25z
dCBGbG9hdFJlY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QmFzaWNTaGFw
ZT4gYmxlbmQoY29uc3QgQmFzaWNTaGFwZSosIGRvdWJsZSwgY29uc3QgUmVuZGVyQm94JikgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhdGgoUGF0aCYsIGNvbnN0IEZsb2F0UmVj
dCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBibGVuZChj
b25zdCBCYXNpY1NoYXBlKiwgZG91YmxlLCBjb25zdCBSZW5kZXJCb3gmKSBjb25zdCBvdmVycmlk
ZTsKIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gQmFz
aWNTaGFwZUNpcmNsZVR5cGU7IH0KKyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIEJhc2ljU2hhcGVDaXJjbGVUeXBlOyB9CiBwcml2YXRlOgogICAgIEJhc2lj
U2hhcGVDaXJjbGUoKSB7IH0KIApAQCAtMjIzLDEwICsyMjMsMTAgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0Q2VudGVyWShMZW5ndGggY2VudGVyWSkgeyBtX2NlbnRlclkgPSBzdGQ6Om1vdmUoY2Vu
dGVyWSk7IH0KICAgICB2b2lkIHNldFJhZGl1cyhMZW5ndGggcmFkaXVzKSB7IG1fcmFkaXVzID0g
c3RkOjptb3ZlKHJhZGl1cyk7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBwYXRoKFBhdGgmLCBjb25z
dCBGbG9hdFJlY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QmFzaWNTaGFw
ZT4gYmxlbmQoY29uc3QgQmFzaWNTaGFwZSosIGRvdWJsZSwgY29uc3QgUmVuZGVyQm94JikgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhdGgoUGF0aCYsIGNvbnN0IEZsb2F0UmVj
dCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBibGVuZChj
b25zdCBCYXNpY1NoYXBlKiwgZG91YmxlLCBjb25zdCBSZW5kZXJCb3gmKSBjb25zdCBvdmVycmlk
ZTsKIAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gRGVw
cmVjYXRlZEJhc2ljU2hhcGVDaXJjbGVUeXBlOyB9CisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBEZXByZWNhdGVkQmFzaWNTaGFwZUNpcmNsZVR5cGU7IH0K
IHByaXZhdGU6CiAgICAgRGVwcmVjYXRlZEJhc2ljU2hhcGVDaXJjbGUoKSB7IH0KIApAQCAtMjUw
LDEwICsyNTAsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmFkaXVzWChCYXNpY1NoYXBlUmFk
aXVzIHJhZGl1c1gpIHsgbV9yYWRpdXNYID0gc3RkOjptb3ZlKHJhZGl1c1gpOyB9CiAgICAgdm9p
ZCBzZXRSYWRpdXNZKEJhc2ljU2hhcGVSYWRpdXMgcmFkaXVzWSkgeyBtX3JhZGl1c1kgPSBzdGQ6
Om1vdmUocmFkaXVzWSk7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBwYXRoKFBhdGgmLCBjb25zdCBG
bG9hdFJlY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4g
YmxlbmQoY29uc3QgQmFzaWNTaGFwZSosIGRvdWJsZSwgY29uc3QgUmVuZGVyQm94JikgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhdGgoUGF0aCYsIGNvbnN0IEZsb2F0UmVjdCYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBibGVuZChjb25z
dCBCYXNpY1NoYXBlKiwgZG91YmxlLCBjb25zdCBSZW5kZXJCb3gmKSBjb25zdCBvdmVycmlkZTsK
IAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gQmFzaWNT
aGFwZUVsbGlwc2VUeXBlOyB9CisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBCYXNpY1NoYXBlRWxsaXBzZVR5cGU7IH0KIHByaXZhdGU6CiAgICAgQmFzaWNT
aGFwZUVsbGlwc2UoKSB7IH0KIApAQCAtMjc3LDEwICsyNzcsMTAgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0UmFkaXVzWChMZW5ndGggcmFkaXVzWCkgeyBtX3JhZGl1c1ggPSBzdGQ6Om1vdmUocmFk
aXVzWCk7IH0KICAgICB2b2lkIHNldFJhZGl1c1koTGVuZ3RoIHJhZGl1c1kpIHsgbV9yYWRpdXNZ
ID0gc3RkOjptb3ZlKHJhZGl1c1kpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGF0aChQYXRoJiwg
Y29uc3QgRmxvYXRSZWN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPEJhc2lj
U2hhcGU+IGJsZW5kKGNvbnN0IEJhc2ljU2hhcGUqLCBkb3VibGUsIGNvbnN0IFJlbmRlckJveCYp
IGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYXRoKFBhdGgmLCBjb25zdCBGbG9h
dFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4gYmxl
bmQoY29uc3QgQmFzaWNTaGFwZSosIGRvdWJsZSwgY29uc3QgUmVuZGVyQm94JikgY29uc3Qgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IERlcHJlY2F0ZWRCYXNpY1NoYXBlRWxsaXBzZVR5cGU7IH0KKyAgICB2aXJ0dWFsIFR5cGUgdHlw
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIERlcHJlY2F0ZWRCYXNpY1NoYXBlRWxsaXBzZVR5
cGU7IH0KIHByaXZhdGU6CiAgICAgRGVwcmVjYXRlZEJhc2ljU2hhcGVFbGxpcHNlKCkgeyB9CiAK
QEAgLTMwMSwxMiArMzAxLDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFdpbmRSdWxlKFdpbmRS
dWxlIHdpbmRSdWxlKSB7IG1fd2luZFJ1bGUgPSB3aW5kUnVsZTsgfQogICAgIHZvaWQgYXBwZW5k
UG9pbnQoTGVuZ3RoIHgsIExlbmd0aCB5KSB7IG1fdmFsdWVzLmFwcGVuZChzdGQ6Om1vdmUoeCkp
OyBtX3ZhbHVlcy5hcHBlbmQoc3RkOjptb3ZlKHkpKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHBh
dGgoUGF0aCYsIGNvbnN0IEZsb2F0UmVjdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxCYXNpY1NoYXBlPiBibGVuZChjb25zdCBCYXNpY1NoYXBlKiwgZG91YmxlLCBjb25zdCBS
ZW5kZXJCb3gmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGF0aChQYXRoJiwg
Y29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEJhc2lj
U2hhcGU+IGJsZW5kKGNvbnN0IEJhc2ljU2hhcGUqLCBkb3VibGUsIGNvbnN0IFJlbmRlckJveCYp
IGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBXaW5kUnVsZSB3aW5kUnVsZSgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIG1fd2luZFJ1bGU7IH0KKyAgICB2aXJ0dWFsIFdpbmRSdWxlIHdp
bmRSdWxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV93aW5kUnVsZTsgfQogCi0gICAgdmly
dHVhbCBUeXBlIHR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBCYXNpY1NoYXBlUG9seWdv
blR5cGU7IH0KKyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IEJhc2ljU2hhcGVQb2x5Z29uVHlwZTsgfQogcHJpdmF0ZToKICAgICBCYXNpY1NoYXBlUG9seWdv
bigpCiAgICAgICAgIDogbV93aW5kUnVsZShSVUxFX05PTlpFUk8pCkBAIC0zNDIsMTAgKzM0Miwx
MCBAQCBwdWJsaWM6CiAgICAgICAgIG1fY29ybmVyUmFkaXVzWSA9IHN0ZDo6bW92ZShyYWRpdXNZ
KTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGF0aChQYXRoJiwgY29uc3QgRmxvYXRSZWN0
JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPEJhc2ljU2hhcGU+IGJsZW5kKGNv
bnN0IEJhc2ljU2hhcGUqLCBkb3VibGUsIGNvbnN0IFJlbmRlckJveCYpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBwYXRoKFBhdGgmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4gYmxlbmQoY29uc3QgQmFzaWNT
aGFwZSosIGRvdWJsZSwgY29uc3QgUmVuZGVyQm94JikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2
aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIEJhc2ljU2hhcGVJbnNl
dFJlY3RhbmdsZVR5cGU7IH0KKyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIEJhc2ljU2hhcGVJbnNldFJlY3RhbmdsZVR5cGU7IH0KIHByaXZhdGU6CiAgICAg
QmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlKCkgeyB9CiAKQEAgLTM4MSwxMCArMzgxLDEwIEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldEJvdHRvbVJpZ2h0UmFkaXVzKExlbmd0aFNpemUgcmFkaXVzKSB7
IG1fYm90dG9tUmlnaHRSYWRpdXMgPSBzdGQ6Om1vdmUocmFkaXVzKTsgfQogICAgIHZvaWQgc2V0
Qm90dG9tTGVmdFJhZGl1cyhMZW5ndGhTaXplIHJhZGl1cykgeyBtX2JvdHRvbUxlZnRSYWRpdXMg
PSBzdGQ6Om1vdmUocmFkaXVzKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHBhdGgoUGF0aCYsIGNv
bnN0IEZsb2F0UmVjdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxCYXNpY1No
YXBlPiBibGVuZChjb25zdCBCYXNpY1NoYXBlKiwgZG91YmxlLCBjb25zdCBSZW5kZXJCb3gmKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGF0aChQYXRoJiwgY29uc3QgRmxvYXRS
ZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEJhc2ljU2hhcGU+IGJsZW5k
KGNvbnN0IEJhc2ljU2hhcGUqLCBkb3VibGUsIGNvbnN0IFJlbmRlckJveCYpIGNvbnN0IG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBC
YXNpY1NoYXBlSW5zZXRUeXBlOyB9CisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBCYXNpY1NoYXBlSW5zZXRUeXBlOyB9CiBwcml2YXRlOgogICAgIEJhc2lj
U2hhcGVJbnNldCgpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvQ29udGVudERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Db250
ZW50RGF0YS5oCmluZGV4IGIzMGUyOWYuLjRjNTVkNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5oCkBAIC03NiwxMCArNzYsMTAgQEAgcHVibGljOgog
ICAgIFN0eWxlSW1hZ2UqIGltYWdlKCkgeyByZXR1cm4gbV9pbWFnZS5nZXQoKTsgfQogICAgIHZv
aWQgc2V0SW1hZ2UoUGFzc1JlZlB0cjxTdHlsZUltYWdlPiBpbWFnZSkgeyBtX2ltYWdlID0gaW1h
Z2U7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gY3JlYXRlQ29u
dGVudFJlbmRlcmVyKERvY3VtZW50JiwgY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGNyZWF0ZUNvbnRlbnRS
ZW5kZXJlcihEb2N1bWVudCYsIGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7CiAK
LSAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNvbnN0IENvbnRlbnREYXRhJiBkYXRhKSBjb25zdCBP
VkVSUklERQorICAgIHZpcnR1YWwgYm9vbCBlcXVhbHMoY29uc3QgQ29udGVudERhdGEmIGRhdGEp
IGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoIWRhdGEuaXNJbWFnZSgpKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAgICAgfQog
CiBwcml2YXRlOgotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPENvbnRlbnREYXRhPiBjbG9u
ZUludGVybmFsKCkgY29uc3QgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxD
b250ZW50RGF0YT4gY2xvbmVJbnRlcm5hbCgpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAg
ICBSZWZQdHI8U3R5bGVJbWFnZT4gaW1hZ2UgPSBjb25zdF9jYXN0PFN0eWxlSW1hZ2UqPih0aGlz
LT5pbWFnZSgpKTsKIApAQCAtMTA3LDEwICsxMDcsMTAgQEAgcHVibGljOgogICAgIGNvbnN0IFN0
cmluZyYgdGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dDsgfQogICAgIHZvaWQgc2V0VGV4dChj
b25zdCBTdHJpbmcmIHRleHQpIHsgbV90ZXh0ID0gdGV4dDsgfQogCi0gICAgdmlydHVhbCBib29s
IGlzVGV4dCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIFJl
bmRlclB0cjxSZW5kZXJPYmplY3Q+IGNyZWF0ZUNvbnRlbnRSZW5kZXJlcihEb2N1bWVudCYsIGNv
bnN0IFJlbmRlclN0eWxlJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlzVGV4
dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIFJlbmRlclB0
cjxSZW5kZXJPYmplY3Q+IGNyZWF0ZUNvbnRlbnRSZW5kZXJlcihEb2N1bWVudCYsIGNvbnN0IFJl
bmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgZXF1YWxzKGNv
bnN0IENvbnRlbnREYXRhJiBkYXRhKSBjb25zdCBPVkVSUklERQorICAgIHZpcnR1YWwgYm9vbCBl
cXVhbHMoY29uc3QgQ29udGVudERhdGEmIGRhdGEpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAg
ICAgICBpZiAoIWRhdGEuaXNUZXh0KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0x
MTgsNyArMTE4LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHN0
ZDo6dW5pcXVlX3B0cjxDb250ZW50RGF0YT4gY2xvbmVJbnRlcm5hbCgpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8VGV4dENvbnRlbnREYXRhPih0ZXh0KCkpOyB9Cisg
ICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8Q29udGVudERhdGE+IGNsb25lSW50ZXJuYWwoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFRleHRDb250ZW50RGF0YT4o
dGV4dCgpKTsgfQogCiAgICAgU3RyaW5nIG1fdGV4dDsKIH07CkBAIC0xMzMsMTcgKzEzMywxNyBA
QCBwdWJsaWM6CiAgICAgY29uc3QgQ291bnRlckNvbnRlbnQqIGNvdW50ZXIoKSBjb25zdCB7IHJl
dHVybiBtX2NvdW50ZXIuZ2V0KCk7IH0KICAgICB2b2lkIHNldENvdW50ZXIoc3RkOjp1bmlxdWVf
cHRyPENvdW50ZXJDb250ZW50PiBjb3VudGVyKSB7IG1fY291bnRlciA9IHN0ZDo6bW92ZShjb3Vu
dGVyKTsgfQogCi0gICAgdmlydHVhbCBib29sIGlzQ291bnRlcigpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGNyZWF0
ZUNvbnRlbnRSZW5kZXJlcihEb2N1bWVudCYsIGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBib29sIGlzQ291bnRlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGNyZWF0ZUNv
bnRlbnRSZW5kZXJlcihEb2N1bWVudCYsIGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJp
ZGU7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8Q29udGVudERhdGE+
IGNsb25lSW50ZXJuYWwoKSBjb25zdCBPVkVSUklERQorICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVf
cHRyPENvbnRlbnREYXRhPiBjbG9uZUludGVybmFsKCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAg
ICAgICAgIGF1dG8gY291bnRlckRhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPENvdW50ZXJDb250ZW50
PigqY291bnRlcigpKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Q291bnRlckNv
bnRlbnREYXRhPihzdGQ6Om1vdmUoY291bnRlckRhdGEpKTsKICAgICB9CiAKLSAgICB2aXJ0dWFs
IGJvb2wgZXF1YWxzKGNvbnN0IENvbnRlbnREYXRhJiBkYXRhKSBjb25zdCBPVkVSUklERQorICAg
IHZpcnR1YWwgYm9vbCBlcXVhbHMoY29uc3QgQ29udGVudERhdGEmIGRhdGEpIGNvbnN0IG92ZXJy
aWRlCiAgICAgewogICAgICAgICBpZiAoIWRhdGEuaXNDb3VudGVyKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC0xNjMsMTAgKzE2MywxMCBAQCBwdWJsaWM6CiAgICAgUXVvdGVUeXBl
IHF1b3RlKCkgY29uc3QgeyByZXR1cm4gbV9xdW90ZTsgfQogICAgIHZvaWQgc2V0UXVvdGUoUXVv
dGVUeXBlIHF1b3RlKSB7IG1fcXVvdGUgPSBxdW90ZTsgfQogCi0gICAgdmlydHVhbCBib29sIGlz
UXVvdGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBSZW5k
ZXJQdHI8UmVuZGVyT2JqZWN0PiBjcmVhdGVDb250ZW50UmVuZGVyZXIoRG9jdW1lbnQmLCBjb25z
dCBSZW5kZXJTdHlsZSYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc1F1b3Rl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlck9iamVjdD4gY3JlYXRlQ29udGVudFJlbmRlcmVyKERvY3VtZW50JiwgY29uc3QgUmVu
ZGVyU3R5bGUmKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBlcXVhbHMoY29u
c3QgQ29udGVudERhdGEmIGRhdGEpIGNvbnN0IE9WRVJSSURFCisgICAgdmlydHVhbCBib29sIGVx
dWFscyhjb25zdCBDb250ZW50RGF0YSYgZGF0YSkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAg
ICAgIGlmICghZGF0YS5pc1F1b3RlKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0x
NzQsNyArMTc0LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHN0
ZDo6dW5pcXVlX3B0cjxDb250ZW50RGF0YT4gY2xvbmVJbnRlcm5hbCgpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UXVvdGVDb250ZW50RGF0YT4ocXVvdGUoKSk7IH0K
KyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDb250ZW50RGF0YT4gY2xvbmVJbnRlcm5hbCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UXVvdGVDb250ZW50RGF0
YT4ocXVvdGUoKSk7IH0KIAogICAgIFF1b3RlVHlwZSBtX3F1b3RlOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5oCmluZGV4IGM1OWQ0
NjAuLjE4ZTY4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZUNhY2hlZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlQ2FjaGVkSW1hZ2UuaApAQCAtMzgsMjYgKzM4LDI2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHlsZUNhY2hlZEltYWdlPiBjcmVhdGUoQ2FjaGVkSW1hZ2UqIGltYWdlKSB7
IHJldHVybiBhZG9wdFJlZihuZXcgU3R5bGVDYWNoZWRJbWFnZShpbWFnZSkpOyB9CiAgICAgdmly
dHVhbCB+U3R5bGVDYWNoZWRJbWFnZSgpOwogCi0gICAgdmlydHVhbCBDYWNoZWRJbWFnZSogY2Fj
aGVkSW1hZ2UoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2ltYWdlLmdldCgpOyB9CisgICAg
dmlydHVhbCBDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX2ltYWdlLmdldCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBXcmFwcGVkSW1hZ2VQ
dHIgZGF0YSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1faW1hZ2UuZ2V0KCk7IH0KKyAgICB2
aXJ0dWFsIFdyYXBwZWRJbWFnZVB0ciBkYXRhKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9p
bWFnZS5nZXQoKTsgfQogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBjc3NWYWx1
ZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gY3Nz
VmFsdWUoKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuUmVuZGVy
KGNvbnN0IFJlbmRlck9iamVjdCosIGZsb2F0IG11bHRpcGxpZXIpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgYm9vbCBpc0xvYWRlZCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
Ym9vbCBlcnJvck9jY3VycmVkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBMYXlvdXRT
aXplIGltYWdlU2l6ZShjb25zdCBSZW5kZXJFbGVtZW50KiwgZmxvYXQgbXVsdGlwbGllcikgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGltYWdlSGFzUmVsYXRpdmVXaWR0aCgpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpbWFnZUhhc1JlbGF0aXZlSGVpZ2h0KCkg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVJbnRyaW5zaWNEaW1lbnNp
b25zKGNvbnN0IFJlbmRlckVsZW1lbnQqLCBMZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgm
IGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbykgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBib29sIHVzZXNJbWFnZUNvbnRhaW5lclNpemUoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGFpbmVyU2l6ZUZvclJlbmRlcmVyKGNvbnN0IFJlbmRl
ckVsZW1lbnQqLCBjb25zdCBJbnRTaXplJiwgZmxvYXQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBhZGRDbGllbnQoUmVuZGVyRWxlbWVudCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVDbGllbnQoUmVuZGVyRWxlbWVudCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxJbWFnZT4gaW1hZ2UoUmVuZGVyRWxlbWVudCosIGNvbnN0IEludFNpemUmKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wga25vd25Ub0JlT3BhcXVlKGNvbnN0IFJlbmRl
ckVsZW1lbnQqKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuUmVuZGVyKGNv
bnN0IFJlbmRlck9iamVjdCosIGZsb2F0IG11bHRpcGxpZXIpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBpc0xvYWRlZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9v
bCBlcnJvck9jY3VycmVkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBMYXlvdXRTaXpl
IGltYWdlU2l6ZShjb25zdCBSZW5kZXJFbGVtZW50KiwgZmxvYXQgbXVsdGlwbGllcikgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGltYWdlSGFzUmVsYXRpdmVXaWR0aCgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpbWFnZUhhc1JlbGF0aXZlSGVpZ2h0KCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb25z
KGNvbnN0IFJlbmRlckVsZW1lbnQqLCBMZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGlu
dHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbykgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBib29sIHVzZXNJbWFnZUNvbnRhaW5lclNpemUoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q29udGFpbmVyU2l6ZUZvclJlbmRlcmVyKGNvbnN0IFJlbmRlckVs
ZW1lbnQqLCBjb25zdCBJbnRTaXplJiwgZmxvYXQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBhZGRDbGllbnQoUmVuZGVyRWxlbWVudCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVDbGllbnQoUmVuZGVyRWxlbWVudCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxJbWFnZT4gaW1hZ2UoUmVuZGVyRWxlbWVudCosIGNvbnN0IEludFNpemUmKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wga25vd25Ub0JlT3BhcXVlKGNvbnN0IFJlbmRlckVs
ZW1lbnQqKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGV4cGxpY2l0IFN0eWxlQ2FjaGVkSW1hZ2Uo
Q2FjaGVkSW1hZ2UqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlQ2FjaGVkSW1hZ2VTZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZUNhY2hlZEltYWdlU2V0LmgKaW5kZXggNTY2NjUwNy4uYjI1ZThjMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2VTZXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZVNldC5o
CkBAIC00OSwzMiArNDksMzIgQEAgcHVibGljOgogICAgIH0KICAgICB2aXJ0dWFsIH5TdHlsZUNh
Y2hlZEltYWdlU2V0KCk7CiAKLSAgICB2aXJ0dWFsIENhY2hlZEltYWdlKiBjYWNoZWRJbWFnZSgp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fYmVzdEZpdEltYWdlLmdldCgpOyB9CisgICAgdmly
dHVhbCBDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X2Jlc3RGaXRJbWFnZS5nZXQoKTsgfQogCiAgICAgdm9pZCBjbGVhckltYWdlU2V0VmFsdWUoKSB7
IG1faW1hZ2VTZXRWYWx1ZSA9IG51bGxwdHI7IH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8Q1NTVmFsdWU+IGNzc1ZhbHVlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBjc3NWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
Ly8gRklYTUU6IFRoaXMgaXMgdXNlZCBieSBTdHlsZUltYWdlIGZvciBlcXVhbGl0eSBjb21wYXJp
c29uLCBidXQgdGhpcyBpbXBsZW1lbnRhdGlvbgogICAgIC8vIG9ubHkgbG9va3MgYXQgdGhlIGlt
YWdlIGZyb20gdGhlIHNldCB0aGF0IHdlIGhhdmUgbG9hZGVkLiBJJ20gbm90IHN1cmUgaWYgdGhh
dCBpcwogICAgIC8vIG1lYW5pbmdmdWwgZW5vdWdoIG9yIG5vdC4KLSAgICB2aXJ0dWFsIFdyYXBw
ZWRJbWFnZVB0ciBkYXRhKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9iZXN0Rml0SW1hZ2Uu
Z2V0KCk7IH0KLQotICAgIHZpcnR1YWwgYm9vbCBjYW5SZW5kZXIoY29uc3QgUmVuZGVyT2JqZWN0
KiwgZmxvYXQgbXVsdGlwbGllcikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlz
TG9hZGVkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGVycm9yT2NjdXJyZWQo
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIExheW91dFNpemUgaW1hZ2VTaXplKGNvbnN0
IFJlbmRlckVsZW1lbnQqLCBmbG9hdCBtdWx0aXBsaWVyKSBjb25zdCBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGJvb2wgaW1hZ2VIYXNSZWxhdGl2ZVdpZHRoKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIGltYWdlSGFzUmVsYXRpdmVIZWlnaHQoKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUludHJpbnNpY0RpbWVuc2lvbnMoY29uc3QgUmVuZGVyRWxl
bWVudCosIExlbmd0aCYgaW50cmluc2ljV2lkdGgsIExlbmd0aCYgaW50cmluc2ljSGVpZ2h0LCBG
bG9hdFNpemUmIGludHJpbnNpY1JhdGlvKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgdXNl
c0ltYWdlQ29udGFpbmVyU2l6ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb250YWluZXJTaXplRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyRWxlbWVudCosIGNvbnN0IElu
dFNpemUmLCBmbG9hdCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGFkZENsaWVudChSZW5k
ZXJFbGVtZW50KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUNsaWVudChSZW5k
ZXJFbGVtZW50KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPEltYWdlPiBpbWFn
ZShSZW5kZXJFbGVtZW50KiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgZmxvYXQgaW1hZ2VTY2FsZUZhY3RvcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1f
aW1hZ2VTY2FsZUZhY3RvcjsgfQotICAgIHZpcnR1YWwgYm9vbCBrbm93blRvQmVPcGFxdWUoY29u
c3QgUmVuZGVyRWxlbWVudCopIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgV3JhcHBlZElt
YWdlUHRyIGRhdGEoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Jlc3RGaXRJbWFnZS5nZXQo
KTsgfQorCisgICAgdmlydHVhbCBib29sIGNhblJlbmRlcihjb25zdCBSZW5kZXJPYmplY3QqLCBm
bG9hdCBtdWx0aXBsaWVyKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNMb2Fk
ZWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZXJyb3JPY2N1cnJlZCgpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgTGF5b3V0U2l6ZSBpbWFnZVNpemUoY29uc3QgUmVu
ZGVyRWxlbWVudCosIGZsb2F0IG11bHRpcGxpZXIpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgYm9vbCBpbWFnZUhhc1JlbGF0aXZlV2lkdGgoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgaW1hZ2VIYXNSZWxhdGl2ZUhlaWdodCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhjb25zdCBSZW5kZXJFbGVtZW50
KiwgTGVuZ3RoJiBpbnRyaW5zaWNXaWR0aCwgTGVuZ3RoJiBpbnRyaW5zaWNIZWlnaHQsIEZsb2F0
U2l6ZSYgaW50cmluc2ljUmF0aW8pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCB1c2VzSW1h
Z2VDb250YWluZXJTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldENv
bnRhaW5lclNpemVGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJFbGVtZW50KiwgY29uc3QgSW50U2l6
ZSYsIGZsb2F0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkQ2xpZW50KFJlbmRlckVs
ZW1lbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ2xpZW50KFJlbmRlckVs
ZW1lbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKFJl
bmRlckVsZW1lbnQqLCBjb25zdCBJbnRTaXplJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBmbG9hdCBpbWFnZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pbWFn
ZVNjYWxlRmFjdG9yOyB9CisgICAgdmlydHVhbCBib29sIGtub3duVG9CZU9wYXF1ZShjb25zdCBS
ZW5kZXJFbGVtZW50KikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBTdHlsZUNhY2hlZEltYWdlU2V0
KENhY2hlZEltYWdlKiwgZmxvYXQgaW1hZ2VTY2FsZUZhY3RvciwgQ1NTSW1hZ2VTZXRWYWx1ZSop
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5l
cmF0ZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJh
dGVkSW1hZ2UuaAppbmRleCBhZTM1N2VkLi4xZTUxNDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmgKQEAgLTQxLDIwICs0
MSwyMCBAQCBwdWJsaWM6CiAgICAgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSYgaW1hZ2VWYWx1ZSgp
IHsgcmV0dXJuIG1faW1hZ2VHZW5lcmF0b3JWYWx1ZS5nZXQoKTsgfQogCiBwcml2YXRlOgotICAg
IHZpcnR1YWwgV3JhcHBlZEltYWdlUHRyIGRhdGEoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAm
bV9pbWFnZUdlbmVyYXRvclZhbHVlLmdldCgpOyB9CisgICAgdmlydHVhbCBXcmFwcGVkSW1hZ2VQ
dHIgZGF0YSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICZtX2ltYWdlR2VuZXJhdG9yVmFsdWUu
Z2V0KCk7IH0KIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gY3NzVmFsdWUoKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGNzc1ZhbHVl
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIExheW91dFNpemUgaW1hZ2VTaXplKGNv
bnN0IFJlbmRlckVsZW1lbnQqLCBmbG9hdCBtdWx0aXBsaWVyKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgaW1hZ2VIYXNSZWxhdGl2ZVdpZHRoKCkgY29uc3QgT1ZFUlJJREUgeyBy
ZXR1cm4gIW1fZml4ZWRTaXplOyB9Ci0gICAgdmlydHVhbCBib29sIGltYWdlSGFzUmVsYXRpdmVI
ZWlnaHQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAhbV9maXhlZFNpemU7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgY29tcHV0ZUludHJpbnNpY0RpbWVuc2lvbnMoY29uc3QgUmVuZGVyRWxlbWVudCos
IExlbmd0aCYgaW50cmluc2ljV2lkdGgsIExlbmd0aCYgaW50cmluc2ljSGVpZ2h0LCBGbG9hdFNp
emUmIGludHJpbnNpY1JhdGlvKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgdXNlc0ltYWdl
Q29udGFpbmVyU2l6ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuICFtX2ZpeGVkU2l6ZTsgfQot
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb250YWluZXJTaXplRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVy
RWxlbWVudCosIGNvbnN0IEludFNpemUmIGNvbnRhaW5lclNpemUsIGZsb2F0KSBPVkVSUklERSB7
IG1fY29udGFpbmVyU2l6ZSA9IGNvbnRhaW5lclNpemU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYWRk
Q2xpZW50KFJlbmRlckVsZW1lbnQqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
Q2xpZW50KFJlbmRlckVsZW1lbnQqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
SW1hZ2U+IGltYWdlKFJlbmRlckVsZW1lbnQqLCBjb25zdCBJbnRTaXplJikgY29uc3QgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBib29sIGtub3duVG9CZU9wYXF1ZShjb25zdCBSZW5kZXJFbGVtZW50
KikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBMYXlvdXRTaXplIGltYWdlU2l6ZShjb25z
dCBSZW5kZXJFbGVtZW50KiwgZmxvYXQgbXVsdGlwbGllcikgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBib29sIGltYWdlSGFzUmVsYXRpdmVXaWR0aCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuICFtX2ZpeGVkU2l6ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpbWFnZUhhc1JlbGF0aXZlSGVp
Z2h0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIW1fZml4ZWRTaXplOyB9CisgICAgdmlydHVh
bCB2b2lkIGNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKGNvbnN0IFJlbmRlckVsZW1lbnQqLCBM
ZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXpl
JiBpbnRyaW5zaWNSYXRpbykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHVzZXNJbWFnZUNv
bnRhaW5lclNpemUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAhbV9maXhlZFNpemU7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q29udGFpbmVyU2l6ZUZvclJlbmRlcmVyKGNvbnN0IFJlbmRlckVs
ZW1lbnQqLCBjb25zdCBJbnRTaXplJiBjb250YWluZXJTaXplLCBmbG9hdCkgb3ZlcnJpZGUgeyBt
X2NvbnRhaW5lclNpemUgPSBjb250YWluZXJTaXplOyB9CisgICAgdmlydHVhbCB2b2lkIGFkZENs
aWVudChSZW5kZXJFbGVtZW50Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNs
aWVudChSZW5kZXJFbGVtZW50Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElt
YWdlPiBpbWFnZShSZW5kZXJFbGVtZW50KiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgYm9vbCBrbm93blRvQmVPcGFxdWUoY29uc3QgUmVuZGVyRWxlbWVudCop
IGNvbnN0IG92ZXJyaWRlOwogCiAgICAgU3R5bGVHZW5lcmF0ZWRJbWFnZShQYXNzUmVmPENTU0lt
YWdlR2VuZXJhdG9yVmFsdWU+KTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUGVuZGluZ0ltYWdlLmgKaW5kZXggNzRlZjFlZC4uNjhjYTFjMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ0ltYWdl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ0ltYWdl
LmgKQEAgLTU2LDI2ICs1NiwyNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZXRhY2hGcm9tQ1NTVmFs
dWUoKSB7IG1fdmFsdWUgPSBudWxscHRyOyB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBXcmFw
cGVkSW1hZ2VQdHIgZGF0YSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGNvbnN0X2Nhc3Q8U3R5
bGVQZW5kaW5nSW1hZ2UqPih0aGlzKTsgfQorICAgIHZpcnR1YWwgV3JhcHBlZEltYWdlUHRyIGRh
dGEoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBjb25zdF9jYXN0PFN0eWxlUGVuZGluZ0ltYWdl
Kj4odGhpcyk7IH0KIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gY3NzVmFsdWUo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3ZhbHVlOyB9CisgICAgdmlydHVhbCBQYXNzUmVm
UHRyPENTU1ZhbHVlPiBjc3NWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fdmFsdWU7
IH0KICAgICAKLSAgICB2aXJ0dWFsIExheW91dFNpemUgaW1hZ2VTaXplKGNvbnN0IFJlbmRlckVs
ZW1lbnQqLCBmbG9hdCAvKm11bHRpcGxpZXIqLykgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gTGF5
b3V0U2l6ZSgpOyB9Ci0gICAgdmlydHVhbCBib29sIGltYWdlSGFzUmVsYXRpdmVXaWR0aCgpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGltYWdlSGFz
UmVsYXRpdmVIZWlnaHQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZp
cnR1YWwgTGF5b3V0U2l6ZSBpbWFnZVNpemUoY29uc3QgUmVuZGVyRWxlbWVudCosIGZsb2F0IC8q
bXVsdGlwbGllciovKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBMYXlvdXRTaXplKCk7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgaW1hZ2VIYXNSZWxhdGl2ZVdpZHRoKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaW1hZ2VIYXNSZWxhdGl2ZUhlaWdodCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1
dGVJbnRyaW5zaWNEaW1lbnNpb25zKGNvbnN0IFJlbmRlckVsZW1lbnQqLCBMZW5ndGgmIC8qIGlu
dHJpbnNpY1dpZHRoICovICwgTGVuZ3RoJiAvKiBpbnRyaW5zaWNIZWlnaHQgKi8sIEZsb2F0U2l6
ZSYgLyogaW50cmluc2ljUmF0aW8gKi8pIHsgfQotICAgIHZpcnR1YWwgYm9vbCB1c2VzSW1hZ2VD
b250YWluZXJTaXplKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgc2V0Q29udGFpbmVyU2l6ZUZvclJlbmRlcmVyKGNvbnN0IFJlbmRlckVsZW1lbnQq
LCBjb25zdCBJbnRTaXplJiwgZmxvYXQpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBh
ZGRDbGllbnQoUmVuZGVyRWxlbWVudCopIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVDbGllbnQoUmVuZGVyRWxlbWVudCopIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgYm9v
bCB1c2VzSW1hZ2VDb250YWluZXJTaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGFpbmVyU2l6ZUZvclJlbmRlcmVyKGNvbnN0IFJl
bmRlckVsZW1lbnQqLCBjb25zdCBJbnRTaXplJiwgZmxvYXQpIG92ZXJyaWRlIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBhZGRDbGllbnQoUmVuZGVyRWxlbWVudCopIG92ZXJyaWRlIHsgfQorICAgIHZp
cnR1YWwgdm9pZCByZW1vdmVDbGllbnQoUmVuZGVyRWxlbWVudCopIG92ZXJyaWRlIHsgfQogCi0g
ICAgdmlydHVhbCBQYXNzUmVmUHRyPEltYWdlPiBpbWFnZShSZW5kZXJFbGVtZW50KiwgY29uc3Qg
SW50U2l6ZSYpIGNvbnN0IE9WRVJSSURFCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEltYWdlPiBp
bWFnZShSZW5kZXJFbGVtZW50KiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0IG92ZXJyaWRlCiAgICAg
ewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGtub3duVG9CZU9wYXF1ZShjb25zdCBSZW5kZXJF
bGVtZW50KikgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJv
b2wga25vd25Ub0JlT3BhcXVlKGNvbnN0IFJlbmRlckVsZW1lbnQqKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBmYWxzZTsgfQogICAgIAogICAgIFN0eWxlUGVuZGluZ0ltYWdlKENTU1ZhbHVlKiB2
YWx1ZSkKICAgICAgICAgOiBtX3ZhbHVlKHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5oCmluZGV4IGY5NmJmYzQuLjk2Y2U5MmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmgKQEAgLTMxLDI0ICsz
MSwyNCBAQCBjbGFzcyBTVkdFbGVtZW50OwogCiBjbGFzcyBSZW5kZXJTVkdCbG9jayA6IHB1Ymxp
YyBSZW5kZXJCbG9ja0Zsb3cgewogcHVibGljOgotICAgIHZpcnR1YWwgTGF5b3V0UmVjdCB2aXN1
YWxPdmVyZmxvd1JlY3QoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIExheW91
dFJlY3QgdmlzdWFsT3ZlcmZsb3dSZWN0KCkgY29uc3Qgb3ZlcnJpZGUgRklOQUw7CiAKICAgICBT
VkdHcmFwaGljc0VsZW1lbnQmIGdyYXBoaWNzRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRvU1ZH
R3JhcGhpY3NFbGVtZW50KG5vZGVGb3JOb25Bbm9ueW1vdXMoKSk7IH0KIAogcHJvdGVjdGVkOgog
ICAgIFJlbmRlclNWR0Jsb2NrKFNWR0dyYXBoaWNzRWxlbWVudCYsIFBhc3NSZWY8UmVuZGVyU3R5
bGU+KTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAg
IHZvaWQgZWxlbWVudCgpIGNvbnN0IFdURl9ERUxFVEVEX0ZVTkNUSU9OOwogCi0gICAgdmlydHVh
bCB2b2lkIHVwZGF0ZUZyb21TdHlsZSgpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVGcm9tU3R5bGUoKSBvdmVycmlkZSBGSU5BTDsKIAotICAgIHZpcnR1YWwgYm9vbCBp
c1JlbmRlclNWR0Jsb2NrKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfTsK
KyAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJTVkdCbG9jaygpIGNvbnN0IG92ZXJyaWRlIEZJTkFM
IHsgcmV0dXJuIHRydWU7IH07CiAKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0
b3I8SW50UmVjdD4mLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0
OwogCi0gICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29u
c3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZv
aWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xk
U3R5bGUpIG92ZXJyaWRlIEZJTkFMOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmgKaW5kZXggNDhmNDllNi4uNjA0MTYzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWlu
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5l
ci5oCkBAIC0zNSwzMSArMzUsMzEgQEAgY2xhc3MgUmVuZGVyU1ZHQ29udGFpbmVyIDogcHVibGlj
IFJlbmRlclNWR01vZGVsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZW5kZXJTVkdD
b250YWluZXIoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBM
YXlvdXRQb2ludCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0JvdW5kYXJp
ZXNVcGRhdGUoKSBPVkVSUklERSBGSU5BTCB7IG1fbmVlZHNCb3VuZGFyaWVzVXBkYXRlID0gdHJ1
ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBuZWVkc0JvdW5kYXJpZXNVcGRhdGUoKSBPVkVSUklERSBG
SU5BTCB7IHJldHVybiBtX25lZWRzQm91bmRhcmllc1VwZGF0ZTsgfQorICAgIHZpcnR1YWwgdm9p
ZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBzZXROZWVkc0JvdW5kYXJpZXNVcGRhdGUoKSBvdmVycmlkZSBGSU5BTCB7IG1f
bmVlZHNCb3VuZGFyaWVzVXBkYXRlID0gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBuZWVkc0Jv
dW5kYXJpZXNVcGRhdGUoKSBvdmVycmlkZSBGSU5BTCB7IHJldHVybiBtX25lZWRzQm91bmRhcmll
c1VwZGF0ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBkaWRUcmFuc2Zvcm1Ub1Jvb3RVcGRhdGUoKSB7
IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNPYmplY3RCb3VuZGluZ0JveFZhbGlkKCkgY29u
c3QgeyByZXR1cm4gbV9vYmplY3RCb3VuZGluZ0JveFZhbGlkOyB9CiAKIHByb3RlY3RlZDoKICAg
ICBSZW5kZXJTVkdDb250YWluZXIoU1ZHRWxlbWVudCYsIFBhc3NSZWY8UmVuZGVyU3R5bGU+KTsK
IAotICAgIHZpcnR1YWwgYm9vbCBpc1NWR0NvbnRhaW5lcigpIGNvbnN0IE9WRVJSSURFIEZJTkFM
IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiAiUmVuZGVyU1ZHQ29udGFpbmVyIjsgfQorICAgIHZpcnR1
YWwgYm9vbCBpc1NWR0NvbnRhaW5lcigpIGNvbnN0IG92ZXJyaWRlIEZJTkFMIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiAiUmVuZGVyU1ZHQ29udGFpbmVyIjsgfQogCi0gICAgdmlydHVhbCBib29sIGNh
bkhhdmVDaGlsZHJlbigpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3Qgb3ZlcnJpZGUgRklOQUwgeyBy
ZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBhZGRD
aGlsZChSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCkg
T1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUNoaWxkKFJlbmRlck9iamVj
dCYpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBhZGRGb2N1c1JpbmdSZWN0cyhW
ZWN0b3I8SW50UmVjdD4mLCBjb25zdCBMYXlvdXRQb2ludCYgYWRkaXRpb25hbE9mZnNldCwgY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcGFpbnRDb250YWluZXIgPSAwKSBPVkVSUklERSBG
SU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVu
ZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApIG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVDaGlsZChSZW5kZXJPYmplY3QmKSBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0
dWFsIHZvaWQgYWRkRm9jdXNSaW5nUmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5b3V0
UG9pbnQmIGFkZGl0aW9uYWxPZmZzZXQsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHBh
aW50Q29udGFpbmVyID0gMCkgb3ZlcnJpZGUgRklOQUw7CiAKLSAgICB2aXJ0dWFsIEZsb2F0UmVj
dCBvYmplY3RCb3VuZGluZ0JveCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIG1fb2Jq
ZWN0Qm91bmRpbmdCb3g7IH0KLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCBzdHJva2VCb3VuZGluZ0Jv
eCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIG1fc3Ryb2tlQm91bmRpbmdCb3g7IH0K
LSAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpIGNv
bnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIG1fcmVwYWludEJvdW5kaW5nQm94OyB9CisgICAg
dmlydHVhbCBGbG9hdFJlY3Qgb2JqZWN0Qm91bmRpbmdCb3goKSBjb25zdCBvdmVycmlkZSBGSU5B
TCB7IHJldHVybiBtX29iamVjdEJvdW5kaW5nQm94OyB9CisgICAgdmlydHVhbCBGbG9hdFJlY3Qg
c3Ryb2tlQm91bmRpbmdCb3goKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiBtX3N0cm9r
ZUJvdW5kaW5nQm94OyB9CisgICAgdmlydHVhbCBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2Fs
Q29vcmRpbmF0ZXMoKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiBtX3JlcGFpbnRCb3Vu
ZGluZ0JveDsgfQogCi0gICAgdmlydHVhbCBib29sIG5vZGVBdEZsb2F0UG9pbnQoY29uc3QgSGl0
VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnRJblBh
cmVudCwgSGl0VGVzdEFjdGlvbikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIG5vZGVBdEZs
b2F0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgRmxv
YXRQb2ludCYgcG9pbnRJblBhcmVudCwgSGl0VGVzdEFjdGlvbikgb3ZlcnJpZGU7CiAKICAgICAv
LyBBbGxvdyBSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyIHRvIGhvb2sgaW4gYXQgdGhl
IHJpZ2h0IHRpbWUgaW4gbGF5b3V0KCkKICAgICB2aXJ0dWFsIGJvb2wgY2FsY3VsYXRlTG9jYWxU
cmFuc2Zvcm0oKSB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuaAppbmRleCA1ZWJkY2YxLi45YTk5
YzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Zv
cmVpZ25PYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0ZvcmVpZ25PYmplY3QuaApAQCAtNDAsOCArNDAsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKIAotICAgIHZpcnR1
YWwgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdCBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZh
bHNlKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJm
bG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lcikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVGbG9hdFJl
Y3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIEZsb2F0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3Qgb3ZlcnJpZGU7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCB2b2lkIGxheW91dCgpOwpAQCAtNTEsMTkgKzUxLDE5IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpIGNvbnN0
IHsgcmV0dXJuIEZsb2F0UmVjdChGbG9hdFBvaW50KCksIG1fdmlld3BvcnQuc2l6ZSgpKTsgfQog
CiAgICAgdmlydHVhbCBib29sIG5vZGVBdEZsb2F0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3Qm
LCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnRJblBhcmVudCwgSGl0VGVz
dEFjdGlvbik7Ci0gICAgdmlydHVhbCBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1
ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNv
bnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0
aW9uKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVz
dFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlv
bkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRl
c3RBY3Rpb24pIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1NWR0ZvcmVpZ25PYmplY3Qo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0Nv
bnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAs
IGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBjb25zdCBS
ZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENv
b3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0gMCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBw
aW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0
b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0TmVlZHNUcmFuc2Zvcm1VcGRhdGUoKSB7IG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUgPSB0
cnVlOyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCBncmFwaGljc0VsZW1lbnQoKSBjb25zdCBXVEZf
REVMRVRFRF9GVU5DVElPTjsKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiAiUmVuZGVyU1ZHRm9yZWlnbk9iamVjdCI7IH0KKyAgICB2
aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAi
UmVuZGVyU1ZHRm9yZWlnbk9iamVjdCI7IH0KIAotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMb2dp
Y2FsV2lkdGgoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUxvZ2ljYWxIZWln
aHQoTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExvZ2lj
YWxFeHRlbnRDb21wdXRlZFZhbHVlcyYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVMb2dpY2FsV2lkdGgoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0
ZUxvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBMYXlvdXRVbml0IGxvZ2lj
YWxUb3AsIExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYpIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgdmlydHVhbCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0o
KSBjb25zdDsKICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBsb2NhbFRyYW5zZm9ybSgpIGNv
bnN0IHsgcmV0dXJuIG1fbG9jYWxUcmFuc2Zvcm07IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHR3JhZGllbnRTdG9wLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0dyYWRpZW50U3RvcC5oCmluZGV4IGEzM2YzZjYuLmUx
YjBiMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
R3JhZGllbnRTdG9wLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdHcmFkaWVudFN0b3AuaApAQCAtNDMsMTggKzQzLDE4IEBAIHB1YmxpYzoKICAgICAvLyBUaGlz
IG92ZXJyaWRlcyBhcmUgbmVlZGVkIHRvIHByZXZlbnQgQVNTRVJUcyBvbiA8c3ZnPjxzdG9wIC8+
PC9zdmc+CiAgICAgLy8gUmVuZGVyT2JqZWN0J3MgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbnMgQVNT
RVJUX05PVF9SRUFDSEVEKCkKICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA0MDAKLSAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVj
dEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCopIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIExheW91dFJlY3QoKTsgfQorICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjbGlwcGVk
T3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KikgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gTGF5b3V0UmVjdCgpOyB9CiAgICAgdmlydHVhbCBGbG9hdFJl
Y3Qgb2JqZWN0Qm91bmRpbmdCb3goKSBjb25zdCB7IHJldHVybiBGbG9hdFJlY3QoKTsgfQogICAg
IHZpcnR1YWwgRmxvYXRSZWN0IHN0cm9rZUJvdW5kaW5nQm94KCkgY29uc3QgeyByZXR1cm4gRmxv
YXRSZWN0KCk7IH0KICAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVjdEluTG9jYWxDb29y
ZGluYXRlcygpIGNvbnN0IHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9Ci0gICAgdmlydHVhbCBib29s
IG5vZGVBdEZsb2F0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0Jiwg
Y29uc3QgRmxvYXRQb2ludCYsIEhpdFRlc3RBY3Rpb24pIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIG5vZGVBdEZsb2F0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVl
c3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgRmxvYXRQb2ludCYsIEhpdFRlc3RBY3Rpb24pIG92
ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQg
c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5
bGUpOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25z
dCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWlu
dEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJSSURFIEZJTkFMIHsgfQorICAgIHZpcnR1
YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsg
fQorICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYp
IG92ZXJyaWRlIEZJTkFMIHsgfQogCiAgICAgU1ZHR3JhZGllbnRFbGVtZW50KiBncmFkaWVudEVs
ZW1lbnQoKSBjb25zdDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR0hpZGRlbkNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIuaAppbmRleCAwZDYzOGFhLi5lNjIwZjU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0hpZGRlbkNv
bnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSGlk
ZGVuQ29udGFpbmVyLmgKQEAgLTM0LDE4ICszNCwxOCBAQCBwdWJsaWM6CiAgICAgUmVuZGVyU1ZH
SGlkZGVuQ29udGFpbmVyKFNWR0VsZW1lbnQmLCBQYXNzUmVmPFJlbmRlclN0eWxlPik7CiAKIHBy
b3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGxheW91dCgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBp
c1NWR0hpZGRlbkNvbnRhaW5lcigpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7
IH0KLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBPVkVSUklERSB7
IHJldHVybiAiUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIjsgfQorICAgIHZpcnR1YWwgYm9vbCBp
c1NWR0hpZGRlbkNvbnRhaW5lcigpIGNvbnN0IG92ZXJyaWRlIEZJTkFMIHsgcmV0dXJuIHRydWU7
IH0KKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiAiUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIjsgfQogCi0gICAgdmlydHVhbCB2b2lk
IHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgT1ZFUlJJREUgRklOQUw7Cisg
ICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikgb3Zl
cnJpZGUgRklOQUw7CiAgICAgCi0gICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxv
d1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqKSBjb25zdCBPVkVS
UklERSBGSU5BTCB7IHJldHVybiBMYXlvdXRSZWN0KCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYWJz
b2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdCBPVkVS
UklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZv
clJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCopIGNvbnN0IG92ZXJyaWRlIEZJ
TkFMIHsgcmV0dXJuIExheW91dFJlY3QoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVF1
YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0IG92ZXJyaWRlIEZJ
TkFMOwogCi0gICAgdmlydHVhbCBib29sIG5vZGVBdEZsb2F0UG9pbnQoY29uc3QgSGl0VGVzdFJl
cXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnRJblBhcmVudCwg
SGl0VGVzdEFjdGlvbikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBib29sIG5vZGVBdEZs
b2F0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgRmxv
YXRQb2ludCYgcG9pbnRJblBhcmVudCwgSGl0VGVzdEFjdGlvbikgb3ZlcnJpZGUgRklOQUw7CiB9
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmgK
aW5kZXggMzk5NTYxOS4uZWVkYzM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHSW1hZ2UuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAKICAgICBib29s
IHVwZGF0ZUltYWdlVmlld3BvcnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNCb3VuZGFy
aWVzVXBkYXRlKCkgeyBtX25lZWRzQm91bmRhcmllc1VwZGF0ZSA9IHRydWU7IH0KLSAgICB2aXJ0
dWFsIGJvb2wgbmVlZHNCb3VuZGFyaWVzVXBkYXRlKCkgT1ZFUlJJREUgeyByZXR1cm4gbV9uZWVk
c0JvdW5kYXJpZXNVcGRhdGU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgbmVlZHNCb3VuZGFyaWVzVXBk
YXRlKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9uZWVkc0JvdW5kYXJpZXNVcGRhdGU7IH0KICAgICB2
aXJ0dWFsIHZvaWQgc2V0TmVlZHNUcmFuc2Zvcm1VcGRhdGUoKSB7IG1fbmVlZHNUcmFuc2Zvcm1V
cGRhdGUgPSB0cnVlOyB9CiAKICAgICBSZW5kZXJJbWFnZVJlc291cmNlKiBpbWFnZVJlc291cmNl
KCkgeyByZXR1cm4gbV9pbWFnZVJlc291cmNlLmdldCgpOyB9CkBAIC01NywxNyArNTcsMTcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGVsZW1lbnQoKSBjb25zdCBXVEZfREVMRVRFRF9GVU5DVElPTjsK
IAogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJS
ZW5kZXJTVkdJbWFnZSI7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTVkdJbWFnZSgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVu
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNT
VkdJbWFnZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAog
ICAgIHZpcnR1YWwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBsb2NhbFRvUGFyZW50VHJhbnNmb3Jt
KCkgY29uc3QgeyByZXR1cm4gbV9sb2NhbFRyYW5zZm9ybTsgfQogCiAgICAgdmlydHVhbCBGbG9h
dFJlY3Qgb2JqZWN0Qm91bmRpbmdCb3goKSBjb25zdCB7IHJldHVybiBtX29iamVjdEJvdW5kaW5n
Qm94OyB9CiAgICAgdmlydHVhbCBGbG9hdFJlY3Qgc3Ryb2tlQm91bmRpbmdCb3goKSBjb25zdCB7
IHJldHVybiBtX29iamVjdEJvdW5kaW5nQm94OyB9CiAgICAgdmlydHVhbCBGbG9hdFJlY3QgcmVw
YWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKSBjb25zdCB7IHJldHVybiBtX3JlcGFpbnRCb3Vu
ZGluZ0JveDsgfQotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3Jk
aW5hdGVzRXhjbHVkaW5nU1ZHU2hhZG93KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9yZXBh
aW50Qm91bmRpbmdCb3hFeGNsdWRpbmdTaGFkb3c7IH0KKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBy
ZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93OyB9CiAK
LSAgICB2aXJ0dWFsIHZvaWQgYWRkRm9jdXNSaW5nUmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29u
c3QgTGF5b3V0UG9pbnQmIGFkZGl0aW9uYWxPZmZzZXQsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHBhaW50Q29udGFpbmVyID0gMCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGFk
ZEZvY3VzUmluZ1JlY3RzKFZlY3RvcjxJbnRSZWN0PiYsIGNvbnN0IExheW91dFBvaW50JiBhZGRp
dGlvbmFsT2Zmc2V0LCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBwYWludENvbnRhaW5l
ciA9IDApIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGltYWdlQ2hhbmdlZChXcmFwcGVk
SW1hZ2VQdHIsIGNvbnN0IEludFJlY3QqID0gMCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCmluZGV4IDIyYmQ4MmUuLjlmNjBiODUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaApAQCAtMzYs
MzIgKzM2LDMyIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBlbGVtZW50KCkgY29uc3Qg
V1RGX0RFTEVURURfRlVOQ1RJT047CiAKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5h
bWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAiUmVuZGVyU1ZHSW5saW5lIjsgfQotICAgIHZp
cnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4g
ZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTVkdJbmxpbmUoKSBjb25zdCBPVkVSUklERSBG
SU5BTCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1l
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlclNWR0lubGluZSI7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0IG92ZXJyaWRlIEZJTkFMIHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzU1ZHSW5saW5lKCkgY29uc3Qgb3ZlcnJpZGUgRklO
QUwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgLy8gQ2hhcHRlciAxMC40IG9mIHRoZSBTVkcgU3Bl
Y2lmaWNhdGlvbiBzYXkgdGhhdCB3ZSBzaG91bGQgdXNlIHRoZQogICAgIC8vIG9iamVjdCBib3Vu
ZGluZyBib3ggb2YgdGhlIHBhcmVudCB0ZXh0IGVsZW1lbnQuCiAgICAgLy8gV2Ugc2VhcmNoIGZv
ciB0aGUgcm9vdCB0ZXh0IGVsZW1lbnQgYW5kIHRha2UgaXRzIGJvdW5kaW5nIGJveC4KICAgICAv
LyBJdCBpcyBhbHNvIG5lY2Vzc2FyeSB0byB0YWtlIHRoZSBzdHJva2UgYW5kIHJlcGFpbnQgcmVj
dCBvZgogICAgIC8vIHRoaXMgZWxlbWVudCwgc2luY2Ugd2UgbmVlZCBpdCBmb3IgZmlsdGVycy4K
LSAgICB2aXJ0dWFsIEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCgpIGNvbnN0IE9WRVJSSURF
IEZJTkFMOwotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHN0cm9rZUJvdW5kaW5nQm94KCkgY29uc3Qg
T1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2Fs
Q29vcmRpbmF0ZXMoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIEZsb2F0UmVj
dCBvYmplY3RCb3VuZGluZ0JveCgpIGNvbnN0IG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwg
RmxvYXRSZWN0IHN0cm9rZUJvdW5kaW5nQm94KCkgY29uc3Qgb3ZlcnJpZGUgRklOQUw7CisgICAg
dmlydHVhbCBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRpbmF0ZXMoKSBjb25zdCBv
dmVycmlkZSBGSU5BTDsKIAotICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dS
ZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0
UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgRmxvYXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBPVkVSUklERSBGSU5B
TDsKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3Jk
aW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29u
c3QgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hN
YXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JU
b1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2
aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYsIGJvb2wqIHdhc0Zp
eGVkKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBl
ZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lcikgY29uc3Qgb3ZlcnJpZGUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGNv
bXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3Qgb3Zl
cnJpZGUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUm
LCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhl
ZCA9IDApIGNvbnN0IG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2Jq
ZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3Qgb3ZlcnJpZGUgRklO
QUw7CisgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBi
b29sKiB3YXNGaXhlZCkgY29uc3Qgb3ZlcnJpZGUgRklOQUw7CiAKLSAgICB2aXJ0dWFsIHN0ZDo6
dW5pcXVlX3B0cjxJbmxpbmVGbG93Qm94PiBjcmVhdGVJbmxpbmVGbG93Qm94KCkgT1ZFUlJJREUg
RklOQUw7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8SW5saW5lRmxvd0JveD4gY3JlYXRl
SW5saW5lRmxvd0JveCgpIG92ZXJyaWRlIEZJTkFMOwogCi0gICAgdmlydHVhbCB2b2lkIHdpbGxC
ZURlc3Ryb3llZCgpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENo
YW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgT1ZFUlJJ
REUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlIEZJ
TkFMOworICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNv
bnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgb3ZlcnJpZGUgRklOQUw7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVD
aGlsZCA9IDApIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVDaGlsZChS
ZW5kZXJPYmplY3QmKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQo
UmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApIG92ZXJy
aWRlIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVDaGlsZChSZW5kZXJPYmplY3QmKSBv
dmVycmlkZSBGSU5BTDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmgKaW5kZXggZjczNmRhMC4uNDliMGRiZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmgK
QEAgLTUwLDIwICs1MCwyMCBAQCBwdWJsaWM6CiAgICAgRmxvYXRSZWN0IGZsb2F0TGluZXNCb3Vu
ZGluZ0JveCgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVu
ZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuICJSZW5kZXJTVkdJbmxpbmVUZXh0Ijsg
fQorICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuICJSZW5kZXJTVkdJbmxpbmVUZXh0IjsgfQogCi0gICAgdmlydHVhbCBTdHJpbmcgb3Jp
Z2luYWxUZXh0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFRleHRJbnRl
cm5hbChjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRD
aGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSopIE9WRVJSSURFOworICAg
IHZpcnR1YWwgU3RyaW5nIG9yaWdpbmFsVGV4dCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBzZXRUZXh0SW50ZXJuYWwoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5
bGUqKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgRmxvYXRSZWN0IG9iamVjdEJvdW5kaW5nQm94
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmxvYXRMaW5lc0JvdW5kaW5nQm94KCk7IH0KKyAg
ICB2aXJ0dWFsIEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIGZsb2F0TGluZXNCb3VuZGluZ0JveCgpOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNT
VkdJbmxpbmVUZXh0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1
YWwgYm9vbCBpc1NWR0lubGluZVRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9
CiAKLSAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbkZvclBvaW50KGNvbnN0IExh
eW91dFBvaW50JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBMYXlvdXRSZWN0IGxvY2FsQ2FyZXRS
ZWN0KElubGluZUJveCosIGludCBjYXJldE9mZnNldCwgTGF5b3V0VW5pdCogZXh0cmFXaWR0aFRv
RW5kT2ZMaW5lID0gMCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJbnRSZWN0IGxpbmVzQm91bmRp
bmdCb3goKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxJbmxp
bmVUZXh0Qm94PiBjcmVhdGVUZXh0Qm94KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBWaXNpYmxl
UG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBsb2NhbENhcmV0UmVjdChJbmxpbmVCb3gqLCBpbnQgY2Fy
ZXRPZmZzZXQsIExheW91dFVuaXQqIGV4dHJhV2lkdGhUb0VuZE9mTGluZSA9IDApIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgSW50UmVjdCBsaW5lc0JvdW5kaW5nQm94KCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8SW5saW5lVGV4dEJveD4gY3JlYXRlVGV4dEJv
eCgpIG92ZXJyaWRlOwogCiAgICAgZmxvYXQgbV9zY2FsaW5nRmFjdG9yOwogICAgIEZvbnQgbV9z
Y2FsZWRGb250OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdNb2RlbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdNb2RlbE9iamVjdC5oCmluZGV4IGYyNDg2ZDUuLmViNmM3M2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKQEAgLTQ4LDE2
ICs0OCwxNiBAQCBjbGFzcyBTVkdFbGVtZW50OwogCiBjbGFzcyBSZW5kZXJTVkdNb2RlbE9iamVj
dCA6IHB1YmxpYyBSZW5kZXJFbGVtZW50IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIExheW91dFJl
Y3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3Qg
T1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCBMYXlvdXRSZWN0IG91dGxpbmVCb3VuZHNGb3JS
ZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNv
bnN0IFJlbmRlckdlb21ldHJ5TWFwKikgY29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVh
bCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3QmLCBib29sIGZpeGVkID0gZmFs
c2UpIGNvbnN0IG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBvdXRsaW5l
Qm91bmRzRm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBjb25zdCBSZW5kZXJHZW9tZXRyeU1hcCopIGNvbnN0IG92ZXJyaWRlIEZJTkFMOwog
Ci0gICAgdmlydHVhbCB2b2lkIGFic29sdXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3Qg
TGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAg
ICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYsIGJvb2wqIHdh
c0ZpeGVkKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhW
ZWN0b3I8SW50UmVjdD4mLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNv
bnN0IG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3Rv
cjxGbG9hdFF1YWQ+JiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmly
dHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdz
ID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURF
IEZJTkFMOwotICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29u
dGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJl
bmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lk
IHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0
eWxlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0
ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0Zp
eGVkID0gMCkgY29uc3Qgb3ZlcnJpZGUgRklOQUw7CisgICAgdmlydHVhbCBjb25zdCBSZW5kZXJP
YmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBvdmVycmlkZSBG
SU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBj
b25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIG92ZXJyaWRlOwogCiAgICAgc3RhdGljIGJvb2wg
Y2hlY2tJbnRlcnNlY3Rpb24oUmVuZGVyRWxlbWVudCosIGNvbnN0IEZsb2F0UmVjdCYpOwogICAg
IHN0YXRpYyBib29sIGNoZWNrRW5jbG9zdXJlKFJlbmRlckVsZW1lbnQqLCBjb25zdCBGbG9hdFJl
Y3QmKTsKQEAgLTcxLDE0ICs3MSwxNCBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVy
U1ZHTW9kZWxPYmplY3QoU1ZHRWxlbWVudCYsIFBhc3NSZWY8UmVuZGVyU3R5bGU+KTsKIAotICAg
IHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBi
b29sIGlzUmVuZGVyU1ZHTW9kZWxPYmplY3QoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVy
biB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzUmVuZGVyU1ZHTW9kZWxPYmplY3QoKSBjb25z
dCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAvLyBUaGlzIG1ldGhvZCBz
aG91bGQgbmV2ZXIgYmUgY2FsbGVkLCBTVkcgdXNlcyBhIGRpZmZlcmVudCBub2RlQXRQb2ludCBt
ZXRob2QKLSAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3Qm
LCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFp
bmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24p
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZUZvY3VzUmluZ1F1YWRzKFZlY3Rv
cjxGbG9hdFF1YWQ+JikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBib29sIG5vZGVBdFBv
aW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RM
b2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxh
dGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYWJz
b2x1dGVGb2N1c1JpbmdRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYpIG92ZXJyaWRlIEZJTkFMOwog
ICAgIGJvb2wgbV9oYXNTVkdTaGFkb3c7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1BhdGguaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUGF0aC5oCmluZGV4IDQ0NGJmNzguLjRiNDJiYmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUGF0aC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUGF0aC5oCkBAIC0zNywxNCArMzcsMTQg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgflJlbmRlclNWR1BhdGgoKTsKIAogcHJpdmF0ZToKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNTVkdQYXRoKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsg
fQorICAgIHZpcnR1YWwgYm9vbCBpc1NWR1BhdGgoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1
cm4gIlJlbmRlclNWR1BhdGgiOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU2hhcGVGcm9t
RWxlbWVudCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTaGFwZUZyb21FbGVt
ZW50KCkgb3ZlcnJpZGU7CiAgICAgRmxvYXRSZWN0IGNhbGN1bGF0ZVVwZGF0ZWRTdHJva2VCb3Vu
ZGluZ0JveCgpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIHN0cm9rZVNoYXBlKEdyYXBoaWNz
Q29udGV4dCopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaGFwZURlcGVuZGVu
dFN0cm9rZUNvbnRhaW5zKGNvbnN0IEZsb2F0UG9pbnQmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgc3Ryb2tlU2hhcGUoR3JhcGhpY3NDb250ZXh0KikgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBib29sIHNoYXBlRGVwZW5kZW50U3Ryb2tlQ29udGFpbnMoY29uc3QgRmxvYXRQb2lu
dCYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzaG91bGRTdHJva2VaZXJvTGVuZ3RoU3VicGF0aCgp
IGNvbnN0OwogICAgIFBhdGgqIHplcm9MZW5ndGhMaW5lY2FwUGF0aChjb25zdCBGbG9hdFBvaW50
JikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlQ2xpcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSZXNvdXJjZUNsaXBwZXIuaAppbmRleCA2MzcwMWQxLi40NmVlYjM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlw
cGVyLmgKQEAgLTQ4LDEyICs0OCwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92
ZUFsbENsaWVudHNGcm9tQ2FjaGUoYm9vbCBtYXJrRm9ySW52YWxpZGF0aW9uID0gdHJ1ZSk7CiAg
ICAgdmlydHVhbCB2b2lkIHJlbW92ZUNsaWVudEZyb21DYWNoZShSZW5kZXJPYmplY3QmLCBib29s
IG1hcmtGb3JJbnZhbGlkYXRpb24gPSB0cnVlKTsKIAotICAgIHZpcnR1YWwgYm9vbCBhcHBseVJl
c291cmNlKFJlbmRlckVsZW1lbnQmLCBjb25zdCBSZW5kZXJTdHlsZSYsIEdyYXBoaWNzQ29udGV4
dComLCB1bnNpZ25lZCBzaG9ydCByZXNvdXJjZU1vZGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
Ym9vbCBhcHBseVJlc291cmNlKFJlbmRlckVsZW1lbnQmLCBjb25zdCBSZW5kZXJTdHlsZSYsIEdy
YXBoaWNzQ29udGV4dComLCB1bnNpZ25lZCBzaG9ydCByZXNvdXJjZU1vZGUpIG92ZXJyaWRlOwog
ICAgIC8vIGNsaXBQYXRoIGNhbiBiZSBjbGlwcGVkIHRvbywgYnV0IGRvbid0IGhhdmUgYSBib3Vu
ZGluZ0JveCBvciByZXBhaW50UmVjdC4gU28gd2UgY2FuJ3QgY2FsbAogICAgIC8vIGFwcGx5UmVz
b3VyY2UgZGlyZWN0bHkgYW5kIHVzZSB0aGUgcmVjdHMgZnJvbSB0aGUgb2JqZWN0LCBzaW5jZSB0
aGV5IGFyZSBlbXB0eSBmb3IgUmVuZGVyU1ZHUmVzb3VyY2VzCiAgICAgLy8gRklYTUU6IFdlIG1h
ZGUgYXBwbHlDbGlwcGluZ1RvQ29udGV4dCBwdWJsaWMgYmVjYXVzZSB3ZSBjYW5ub3QgY2FsbCBh
cHBseVJlc291cmNlIG9uIEhUTUwgZWxlbWVudHMgKGl0IGFzc2VydHMgb24gUmVuZGVyT2JqZWN0
OjpvYmplY3RCb3VuZGluZ0JveCkKICAgICBib29sIGFwcGx5Q2xpcHBpbmdUb0NvbnRleHQoUmVu
ZGVyRWxlbWVudCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIEdyYXBoaWNz
Q29udGV4dCopOwotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlc291cmNlQm91bmRpbmdCb3goY29u
c3QgUmVuZGVyT2JqZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBGbG9hdFJlY3QgcmVzb3Vy
Y2VCb3VuZGluZ0JveChjb25zdCBSZW5kZXJPYmplY3QmKSBvdmVycmlkZTsKIAogICAgIHZpcnR1
YWwgUmVuZGVyU1ZHUmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZSgpIGNvbnN0IHsgcmV0dXJuIENs
aXBwZXJSZXNvdXJjZVR5cGU7IH0KICAgICAKQEAgLTY1LDcgKzY1LDcgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICB2b2lkIGVsZW1lbnQoKSBjb25zdCBXVEZfREVMRVRFRF9GVU5DVElPTjsKIAot
ICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuICJSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIiOyB9CisgICAgdmlydHVhbCBjb25zdCBjaGFy
KiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlclNWR1Jlc291cmNl
Q2xpcHBlciI7IH0KIAogICAgIGJvb2wgcGF0aE9ubHlDbGlwcGluZyhHcmFwaGljc0NvbnRleHQq
LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFJlY3QmKTsKICAgICBib29sIGRy
YXdDb250ZW50SW50b01hc2tJbWFnZShDbGlwcGVyRGF0YSosIGNvbnN0IEZsb2F0UmVjdCYgb2Jq
ZWN0Qm91bmRpbmdCb3gpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5oCmluZGV4IDBkZGFjNmQuLjNlNDMyZjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlQ29udGFpbmVyLmgKQEAgLTMzLDExICszMywxMSBAQCBjbGFzcyBSZW5kZXJTVkdS
ZXNvdXJjZUNvbnRhaW5lciA6IHB1YmxpYyBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIsCiBwdWJs
aWM6CiAgICAgdmlydHVhbCB+UmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIoKTsKIAotICAgIHZp
cnR1YWwgdm9pZCBsYXlvdXQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRD
aGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIE9WRVJS
SURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHls
ZSogb2xkU3R5bGUpIG92ZXJyaWRlIEZJTkFMOwogCi0gICAgdmlydHVhbCBib29sIGlzU1ZHUmVz
b3VyY2VDb250YWluZXIoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0cnVlOyB9Ci0g
ICAgdmlydHVhbCBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lciogdG9SZW5kZXJTVkdSZXNvdXJj
ZUNvbnRhaW5lcigpIE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRoaXM7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaXNTVkdSZXNvdXJjZUNvbnRhaW5lcigpIGNvbnN0IG92ZXJyaWRlIEZJTkFMIHsgcmV0
dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyKiB0b1Jl
bmRlclNWR1Jlc291cmNlQ29udGFpbmVyKCkgb3ZlcnJpZGUgRklOQUwgeyByZXR1cm4gdGhpczsg
fQogCiAgICAgc3RhdGljIGJvb2wgc2hvdWxkVHJhbnNmb3JtT25UZXh0UGFpbnRpbmcoUmVuZGVy
T2JqZWN0KiwgQWZmaW5lVHJhbnNmb3JtJik7CiAgICAgc3RhdGljIEFmZmluZVRyYW5zZm9ybSB0
cmFuc2Zvcm1Pbk5vblNjYWxpbmdTdHJva2UoUmVuZGVyT2JqZWN0KiwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiByZXNvdXJjZVRyYW5zZm9ybSk7CkBAIC02Nyw3ICs2Nyw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCByZW1vdmVDbGllbnQoUmVuZGVyT2JqZWN0Kik7CiAKIHByaXZhdGU6Ci0gICAgdmly
dHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwg
dm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZSBGSU5BTDsKICAgICB2b2lkIHJlZ2lzdGVy
UmVzb3VyY2UoKTsKIAogICAgIEF0b21pY1N0cmluZyBtX2lkOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5oCmluZGV4IGYy
MmU1MGYuLmI3MWRiMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmgKQEAgLTcxLDEwICs3MSwxMCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFsbENsaWVudHNGcm9tQ2FjaGUoYm9vbCBtYXJrRm9y
SW52YWxpZGF0aW9uID0gdHJ1ZSk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNsaWVudEZyb21D
YWNoZShSZW5kZXJPYmplY3QmLCBib29sIG1hcmtGb3JJbnZhbGlkYXRpb24gPSB0cnVlKTsKIAot
ICAgIHZpcnR1YWwgYm9vbCBhcHBseVJlc291cmNlKFJlbmRlckVsZW1lbnQmLCBjb25zdCBSZW5k
ZXJTdHlsZSYsIEdyYXBoaWNzQ29udGV4dComLCB1bnNpZ25lZCBzaG9ydCByZXNvdXJjZU1vZGUp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBwb3N0QXBwbHlSZXNvdXJjZShSZW5kZXJFbGVt
ZW50JiwgR3JhcGhpY3NDb250ZXh0KiYsIHVuc2lnbmVkIHNob3J0IHJlc291cmNlTW9kZSwgY29u
c3QgUGF0aCosIGNvbnN0IFJlbmRlclNWR1NoYXBlKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBi
b29sIGFwcGx5UmVzb3VyY2UoUmVuZGVyRWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgR3Jh
cGhpY3NDb250ZXh0KiYsIHVuc2lnbmVkIHNob3J0IHJlc291cmNlTW9kZSkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHBvc3RBcHBseVJlc291cmNlKFJlbmRlckVsZW1lbnQmLCBHcmFwaGlj
c0NvbnRleHQqJiwgdW5zaWduZWQgc2hvcnQgcmVzb3VyY2VNb2RlLCBjb25zdCBQYXRoKiwgY29u
c3QgUmVuZGVyU1ZHU2hhcGUqKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJl
c291cmNlQm91bmRpbmdCb3goY29uc3QgUmVuZGVyT2JqZWN0JikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBGbG9hdFJlY3QgcmVzb3VyY2VCb3VuZGluZ0JveChjb25zdCBSZW5kZXJPYmplY3QmKSBv
dmVycmlkZTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdGaWx0ZXJCdWlsZGVyPiBidWlsZFBy
aW1pdGl2ZXMoU1ZHRmlsdGVyKik7CiAKQEAgLTkwLDggKzkwLDggQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICB2b2lkIGVsZW1lbnQoKSBjb25zdCBXVEZfREVMRVRFRF9GVU5DVElPTjsKIAotICAg
IHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
ICJSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciI7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTVkdSZXNv
dXJjZUZpbHRlcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFs
IGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVy
U1ZHUmVzb3VyY2VGaWx0ZXIiOyB9CisgICAgdmlydHVhbCBib29sIGlzU1ZHUmVzb3VyY2VGaWx0
ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBib29sIGZpdHNJbk1h
eGltdW1JbWFnZVNpemUoY29uc3QgRmxvYXRTaXplJiwgRmxvYXRTaXplJik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VHcmFkaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUdyYWRp
ZW50LmgKaW5kZXggOTA0ZTIzZS4uMDRmOTczMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50LmgKQEAgLTQ1LDEy
ICs0NSwxMiBAQCBjbGFzcyBSZW5kZXJTVkdSZXNvdXJjZUdyYWRpZW50IDogcHVibGljIFJlbmRl
clNWR1Jlc291cmNlQ29udGFpbmVyIHsKIHB1YmxpYzoKICAgICBTVkdHcmFkaWVudEVsZW1lbnQm
IGdyYWRpZW50RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFNWR0dyYWRpZW50
RWxlbWVudCY+KFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyOjplbGVtZW50KCkpOyB9CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQWxsQ2xpZW50c0Zyb21DYWNoZShib29sIG1hcmtGb3JJbnZh
bGlkYXRpb24gPSB0cnVlKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
Q2xpZW50RnJvbUNhY2hlKFJlbmRlck9iamVjdCYsIGJvb2wgbWFya0ZvckludmFsaWRhdGlvbiA9
IHRydWUpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbGxDbGllbnRz
RnJvbUNhY2hlKGJvb2wgbWFya0ZvckludmFsaWRhdGlvbiA9IHRydWUpIG92ZXJyaWRlIEZJTkFM
OworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVDbGllbnRGcm9tQ2FjaGUoUmVuZGVyT2JqZWN0Jiwg
Ym9vbCBtYXJrRm9ySW52YWxpZGF0aW9uID0gdHJ1ZSkgb3ZlcnJpZGUgRklOQUw7CiAKLSAgICB2
aXJ0dWFsIGJvb2wgYXBwbHlSZXNvdXJjZShSZW5kZXJFbGVtZW50JiwgY29uc3QgUmVuZGVyU3R5
bGUmLCBHcmFwaGljc0NvbnRleHQqJiwgdW5zaWduZWQgc2hvcnQgcmVzb3VyY2VNb2RlKSBPVkVS
UklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgcG9zdEFwcGx5UmVzb3VyY2UoUmVuZGVyRWxl
bWVudCYsIEdyYXBoaWNzQ29udGV4dComLCB1bnNpZ25lZCBzaG9ydCByZXNvdXJjZU1vZGUsIGNv
bnN0IFBhdGgqLCBjb25zdCBSZW5kZXJTVkdTaGFwZSopIE9WRVJSSURFIEZJTkFMOwotICAgIHZp
cnR1YWwgRmxvYXRSZWN0IHJlc291cmNlQm91bmRpbmdCb3goY29uc3QgUmVuZGVyT2JqZWN0Jikg
T1ZFUlJJREUgRklOQUwgeyByZXR1cm4gRmxvYXRSZWN0KCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
YXBwbHlSZXNvdXJjZShSZW5kZXJFbGVtZW50JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBHcmFwaGlj
c0NvbnRleHQqJiwgdW5zaWduZWQgc2hvcnQgcmVzb3VyY2VNb2RlKSBvdmVycmlkZSBGSU5BTDsK
KyAgICB2aXJ0dWFsIHZvaWQgcG9zdEFwcGx5UmVzb3VyY2UoUmVuZGVyRWxlbWVudCYsIEdyYXBo
aWNzQ29udGV4dComLCB1bnNpZ25lZCBzaG9ydCByZXNvdXJjZU1vZGUsIGNvbnN0IFBhdGgqLCBj
b25zdCBSZW5kZXJTVkdTaGFwZSopIG92ZXJyaWRlIEZJTkFMOworICAgIHZpcnR1YWwgRmxvYXRS
ZWN0IHJlc291cmNlQm91bmRpbmdCb3goY29uc3QgUmVuZGVyT2JqZWN0Jikgb3ZlcnJpZGUgRklO
QUwgeyByZXR1cm4gRmxvYXRSZWN0KCk7IH0KIAogcHJvdGVjdGVkOgogICAgIFJlbmRlclNWR1Jl
c291cmNlR3JhZGllbnQoU1ZHR3JhZGllbnRFbGVtZW50JiwgUGFzc1JlZjxSZW5kZXJTdHlsZT4p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNv
dXJjZUxpbmVhckdyYWRpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlTGluZWFyR3JhZGllbnQuaAppbmRleCA0OWVjYmI2Li44YzJiMGQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTGlu
ZWFyR3JhZGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlTGluZWFyR3JhZGllbnQuaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIFNWR1VuaXRUeXBlczo6U1ZHVW5pdFR5cGUgZ3JhZGllbnRVbml0cygpIGNvbnN0
IHsgcmV0dXJuIG1fYXR0cmlidXRlcy5ncmFkaWVudFVuaXRzKCk7IH0KICAgICB2aXJ0dWFsIHZv
aWQgY2FsY3VsYXRlR3JhZGllbnRUcmFuc2Zvcm0oQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0p
IHsgdHJhbnNmb3JtID0gbV9hdHRyaWJ1dGVzLmdyYWRpZW50VHJhbnNmb3JtKCk7IH0KLSAgICB2
aXJ0dWFsIGJvb2wgY29sbGVjdEdyYWRpZW50QXR0cmlidXRlcygpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgYm9vbCBjb2xsZWN0R3JhZGllbnRBdHRyaWJ1dGVzKCkgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIGJ1aWxkR3JhZGllbnQoR3JhZGllbnREYXRhKikgY29uc3Q7CiAKICAgICBGbG9h
dFBvaW50IHN0YXJ0UG9pbnQoY29uc3QgTGluZWFyR3JhZGllbnRBdHRyaWJ1dGVzJikgY29uc3Q7
CkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBncmFkaWVudEVs
ZW1lbnQoKSBjb25zdCBXVEZfREVMRVRFRF9GVU5DVElPTjsKIAotICAgIHZpcnR1YWwgY29uc3Qg
Y2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuICJSZW5kZXJTVkdSZXNv
dXJjZUxpbmVhckdyYWRpZW50IjsgfQorICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFt
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJTVkdSZXNvdXJjZUxpbmVhckdyYWRp
ZW50IjsgfQogCiAgICAgTGluZWFyR3JhZGllbnRBdHRyaWJ1dGVzIG1fYXR0cmlidXRlczsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291
cmNlTWFya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291
cmNlTWFya2VyLmgKaW5kZXggNDdhYmYzNS4uMTIwZDI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hcmtlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXIuaApAQCAtNTMs
OCArNTMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGxv
Y2FsVG9QYXJlbnRUcmFuc2Zvcm0oKSBjb25zdDsKICAgICBBZmZpbmVUcmFuc2Zvcm0gbWFya2Vy
VHJhbnNmb3JtYXRpb24oY29uc3QgRmxvYXRQb2ludCYgb3JpZ2luLCBmbG9hdCBhbmdsZSwgZmxv
YXQgc3Ryb2tlV2lkdGgpIGNvbnN0OwogCi0gICAgdmlydHVhbCBib29sIGFwcGx5UmVzb3VyY2Uo
UmVuZGVyRWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgR3JhcGhpY3NDb250ZXh0KiYsIHVu
c2lnbmVkIHNob3J0KSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgRmxv
YXRSZWN0IHJlc291cmNlQm91bmRpbmdCb3goY29uc3QgUmVuZGVyT2JqZWN0JikgT1ZFUlJJREUg
eyByZXR1cm4gRmxvYXRSZWN0KCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgYXBwbHlSZXNvdXJjZShS
ZW5kZXJFbGVtZW50JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBHcmFwaGljc0NvbnRleHQqJiwgdW5z
aWduZWQgc2hvcnQpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBGbG9h
dFJlY3QgcmVzb3VyY2VCb3VuZGluZ0JveChjb25zdCBSZW5kZXJPYmplY3QmKSBvdmVycmlkZSB7
IHJldHVybiBGbG9hdFJlY3QoKTsgfQogCiAgICAgRmxvYXRQb2ludCByZWZlcmVuY2VQb2ludCgp
IGNvbnN0OwogICAgIGZsb2F0IGFuZ2xlKCkgY29uc3Q7CkBAIC02Niw3ICs2Niw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgdm9pZCBlbGVtZW50KCkgY29uc3QgV1RGX0RFTEVURURfRlVOQ1RJ
T047CiAKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiAiUmVuZGVyU1ZHUmVzb3VyY2VNYXJrZXIiOyB9CisgICAgdmlydHVhbCBjb25z
dCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlclNWR1Jl
c291cmNlTWFya2VyIjsgfQogCiAgICAgLy8gR2VuZXJhdGVzIGEgdHJhbnNmb3JtYXRpb24gbWF0
cml4IHVzYWJsZSB0byByZW5kZXIgbWFya2VyIGNvbnRlbnQuIEhhbmRsZXMgc2NhbGluZyB0aGUg
bWFya2VyIGNvbnRlbnQKICAgICAvLyBhY29yZGluZyB0byBTVkdzIG1hcmtlclVuaXRzPSJzdHJv
a2VXaWR0aCIgY29uY2VwdCwgd2hlbiBhIHN0cm9rZVdpZHRoIHZhbHVlICE9IC0xIGlzIHBhc3Nl
ZCBpbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UmVzb3VyY2VNYXNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UmVzb3VyY2VNYXNrZXIuaAppbmRleCAyNmEzMDdhLi5lYmExYjVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5oCkBA
IC00NSw4ICs0NSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbGxDbGll
bnRzRnJvbUNhY2hlKGJvb2wgbWFya0ZvckludmFsaWRhdGlvbiA9IHRydWUpOwogICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVDbGllbnRGcm9tQ2FjaGUoUmVuZGVyT2JqZWN0JiwgYm9vbCBtYXJrRm9y
SW52YWxpZGF0aW9uID0gdHJ1ZSk7Ci0gICAgdmlydHVhbCBib29sIGFwcGx5UmVzb3VyY2UoUmVu
ZGVyRWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgR3JhcGhpY3NDb250ZXh0KiYsIHVuc2ln
bmVkIHNob3J0IHJlc291cmNlTW9kZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBGbG9hdFJlY3Qg
cmVzb3VyY2VCb3VuZGluZ0JveChjb25zdCBSZW5kZXJPYmplY3QmKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGJvb2wgYXBwbHlSZXNvdXJjZShSZW5kZXJFbGVtZW50JiwgY29uc3QgUmVuZGVyU3R5
bGUmLCBHcmFwaGljc0NvbnRleHQqJiwgdW5zaWduZWQgc2hvcnQgcmVzb3VyY2VNb2RlKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXNvdXJjZUJvdW5kaW5nQm94KGNvbnN0IFJl
bmRlck9iamVjdCYpIG92ZXJyaWRlOwogCiAgICAgU1ZHVW5pdFR5cGVzOjpTVkdVbml0VHlwZSBt
YXNrVW5pdHMoKSBjb25zdCB7IHJldHVybiBtYXNrRWxlbWVudCgpLm1hc2tVbml0cygpOyB9CiAg
ICAgU1ZHVW5pdFR5cGVzOjpTVkdVbml0VHlwZSBtYXNrQ29udGVudFVuaXRzKCkgY29uc3QgeyBy
ZXR1cm4gbWFza0VsZW1lbnQoKS5tYXNrQ29udGVudFVuaXRzKCk7IH0KQEAgLTU3LDcgKzU3LDcg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIGVsZW1lbnQoKSBjb25zdCBXVEZfREVMRVRF
RF9GVU5DVElPTjsKIAotICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuICJSZW5kZXJTVkdSZXNvdXJjZU1hc2tlciI7IH0KKyAgICB2aXJ0
dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVu
ZGVyU1ZHUmVzb3VyY2VNYXNrZXIiOyB9CiAKICAgICBib29sIGRyYXdDb250ZW50SW50b01hc2tJ
bWFnZShNYXNrZXJEYXRhKiwgQ29sb3JTcGFjZSwgUmVuZGVyT2JqZWN0Kik7CiAgICAgdm9pZCBj
YWxjdWxhdGVNYXNrQ29udGVudFJlcGFpbnRSZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUGF0dGVybi5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4uaAppbmRleCA2MWFj
Y2M2Li43NGE0NzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jlc291cmNlUGF0dGVybi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VQYXR0ZXJuLmgKQEAgLTQ4LDE2ICs0OCwxNiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFsbENsaWVudHNGcm9tQ2FjaGUoYm9vbCBtYXJrRm9y
SW52YWxpZGF0aW9uID0gdHJ1ZSk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNsaWVudEZyb21D
YWNoZShSZW5kZXJPYmplY3QmLCBib29sIG1hcmtGb3JJbnZhbGlkYXRpb24gPSB0cnVlKTsKIAot
ICAgIHZpcnR1YWwgYm9vbCBhcHBseVJlc291cmNlKFJlbmRlckVsZW1lbnQmLCBjb25zdCBSZW5k
ZXJTdHlsZSYsIEdyYXBoaWNzQ29udGV4dComLCB1bnNpZ25lZCBzaG9ydCByZXNvdXJjZU1vZGUp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBwb3N0QXBwbHlSZXNvdXJjZShSZW5kZXJFbGVt
ZW50JiwgR3JhcGhpY3NDb250ZXh0KiYsIHVuc2lnbmVkIHNob3J0IHJlc291cmNlTW9kZSwgY29u
c3QgUGF0aCosIGNvbnN0IFJlbmRlclNWR1NoYXBlKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBG
bG9hdFJlY3QgcmVzb3VyY2VCb3VuZGluZ0JveChjb25zdCBSZW5kZXJPYmplY3QmKSBPVkVSUklE
RSB7IHJldHVybiBGbG9hdFJlY3QoKTsgfQorICAgIHZpcnR1YWwgYm9vbCBhcHBseVJlc291cmNl
KFJlbmRlckVsZW1lbnQmLCBjb25zdCBSZW5kZXJTdHlsZSYsIEdyYXBoaWNzQ29udGV4dComLCB1
bnNpZ25lZCBzaG9ydCByZXNvdXJjZU1vZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBw
b3N0QXBwbHlSZXNvdXJjZShSZW5kZXJFbGVtZW50JiwgR3JhcGhpY3NDb250ZXh0KiYsIHVuc2ln
bmVkIHNob3J0IHJlc291cmNlTW9kZSwgY29uc3QgUGF0aCosIGNvbnN0IFJlbmRlclNWR1NoYXBl
Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBGbG9hdFJlY3QgcmVzb3VyY2VCb3VuZGluZ0JveChj
b25zdCBSZW5kZXJPYmplY3QmKSBvdmVycmlkZSB7IHJldHVybiBGbG9hdFJlY3QoKTsgfQogCiAg
ICAgdmlydHVhbCBSZW5kZXJTVkdSZXNvdXJjZVR5cGUgcmVzb3VyY2VUeXBlKCkgY29uc3QgeyBy
ZXR1cm4gc19yZXNvdXJjZVR5cGU7IH0KICAgICBzdGF0aWMgUmVuZGVyU1ZHUmVzb3VyY2VUeXBl
IHNfcmVzb3VyY2VUeXBlOwogCiBwcml2YXRlOgogICAgIHZvaWQgZWxlbWVudCgpIGNvbnN0IFdU
Rl9ERUxFVEVEX0ZVTkNUSU9OOwotICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuICJSZW5kZXJTVkdSZXNvdXJjZVBhdHRlcm4iOyB9Cisg
ICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gIlJlbmRlclNWR1Jlc291cmNlUGF0dGVybiI7IH0KIAogICAgIGJvb2wgYnVpbGRUaWxlSW1h
Z2VUcmFuc2Zvcm0oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGF0dGVybkF0dHJpYnV0ZXMmLCBjb25z
dCBTVkdQYXR0ZXJuRWxlbWVudCYsIEZsb2F0UmVjdCYgcGF0dGVybkJvdW5kYXJpZXMsIEFmZmlu
ZVRyYW5zZm9ybSYgdGlsZUltYWdlVHJhbnNmb3JtKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUmFkaWFs
R3JhZGllbnQuaAppbmRleCBlY2YyNzc3Li40OTk1ZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUmFkaWFsR3JhZGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlUmFkaWFsR3Jh
ZGllbnQuaApAQCAtNTIsOCArNTIsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQgZ3Jh
ZGllbnRFbGVtZW50KCkgY29uc3QgV1RGX0RFTEVURURfRlVOQ1RJT047CiAKLSAgICB2aXJ0dWFs
IGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAiUmVuZGVy
U1ZHUmVzb3VyY2VSYWRpYWxHcmFkaWVudCI7IH0KLSAgICB2aXJ0dWFsIGJvb2wgY29sbGVjdEdy
YWRpZW50QXR0cmlidXRlcygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVu
ZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJTVkdSZXNvdXJjZVJhZGlh
bEdyYWRpZW50IjsgfQorICAgIHZpcnR1YWwgYm9vbCBjb2xsZWN0R3JhZGllbnRBdHRyaWJ1dGVz
KCkgb3ZlcnJpZGU7CiAKICAgICBSYWRpYWxHcmFkaWVudEF0dHJpYnV0ZXMgbV9hdHRyaWJ1dGVz
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UmVzb3VyY2VTb2xpZENvbG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlU29saWRDb2xvci5oCmluZGV4IGU2NmJjNTEuLjgwZWI0NWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VTb2xpZENv
bG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJj
ZVNvbGlkQ29sb3IuaApAQCAtMzQsOSArMzQsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHJlbW92ZUFsbENsaWVudHNGcm9tQ2FjaGUoYm9vbCA9IHRydWUpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVDbGllbnRGcm9tQ2FjaGUoUmVuZGVyT2JqZWN0JiwgYm9vbCA9IHRydWUpIHsg
fQogCi0gICAgdmlydHVhbCBib29sIGFwcGx5UmVzb3VyY2UoUmVuZGVyRWxlbWVudCYsIGNvbnN0
IFJlbmRlclN0eWxlJiwgR3JhcGhpY3NDb250ZXh0KiYsIHVuc2lnbmVkIHNob3J0IHJlc291cmNl
TW9kZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHBvc3RBcHBseVJlc291cmNlKFJlbmRl
ckVsZW1lbnQmLCBHcmFwaGljc0NvbnRleHQqJiwgdW5zaWduZWQgc2hvcnQgcmVzb3VyY2VNb2Rl
LCBjb25zdCBQYXRoKiwgY29uc3QgUmVuZGVyU1ZHU2hhcGUqKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIEZsb2F0UmVjdCByZXNvdXJjZUJvdW5kaW5nQm94KGNvbnN0IFJlbmRlck9iamVjdCYpIE9W
RVJSSURFIHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9CisgICAgdmlydHVhbCBib29sIGFwcGx5UmVz
b3VyY2UoUmVuZGVyRWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgR3JhcGhpY3NDb250ZXh0
KiYsIHVuc2lnbmVkIHNob3J0IHJlc291cmNlTW9kZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHBvc3RBcHBseVJlc291cmNlKFJlbmRlckVsZW1lbnQmLCBHcmFwaGljc0NvbnRleHQqJiwg
dW5zaWduZWQgc2hvcnQgcmVzb3VyY2VNb2RlLCBjb25zdCBQYXRoKiwgY29uc3QgUmVuZGVyU1ZH
U2hhcGUqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXNvdXJjZUJvdW5kaW5n
Qm94KGNvbnN0IFJlbmRlck9iamVjdCYpIG92ZXJyaWRlIHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9
CiAKICAgICB2aXJ0dWFsIFJlbmRlclNWR1Jlc291cmNlVHlwZSByZXNvdXJjZVR5cGUoKSBjb25z
dCB7IHJldHVybiBzX3Jlc291cmNlVHlwZTsgfQogICAgIHN0YXRpYyBSZW5kZXJTVkdSZXNvdXJj
ZVR5cGUgc19yZXNvdXJjZVR5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUm9vdC5oCmluZGV4IDg0ODdkZTEuLmM5NzM1ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCkBAIC00NCwxOSArNDQsMTkgQEAgcHVibGlj
OgogICAgIGJvb2wgaXNFbWJlZGRlZFRocm91Z2hTVkdJbWFnZSgpIGNvbnN0OwogICAgIGJvb2wg
aXNFbWJlZGRlZFRocm91Z2hGcmFtZUNvbnRhaW5pbmdTVkdEb2N1bWVudCgpIGNvbnN0OwogCi0g
ICAgdmlydHVhbCB2b2lkIGNvbXB1dGVJbnRyaW5zaWNSYXRpb0luZm9ybWF0aW9uKEZsb2F0U2l6
ZSYgaW50cmluc2ljU2l6ZSwgZG91YmxlJiBpbnRyaW5zaWNSYXRpbywgYm9vbCYgaXNQZXJjZW50
YWdlSW50cmluc2ljU2l6ZSkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNvbXB1
dGVJbnRyaW5zaWNSYXRpb0luZm9ybWF0aW9uKEZsb2F0U2l6ZSYgaW50cmluc2ljU2l6ZSwgZG91
YmxlJiBpbnRyaW5zaWNSYXRpbywgYm9vbCYgaXNQZXJjZW50YWdlSW50cmluc2ljU2l6ZSkgY29u
c3Qgb3ZlcnJpZGU7CiAKICAgICBib29sIGlzTGF5b3V0U2l6ZUNoYW5nZWQoKSBjb25zdCB7IHJl
dHVybiBtX2lzTGF5b3V0U2l6ZUNoYW5nZWQ7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNC
b3VuZGFyaWVzVXBkYXRlKCkgT1ZFUlJJREUgeyBtX25lZWRzQm91bmRhcmllc09yVHJhbnNmb3Jt
VXBkYXRlID0gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBuZWVkc0JvdW5kYXJpZXNVcGRhdGUo
KSBPVkVSUklERSB7IHJldHVybiBtX25lZWRzQm91bmRhcmllc09yVHJhbnNmb3JtVXBkYXRlOyB9
Ci0gICAgdmlydHVhbCB2b2lkIHNldE5lZWRzVHJhbnNmb3JtVXBkYXRlKCkgT1ZFUlJJREUgeyBt
X25lZWRzQm91bmRhcmllc09yVHJhbnNmb3JtVXBkYXRlID0gdHJ1ZTsgfQorICAgIHZpcnR1YWwg
dm9pZCBzZXROZWVkc0JvdW5kYXJpZXNVcGRhdGUoKSBvdmVycmlkZSB7IG1fbmVlZHNCb3VuZGFy
aWVzT3JUcmFuc2Zvcm1VcGRhdGUgPSB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIG5lZWRzQm91
bmRhcmllc1VwZGF0ZSgpIG92ZXJyaWRlIHsgcmV0dXJuIG1fbmVlZHNCb3VuZGFyaWVzT3JUcmFu
c2Zvcm1VcGRhdGU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNUcmFuc2Zvcm1VcGRhdGUo
KSBvdmVycmlkZSB7IG1fbmVlZHNCb3VuZGFyaWVzT3JUcmFuc2Zvcm1VcGRhdGUgPSB0cnVlOyB9
CiAKICAgICBJbnRTaXplIGNvbnRhaW5lclNpemUoKSBjb25zdCB7IHJldHVybiBtX2NvbnRhaW5l
clNpemU7IH0KICAgICB2b2lkIHNldENvbnRhaW5lclNpemUoY29uc3QgSW50U2l6ZSYgY29udGFp
bmVyU2l6ZSkgeyBtX2NvbnRhaW5lclNpemUgPSBjb250YWluZXJTaXplOyB9CiAKLSAgICB2aXJ0
dWFsIGJvb2wgaGFzUmVsYXRpdmVEaW1lbnNpb25zKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBib29sIGhhc1JlbGF0aXZlSW50cmluc2ljTG9naWNhbFdpZHRoKCkgY29uc3QgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBib29sIGhhc1JlbGF0aXZlTG9naWNhbEhlaWdodCgpIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBoYXNSZWxhdGl2ZURpbWVuc2lvbnMoKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVJbnRyaW5zaWNMb2dpY2FsV2lk
dGgoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVMb2dpY2Fs
SGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBsb2NhbFRvQm9yZGVyQm94VHJhbnNm
b3JtIG1hcHMgbG9jYWwgU1ZHIHZpZXdwb3J0IGNvb3JkaW5hdGVzIHRvIGxvY2FsIENTUyBib3gg
Y29vcmRpbmF0ZXMuICAKICAgICBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGxvY2FsVG9Cb3JkZXJC
b3hUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX2xvY2FsVG9Cb3JkZXJCb3hUcmFuc2Zvcm07
IH0KQEAgLTcxLDM5ICs3MSwzOSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQgZWxlbWVu
dCgpIGNvbnN0IFdURl9ERUxFVEVEX0ZVTkNUSU9OOwogCi0gICAgdmlydHVhbCBib29sIGlzU1ZH
Um9vdCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGNvbnN0
IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAiUmVuZGVyU1ZHUm9v
dCI7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdSb290KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJTVkdSb290IjsgfQogCi0gICAgdmlydHVhbCBMYXlvdXRV
bml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChTaG91bGRDb21wdXRlUHJlZmVycmVkICA9
IENvbXB1dGVBY3R1YWwpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBj
b21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGxheW91dCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBwYWludFJlcGxhY2Vk
KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBM
YXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChTaG91bGRDb21wdXRlUHJlZmVy
cmVkICA9IENvbXB1dGVBY3R1YWwpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgTGF5b3V0
VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGxheW91dCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwYWludFJl
cGxhY2VkKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGU7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0
eWxlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBj
aGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVDaGlsZChSZW5kZXJPYmplY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHN0eWxl
RGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwg
UmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVDaGlsZChSZW5kZXJPYmplY3QmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiBsb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGxvY2FsVG9QYXJlbnRUcmFu
c2Zvcm0oKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wgZmlsbENvbnRhaW5zKGNvbnN0IEZs
b2F0UG9pbnQmKSBjb25zdDsKICAgICBib29sIHN0cm9rZUNvbnRhaW5zKGNvbnN0IEZsb2F0UG9p
bnQmKSBjb25zdDsKIAotICAgIHZpcnR1YWwgRmxvYXRSZWN0IG9iamVjdEJvdW5kaW5nQm94KCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9vYmplY3RCb3VuZGluZ0JveDsgfQotICAgIHZpcnR1
YWwgRmxvYXRSZWN0IHN0cm9rZUJvdW5kaW5nQm94KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
bV9zdHJva2VCb3VuZGluZ0JveDsgfQotICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlcGFpbnRSZWN0
SW5Mb2NhbENvb3JkaW5hdGVzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9yZXBhaW50Qm91
bmRpbmdCb3g7IH0KKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fb2JqZWN0Qm91bmRpbmdCb3g7IH0KKyAgICB2aXJ0dWFs
IEZsb2F0UmVjdCBzdHJva2VCb3VuZGluZ0JveCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
c3Ryb2tlQm91bmRpbmdCb3g7IH0KKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVjdElu
TG9jYWxDb29yZGluYXRlcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcmVwYWludEJvdW5k
aW5nQm94OyB9CiAgICAgdmlydHVhbCBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRp
bmF0ZXNFeGNsdWRpbmdTVkdTaGFkb3coKSBjb25zdCB7IHJldHVybiBtX3JlcGFpbnRCb3VuZGlu
Z0JveEV4Y2x1ZGluZ1NoYWRvdzsgfQogCi0gICAgdmlydHVhbCBib29sIG5vZGVBdFBvaW50KGNv
bnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlv
biYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zm
c2V0LCBIaXRUZXN0QWN0aW9uKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9p
bnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExv
Y2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0
ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBMYXlvdXRS
ZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGZpeGVkKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVj
dEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
cikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JS
ZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZs
b2F0UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgZml4ZWQpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAg
dmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0Zs
YWdzID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFp
bmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRl
ckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2Fs
VG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJG
bGlwLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgY29u
c3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3Qg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3Qg
T1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxk
cmVuKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBj
YW5CZVNlbGVjdGlvbkxlYWYoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAg
IHZpcnR1YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CiAKICAgICB2b2lkIHVwZGF0ZUNhY2hlZEJvdW5kYXJpZXMoKTsKICAgICB2b2lkIGJ1
aWxkTG9jYWxUb0JvcmRlckJveFRyYW5zZm9ybSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcAppbmRleCBkYjI3OTM0Li43Yjg2NTA5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcApAQCAt
NTYsNyArNTYsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBz
dHJva2VTdHlsZShHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpIE9WRVJSSURFCisgICAgdmlydHVh
bCB2b2lkIHN0cm9rZVN0eWxlKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCkgb3ZlcnJpZGUKICAg
ICB7CiAgICAgICAgIFNWR1JlbmRlclN1cHBvcnQ6OmFwcGx5U3Ryb2tlU3R5bGVUb0NvbnRleHQo
Y29udGV4dCwgbV9yZW5kZXJlci5zdHlsZSgpLCBtX3JlbmRlcmVyKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmgKaW5kZXggODNlYWJhZi4u
MDVkYTlhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdTaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hh
cGUuaApAQCAtNTMsOSArNTMsOSBAQCBwdWJsaWM6CiAgICAgU1ZHR3JhcGhpY3NFbGVtZW50JiBn
cmFwaGljc0VsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0b1NWR0dyYXBoaWNzRWxlbWVudChSZW5k
ZXJTVkdNb2RlbE9iamVjdDo6ZWxlbWVudCgpKTsgfQogCiAgICAgdm9pZCBzZXROZWVkc1NoYXBl
VXBkYXRlKCkgeyBtX25lZWRzU2hhcGVVcGRhdGUgPSB0cnVlOyB9Ci0gICAgdmlydHVhbCB2b2lk
IHNldE5lZWRzQm91bmRhcmllc1VwZGF0ZSgpIE9WRVJSSURFIEZJTkFMIHsgbV9uZWVkc0JvdW5k
YXJpZXNVcGRhdGUgPSB0cnVlOyB9Ci0gICAgdmlydHVhbCBib29sIG5lZWRzQm91bmRhcmllc1Vw
ZGF0ZSgpIE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIG1fbmVlZHNCb3VuZGFyaWVzVXBkYXRlOyB9
Ci0gICAgdmlydHVhbCB2b2lkIHNldE5lZWRzVHJhbnNmb3JtVXBkYXRlKCkgT1ZFUlJJREUgRklO
QUwgeyBtX25lZWRzVHJhbnNmb3JtVXBkYXRlID0gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBz
ZXROZWVkc0JvdW5kYXJpZXNVcGRhdGUoKSBvdmVycmlkZSBGSU5BTCB7IG1fbmVlZHNCb3VuZGFy
aWVzVXBkYXRlID0gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBuZWVkc0JvdW5kYXJpZXNVcGRh
dGUoKSBvdmVycmlkZSBGSU5BTCB7IHJldHVybiBtX25lZWRzQm91bmRhcmllc1VwZGF0ZTsgfQor
ICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1RyYW5zZm9ybVVwZGF0ZSgpIG92ZXJyaWRlIEZJTkFM
IHsgbV9uZWVkc1RyYW5zZm9ybVVwZGF0ZSA9IHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQgZmls
bFNoYXBlKEdyYXBoaWNzQ29udGV4dCopIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzdHJva2VT
aGFwZShHcmFwaGljc0NvbnRleHQqKSBjb25zdDsKIApAQCAtNzAsNyArNzAsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBlbGVtZW50KCkgY29uc3QgV1RGX0RFTEVURURfRlVOQ1RJT047CiAKICAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlU2hhcGVGcm9tRWxlbWVudCgpOwotICAgIHZpcnR1YWwgYm9v
bCBpc0VtcHR5KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlzRW1wdHkoKSBj
b25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgc2hhcGVEZXBlbmRlbnRTdHJva2VDb250
YWlucyhjb25zdCBGbG9hdFBvaW50Jik7CiAgICAgdmlydHVhbCBib29sIHNoYXBlRGVwZW5kZW50
RmlsbENvbnRhaW5zKGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBXaW5kUnVsZSkgY29uc3Q7CiAg
ICAgZmxvYXQgc3Ryb2tlV2lkdGgoKSBjb25zdDsKQEAgLTg4LDIzICs4OCwyMyBAQCBwcml2YXRl
OgogICAgIGJvb2wgZmlsbENvbnRhaW5zKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIHJlcXVpcmVz
RmlsbCA9IHRydWUsIGNvbnN0IFdpbmRSdWxlIGZpbGxSdWxlID0gUlVMRV9OT05aRVJPKTsKICAg
ICBib29sIHN0cm9rZUNvbnRhaW5zKGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIHJlcXVpcmVzU3Ry
b2tlID0gdHJ1ZSk7CiAKLSAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVjdEluTG9jYWxD
b29yZGluYXRlcygpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIG1fcmVwYWludEJvdW5k
aW5nQm94OyB9Ci0gICAgdmlydHVhbCBGbG9hdFJlY3QgcmVwYWludFJlY3RJbkxvY2FsQ29vcmRp
bmF0ZXNFeGNsdWRpbmdTVkdTaGFkb3coKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBt
X3JlcGFpbnRCb3VuZGluZ0JveEV4Y2x1ZGluZ1NoYWRvdzsgfQotICAgIHZpcnR1YWwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBsb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkgY29uc3QgT1ZFUlJJREUg
RklOQUwgeyByZXR1cm4gbV9sb2NhbFRyYW5zZm9ybTsgfQotICAgIHZpcnR1YWwgQWZmaW5lVHJh
bnNmb3JtIGxvY2FsVHJhbnNmb3JtKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gbV9s
b2NhbFRyYW5zZm9ybTsgfQorICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlcGFpbnRSZWN0SW5Mb2Nh
bENvb3JkaW5hdGVzKCkgY29uc3Qgb3ZlcnJpZGUgRklOQUwgeyByZXR1cm4gbV9yZXBhaW50Qm91
bmRpbmdCb3g7IH0KKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50UmVjdEluTG9jYWxDb29y
ZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdygpIGNvbnN0IG92ZXJyaWRlIEZJTkFMIHsgcmV0dXJu
IG1fcmVwYWludEJvdW5kaW5nQm94RXhjbHVkaW5nU2hhZG93OyB9CisgICAgdmlydHVhbCBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIGxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKSBjb25zdCBvdmVycmlk
ZSBGSU5BTCB7IHJldHVybiBtX2xvY2FsVHJhbnNmb3JtOyB9CisgICAgdmlydHVhbCBBZmZpbmVU
cmFuc2Zvcm0gbG9jYWxUcmFuc2Zvcm0oKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiBt
X2xvY2FsVHJhbnNmb3JtOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNTVkdTaGFwZSgpIGNvbnN0
IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2
ZUNoaWxkcmVuKCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2
aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAi
UmVuZGVyU1ZHU2hhcGUiOyB9CisgICAgdmlydHVhbCBib29sIGlzU1ZHU2hhcGUoKSBjb25zdCBv
dmVycmlkZSBGSU5BTCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGNhbkhhdmVD
aGlsZHJlbigpIGNvbnN0IG92ZXJyaWRlIEZJTkFMIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJl
bmRlclNWR1NoYXBlIjsgfQogCi0gICAgdmlydHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURFIEZJ
TkFMOwotICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2lu
dCYpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBhZGRGb2N1c1JpbmdSZWN0cyhW
ZWN0b3I8SW50UmVjdD4mLCBjb25zdCBMYXlvdXRQb2ludCYgYWRkaXRpb25hbE9mZnNldCwgY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcGFpbnRDb250YWluZXIgPSAwKSBPVkVSUklERSBG
SU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgb3ZlcnJpZGUgRklOQUw7CisgICAgdmly
dHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGUg
RklOQUw7CisgICAgdmlydHVhbCB2b2lkIGFkZEZvY3VzUmluZ1JlY3RzKFZlY3RvcjxJbnRSZWN0
PiYsIGNvbnN0IExheW91dFBvaW50JiBhZGRpdGlvbmFsT2Zmc2V0LCBjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiBwYWludENvbnRhaW5lciA9IDApIG92ZXJyaWRlIEZJTkFMOwogCi0gICAg
dmlydHVhbCBib29sIG5vZGVBdEZsb2F0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRU
ZXN0UmVzdWx0JiwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnRJblBhcmVudCwgSGl0VGVzdEFjdGlv
bikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBib29sIG5vZGVBdEZsb2F0UG9pbnQoY29u
c3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgRmxvYXRQb2ludCYgcG9p
bnRJblBhcmVudCwgSGl0VGVzdEFjdGlvbikgb3ZlcnJpZGUgRklOQUw7CiAKLSAgICB2aXJ0dWFs
IEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0
dXJuIG1fZmlsbEJvdW5kaW5nQm94OyB9Ci0gICAgdmlydHVhbCBGbG9hdFJlY3Qgc3Ryb2tlQm91
bmRpbmdCb3goKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBtX3N0cm9rZUJvdW5kaW5n
Qm94OyB9CisgICAgdmlydHVhbCBGbG9hdFJlY3Qgb2JqZWN0Qm91bmRpbmdCb3goKSBjb25zdCBv
dmVycmlkZSBGSU5BTCB7IHJldHVybiBtX2ZpbGxCb3VuZGluZ0JveDsgfQorICAgIHZpcnR1YWwg
RmxvYXRSZWN0IHN0cm9rZUJvdW5kaW5nQm94KCkgY29uc3Qgb3ZlcnJpZGUgRklOQUwgeyByZXR1
cm4gbV9zdHJva2VCb3VuZGluZ0JveDsgfQogICAgIEZsb2F0UmVjdCBjYWxjdWxhdGVPYmplY3RC
b3VuZGluZ0JveCgpIGNvbnN0OwogICAgIEZsb2F0UmVjdCBjYWxjdWxhdGVTdHJva2VCb3VuZGlu
Z0JveCgpIGNvbnN0OwogICAgIHZvaWQgdXBkYXRlUmVwYWludEJvdW5kaW5nQm94KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCmluZGV4IGYyOTg4Mjku
LmZjZWFhZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4
dC5oCkBAIC02Niw3ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzU1ZHVGV4
dCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWlu
dEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwotICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2lu
dChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9j
YXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRl
ZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIG5vZGVB
dFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRl
c3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3Vt
dWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wg
bm9kZUF0RmxvYXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBj
b25zdCBGbG9hdFBvaW50JiBwb2ludEluUGFyZW50LCBIaXRUZXN0QWN0aW9uKTsKICAgICB2aXJ0
dWFsIFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50Jik7
CiAKQEAgLTc1LDIyICs3NSwyMiBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGFic29s
dXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBib29sKiB3YXNGaXhlZCkgY29uc3Q7CiAKLSAg
ICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCA9
IGZhbHNlKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVj
dEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgRmxvYXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZh
bHNlKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZv
clJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
RmxvYXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZp
cnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFn
cyA9IEFwcGx5Q29udGFpbmVyRmxpcCwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5l
cihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJH
ZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRv
Q29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxp
cCwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGNvbnN0
IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkLCBS
ZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUNo
aWxkKFJlbmRlck9iamVjdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0
cm95ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ2hpbGQoUmVuZGVyT2Jq
ZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJy
aWRlOwogCiAgICAgdmlydHVhbCBGbG9hdFJlY3Qgb2JqZWN0Qm91bmRpbmdCb3goKSBjb25zdCB7
IHJldHVybiBmcmFtZVJlY3QoKTsgfQogICAgIHZpcnR1YWwgRmxvYXRSZWN0IHN0cm9rZUJvdW5k
aW5nQm94KCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgbG9j
YWxUb1BhcmVudFRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxUcmFuc2Zvcm07IH0K
ICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBsb2NhbFRyYW5zZm9ybSgpIGNvbnN0IHsgcmV0
dXJuIG1fbG9jYWxUcmFuc2Zvcm07IH0KLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxSb290
SW5saW5lQm94PiBjcmVhdGVSb290SW5saW5lQm94KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBz
dGQ6OnVuaXF1ZV9wdHI8Um9vdElubGluZUJveD4gY3JlYXRlUm9vdElubGluZUJveCgpIG92ZXJy
aWRlOwogCiAgICAgdmlydHVhbCBSZW5kZXJCbG9jayogZmlyc3RMaW5lQmxvY2soKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRmlyc3RMZXR0ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dFBhdGguaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dFBhdGguaAppbmRleCA1YjhlODhlLi43OTg4
OWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Rl
eHRQYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0
UGF0aC5oCkBAIC00MCw4ICs0MCw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBncmFw
aGljc0VsZW1lbnQoKSBjb25zdCBXVEZfREVMRVRFRF9GVU5DVElPTjsKIAotICAgIHZpcnR1YWwg
Ym9vbCBpc1NWR1RleHRQYXRoKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQotICAg
IHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
ICJSZW5kZXJTVkdUZXh0UGF0aCI7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdUZXh0UGF0aCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IGNoYXIq
IHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVyU1ZHVGV4dFBhdGgi
OyB9CiAKICAgICBQYXRoIG1fbGF5b3V0UGF0aDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyLmgKaW5kZXgg
NmZmOGJlNS4uMzRlNzBmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuaApAQCAtNDQsNyArNDQsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRldGVybWluZUlmTGF5b3V0U2l6ZUNoYW5nZWQoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNUcmFuc2Zvcm1VcGRhdGUoKSB7IG1fbmVlZHNUcmFu
c2Zvcm1VcGRhdGUgPSB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZv
JiwgY29uc3QgTGF5b3V0UG9pbnQmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQo
UGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAg
ICB2b2lkIGVsZW1lbnQoKSBjb25zdCBXVEZfREVMRVRFRF9GVU5DVElPTjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lRmxvd0JveC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVGbG93Qm94LmgKaW5kZXggNDY0NGNmMC4u
OWJmMWEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxp
bmVGbG93Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVG
bG93Qm94LmgKQEAgLTM5LDE2ICszOSwxNiBAQCBwdWJsaWM6CiAKICAgICBSZW5kZXJTVkdJbmxp
bmUmIHJlbmRlcmVyKCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyU1ZHSW5saW5lJj4oSW5s
aW5lRmxvd0JveDo6cmVuZGVyZXIoKSk7IH0KIAotICAgIHZpcnR1YWwgRmxvYXRSZWN0IGNhbGN1
bGF0ZUJvdW5kYXJpZXMoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBj
YWxjdWxhdGVCb3VuZGFyaWVzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNldExvZ2lj
YWxIZWlnaHQoZmxvYXQgaCkgeyBtX2xvZ2ljYWxIZWlnaHQgPSBoOyB9CiAgICAgdm9pZCBwYWlu
dFNlbGVjdGlvbkJhY2tncm91bmQoUGFpbnRJbmZvJik7CiAgICAgc3RhdGljIHZvaWQgY29tcHV0
ZVRleHRNYXRjaE1hcmtlclJlY3RGb3JSZW5kZXJlcihSZW5kZXJTVkdJbmxpbmVUZXh0Kik7CiAK
IHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGlzU1ZHSW5saW5lRmxvd0JveCgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGZsb2F0IHZpcnR1YWxMb2dpY2Fs
SGVpZ2h0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9sb2dpY2FsSGVpZ2h0OyB9Ci0gICAg
dmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JiwgTGF5b3V0
VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVCb3R0b20pIE9WRVJSSURFOworICAgIHZpcnR1
YWwgYm9vbCBpc1NWR0lubGluZUZsb3dCb3goKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9CisgICAgdmlydHVhbCBmbG9hdCB2aXJ0dWFsTG9naWNhbEhlaWdodCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fbG9naWNhbEhlaWdodDsgfQorICAgIHZpcnR1YWwgdm9pZCBwYWludChQ
YWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYsIExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0
VW5pdCBsaW5lQm90dG9tKSBvdmVycmlkZTsKIAogICAgIGZsb2F0IG1fbG9naWNhbEhlaWdodDsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRl
eHRCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5o
CmluZGV4IDJiZTY5NjcuLjZkNWFhNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvU1ZHSW5saW5lVGV4dEJveC5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgcGFpbnRTZWxlY3Rpb25CYWNrZ3JvdW5kKFBhaW50SW5mbyYpOwogICAgIHZpcnR1YWwg
dm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYsIExheW91dFVuaXQgbGlu
ZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tKTsKLSAgICB2aXJ0dWFsIExheW91dFJlY3QgbG9j
YWxTZWxlY3Rpb25SZWN0KGludCBzdGFydFBvc2l0aW9uLCBpbnQgZW5kUG9zaXRpb24pIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBsb2NhbFNlbGVjdGlvblJlY3QoaW50
IHN0YXJ0UG9zaXRpb24sIGludCBlbmRQb3NpdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBi
b29sIG1hcFN0YXJ0RW5kUG9zaXRpb25zSW50b0ZyYWdtZW50Q29vcmRpbmF0ZXMoY29uc3QgU1ZH
VGV4dEZyYWdtZW50JiwgaW50JiBzdGFydFBvc2l0aW9uLCBpbnQmIGVuZFBvc2l0aW9uKSBjb25z
dDsKIApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPFNWR1RleHRGcmFnbWVu
dD4mIHRleHRGcmFnbWVudHMoKSB7IHJldHVybiBtX3RleHRGcmFnbWVudHM7IH0KICAgICBjb25z
dCBWZWN0b3I8U1ZHVGV4dEZyYWdtZW50PiYgdGV4dEZyYWdtZW50cygpIGNvbnN0IHsgcmV0dXJu
IG1fdGV4dEZyYWdtZW50czsgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpcnR5TGluZUJveGVzKCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpcnR5TGluZUJveGVzKCkgb3ZlcnJpZGU7CiAK
ICAgICBib29sIHN0YXJ0c05ld1RleHRDaHVuaygpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRzTmV3
VGV4dENodW5rOyB9CiAgICAgdm9pZCBzZXRTdGFydHNOZXdUZXh0Q2h1bmsoYm9vbCBuZXdUZXh0
Q2h1bmspIHsgbV9zdGFydHNOZXdUZXh0Q2h1bmsgPSBuZXdUZXh0Q2h1bms7IH0KQEAgLTY3LDcg
KzY3LDcgQEAgcHVibGljOgogICAgIEZsb2F0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yVGV4dEZyYWdt
ZW50KGNvbnN0IFNWR1RleHRGcmFnbWVudCYsIGludCBmcmFnbWVudFN0YXJ0UG9zaXRpb24sIGlu
dCBmcmFnbWVudEVuZFBvc2l0aW9uLCBSZW5kZXJTdHlsZSopIGNvbnN0OwogCiBwcml2YXRlOgot
ICAgIHZpcnR1YWwgYm9vbCBpc1NWR0lubGluZVRleHRCb3goKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzU1ZHSW5saW5lVGV4dEJveCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIFRleHRSdW4gY29uc3RydWN0VGV4dFJ1
bihSZW5kZXJTdHlsZSosIGNvbnN0IFNWR1RleHRGcmFnbWVudCYpIGNvbnN0OwogCkBAIC04Miw3
ICs4Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwYWludFRleHRXaXRoU2hhZG93cyhHcmFwaGlj
c0NvbnRleHQqLCBSZW5kZXJTdHlsZSosIFRleHRSdW4mLCBjb25zdCBTVkdUZXh0RnJhZ21lbnQm
LCBpbnQgc3RhcnRQb3NpdGlvbiwgaW50IGVuZFBvc2l0aW9uKTsKICAgICB2b2lkIHBhaW50VGV4
dChHcmFwaGljc0NvbnRleHQqLCBSZW5kZXJTdHlsZSosIFJlbmRlclN0eWxlKiBzZWxlY3Rpb25T
dHlsZSwgY29uc3QgU1ZHVGV4dEZyYWdtZW50JiwgYm9vbCBoYXNTZWxlY3Rpb24sIGJvb2wgcGFp
bnRTZWxlY3RlZFRleHRPbmx5KTsKIAotICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25z
dCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24m
IGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNl
dCwgTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVCb3R0b20pIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRl
c3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNv
bnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgTGF5b3V0VW5pdCBsaW5lVG9wLCBM
YXlvdXRVbml0IGxpbmVCb3R0b20pIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIGZsb2F0IG1f
bG9naWNhbEhlaWdodDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHUm9vdElubGluZUJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSb290
SW5saW5lQm94LmgKaW5kZXggODU5OTIwYi4uMzRkNzAzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5saW5lQm94LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5saW5lQm94LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVi
bGljOgogICAgIElubGluZUJveCogY2xvc2VzdExlYWZDaGlsZEZvclBvc2l0aW9uKGNvbnN0IExh
eW91dFBvaW50Jik7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGlzU1ZHUm9vdElubGlu
ZUJveCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
aXNTVkdSb290SW5saW5lQm94KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAg
IHZvaWQgcmVvcmRlclZhbHVlTGlzdHMoVmVjdG9yPFNWR1RleHRMYXlvdXRBdHRyaWJ1dGVzKj4m
KTsKICAgICB2b2lkIGxheW91dENoYXJhY3RlcnNJblRleHRCb3hlcyhJbmxpbmVGbG93Qm94Kiwg
U1ZHVGV4dExheW91dEVuZ2luZSYpOwogICAgIHZvaWQgbGF5b3V0Q2hpbGRCb3hlcyhJbmxpbmVG
bG93Qm94KiwgRmxvYXRSZWN0KiA9IDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IDVkM2U4OTQu
LjM3MmI0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4
dFJ1blJlbmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0LmgKQEAgLTQyLDEwICs0MiwxMCBAQCBwdWJsaWM6
CiAgICAgUmVuZGVyU1ZHUmVzb3VyY2UqIGFjdGl2ZVBhaW50aW5nUmVzb3VyY2UoKSBjb25zdCB7
IHJldHVybiBtX2FjdGl2ZVBhaW50aW5nUmVzb3VyY2U7IH0KICAgICB2b2lkIHNldEFjdGl2ZVBh
aW50aW5nUmVzb3VyY2UoUmVuZGVyU1ZHUmVzb3VyY2UqIG9iamVjdCkgeyBtX2FjdGl2ZVBhaW50
aW5nUmVzb3VyY2UgPSBvYmplY3Q7IH0KIAotICAgIHZpcnR1YWwgR2x5cGhEYXRhIGdseXBoRGF0
YUZvckNoYXJhY3Rlcihjb25zdCBGb250JiwgV2lkdGhJdGVyYXRvciYsIFVDaGFyMzIgY2hhcmFj
dGVyLCBib29sIG1pcnJvciwgaW50IGN1cnJlbnRDaGFyYWN0ZXIsIHVuc2lnbmVkJiBhZHZhbmNl
TGVuZ3RoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd1NWR0dseXBocyhHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBTaW1wbGVGb250RGF0YSosIGNvbnN0IEdseXBoQnVmZmVyJiwgaW50
IGZyb20sIGludCB0bywgY29uc3QgRmxvYXRQb2ludCYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgZmxvYXQgZmxvYXRXaWR0aFVzaW5nU1ZHRm9udChjb25zdCBGb250JiwgY29uc3QgVGV4
dFJ1biYsIGludCYgY2hhcnNDb25zdW1lZCwgU3RyaW5nJiBnbHlwaE5hbWUpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBhcHBseVNWR0tlcm5pbmcoY29uc3QgU2ltcGxlRm9udERh
dGEqLCBXaWR0aEl0ZXJhdG9yJiwgR2x5cGhCdWZmZXIqLCBpbnQgZnJvbSkgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBHbHlwaERhdGEgZ2x5cGhEYXRhRm9yQ2hhcmFjdGVyKGNvbnN0IEZv
bnQmLCBXaWR0aEl0ZXJhdG9yJiwgVUNoYXIzMiBjaGFyYWN0ZXIsIGJvb2wgbWlycm9yLCBpbnQg
Y3VycmVudENoYXJhY3RlciwgdW5zaWduZWQmIGFkdmFuY2VMZW5ndGgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBkcmF3U1ZHR2x5cGhzKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFNpbXBs
ZUZvbnREYXRhKiwgY29uc3QgR2x5cGhCdWZmZXImLCBpbnQgZnJvbSwgaW50IHRvLCBjb25zdCBG
bG9hdFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBmbG9hdCBmbG9hdFdpZHRo
VXNpbmdTVkdGb250KGNvbnN0IEZvbnQmLCBjb25zdCBUZXh0UnVuJiwgaW50JiBjaGFyc0NvbnN1
bWVkLCBTdHJpbmcmIGdseXBoTmFtZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IGFwcGx5U1ZHS2VybmluZyhjb25zdCBTaW1wbGVGb250RGF0YSosIFdpZHRoSXRlcmF0b3ImLCBH
bHlwaEJ1ZmZlciosIGludCBmcm9tKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaCBi
L1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmgKaW5kZXggOGUxNTVhNi4u
ZjM4NGUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYUlt
cGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oCkBAIC00
NCwxOCArNDQsMTggQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVh
SW1wbD4gY3JlYXRlKFN0b3JhZ2VUeXBlLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgUGFz
c1JlZlB0cjxTdG9yYWdlU3luY01hbmFnZXI+LCB1bnNpZ25lZCBxdW90YSk7CiAgICAgdmlydHVh
bCB+U3RvcmFnZUFyZWFJbXBsKCk7CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIGtleSh1bnNpZ25lZCBpbmRleCkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBTdHJpbmcgaXRlbShjb25zdCBTdHJpbmcmIGtleSkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIHNldEl0ZW0oRnJhbWUqIHNvdXJjZUZyYW1lLCBjb25zdCBTdHJpbmcm
IGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCYgcXVvdGFFeGNlcHRpb24pIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJdGVtKEZyYW1lKiBzb3VyY2VGcmFtZSwgY29uc3Qg
U3RyaW5nJiBrZXkpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjbGVhcihGcmFtZSogc291
cmNlRnJhbWUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBjb250YWlucyhjb25zdCBTdHJp
bmcmIGtleSkgT1ZFUlJJREU7Ci0KLSAgICB2aXJ0dWFsIGJvb2wgY2FuQWNjZXNzU3RvcmFnZShG
cmFtZSogc291cmNlRnJhbWUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RvcmFnZVR5cGUgc3Rv
cmFnZVR5cGUoKSBjb25zdCBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgc2l6ZV90IG1lbW9yeUJ5
dGVzVXNlZEJ5Q2FjaGUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIGtleSh1bnNpZ25lZCBpbmRleCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBTdHJpbmcgaXRlbShjb25zdCBTdHJpbmcmIGtleSkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHNldEl0ZW0oRnJhbWUqIHNvdXJjZUZyYW1lLCBjb25zdCBTdHJp
bmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCYgcXVvdGFFeGNlcHRpb24pIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJdGVtKEZyYW1lKiBzb3VyY2VGcmFtZSwgY29u
c3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjbGVhcihGcmFtZSog
c291cmNlRnJhbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjb250YWlucyhjb25zdCBT
dHJpbmcmIGtleSkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIGJvb2wgY2FuQWNjZXNzU3RvcmFn
ZShGcmFtZSogc291cmNlRnJhbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RvcmFnZVR5cGUg
c3RvcmFnZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgc2l6ZV90IG1lbW9y
eUJ5dGVzVXNlZEJ5Q2FjaGUoKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBpbmNyZW1l
bnRBY2Nlc3NDb3VudCgpOwogICAgIHZpcnR1YWwgdm9pZCBkZWNyZW1lbnRBY2Nlc3NDb3VudCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1w
bC5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oCmluZGV4
IDE2MTBkNmYuLjhlNzdjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZU5hbWVzcGFjZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VO
YW1lc3BhY2VJbXBsLmgKQEAgLTQ0LDE4ICs0NCwxOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZT4gc2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoUGFnZSop
OwogICAgIHZpcnR1YWwgflN0b3JhZ2VOYW1lc3BhY2VJbXBsKCk7CiAKLSAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8U3RvcmFnZUFyZWE+IHN0b3JhZ2VBcmVhKFBhc3NSZWZQdHI8U2VjdXJpdHlPcmln
aW4+KSAgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFN0b3JhZ2VOYW1lc3BhY2U+
IGNvcHkoUGFnZSogbmV3UGFnZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNsb3NlKCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhPiBzdG9yYWdlQXJl
YShQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPikgIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxTdG9yYWdlTmFtZXNwYWNlPiBjb3B5KFBhZ2UqIG5ld1BhZ2UpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpIG92ZXJyaWRlOwogCiAgICAgLy8gTm90IHJlbW92aW5n
IHRoZSBvcmlnaW4ncyBTdG9yYWdlQXJlYSBmcm9tIG1fc3RvcmFnZUFyZWFNYXAgYmVjYXVzZQog
ICAgIC8vIHdlJ3JlIGp1c3QgZGVsZXRpbmcgdGhlIHVuZGVybHlpbmcgZGIgZmlsZS4gSWYgYW4g
aXRlbSBpcyBhZGRlZCBpbW1lZGlhdGVseQogICAgIC8vIGFmdGVyIGZpbGUgZGVsZXRpb24sIHdl
IHdhbnQgdGhlIHNhbWUgU3RvcmFnZUFyZWEgdG8gZXZlbnR1YWxseSB0cmlnZ2VyCiAgICAgLy8g
YSBzeW5jIGFuZCBmb3IgU3RvcmFnZUFyZWFTeW5jIHRvIHJlY3JlYXRlIHRoZSBiYWNraW5nIGRi
IGZpbGUuCi0gICAgdmlydHVhbCB2b2lkIGNsZWFyT3JpZ2luRm9yRGVsZXRpb24oU2VjdXJpdHlP
cmlnaW4qKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJBbGxPcmlnaW5zRm9yRGVs
ZXRpb24oKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3luYygpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBjbG9zZUlkbGVMb2NhbFN0b3JhZ2VEYXRhYmFzZXMoKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJPcmlnaW5Gb3JEZWxldGlvbihTZWN1cml0eU9yaWdpbiop
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjbGVhckFsbE9yaWdpbnNGb3JEZWxldGlvbigp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzeW5jKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpIG92ZXJyaWRlOwogCiBwcml2
YXRlOgogICAgIFN0b3JhZ2VOYW1lc3BhY2VJbXBsKFN0b3JhZ2VUeXBlLCBjb25zdCBTdHJpbmcm
IHBhdGgsIHVuc2lnbmVkIHF1b3RhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmgKaW5kZXggZTQ2
NjA4ZS4uZDNjMmNlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmgKQEAgLTQ1LDIxICs0NSwy
MSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgU3RyaW5nIHRhcmdldCgpIGNvbnN0IHsgcmV0dXJu
IHN2Z1RhcmdldCgpOyB9CiAKICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3Ry
aW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYpOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qg
b3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCop
OwogICAgIAotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzRm9jdXNhYmxlKCkgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNGb2N1c2FibGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3Q7CiAKLSAg
ICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBvdmVycmlk
ZTsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdBRWxlbWVudCkK
ICAgICAgICAgLy8gVGhpcyBkZWNsYXJhdGlvbiB1c2VkIHRvIGRlZmluZSBhIG5vbi12aXJ0dWFs
ICJTdHJpbmcmIHRhcmdldCgpIGNvbnN0IiBtZXRob2QsIHRoYXQgY2xhc2hlcyB3aXRoICJ2aXJ0
dWFsIFN0cmluZyBFbGVtZW50Ojp0YXJnZXQoKSBjb25zdCIuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQWx0R2x5cGhEZWZFbGVtZW50LmgKaW5kZXggMTNjMWQ5NC4uNTYzYzZiYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRGVmRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaERlZkVsZW1lbnQuaApAQCAtMzUsNyArMzUsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIFNWR0FsdEdseXBoRGVmRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVk
KGNvbnN0IFJlbmRlclN0eWxlJikgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9CiB9OwogCiBOT0RFX1RZUEVfQ0FTVFMoU1ZHQWx0R2x5cGhEZWZFbGVt
ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oCmluZGV4IDkwZWYzNmUu
LmQxNDJmNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgKQEAgLTQ2
LDggKzQ2LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTVkdBbHRHbHlwaEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4p
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNv
bnN0IE5vZGUmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5v
ZGUmKSBjb25zdCBvdmVycmlkZTsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVS
VElFUyhTVkdBbHRHbHlwaEVsZW1lbnQpCiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfU1RSSU5H
KEhyZWYsIGhyZWYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhJ
dGVtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FsdEdseXBoSXRlbUVsZW1lbnQu
aAppbmRleCBjNThhZDNlLi45ZmRiODA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQWx0R2x5cGhJdGVtRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbHRH
bHlwaEl0ZW1FbGVtZW50LmgKQEAgLTM1LDcgKzM1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBTVkdBbHRHbHlwaEl0ZW1FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OwogCi0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUm
KSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklz
TmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIH07
CiAKIE5PREVfVFlQRV9DQVNUUyhTVkdBbHRHbHlwaEl0ZW1FbGVtZW50KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaAppbmRleCBlYzVkMmU4Li43NjM5ZjNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaApAQCAtNDYsMTYgKzQ2LDE2IEBAIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmltYXRlZFR5cGUoKTsKICAgICB2aXJ0dWFsIHZv
aWQgY2xlYXJBbmltYXRlZFR5cGUoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCk7CiAKLSAgICB2
aXJ0dWFsIGJvb2wgY2FsY3VsYXRlVG9BdEVuZE9mRHVyYXRpb25WYWx1ZShjb25zdCBTdHJpbmcm
IHRvQXRFbmRPZkR1cmF0aW9uU3RyaW5nKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgY2Fs
Y3VsYXRlRnJvbUFuZFRvVmFsdWVzKGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3Ry
aW5nJiB0b1N0cmluZykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNhbGN1bGF0ZUZyb21B
bmRCeVZhbHVlcyhjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgYnlTdHJp
bmcpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZs
b2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdTTUlMRWxlbWVudCogcmVz
dWx0RWxlbWVudCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGFwcGx5UmVzdWx0c1RvVGFy
Z2V0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBmbG9hdCBjYWxjdWxhdGVEaXN0YW5jZShjb25z
dCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgYm9vbCBpc0FkZGl0aXZlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBib29sIGNhbGN1bGF0ZVRvQXRFbmRPZkR1cmF0aW9uVmFsdWUoY29uc3QgU3RyaW5nJiB0b0F0
RW5kT2ZEdXJhdGlvblN0cmluZykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGNhbGN1bGF0
ZUZyb21BbmRUb1ZhbHVlcyhjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYg
dG9TdHJpbmcpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjYWxjdWxhdGVGcm9tQW5kQnlW
YWx1ZXMoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIGJ5U3RyaW5nKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBw
ZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHU01JTEVsZW1lbnQqIHJlc3VsdEVs
ZW1lbnQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhcHBseVJlc3VsdHNUb1RhcmdldCgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgZmxvYXQgY2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3Ry
aW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNBZGRpdGl2ZSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2
b2lkIHNldFRhcmdldEVsZW1lbnQoU1ZHRWxlbWVudCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBzZXRBdHRyaWJ1dGVOYW1lKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0VGFyZ2V0RWxlbWVudChTVkdFbGVtZW50Kikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHNldEF0dHJpYnV0ZU5hbWUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92
ZXJyaWRlOwogCiAgICAgQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgbV9hbmltYXRlZFByb3BlcnR5VHlw
ZTsKIApAQCAtNjQsNyArNjQsNyBAQCBwcml2YXRlOgogICAgIFNWR0FuaW1hdGVkVHlwZUFuaW1h
dG9yKiBlbnN1cmVBbmltYXRvcigpOwogICAgIGJvb2wgYW5pbWF0ZWRQcm9wZXJ0eVR5cGVTdXBw
b3J0c0FkZGl0aW9uKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaGFzVmFsaWRBdHRyaWJ1
dGVUeXBlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGhhc1ZhbGlkQXR0cmlidXRlVHlw
ZSgpIG92ZXJyaWRlOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gbV9m
cm9tVHlwZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBtX3RvVHlwZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmgKaW5kZXggNzQ1
YTBhYy4uNTdlNWZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVN
b3Rpb25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25F
bGVtZW50LmgKQEAgLTQwLDcgKzQwLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaGFz
VmFsaWRBdHRyaWJ1dGVOYW1lKCk7CiAKICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bWljU3RyaW5nJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmltYXRlZFR5
cGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJBbmltYXRlZFR5cGUoU1ZHRWxlbWVudCogdGFy
Z2V0RWxlbWVudCk7CkBAIC02MSw3ICs2MSw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1faGFz
VG9Qb2ludEF0RW5kT2ZEdXJhdGlvbjsKIAotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBbmltYXRp
b25Nb2RlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFuaW1hdGlvbk1vZGUo
KSBvdmVycmlkZTsKIAogICAgIC8vIE5vdGU6IHdlIGRvIG5vdCBzdXBwb3J0IHBlcmNlbnRhZ2Ug
dmFsdWVzIGZvciB0by9mcm9tIGNvb3JkcyBhcyB0aGUgc3BlYyBpbXBsaWVzIHdlIHNob3VsZCAo
b3BlcmEgZG9lc24ndCBlaXRoZXIpCiAgICAgRmxvYXRQb2ludCBtX2Zyb21Qb2ludDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmgKaW5kZXggNDQ2
ZTIxYi4uMDhlMjNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVU
cmFuc2Zvcm1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFu
c2Zvcm1FbGVtZW50LmgKQEAgLTQzLDcgKzQzLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJv
b2wgaGFzVmFsaWRBdHRyaWJ1dGVUeXBlKCk7CiAKICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAKICAgICBTVkdUcmFuc2Zvcm06OlNWR1RyYW5z
Zm9ybVR5cGUgbV90eXBlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZEFuZ2xlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRBbmdsZS5oCmlu
ZGV4IDkyMDRjNDUuLjIyNTE2MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZEFuZ2xlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUu
aApAQCAtNDMsMTcgKzQzLDE3IEBAIGNsYXNzIFNWR0FuaW1hdGVkQW5nbGVBbmltYXRvciBGSU5B
TCA6IHB1YmxpYyBTVkdBbmltYXRlZFR5cGVBbmltYXRvciB7CiBwdWJsaWM6CiAgICAgU1ZHQW5p
bWF0ZWRBbmdsZUFuaW1hdG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQqLCBTVkdFbGVtZW50Kik7CiAK
LSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNvbnN0cnVjdEZy
b21TdHJpbmcoY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBzdGQ6OnVuaXF1
ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxl
bWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHN0
b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3Qg
U1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiwgU1ZHQW5pbWF0ZWRUeXBlKikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRB
bmltYXRlZFByb3BlcnR5TGlzdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBhbmltVmFs
RGlkQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY29uc3RydWN0
RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5p
cXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IHN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmLCBTVkdBbmltYXRlZFR5cGUqKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVu
dEFuaW1hdGVkUHJvcGVydHlMaXN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFuaW1W
YWxEaWRDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0Jikgb3ZlcnJp
ZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkQW5pbWF0ZWRUeXBlcyhTVkdBbmltYXRlZFR5cGUq
LCBTVkdBbmltYXRlZFR5cGUqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkQW5pbWF0
ZWRUeXBlcyhTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqKSBvdmVycmlkZTsKIAot
ICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2Us
IHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUq
LCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGZsb2F0IGNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29u
c3QgU3RyaW5nJiB0b1N0cmluZykgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNhbGN1bGF0
ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIFNW
R0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSosIFNWR0Fu
aW1hdGVkVHlwZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgZmxvYXQgY2FsY3VsYXRlRGlzdGFu
Y2UoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKSBvdmVy
cmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEJvb2xlYW4uaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZEJvb2xlYW4uaAppbmRleCA5ZWU1MjViLi5jNTBkZGVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRCb29sZWFuLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVkQm9vbGVhbi5oCkBAIC00MSwxNiArNDEsMTYgQEAgY2xhc3MgU1ZHQW5p
bWF0ZWRCb29sZWFuQW5pbWF0b3IgRklOQUwgOiBwdWJsaWMgU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0
b3IgewogcHVibGljOgogICAgIFNWR0FuaW1hdGVkQm9vbGVhbkFuaW1hdG9yKFNWR0FuaW1hdGlv
bkVsZW1lbnQqLCBTVkdFbGVtZW50Kik7CiAKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxT
VkdBbmltYXRlZFR5cGU+IGNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBzdGFydEFu
aW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBy
ZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JiwgU1ZHQW5pbWF0ZWRUeXBlKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGFuaW1WYWxX
aWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBhbmltVmFsRGlkQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmlt
YXRlZFByb3BlcnR5TGlzdCYpIE9WRVJSSURFOwotCi0gICAgdmlydHVhbCB2b2lkIGFkZEFuaW1h
dGVkVHlwZXMoU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwg
dW5zaWduZWQgcmVwZWF0Q291bnQsIFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSos
IFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSopIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgZmxvYXQgY2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25z
dCBTdHJpbmcmIHRvU3RyaW5nKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0
cjxTVkdBbmltYXRlZFR5cGU+IGNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBzdGFy
dEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0Jikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCByZXNldEFuaW1WYWxUb0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlM
aXN0JiwgU1ZHQW5pbWF0ZWRUeXBlKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFuaW1W
YWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBhbmltVmFsRGlkQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRB
bmltYXRlZFByb3BlcnR5TGlzdCYpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIGFkZEFu
aW1hdGVkVHlwZXMoU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFn
ZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlw
ZSosIFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSopIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgZmxvYXQgY2FsY3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBj
b25zdCBTdHJpbmcmIHRvU3RyaW5nKSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZENvbG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRDb2xvci5oCmluZGV4IDUyOTc4MGMuLjY5
MzFhNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZENvbG9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkQ29sb3IuaApAQCAtMzEsMTYgKzMx
LDE2IEBAIGNsYXNzIFNWR0FuaW1hdGVkQ29sb3JBbmltYXRvciBGSU5BTCA6IHB1YmxpYyBTVkdB
bmltYXRlZFR5cGVBbmltYXRvciB7CiBwdWJsaWM6CiAgICAgU1ZHQW5pbWF0ZWRDb2xvckFuaW1h
dG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQqLCBTVkdFbGVtZW50Kik7CiAKLSAgICB2aXJ0dWFsIHN0
ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3Qg
U3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJv
cGVydHlMaXN0JikgT1ZFUlJJREUgeyByZXR1cm4gbnVsbHB0cjsgfQotICAgIHZpcnR1YWwgdm9p
ZCBzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxp
c3QmKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmltVmFsVG9CYXNlVmFs
KGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYsIFNWR0FuaW1hdGVkVHlwZSop
IE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBhbmltVmFsV2lsbENoYW5nZShjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgYW5pbVZhbERpZENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxp
c3QmKSBPVkVSUklERSB7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBhZGRBbmltYXRlZFR5cGVzKFNW
R0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJl
cGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRl
ZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGZsb2F0IGNh
bGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0
b1N0cmluZykgT1ZFUlJJREU7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gc3RhcnRBbmltVmFsQW5p
bWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIG92ZXJyaWRlIHsg
cmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3RvcEFuaW1WYWxBbmltYXRpb24o
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0Jikgb3ZlcnJpZGUgeyB9CisgICAg
dmlydHVhbCB2b2lkIHJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZWRQcm9wZXJ0eUxpc3QmLCBTVkdBbmltYXRlZFR5cGUqKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgYW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVy
dHlMaXN0Jikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGFuaW1WYWxEaWRDaGFuZ2Uo
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0Jikgb3ZlcnJpZGUgeyB9CisKKyAg
ICB2aXJ0dWFsIHZvaWQgYWRkQW5pbWF0ZWRUeXBlcyhTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmlt
YXRlZFR5cGUqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FsY3VsYXRlQW5pbWF0ZWRW
YWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRU
eXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBl
Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBmbG9hdCBjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBT
dHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpIG92ZXJyaWRlOwogfTsK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkRW51bWVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZEVudW1lcmF0aW9uLmgKaW5kZXggYmI0YTQ0OS4uYWJiMGMxZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkRW51bWVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbi5oCkBAIC00MCwxNiArNDAsMTYgQEAgY2xhc3Mg
U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbkFuaW1hdG9yIEZJTkFMIDogcHVibGljIFNWR0FuaW1hdGVk
VHlwZUFuaW1hdG9yIHsKIHB1YmxpYzoKICAgICBTVkdBbmltYXRlZEVudW1lcmF0aW9uQW5pbWF0
b3IoU1ZHQW5pbWF0aW9uRWxlbWVudCosIFNWR0VsZW1lbnQqKTsKIAotICAgIHZpcnR1YWwgc3Rk
Ojp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBT
dHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRl
ZFR5cGU+IHN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcEFuaW1WYWxBbmltYXRp
b24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JikgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIHJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZWRQcm9wZXJ0eUxpc3QmLCBTVkdBbmltYXRlZFR5cGUqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgYW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlM
aXN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGFuaW1WYWxEaWRDaGFuZ2UoY29uc3Qg
U1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JikgT1ZFUlJJREU7Ci0KLSAgICB2aXJ0dWFs
IHZvaWQgYWRkQW5pbWF0ZWRUeXBlcyhTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUq
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9h
dCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZH
QW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBmbG9hdCBjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcmIGZy
b21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
c3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY29uc3RydWN0RnJvbVN0cmluZyhjb25z
dCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmlt
YXRlZFR5cGU+IHN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcEFuaW1WYWxBbmlt
YXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0Jikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmLCBTVkdBbmltYXRlZFR5cGUqKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgYW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVy
dHlMaXN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFuaW1WYWxEaWRDaGFuZ2UoY29u
c3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0Jikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0
dWFsIHZvaWQgYWRkQW5pbWF0ZWRUeXBlcyhTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5
cGUqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShm
bG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiwg
U1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBmbG9hdCBjYWxjdWxhdGVEaXN0YW5jZShjb25zdCBTdHJpbmcm
IGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpIG92ZXJyaWRlOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkSW50ZWdlci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkSW50ZWdlci5o
CmluZGV4IDFkYTNkNmYuLmIzMWNiMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZEludGVnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJ
bnRlZ2VyLmgKQEAgLTQ3LDE2ICs0NywxNiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBj
YWxjdWxhdGVBbmltYXRlZEludGVnZXIoU1ZHQW5pbWF0aW9uRWxlbWVudCosIGZsb2F0IHBlcmNl
bnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBpbnQgZnJvbUludGVnZXIsIGludCB0b0ludGVn
ZXIsIGludCB0b0F0RW5kT2ZEdXJhdGlvbkludGVnZXIsIGludCYgYW5pbWF0ZWRJbnRlZ2VyKTsK
IAotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY29uc3RydWN0
RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHN0ZDo6dW5p
cXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IHN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmLCBTVkdBbmltYXRlZFR5cGUqKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVu
dEFuaW1hdGVkUHJvcGVydHlMaXN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGFuaW1W
YWxEaWRDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1
Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgc3RkOjp1
bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gc3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxp
c3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYsIFNWR0FuaW1hdGVkVHlwZSopIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVt
ZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYW5p
bVZhbERpZENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVy
cmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBhZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlw
ZSosIFNWR0FuaW1hdGVkVHlwZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxh
dGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBT
VkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdB
bmltYXRlZFR5cGUqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGZsb2F0IGNhbGN1bGF0ZURpc3Rh
bmNlKGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGFkZEFuaW1hdGVkVHlwZXMoU1ZHQW5pbWF0ZWRUeXBl
KiwgU1ZHQW5pbWF0ZWRUeXBlKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNhbGN1bGF0
ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQsIFNW
R0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSosIFNWR0Fu
aW1hdGVkVHlwZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgZmxvYXQgY2FsY3VsYXRlRGlzdGFu
Y2UoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKSBvdmVy
cmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEludGVnZXJPcHRpb25hbEludGVnZXIuaAppbmRleCA0Njll
YjNiLi4yZDllMGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRJ
bnRlZ2VyT3B0aW9uYWxJbnRlZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkSW50ZWdlck9wdGlvbmFsSW50ZWdlci5oCkBAIC0zMSwxNiArMzEsMTYgQEAgY2xhc3MgU1ZH
QW5pbWF0ZWRJbnRlZ2VyT3B0aW9uYWxJbnRlZ2VyQW5pbWF0b3IgRklOQUwgOiBwdWJsaWMgU1ZH
QW5pbWF0ZWRUeXBlQW4KIHB1YmxpYzoKICAgICBTVkdBbmltYXRlZEludGVnZXJPcHRpb25hbElu
dGVnZXJBbmltYXRvcihTVkdBbmltYXRpb25FbGVtZW50KiwgU1ZHRWxlbWVudCopOwogCi0gICAg
dmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tU3Ry
aW5nKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRy
PFNWR0FuaW1hdGVkVHlwZT4gc3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRB
bmltYXRlZFByb3BlcnR5TGlzdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wQW5p
bVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYsIFNWR0FuaW1hdGVkVHlwZSopIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBhbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZWRQcm9wZXJ0eUxpc3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYW5pbVZhbERpZENo
YW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBPVkVSUklERTsKLQot
ICAgIHZpcnR1YWwgdm9pZCBhZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSosIFNWR0Fu
aW1hdGVkVHlwZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVBbmltYXRl
ZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRl
ZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5
cGUqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGZsb2F0IGNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0
IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9t
U3RyaW5nKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gc3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdG9w
QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYsIFNWR0FuaW1hdGVkVHlwZSopIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBhbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYW5pbVZhbERp
ZENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsK
KworICAgIHZpcnR1YWwgdm9pZCBhZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSosIFNW
R0FuaW1hdGVkVHlwZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVBbmlt
YXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmlt
YXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRl
ZFR5cGUqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGZsb2F0IGNhbGN1bGF0ZURpc3RhbmNlKGNv
bnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykgb3ZlcnJpZGU7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZExlbmd0aC5oCmluZGV4IDkwZDc2ZWYuLjkzMWE1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZExlbmd0aC5oCkBAIC00MiwxNiArNDIsMTYgQEAgY2xhc3MgU1ZHQW5pbWF0ZWRMZW5n
dGhBbmltYXRvciBGSU5BTCA6IHB1YmxpYyBTVkdBbmltYXRlZFR5cGVBbmltYXRvciB7CiBwdWJs
aWM6CiAgICAgU1ZHQW5pbWF0ZWRMZW5ndGhBbmltYXRvcihTVkdBbmltYXRpb25FbGVtZW50Kiwg
U1ZHRWxlbWVudCopOwogCi0gICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRU
eXBlPiBjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gc3RhcnRBbmltVmFsQW5pbWF0
aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0
ZWRQcm9wZXJ0eUxpc3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmltVmFs
VG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYsIFNWR0FuaW1h
dGVkVHlwZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBhbmltVmFsV2lsbENoYW5nZShj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgYW5pbVZhbERpZENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0
eUxpc3QmKSBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgdm9pZCBhZGRBbmltYXRlZFR5cGVzKFNW
R0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJl
cGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRl
ZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGZsb2F0IGNh
bGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0
b1N0cmluZykgT1ZFUlJJREU7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gc3RhcnRBbmltVmFsQW5p
bWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmlt
VmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYsIFNWR0Fu
aW1hdGVkVHlwZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhbmltVmFsV2lsbENoYW5n
ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgYW5pbVZhbERpZENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBhZGRBbmltYXRlZFR5cGVz
KFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSopIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVk
IHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmlt
YXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGZsb2F0
IGNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5n
JiB0b1N0cmluZykgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgU1ZHTGVuZ3RoTW9kZSBtX2xl
bmd0aE1vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5n
dGhMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmgKaW5k
ZXggNDBjOWZlMi4uNWFjZjFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkTGVuZ3RoTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExl
bmd0aExpc3QuaApAQCAtNDIsMTYgKzQyLDE2IEBAIGNsYXNzIFNWR0FuaW1hdGVkTGVuZ3RoTGlz
dEFuaW1hdG9yIEZJTkFMIDogcHVibGljIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yIHsKIHB1Ymxp
YzoKICAgICBTVkdBbmltYXRlZExlbmd0aExpc3RBbmltYXRvcihTVkdBbmltYXRpb25FbGVtZW50
KiwgU1ZHRWxlbWVudCopOwogCi0gICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gc3RhcnRBbmltVmFsQW5p
bWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmlt
VmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYsIFNWR0Fu
aW1hdGVkVHlwZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBhbmltVmFsV2lsbENoYW5n
ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgYW5pbVZhbERpZENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmKSBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgdm9pZCBhZGRBbmltYXRlZFR5cGVz
KFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSopIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVk
IHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmlt
YXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGZsb2F0
IGNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5n
JiB0b1N0cmluZykgT1ZFUlJJREU7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5p
bWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gc3RhcnRBbmltVmFs
QW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzZXRB
bmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYsIFNW
R0FuaW1hdGVkVHlwZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhbmltVmFsV2lsbENo
YW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgYW5pbVZhbERpZENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBhZGRBbmltYXRlZFR5
cGVzKFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSopIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2ln
bmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdB
bmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGZs
b2F0IGNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3Ry
aW5nJiB0b1N0cmluZykgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgU1ZHTGVuZ3RoTW9kZSBt
X2xlbmd0aE1vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRO
dW1iZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlci5oCmluZGV4IGZi
NGM3MDkuLjYzNzdlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZE51bWJlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlci5oCkBA
IC00NSwxNiArNDUsMTYgQEAgY2xhc3MgU1ZHQW5pbWF0ZWROdW1iZXJBbmltYXRvciBGSU5BTCA6
IHB1YmxpYyBTVkdBbmltYXRlZFR5cGVBbmltYXRvciB7CiBwdWJsaWM6CiAgICAgU1ZHQW5pbWF0
ZWROdW1iZXJBbmltYXRvcihTVkdBbmltYXRpb25FbGVtZW50KiwgU1ZHRWxlbWVudCopOwogCi0g
ICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9t
U3RyaW5nKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVf
cHRyPFNWR0FuaW1hdGVkVHlwZT4gc3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1l
bnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzdG9w
QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYsIFNWR0FuaW1hdGVkVHlwZSopIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBhbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYW5pbVZhbERp
ZENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBPVkVSUklERTsK
LQotICAgIHZpcnR1YWwgdm9pZCBhZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSosIFNW
R0FuaW1hdGVkVHlwZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVBbmlt
YXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmlt
YXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRl
ZFR5cGUqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGZsb2F0IGNhbGN1bGF0ZURpc3RhbmNlKGNv
bnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RG
cm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgc3RkOjp1bmlx
dWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gc3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBz
dG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3Qm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0
IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYsIFNWR0FuaW1hdGVkVHlwZSopIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBhbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYW5pbVZh
bERpZENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlk
ZTsKKworICAgIHZpcnR1YWwgdm9pZCBhZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSos
IFNWR0FuaW1hdGVkVHlwZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVB
bmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdB
bmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmlt
YXRlZFR5cGUqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGZsb2F0IGNhbGN1bGF0ZURpc3RhbmNl
KGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykgb3ZlcnJp
ZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWROdW1iZXJMaXN0LmgKaW5kZXggZGEwOWJmMy4uMTRjZTRiYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTnVtYmVyTGlzdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlckxpc3QuaApAQCAtNDIsMTYgKzQyLDE2IEBAIGNs
YXNzIFNWR0FuaW1hdGVkTnVtYmVyTGlzdEFuaW1hdG9yIEZJTkFMIDogcHVibGljIFNWR0FuaW1h
dGVkVHlwZUFuaW1hdG9yIHsKIHB1YmxpYzoKICAgICBTVkdBbmltYXRlZE51bWJlckxpc3RBbmlt
YXRvcihTVkdBbmltYXRpb25FbGVtZW50KiwgU1ZHRWxlbWVudCopOwogCi0gICAgdmlydHVhbCBz
dGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0
IFN0cmluZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1h
dGVkVHlwZT4gc3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wQW5pbVZhbEFuaW1h
dGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmlt
YXRlZFByb3BlcnR5TGlzdCYsIFNWR0FuaW1hdGVkVHlwZSopIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBhbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0
eUxpc3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYW5pbVZhbERpZENoYW5nZShjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBPVkVSUklERTsKLQotICAgIHZpcnR1
YWwgdm9pZCBhZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlw
ZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZs
b2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqLCBT
VkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGZsb2F0IGNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYg
ZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tU3RyaW5nKGNv
bnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFNWR0Fu
aW1hdGVkVHlwZT4gc3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRl
ZFByb3BlcnR5TGlzdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdG9wQW5pbVZhbEFu
aW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRB
bmltYXRlZFByb3BlcnR5TGlzdCYsIFNWR0FuaW1hdGVkVHlwZSopIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBhbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYW5pbVZhbERpZENoYW5nZShj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKKworICAgIHZp
cnR1YWwgdm9pZCBhZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVk
VHlwZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVl
KGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUq
LCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGZsb2F0IGNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmlu
ZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykgb3ZlcnJpZGU7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJlci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXIuaAppbmRleCA2NmMxNzJhLi4yZTA2OTI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWROdW1iZXJPcHRpb25hbE51bWJl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZE51bWJlck9wdGlvbmFsTnVt
YmVyLmgKQEAgLTMxLDE2ICszMSwxNiBAQCBjbGFzcyBTVkdBbmltYXRlZE51bWJlck9wdGlvbmFs
TnVtYmVyQW5pbWF0b3IgRklOQUwgOiBwdWJsaWMgU1ZHQW5pbWF0ZWRUeXBlQW5pbQogcHVibGlj
OgogICAgIFNWR0FuaW1hdGVkTnVtYmVyT3B0aW9uYWxOdW1iZXJBbmltYXRvcihTVkdBbmltYXRp
b25FbGVtZW50KiwgU1ZHRWxlbWVudCopOwogCi0gICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8
U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gc3RhcnRB
bmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
cmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYsIFNWR0FuaW1hdGVkVHlwZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBhbmltVmFs
V2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgYW5pbVZhbERpZENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmKSBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgdm9pZCBhZGRBbmlt
YXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSopIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2Us
IHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUq
LCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGZsb2F0IGNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29u
c3QgU3RyaW5nJiB0b1N0cmluZykgT1ZFUlJJREU7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9w
dHI8U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gc3Rh
cnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYsIFNWR0FuaW1hdGVkVHlwZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhbmlt
VmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYW5pbVZhbERpZENoYW5nZShjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBhZGRB
bmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSopIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRh
Z2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5
cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGZsb2F0IGNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywg
Y29uc3QgU3RyaW5nJiB0b1N0cmluZykgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQYXRoLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQYXRoLmgKaW5kZXggM2YxYTdkNi4uOTBi
MTMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBhdGguaApAQCAtMzEsMTYgKzMxLDE2
IEBAIGNsYXNzIFNWR0FuaW1hdGVkUGF0aEFuaW1hdG9yIEZJTkFMIDogcHVibGljIFNWR0FuaW1h
dGVkVHlwZUFuaW1hdG9yIHsKIHB1YmxpYzoKICAgICBTVkdBbmltYXRlZFBhdGhBbmltYXRvcihT
VkdBbmltYXRpb25FbGVtZW50KiwgU1ZHRWxlbWVudCopOwogCi0gICAgdmlydHVhbCBzdGQ6OnVu
aXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmlu
ZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlw
ZT4gc3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wQW5pbVZhbEFuaW1hdGlvbihj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYsIFNWR0FuaW1hdGVkVHlwZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBhbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3Qm
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYW5pbVZhbERpZENoYW5nZShjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgdm9p
ZCBhZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSopIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBl
cmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmlt
YXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGZsb2F0IGNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYgZnJvbVN0
cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykgT1ZFUlJJREU7CisgICAgdmlydHVhbCBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0
cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVk
VHlwZT4gc3RhcnRBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3Bl
cnR5TGlzdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdG9wQW5pbVZhbEFuaW1hdGlv
bihjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVzZXRBbmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRl
ZFByb3BlcnR5TGlzdCYsIFNWR0FuaW1hdGVkVHlwZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBhbmltVmFsV2lsbENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxp
c3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYW5pbVZhbERpZENoYW5nZShjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwg
dm9pZCBhZGRBbmltYXRlZFR5cGVzKFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSop
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0
IHBlcmNlbnRhZ2UsIHVuc2lnbmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqLCBTVkdB
bmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGZsb2F0IGNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYgZnJv
bVN0cmluZywgY29uc3QgU3RyaW5nJiB0b1N0cmluZykgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRQb2ludExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50TGlzdC5o
CmluZGV4IGU3MTM5NDEuLjMyNzMzZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRlZFBvaW50TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZFBvaW50TGlzdC5oCkBAIC0zNSwxNiArMzUsMTYgQEAgY2xhc3MgU1ZHQW5pbWF0ZWRQb2ludExp
c3RBbmltYXRvciBGSU5BTCA6IHB1YmxpYyBTVkdBbmltYXRlZFR5cGVBbmltYXRvciB7CiBwdWJs
aWM6CiAgICAgU1ZHQW5pbWF0ZWRQb2ludExpc3RBbmltYXRvcihTVkdBbmltYXRpb25FbGVtZW50
KiwgU1ZHRWxlbWVudCopOwogCi0gICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0
ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gc3RhcnRBbmltVmFsQW5p
bWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50QW5p
bWF0ZWRQcm9wZXJ0eUxpc3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmlt
VmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYsIFNWR0Fu
aW1hdGVkVHlwZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBhbmltVmFsV2lsbENoYW5n
ZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgYW5pbVZhbERpZENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QmKSBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgdm9pZCBhZGRBbmltYXRlZFR5cGVz
KFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSopIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2lnbmVk
IHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmlt
YXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGZsb2F0
IGNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5n
JiB0b1N0cmluZykgT1ZFUlJJREU7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5p
bWF0ZWRUeXBlPiBjb25zdHJ1Y3RGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gc3RhcnRBbmltVmFs
QW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBzdG9wQW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVtZW50
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzZXRB
bmltVmFsVG9CYXNlVmFsKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYsIFNW
R0FuaW1hdGVkVHlwZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhbmltVmFsV2lsbENo
YW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgYW5pbVZhbERpZENoYW5nZShjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBhZGRBbmltYXRlZFR5
cGVzKFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSopIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBjYWxjdWxhdGVBbmltYXRlZFZhbHVlKGZsb2F0IHBlcmNlbnRhZ2UsIHVuc2ln
bmVkIHJlcGVhdENvdW50LCBTVkdBbmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqLCBTVkdB
bmltYXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGZs
b2F0IGNhbGN1bGF0ZURpc3RhbmNlKGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3Ry
aW5nJiB0b1N0cmluZykgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJh
dGlvLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlv
LmgKaW5kZXggMDJjZjVmOS4uYzA4OTU4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaApAQCAtNDIsMTYgKzQyLDE2IEBAIGNs
YXNzIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpb0FuaW1hdG9yIEZJTkFMIDogcHVibGlj
IFNWR0FuaW1hdGVkVHlwZUFuaW1hCiBwdWJsaWM6CiAgICAgU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFz
cGVjdFJhdGlvQW5pbWF0b3IoU1ZHQW5pbWF0aW9uRWxlbWVudCosIFNWR0VsZW1lbnQqKTsKIAot
ICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY29uc3RydWN0RnJv
bVN0cmluZyhjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVl
X3B0cjxTVkdBbmltYXRlZFR5cGU+IHN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdFbGVt
ZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3Rv
cEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0Jikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25zdCBT
VkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmLCBTVkdBbmltYXRlZFR5cGUqKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgYW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFu
aW1hdGVkUHJvcGVydHlMaXN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGFuaW1WYWxE
aWRDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JikgT1ZFUlJJREU7
Ci0KLSAgICB2aXJ0dWFsIHZvaWQgYWRkQW5pbWF0ZWRUeXBlcyhTVkdBbmltYXRlZFR5cGUqLCBT
VkdBbmltYXRlZFR5cGUqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2FsY3VsYXRlQW5p
bWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZHQW5p
bWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0
ZWRUeXBlKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBmbG9hdCBjYWxjdWxhdGVEaXN0YW5jZShj
b25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY29uc3RydWN0
RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5p
cXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IHN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25zdCBTVkdF
bGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
c3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlc2V0QW5pbVZhbFRvQmFzZVZhbChjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmLCBTVkdBbmltYXRlZFR5cGUqKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZHRWxlbWVu
dEFuaW1hdGVkUHJvcGVydHlMaXN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFuaW1W
YWxEaWRDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0Jikgb3ZlcnJp
ZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgYWRkQW5pbWF0ZWRUeXBlcyhTVkdBbmltYXRlZFR5cGUq
LCBTVkdBbmltYXRlZFR5cGUqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FsY3VsYXRl
QW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3VudCwgU1ZH
QW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5p
bWF0ZWRUeXBlKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBmbG9hdCBjYWxjdWxhdGVEaXN0YW5j
ZShjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcpIG92ZXJy
aWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkUmVjdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkUmVjdC5oCmluZGV4IDAwMTE3YmQuLjA2M2NkMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZFJlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRSZWN0LmgKQEAgLTQzLDE2ICs0MywxNiBAQCBjbGFzcyBTVkdBbmltYXRlZFJlY3RBbmlt
YXRvciBGSU5BTCA6IHB1YmxpYyBTVkdBbmltYXRlZFR5cGVBbmltYXRvciB7CiBwdWJsaWM6CiAg
ICAgU1ZHQW5pbWF0ZWRSZWN0QW5pbWF0b3IoU1ZHQW5pbWF0aW9uRWxlbWVudCosIFNWR0VsZW1l
bnQqKTsKIAotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4gY29u
c3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHN0
ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IHN0YXJ0QW5pbVZhbEFuaW1hdGlvbihjb25z
dCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgc3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVy
dHlMaXN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlc2V0QW5pbVZhbFRvQmFzZVZh
bChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmLCBTVkdBbmltYXRlZFR5cGUq
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYW5pbVZhbFdpbGxDaGFuZ2UoY29uc3QgU1ZH
RWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGFuaW1WYWxEaWRDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0Jikg
T1ZFUlJJREU7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgYWRkQW5pbWF0ZWRUeXBlcyhTVkdBbmltYXRl
ZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2Fs
Y3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRDb3Vu
dCwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKiwg
U1ZHQW5pbWF0ZWRUeXBlKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBmbG9hdCBjYWxjdWxhdGVE
aXN0YW5jZShjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJpbmcp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFNWR0FuaW1hdGVkVHlwZT4g
Y29uc3RydWN0RnJvbVN0cmluZyhjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IHN0YXJ0QW5pbVZhbEFuaW1hdGlvbihj
b25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgc3RvcEFuaW1WYWxBbmltYXRpb24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJv
cGVydHlMaXN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlc2V0QW5pbVZhbFRvQmFz
ZVZhbChjb25zdCBTVkdFbGVtZW50QW5pbWF0ZWRQcm9wZXJ0eUxpc3QmLCBTVkdBbmltYXRlZFR5
cGUqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYW5pbVZhbFdpbGxDaGFuZ2UoY29uc3Qg
U1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGFuaW1WYWxEaWRDaGFuZ2UoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0
Jikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgYWRkQW5pbWF0ZWRUeXBlcyhTVkdBbmlt
YXRlZFR5cGUqLCBTVkdBbmltYXRlZFR5cGUqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
Y2FsY3VsYXRlQW5pbWF0ZWRWYWx1ZShmbG9hdCBwZXJjZW50YWdlLCB1bnNpZ25lZCByZXBlYXRD
b3VudCwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBl
KiwgU1ZHQW5pbWF0ZWRUeXBlKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBmbG9hdCBjYWxjdWxh
dGVEaXN0YW5jZShjb25zdCBTdHJpbmcmIGZyb21TdHJpbmcsIGNvbnN0IFN0cmluZyYgdG9TdHJp
bmcpIG92ZXJyaWRlOwogCiAgICAgc3RhdGljIGJvb2wgcGFyc2VTVkdSZWN0KGNvbnN0IFN0cmlu
ZyYsIEZsb2F0UmVjdCYpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZFN0cmluZy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkU3RyaW5nLmgK
aW5kZXggMmYyOTNmNy4uMTVhNDg1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkU3RyaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkU3Ry
aW5nLmgKQEAgLTQyLDE2ICs0MiwxNiBAQCBjbGFzcyBTVkdBbmltYXRlZFN0cmluZ0FuaW1hdG9y
IEZJTkFMIDogcHVibGljIFNWR0FuaW1hdGVkVHlwZUFuaW1hdG9yIHsKIHB1YmxpYzoKICAgICBT
VkdBbmltYXRlZFN0cmluZ0FuaW1hdG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQqLCBTVkdFbGVtZW50
Kik7CiAKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNvbnN0
cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBzdGFydEFuaW1WYWxBbmltYXRpb24oY29uc3Qg
U1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXNldEFuaW1WYWxUb0Jhc2VWYWwo
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiwgU1ZHQW5pbWF0ZWRUeXBlKikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNWR0Vs
ZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBh
bmltVmFsRGlkQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIE9W
RVJSSURFOwotCi0gICAgdmlydHVhbCB2b2lkIGFkZEFuaW1hdGVkVHlwZXMoU1ZHQW5pbWF0ZWRU
eXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNhbGN1
bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291bnQs
IFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSosIFNW
R0FuaW1hdGVkVHlwZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgZmxvYXQgY2FsY3VsYXRlRGlz
dGFuY2UoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+IGNv
bnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBz
dGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBzdGFydEFuaW1WYWxBbmltYXRpb24oY29u
c3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3Bl
cnR5TGlzdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZXNldEFuaW1WYWxUb0Jhc2VW
YWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiwgU1ZHQW5pbWF0ZWRUeXBl
Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0IFNW
R0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBhbmltVmFsRGlkQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYp
IG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIGFkZEFuaW1hdGVkVHlwZXMoU1ZHQW5pbWF0
ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNh
bGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0Q291
bnQsIFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSos
IFNWR0FuaW1hdGVkVHlwZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgZmxvYXQgY2FsY3VsYXRl
RGlzdGFuY2UoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5n
KSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3QuaAppbmRleCBjMTQ5Zjk0Li5jM2Q3NWU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5oCkBA
IC00MSwxNiArNDEsMTYgQEAgY2xhc3MgU1ZHQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0QW5pbWF0b3Ig
RklOQUwgOiBwdWJsaWMgU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IgewogcHVibGljOgogICAgIFNW
R0FuaW1hdGVkVHJhbnNmb3JtTGlzdEFuaW1hdG9yKFNWR0FuaW1hdGlvbkVsZW1lbnQqLCBTVkdF
bGVtZW50Kik7CiAKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5cGU+
IGNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBzdGFydEFuaW1WYWxBbmltYXRpb24o
Y29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFBy
b3BlcnR5TGlzdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXNldEFuaW1WYWxUb0Jh
c2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiwgU1ZHQW5pbWF0ZWRU
eXBlKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGFuaW1WYWxXaWxsQ2hhbmdlKGNvbnN0
IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBhbmltVmFsRGlkQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlz
dCYpIE9WRVJSSURFOwotCi0gICAgdmlydHVhbCB2b2lkIGFkZEFuaW1hdGVkVHlwZXMoU1ZHQW5p
bWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVwZWF0
Q291bnQsIFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlw
ZSosIFNWR0FuaW1hdGVkVHlwZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgZmxvYXQgY2FsY3Vs
YXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3Ry
aW5nKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxTVkdBbmltYXRlZFR5
cGU+IGNvbnN0cnVjdEZyb21TdHJpbmcoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHQW5pbWF0ZWRUeXBlPiBzdGFydEFuaW1WYWxBbmltYXRp
b24oY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0Jikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHN0b3BBbmltVmFsQW5pbWF0aW9uKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRl
ZFByb3BlcnR5TGlzdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZXNldEFuaW1WYWxU
b0Jhc2VWYWwoY29uc3QgU1ZHRWxlbWVudEFuaW1hdGVkUHJvcGVydHlMaXN0JiwgU1ZHQW5pbWF0
ZWRUeXBlKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFuaW1WYWxXaWxsQ2hhbmdlKGNv
bnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5TGlzdCYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBhbmltVmFsRGlkQ2hhbmdlKGNvbnN0IFNWR0VsZW1lbnRBbmltYXRlZFByb3BlcnR5
TGlzdCYpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIGFkZEFuaW1hdGVkVHlwZXMoU1ZH
QW5pbWF0ZWRUeXBlKiwgU1ZHQW5pbWF0ZWRUeXBlKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGNhbGN1bGF0ZUFuaW1hdGVkVmFsdWUoZmxvYXQgcGVyY2VudGFnZSwgdW5zaWduZWQgcmVw
ZWF0Q291bnQsIFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVkVHlwZSosIFNWR0FuaW1hdGVk
VHlwZSosIFNWR0FuaW1hdGVkVHlwZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgZmxvYXQgY2Fs
Y3VsYXRlRGlzdGFuY2UoY29uc3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRv
U3RyaW5nKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBjb25zdCBTdHJpbmcmIG1fdHJhbnNm
b3JtVHlwZVN0cmluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRp
b25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCmlu
ZGV4IDIyNzgwZmIuLmRlYjE3YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRpb25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVs
ZW1lbnQuaApAQCAtMTcwLDggKzE3MCw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQg
ZGV0ZXJtaW5lUHJvcGVydHlWYWx1ZVR5cGVzKGNvbnN0IFN0cmluZyYgZnJvbSwgY29uc3QgU3Ry
aW5nJiB0byk7CiAKICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21pY1N0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIGVudW0gQXR0cmlidXRl
VHlwZSB7CiAgICAgICAgIEF0dHJpYnV0ZVR5cGVDU1MsCkBAIC0xODcsMTQgKzE4NywxNCBAQCBw
cm90ZWN0ZWQ6CiAgICAgU3RyaW5nIHRhcmdldEF0dHJpYnV0ZUJhc2VWYWx1ZSgpOwogCiAgICAg
Ly8gZnJvbSBTVkdTTUlMRWxlbWVudAotICAgIHZpcnR1YWwgdm9pZCBzdGFydGVkQWN0aXZlSW50
ZXJ2YWwoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9uKGZsb2F0
IHBlcmNlbnQsIHVuc2lnbmVkIHJlcGVhdCwgU1ZHU01JTEVsZW1lbnQqIHJlc3VsdEVsZW1lbnQp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdGFydGVkQWN0aXZlSW50ZXJ2YWwoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9uKGZsb2F0IHBlcmNlbnQsIHVu
c2lnbmVkIHJlcGVhdCwgU1ZHU01JTEVsZW1lbnQqIHJlc3VsdEVsZW1lbnQpIG92ZXJyaWRlOwog
CiAgICAgQW5pbWF0ZWRQcm9wZXJ0eVZhbHVlVHlwZSBtX2Zyb21Qcm9wZXJ0eVZhbHVlVHlwZTsK
ICAgICBBbmltYXRlZFByb3BlcnR5VmFsdWVUeXBlIG1fdG9Qcm9wZXJ0eVZhbHVlVHlwZTsKIAot
ICAgIHZpcnR1YWwgdm9pZCBzZXRUYXJnZXRFbGVtZW50KFNWR0VsZW1lbnQqKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0QXR0cmlidXRlTmFtZShjb25zdCBRdWFsaWZpZWROYW1lJikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFRhcmdldEVsZW1lbnQoU1ZHRWxlbWVudCop
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRBdHRyaWJ1dGVOYW1lKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKSBvdmVycmlkZTsKICAgICBib29sIGhhc0ludmFsaWRDU1NBdHRyaWJ1dGVUeXBl
KCkgY29uc3QgeyByZXR1cm4gbV9oYXNJbnZhbGlkQ1NTQXR0cmlidXRlVHlwZTsgfQogCiAgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZUFuaW1hdGlvbk1vZGUoKTsKQEAgLTIwMiw3ICsyMDIsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRDYWxjTW9kZShDYWxjTW9kZSBjYWxjTW9kZSkgeyBtX2Nh
bGNNb2RlID0gY2FsY01vZGU7IH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0
aW9uQXR0cmlidXRlQ2hhbmdlZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhbmltYXRp
b25BdHRyaWJ1dGVDaGFuZ2VkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRBdHRyaWJ1dGVUeXBl
KGNvbnN0IEF0b21pY1N0cmluZyYpOwogCiAgICAgdm9pZCBjaGVja0ludmFsaWRDU1NBdHRyaWJ1
dGVUeXBlKFNWR0VsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdD
aXJjbGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCmlu
ZGV4IDJkMzUyMTIuLmQxM2UyOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdD
aXJjbGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQu
aApAQCAtMzgsMTUgKzM4LDE1IEBAIHByaXZhdGU6CiAgICAgU1ZHQ2lyY2xlRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlk
KCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQotICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQogCiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7
Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Q7
CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0
eWxlPikgb3ZlcnJpZGU7CiAKICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMo
U1ZHQ2lyY2xlRWxlbWVudCkKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9MRU5HVEgoQ3gsIGN4
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oCmluZGV4IDRlOWFmZmMuLjM1
ZmJjMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgKQEAgLTQ0LDEx
ICs0NCwxMSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBuZWVkc1BlbmRpbmdSZXNvdXJj
ZUhhbmRsaW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIGJvb2wgaXNTdXBwb3J0
ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotICAgIHZpcnR1YWwgdm9pZCBwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3Zn
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJik7Ci0gICAgdmlydHVhbCB2b2lk
IGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlkZTsKIAot
ICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+
KSBvdmVycmlkZTsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdD
bGlwUGF0aEVsZW1lbnQpCiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfRU5VTUVSQVRJT04oQ2xp
cFBhdGhVbml0cywgY2xpcFBhdGhVbml0cywgU1ZHVW5pdFR5cGVzOjpTVkdVbml0VHlwZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9u
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rp
b25FbGVtZW50LmgKaW5kZXggMzUzNzRlMi4uZTFlMzE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmgKQEAg
LTc4LDEwICs3OCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5j
dGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBib29s
IGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKLSAgICB2aXJ0dWFs
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0
cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCi0gICAg
dmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBPVkVSUklE
RSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNv
bnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICAKIHByaXZh
dGU6CiAgICAgQkVHSU5fREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0NvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb25FbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0N1cnNvckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgK
aW5kZXggNTk1Yjg3Zi4uOGFhMGIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0N1cnNvckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVu
dC5oCkBAIC01MSwxMCArNTEsMTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxp
ZCgpIGNvbnN0IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KIAogICAgIGJvb2wgaXNT
dXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotICAgIHZpcnR1YWwgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJik7CiAKLSAgICB2aXJ0
dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIE9WRVJSSURFIHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3Qg
UmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCB2
b2lkIGFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxVUkw+JikgY29uc3Q7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmgKaW5kZXggYTQ2NWM0NS4uOTdhMGIzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmgKQEAgLTM4LDcgKzM4LDcgQEAgcHJpdmF0
ZToKIAogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5k
ZXJTdHlsZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgb3ZlcnJpZGU7CiAK
ICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHRGVmc0VsZW1lbnQpCiAg
ICAgICAgIERFQ0xBUkVfQU5JTUFURURfQk9PTEVBTihFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
LCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnQuaAppbmRl
eCA2MjIyZWYyLi5hZTlmNGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9j
dW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnQuaApAQCAtNTEsOSAr
NTEsOSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNWR0RvY3VtZW50KEZyYW1lKiwgY29uc3Qg
VVJMJik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25z
dCBOb2RlJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3Jl
YXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBQ
YXNzUmVmUHRyPERvY3VtZW50PiBjbG9uZURvY3VtZW50V2l0aG91dENoaWxkcmVuKCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPERvY3VtZW50PiBjbG9uZURvY3VtZW50
V2l0aG91dENoaWxkcmVuKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBGbG9hdFBvaW50IG1fdHJh
bnNsYXRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCmluZGV4IDE3NjlkNGYuLmVkNmEwMTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAg
U1ZHU1ZHRWxlbWVudCogb3duZXJTVkdFbGVtZW50KCkgY29uc3Q7CiAgICAgU1ZHRWxlbWVudCog
dmlld3BvcnRFbGVtZW50KCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIFN0cmluZyB0aXRsZSgpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIHRpdGxlKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgc3RhdGljIGJvb2wgaXNBbmltYXRhYmxlQ1NTUHJvcGVydHkoY29uc3QgUXVhbGlmaWVk
TmFtZSYpOwogICAgIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7
CiAgICAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gZ2V0UHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0
IFN0cmluZyYgbmFtZSk7CkBAIC0xMTIsNyArMTEyLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBz
eW5jaHJvbml6ZUFuaW1hdGVkU1ZHQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25z
dDsKICAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IGN1c3RvbVN0eWxlRm9y
UmVuZGVyZXIoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+
IGN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoKSBvdmVycmlkZTsKIAogICAgIHN0YXRpYyB2b2lkIHN5
bmNocm9uaXplUmVxdWlyZWRGZWF0dXJlcyhTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCk7CiAg
ICAgc3RhdGljIHZvaWQgc3luY2hyb25pemVSZXF1aXJlZEV4dGVuc2lvbnMoU1ZHRWxlbWVudCog
Y29udGV4dEVsZW1lbnQpOwpAQCAtMTMyLDM0ICsxMzIsMzQgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCBib29sIGhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcygpOwogCi0gICAgdmlydHVhbCBi
b29sIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFBhc3NS
ZWZQdHI8RXZlbnRMaXN0ZW5lcj4sIGJvb2wgdXNlQ2FwdHVyZSkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBib29sIHJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUsIEV2ZW50TGlzdGVuZXIqLCBib29sIHVzZUNhcHR1cmUpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgYm9vbCBhZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQ
YXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+LCBib29sIHVzZUNhcHR1cmUpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCByZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBFdmVudExpc3RlbmVyKiwgYm9vbCB1c2VDYXB0dXJlKSBvdmVycmlkZTsKIAogI2lm
IEVOQUJMRShDU1NfUkVHSU9OUykKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTW92ZVRvRmxvd1Ro
cmVhZChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRNb3ZlVG9GbG93VGhyZWFkKGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJp
ZGU7CiAjZW5kaWYKIAogcHJvdGVjdGVkOgogICAgIFNWR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAgICAgdmlydHVhbCB+U1ZHRWxlbWVudCgpOwogCi0gICAgdmly
dHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklz
TmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uID0g
TW9kaWZpZWREaXJlY3RseSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxk
Q3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
JiwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uID0gTW9kaWZpZWREaXJlY3RseSkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9k
ZSYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgU1ZHRWxlbWVudFJhcmVEYXRhJiBlbnN1cmVTVkdS
YXJlRGF0YSgpOwogCiAgICAgdm9pZCByZXBvcnRBdHRyaWJ1dGVQYXJzaW5nRXJyb3IoU1ZHUGFy
c2luZ0Vycm9yLCBjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJik7CiAg
ICAgc3RhdGljIENTU1Byb3BlcnR5SUQgY3NzUHJvcGVydHlJZEZvclNWR0F0dHJpYnV0ZU5hbWUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCi0gICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9u
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2Vy
dGVkSW50byhDb250YWluZXJOb2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92
ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2hpbGRy
ZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29s
IGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRp
b25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZvaWQgdXBkYXRlUmVsYXRpdmVMZW5ndGhzSW5mb3JtYXRpb24oKSB7IHVw
ZGF0ZVJlbGF0aXZlTGVuZ3Roc0luZm9ybWF0aW9uKHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSwg
dGhpcyk7IH0KICAgICB2b2lkIHVwZGF0ZVJlbGF0aXZlTGVuZ3Roc0luZm9ybWF0aW9uKGJvb2wg
aGFzUmVsYXRpdmVMZW5ndGhzLCBTVkdFbGVtZW50Kik7CkBAIC0xNjksMTAgKzE2OSwxMCBAQCBw
cml2YXRlOgogCiAgICAgLy8gRklYTUU6IEF1dGhvciBzaGFkb3dzIHNob3VsZCBiZSBhbGxvd2Vk
CiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3OTM4Ci0g
ICAgdmlydHVhbCBib29sIGFyZUF1dGhvclNoYWRvd3NBbGxvd2VkKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgYXJlQXV0aG9yU2hhZG93c0FsbG93
ZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCBSZW5k
ZXJTdHlsZSogY29tcHV0ZWRTdHlsZShQc2V1ZG9JZCA9IE5PUFNFVURPKSBPVkVSUklERSBGSU5B
TDsKLSAgICB2aXJ0dWFsIGJvb2wgd2lsbFJlY2FsY1N0eWxlKFN0eWxlOjpDaGFuZ2UpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgUmVuZGVyU3R5bGUqIGNvbXB1dGVkU3R5bGUoUHNldWRvSWQgPSBO
T1BTRVVETykgb3ZlcnJpZGUgRklOQUw7CisgICAgdmlydHVhbCBib29sIHdpbGxSZWNhbGNTdHls
ZShTdHlsZTo6Q2hhbmdlKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1N1cHBvcnRl
ZChTdHJpbmdJbXBsKiBmZWF0dXJlLCBTdHJpbmdJbXBsKiB2ZXJzaW9uKSBjb25zdDsKIApAQCAt
MTgwLDkgKzE4MCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmVJbnN0YW5jZU1hcHBpbmco
U1ZHRWxlbWVudEluc3RhbmNlKik7CiAKICAgICB2b2lkIGJ1aWxkUGVuZGluZ1Jlc291cmNlc0lm
TmVlZGVkKCk7Ci0gICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRF
dmVudCopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc01vdXNlRm9jdXNhYmxl
KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29s
IHNlbmRNb3VzZUV2ZW50cykgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRG
b2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9v
bCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFj
Y2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgb3ZlcnJpZGU7CiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8U1ZHRWxlbWVudFJhcmVEYXRhPiBtX3N2Z1JhcmVEYXRhOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudEluc3RhbmNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRWxlbWVudEluc3RhbmNlLmgKaW5kZXggNmIwYjJkMi4uNTg2ZjJhZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnRJbnN0YW5jZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50SW5zdGFuY2UuaApAQCAtNDcsMTUgKzQ3LDE1IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgc2V0UGFyZW50Tm9kZShTVkdFbGVtZW50SW5zdGFuY2UqIGlu
c3RhbmNlKSB7IG1fcGFyZW50SW5zdGFuY2UgPSBpbnN0YW5jZTsgfQogCi0gICAgdmlydHVhbCBF
dmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2Ug
ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlk
ZTsKIAotICAgIHZpcnR1YWwgYm9vbCBhZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmlu
ZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+LCBib29sIHVzZUNhcHR1cmUp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCByZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyKiwgYm9vbCB1c2VDYXB0dXJlKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIGJvb2wgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPiwgYm9vbCB1c2VDYXB0dXJl
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBB
dG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciosIGJvb2wgdXNlQ2FwdHVyZSkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkgb3Zl
cnJpZGU7CiAKICAgICB1c2luZyBFdmVudFRhcmdldDo6ZGlzcGF0Y2hFdmVudDsKLSAgICB2aXJ0
dWFsIGJvb2wgZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBib29sIGRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pIG92ZXJyaWRlOwog
CiAgICAgU1ZHRWxlbWVudCogY29ycmVzcG9uZGluZ0VsZW1lbnQoKSBjb25zdCB7IHJldHVybiBt
X2VsZW1lbnQuZ2V0KCk7IH0KICAgICBTVkdVc2VFbGVtZW50KiBjb3JyZXNwb25kaW5nVXNlRWxl
bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQ7IH0KQEAgLTE1
Myw3ICsxNTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVtb3ZlZExhc3RSZWYoKTsKICAgICBi
b29sIGhhc1RyZWVTaGFyZWRQYXJlbnQoKSBjb25zdCB7IHJldHVybiAhIW1fcGFyZW50SW5zdGFu
Y2U7IH0KIAotICAgIHZpcnR1YWwgTm9kZSogdG9Ob2RlKCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBOb2RlKiB0b05vZGUoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgYXBwZW5kQ2hpbGQoUGFzc1Jl
ZlB0cjxTVkdFbGVtZW50SW5zdGFuY2U+IGNoaWxkKTsKICAgICB2b2lkIHNldFNoYWRvd1RyZWVF
bGVtZW50KFNWR0VsZW1lbnQqKTsKQEAgLTE3NSwxMCArMTc1LDEwIEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzZXROZXh0U2libGluZyhTVkdFbGVtZW50SW5zdGFuY2UqIHNpYmxpbmcpIHsgbV9uZXh0
U2libGluZyA9IHNpYmxpbmc7IH0KICAgICB2b2lkIHNldFByZXZpb3VzU2libGluZyhTVkdFbGVt
ZW50SW5zdGFuY2UqIHNpYmxpbmcpIHsgbV9wcmV2aW91c1NpYmxpbmcgPSBzaWJsaW5nOyB9ICAg
IAogCi0gICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyByZWYoKTsg
fQotICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJREUgeyBkZXJlZigp
OyB9Ci0gICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YSgpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhJiBlbnN1cmVFdmVudFRhcmdldERhdGEo
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7
IHJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7
IGRlcmVmKCk7IH0KKyAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRh
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEmIGVuc3VyZUV2ZW50VGFy
Z2V0RGF0YSgpIG92ZXJyaWRlOwogCiAgICAgU1ZHRWxlbWVudEluc3RhbmNlKiBtX3BhcmVudElu
c3RhbmNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCmluZGV4IDczNTBh
NzEuLmNhZjQ3ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCkBAIC0z
OCwxNSArMzgsMTUgQEAgcHJpdmF0ZToKICAgICBTVkdFbGxpcHNlRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgp
IGNvbnN0IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KLSAgICB2aXJ0dWFsIGJvb2wg
c3VwcG9ydHNGb2N1cygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
IAogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwot
ICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0Owog
Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHls
ZT4pIG92ZXJyaWRlOwogCiAgICAgQkVHSU5fREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNW
R0VsbGlwc2VFbGVtZW50KQogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX0xFTkdUSChDeCwgY3gp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5oCmluZGV4IDVkYTU2ZGIuLjJkZTQy
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5oCkBAIC03Nyw3ICs3Nyw3
IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVCbGVuZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CiAKICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShG
aWx0ZXJFZmZlY3QqLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSk7CiAgICAgdmlydHVh
bCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBG
aWx0ZXIqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmgK
aW5kZXggYTg5YmRiYy4uNzYwMDUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFQ29sb3JNYXRyaXhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29s
b3JNYXRyaXhFbGVtZW50LmgKQEAgLTc0LDcgKzc0LDcgQEAgcHJpdmF0ZToKICAgICBTVkdGRUNv
bG9yTWF0cml4RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAg
IGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotICAgIHZp
cnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bWljU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCosIGNvbnN0
IFF1YWxpZmllZE5hbWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZpbHRlckVmZmVj
dD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaAppbmRleCBmNTFmNzBmLi4w
ZGEyZmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFu
c2ZlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFu
c2ZlckVsZW1lbnQuaApAQCAtMzYsNyArMzYsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gRklYTUU6
IHN2Z0F0dHJpYnV0ZUNoYW5nZWQgbWlzc2luZy4KICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZpbHRl
ckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciopOwogCiAgICAgQkVHSU5f
REVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5oCmluZGV4IGVmMTBh
MjMuLjMzODc1NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0
ZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50
LmgKQEAgLTgyLDcgKzgyLDcgQEAgcHJpdmF0ZToKICAgICBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBib29sIGlzU3VwcG9ydGVk
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHNldEZp
bHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqLCBjb25zdCBRdWFsaWZpZWROYW1lJik7
CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRl
ckJ1aWxkZXIqLCBGaWx0ZXIqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50LmgKaW5kZXggNDQzNzc4ZC4uYzQ4ZWQyNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmgKQEAgLTc1LDcgKzc1LDcg
QEAgcHJpdmF0ZToKICAgICBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYpOwotICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
aWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0
cmlidXRlKEZpbHRlckVmZmVjdCosIGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICB2aXJ0dWFs
IHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZp
bHRlciopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0
aW5nRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxl
bWVudC5oCmluZGV4IDkxZWFjZTQuLjk1Y2JlNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmgKQEAgLTQwLDcgKzQwLDcgQEAgcHJpdmF0
ZToKICAgICBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CiAKICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShG
aWx0ZXJFZmZlY3QqLCBjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdmlydHVhbCB2b2lkIHN2
Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXIqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuaApp
bmRleCAxNmEyNjM0Li40MmI0MjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
RGlzcGxhY2VtZW50TWFwRWxlbWVudC5oCkBAIC03NSw3ICs3NSw3IEBAIHByaXZhdGU6CiAgICAg
U1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50Jik7CiAgICAgCiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJik7Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0
cmluZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1
dGUoRmlsdGVyRWZmZWN0KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpOwogICAgIHZp
cnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZChTVkdGaWx0ZXJCdWlsZGVy
KiwgRmlsdGVyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hh
ZG93RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQu
aAppbmRleCA5OWY1YjZlLi44ZjU5YTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURy
b3BTaGFkb3dFbGVtZW50LmgKQEAgLTM3LDcgKzM3LDcgQEAgcHJpdmF0ZToKICAgICBTVkdGRURy
b3BTaGFkb3dFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIAog
ICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotICAg
IHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJik7
CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVp
bGRlciosIEZpbHRlciopOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3Np
YW5CbHVyRWxlbWVudC5oCmluZGV4IDk1YzFlMDguLjBhM2IwOGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmgKQEAgLTQwLDcgKzQwLDcgQEAgcHJp
dmF0ZToKICAgICBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Jik7CiAKICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1
aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXIqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJ
bWFnZUVsZW1lbnQuaAppbmRleCA1NjJiMjczLi4wOWRhY2RiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVJbWFnZUVsZW1lbnQuaApAQCAtNDcsNyArNDcsNyBAQCBwcml2YXRlOgogICAgIFNWR0ZF
SW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgYm9v
bCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7Ci0gICAgdmlydHVh
bCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNT
dHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICB2
aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKTsKIApAQCAtNTgsOCAr
NTgsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdEltYWdlUmVzb3VyY2UoKTsKIAogICAg
IHZpcnR1YWwgdm9pZCBidWlsZFBlbmRpbmdSZXNvdXJjZSgpOwotICAgIHZpcnR1YWwgSW5zZXJ0
aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlJikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50
byhDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9t
KENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURf
UFJPUEVSVElFUyhTVkdGRUltYWdlRWxlbWVudCkKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9Q
UkVTRVJWRUFTUEVDVFJBVElPKFByZXNlcnZlQXNwZWN0UmF0aW8sIHByZXNlcnZlQXNwZWN0UmF0
aW8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5oCmluZGV4IDY5N2ZhMmYuLjM2
ODExNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5oCkBAIC0zOCwxMyAr
MzgsMTMgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIFNWR0ZFTGlnaHRFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBib29sIHJlbmRlcmVy
SXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3Zl
cnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAogcHJpdmF0ZToKICAgICBib29sIGlzU3VwcG9ydGVk
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotICAgIHZpcnR1YWwgdm9pZCBj
aGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7CiAKICAg
ICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHRkVMaWdodEVsZW1lbnQpCiAg
ICAgICAgIERFQ0xBUkVfQU5JTUFURURfTlVNQkVSKEF6aW11dGgsIGF6aW11dGgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmgKaW5kZXggNjZjMWFlNS4uYzRlYWU1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaApAQCAtMzUs
MTAgKzM1LDEwIEBAIHByaXZhdGU6CiAgICAgU1ZHRkVNZXJnZU5vZGVFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJik7Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKIAotICAgIHZpcnR1YWwgYm9vbCByZW5kZXJl
cklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92
ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BS
T1BFUlRJRVMoU1ZHRkVNZXJnZU5vZGVFbGVtZW50KQogICAgICAgICBERUNMQVJFX0FOSU1BVEVE
X1NUUklORyhJbjEsIGluMSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1v
cnBob2xvZ3lFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxl
bWVudC5oCmluZGV4IGI3YjhiNGYuLjVkOGFkMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFTW9ycGhvbG9neUVsZW1lbnQuaApAQCAtNjcsNyArNjcsNyBAQCBwcml2YXRlOgogICAgIFNW
R0ZFTW9ycGhvbG9neUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAK
ICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCBib29sIHNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqLCBj
b25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGaWx0ZXJF
ZmZlY3Q+IGJ1aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXIqKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRU9mZnNldEVsZW1lbnQuaAppbmRleCA1YTk1OWE1Li5jZmVlOTEwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuaApAQCAtMzYsNyArMzYsNyBAQCBwcml2YXRl
OgogICAgIFNWR0ZFT2Zmc2V0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
KTsKIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYp
OwotICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmls
dGVyQnVpbGRlciosIEZpbHRlciopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
U3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaAppbmRleCA3OTgyMTczLi44MjMwNmU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmgKQEAg
LTM5LDcgKzM5LDcgQEAgcHJpdmF0ZToKICAgICBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIAogICAgIGJvb2wgaXNTdXBw
b3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotICAgIHZpcnR1YWwgdm9pZCBw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wg
c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCosIGNvbnN0IFF1YWxpZmllZE5h
bWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZH
RmlsdGVyQnVpbGRlciosIEZpbHRlciopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFVGlsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50
LmgKaW5kZXggNTFmM2VjMy4uNDJkNjBjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFVGlsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxl
bWVudC5oCkBAIC0zNSw3ICszNSw3IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVUaWxlRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPEZpbHRlckVmZmVjdD4gYnVpbGQoU1ZHRmlsdGVyQnVpbGRlciosIEZpbHRlciopOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaAppbmRleCBlNGI4YjE4
Li5hOTBjM2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNl
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50
LmgKQEAgLTEwMiw3ICsxMDIsNyBAQCBwcml2YXRlOgogICAgIFNWR0ZFVHVyYnVsZW5jZUVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBib29sIGlzU3VwcG9y
dGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHNl
dEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqLCBjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSk7CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1
aWxkKFNWR0ZpbHRlckJ1aWxkZXIqLCBGaWx0ZXIqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVy
RWxlbWVudC5oCmluZGV4IDMyMmI4MDAuLjdkNzlmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zp
bHRlckVsZW1lbnQuaApAQCAtNTAsMTIgKzUwLDEyIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBi
b29sIG5lZWRzUGVuZGluZ1Jlc291cmNlSGFuZGxpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogCiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7
Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdl
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGls
ZENoYW5nZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qg
b3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNv
bnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0
aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgKaW5kZXggYTRkMDMxNS4uN2VhNmY0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0
dHJpYnV0ZXMuaApAQCAtNDksOSArNDksOSBAQCBwcm90ZWN0ZWQ6CiAgICAgU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OwogCiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7
Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdl
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGls
ZENoYW5nZSYpIG92ZXJyaWRlOwogCiAgICAgaW5saW5lIHZvaWQgaW52YWxpZGF0ZSgpCiAgICAg
ewpAQCAtNjYsMTEgKzY2LDExIEBAIHByb3RlY3RlZDoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAg
dmlydHVhbCBib29sIGlzRmlsdGVyRWZmZWN0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0ZpbHRlckVmZmVjdCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2Rl
JikgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHls
ZT4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJl
bmRlclN0eWxlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRl
UmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAK
ICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzKQogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX0xFTkdUSChYLCB4
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaAppbmRleCBhODdiNTU0Li4xZTdiM2EwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIFNWR0ZvbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwogCi0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVy
U3R5bGUmKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCByZW5k
ZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7
IH0KIAogICAgIHZvaWQgZW5zdXJlR2x5cGhDYWNoZSgpOwogICAgIHZvaWQgcmVnaXN0ZXJMaWdh
dHVyZXNJbkdseXBoQ2FjaGUoVmVjdG9yPFN0cmluZz4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b250RmFjZUVsZW1lbnQuaAppbmRleCBkMmUxMGQ3Li4yZjNhZWQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5oCkBAIC01NCwxMyArNTQsMTMgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBTVkdGb250RmFjZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxk
Q2hhbmdlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1
ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJO
b2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5v
ZGUmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0
IFJlbmRlclN0eWxlJikgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJu
IGZhbHNlOyB9CiAKICAgICBSZWZQdHI8U3R5bGVSdWxlRm9udEZhY2U+IG1fZm9udEZhY2VSdWxl
OwogICAgIFNWR0ZvbnRFbGVtZW50KiBtX2ZvbnRFbGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5oCmluZGV4IDI4YmFmYjkuLjE5NjZhZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmgKQEAgLTMy
LDggKzMyLDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTVkdGb250RmFjZUZvcm1hdEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBPVkVSUklERSB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hp
bGRDaGFuZ2UmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChj
b25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9u
dEZhY2VOYW1lRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlTmFtZUVs
ZW1lbnQuaAppbmRleCBlMjc0YmU4Li4xYmMwZmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGb250RmFjZU5hbWVFbGVtZW50LmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBTVkdGb250RmFjZU5hbWVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwogCi0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVy
U3R5bGUmKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCByZW5k
ZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7
IH0KIH07CiAKIE5PREVfVFlQRV9DQVNUUyhTVkdGb250RmFjZU5hbWVFbGVtZW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5oCmluZGV4IDRhNzAwNjUuLmZiNzJh
MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50LmgKQEAgLTM2
LDggKzM2LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTVkdGb250RmFjZVNyY0VsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAgICAgCi0gICAgdmlydHVhbCB2b2lk
IGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgT1ZFUlJJREUgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENo
aWxkQ2hhbmdlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQo
Y29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAogTk9E
RV9UWVBFX0NBU1RTKFNWR0ZvbnRGYWNlU3JjRWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGb250RmFjZVVyaUVsZW1lbnQuaAppbmRleCAyNThkYzMxLi4xOWFkZjE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oCkBAIC00MCwxMCArNDAsMTAgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBTVkdGb250RmFjZVVyaUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVk
SW50byhDb250YWluZXJOb2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHJlbmRlcmVy
SXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hh
bmdlZChjb25zdCBDaGlsZENoYW5nZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW5zZXJ0aW9u
Tm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikg
b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgbG9hZEZvbnQoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaAppbmRleCA5NGE1ZmU4
Li42YTc2Mzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVj
dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1l
bnQuaApAQCAtNDAsMTIgKzQwLDEyIEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNW
YWxpZCgpIGNvbnN0IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KICAgICBib29sIGlz
U3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKLSAgICB2aXJ0dWFsIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCi0gICAgdmly
dHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUm
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIG92ZXJyaWRlOwogCiAg
ICAgdmlydHVhbCBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR0VsZW1lbnQuaAppbmRleCA1YjJlMmUxLi5hNjRkNTAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
R0VsZW1lbnQuaApAQCAtMzYsMTYgKzM2LDE2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU1ZH
R0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2aXJ0dWFs
IFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxS
ZW5kZXJTdHlsZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgb3ZlcnJpZGU7
CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFNW
R1Rlc3RzOjppc1ZhbGlkKCk7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
IAogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwot
ICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNO
ZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVu
ZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwogCiAgICAgQkVHSU5f
REVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0dFbGVtZW50KQogICAgICAgICBERUNMQVJF
X0FOSU1BVEVEX0JPT0xFQU4oRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuaAppbmRleCBiM2I1
YTM5Li4yYjhkNTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5oCkBAIC00Nywx
MCArNDcsMTAgQEAgcHJpdmF0ZToKICAgICBTVkdHbHlwaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAKICAgICAvLyBGSVhNRTogc3ZnQXR0cmlidXRlQ2hhbmdlZCBt
aXNzaW5nLgotICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNl
cnRlZEludG8oQ29udGFpbmVyTm9kZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZW1v
dmVkRnJvbShDb250YWluZXJOb2RlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBJbnNlcnRpb25O
b3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsK
IAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikg
eyByZXR1cm4gZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ds
eXBoUmVmRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5o
CmluZGV4IDY0MWFmYmIuLjY4YWY2YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdHbHlwaFJlZkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZF
bGVtZW50LmgKQEAgLTMyLDcgKzMyLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFNWR0dseXBoUmVmRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogCiAgICAgYm9vbCBoYXNWYWxpZEdseXBoRWxlbWVudChTdHJpbmcmIGdseXBoTmFtZSkg
Y29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92
ZXJyaWRlOwogCiAgICAgLy8gRE9NIGludGVyZmFjZQogICAgIGNvbnN0IEF0b21pY1N0cmluZyYg
Z2x5cGhSZWYoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFk
aWVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuaApp
bmRleCAyZjRjYWYzLi4wZWY5NjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
R3JhZGllbnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxl
bWVudC5oCkBAIC05MSwxMyArOTEsMTMgQEAgcHJvdGVjdGVkOgogICAgIFNWR0dyYWRpZW50RWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGJvb2wgaXNTdXBw
b3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotICAgIHZpcnR1YWwgdm9pZCBw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJik7CiAKIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBib29sIG5lZWRzUGVuZGluZ1Jlc291cmNlSGFuZGxpbmcoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBD
aGlsZENoYW5nZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQo
Y29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlkZTsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFU
RURfUFJPUEVSVElFUyhTVkdHcmFkaWVudEVsZW1lbnQpCiAgICAgICAgIERFQ0xBUkVfQU5JTUFU
RURfRU5VTUVSQVRJT04oU3ByZWFkTWV0aG9kLCBzcHJlYWRNZXRob2QsIFNWR1NwcmVhZE1ldGhv
ZFR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmgKaW5kZXggNjVlYzFk
YS4uNmVhOTIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuaApAQCAt
MzYsMzkgKzM2LDM5IEBAIGNsYXNzIFNWR0dyYXBoaWNzRWxlbWVudCA6IHB1YmxpYyBTVkdFbGVt
ZW50LCBwdWJsaWMgU1ZHVHJhbnNmb3JtYWJsZSwgcHVibGljIFNWCiBwdWJsaWM6CiAgICAgdmly
dHVhbCB+U1ZHR3JhcGhpY3NFbGVtZW50KCk7CiAKLSAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9y
bSBnZXRDVE0oU3R5bGVVcGRhdGVTdHJhdGVneSA9IEFsbG93U3R5bGVVcGRhdGUpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGdldFNjcmVlbkNUTShTdHlsZVVwZGF0ZVN0
cmF0ZWd5ID0gQWxsb3dTdHlsZVVwZGF0ZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTVkdFbGVt
ZW50KiBuZWFyZXN0Vmlld3BvcnRFbGVtZW50KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBTVkdFbGVtZW50KiBmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudCgpIGNvbnN0IE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGdldENUTShTdHlsZVVwZGF0ZVN0cmF0ZWd5ID0g
QWxsb3dTdHlsZVVwZGF0ZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0g
Z2V0U2NyZWVuQ1RNKFN0eWxlVXBkYXRlU3RyYXRlZ3kgPSBBbGxvd1N0eWxlVXBkYXRlKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIFNWR0VsZW1lbnQqIG5lYXJlc3RWaWV3cG9ydEVsZW1lbnQoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFNWR0VsZW1lbnQqIGZhcnRoZXN0Vmlld3BvcnRF
bGVtZW50KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBs
b2NhbENvb3JkaW5hdGVTcGFjZVRyYW5zZm9ybShTVkdMb2NhdGFibGU6OkNUTVNjb3BlIG1vZGUp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFNWR1RyYW5zZm9ybWFibGU6OmxvY2FsQ29vcmRpbmF0
ZVNwYWNlVHJhbnNmb3JtKG1vZGUpOyB9Ci0gICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gYW5p
bWF0ZWRMb2NhbFRyYW5zZm9ybSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgQWZmaW5l
VHJhbnNmb3JtKiBzdXBwbGVtZW50YWxUcmFuc2Zvcm0oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IEFmZmluZVRyYW5zZm9ybSBsb2NhbENvb3JkaW5hdGVTcGFjZVRyYW5zZm9ybShTVkdMb2NhdGFi
bGU6OkNUTVNjb3BlIG1vZGUpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFNWR1RyYW5zZm9ybWFi
bGU6OmxvY2FsQ29vcmRpbmF0ZVNwYWNlVHJhbnNmb3JtKG1vZGUpOyB9CisgICAgdmlydHVhbCBB
ZmZpbmVUcmFuc2Zvcm0gYW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtKiBzdXBwbGVtZW50YWxUcmFuc2Zvcm0oKSBvdmVy
cmlkZTsKIAotICAgIHZpcnR1YWwgRmxvYXRSZWN0IGdldEJCb3goU3R5bGVVcGRhdGVTdHJhdGVn
eSA9IEFsbG93U3R5bGVVcGRhdGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgRmxvYXRSZWN0IGdl
dEJCb3goU3R5bGVVcGRhdGVTdHJhdGVneSA9IEFsbG93U3R5bGVVcGRhdGUpIG92ZXJyaWRlOwog
CiAgICAgLy8gImJhc2UgY2xhc3MiIG1ldGhvZHMgZm9yIGFsbCB0aGUgZWxlbWVudHMgd2hpY2gg
cmVuZGVyIGFzIHBhdGhzCiAgICAgdmlydHVhbCB2b2lkIHRvQ2xpcFBhdGgoUGF0aCYpOwotICAg
IHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQ
YXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBv
dmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIFNWR0dyYXBoaWNzRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpOwotICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHN2
Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAg
QkVHSU5fREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTKFNWR0dyYXBoaWNzRWxlbWVudCkKICAg
ICAgICAgREVDTEFSRV9BTklNQVRFRF9UUkFOU0ZPUk1fTElTVChUcmFuc2Zvcm0sIHRyYW5zZm9y
bSkKICAgICBFTkRfREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUSUVTCiAKIHByaXZhdGU6Ci0gICAg
dmlydHVhbCBib29sIGlzU1ZHR3JhcGhpY3NFbGVtZW50KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1NWR0dyYXBoaWNzRWxlbWVudCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIC8vIFNWR1Rlc3RzCi0gICAgdmlydHVh
bCB2b2lkIHN5bmNocm9uaXplUmVxdWlyZWRGZWF0dXJlcygpIE9WRVJSSURFIHsgU1ZHVGVzdHM6
OnN5bmNocm9uaXplUmVxdWlyZWRGZWF0dXJlcyh0aGlzKTsgfQotICAgIHZpcnR1YWwgdm9pZCBz
eW5jaHJvbml6ZVJlcXVpcmVkRXh0ZW5zaW9ucygpIE9WRVJSSURFIHsgU1ZHVGVzdHM6OnN5bmNo
cm9uaXplUmVxdWlyZWRFeHRlbnNpb25zKHRoaXMpOyB9Ci0gICAgdmlydHVhbCB2b2lkIHN5bmNo
cm9uaXplU3lzdGVtTGFuZ3VhZ2UoKSBPVkVSUklERSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVN5
c3RlbUxhbmd1YWdlKHRoaXMpOyB9CisgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplUmVxdWly
ZWRGZWF0dXJlcygpIG92ZXJyaWRlIHsgU1ZHVGVzdHM6OnN5bmNocm9uaXplUmVxdWlyZWRGZWF0
dXJlcyh0aGlzKTsgfQorICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVJlcXVpcmVkRXh0ZW5z
aW9ucygpIG92ZXJyaWRlIHsgU1ZHVGVzdHM6OnN5bmNocm9uaXplUmVxdWlyZWRFeHRlbnNpb25z
KHRoaXMpOyB9CisgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplU3lzdGVtTGFuZ3VhZ2UoKSBv
dmVycmlkZSB7IFNWR1Rlc3RzOjpzeW5jaHJvbml6ZVN5c3RlbUxhbmd1YWdlKHRoaXMpOyB9CiAK
ICAgICAvLyBVc2VkIGJ5IDxhbmltYXRlTW90aW9uPgogICAgIHN0ZDo6dW5pcXVlX3B0cjxBZmZp
bmVUcmFuc2Zvcm0+IG1fc3VwcGxlbWVudGFsVHJhbnNmb3JtOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0hL
ZXJuRWxlbWVudC5oCmluZGV4IDFlOWFiN2QuLjVlMjU2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdIS2VybkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
SEtlcm5FbGVtZW50LmgKQEAgLTM2LDggKzM2LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBT
VkdIS2VybkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2
aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5l
ck5vZGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVy
Tm9kZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVz
dCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIHsgcmV0dXJuIGZhbHNlOyB9
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCmluZGV4IDVmMTBlMDEuLjYxY2Zm
MDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCkBAIC00MiwyNiArNDIsMjYg
QEAgcHJpdmF0ZToKICAgICBTVkdJbWFnZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAgICAgCiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVy
biBTVkdUZXN0czo6aXNWYWxpZCgpOyB9Ci0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBv
cnRzRm9jdXMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBib29sIGlz
U3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKLSAgICB2aXJ0dWFsIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNv
bGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0
aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVz
Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpOwogCi0gICAgdmlydHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNl
cnRlZEludG8oQ29udGFpbmVyTm9kZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRB
dHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNh
dGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKIAotICAg
IHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQ
YXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbWFnZVNvdXJjZVVS
TCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbWFn
ZVNvdXJjZVVSTCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNv
dXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8VVJMPiYpIGNvbnN0OwogCiAgICAgdmlydHVh
bCBib29sIGhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcygpOwogCiAgICAgdmlydHVhbCBib29s
IHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkTW92
ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KSBvdmVy
cmlkZTsKIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdJbWFnZUVs
ZW1lbnQpCiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfTEVOR1RIKFgsIHgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMaW5lRWxlbWVudC5oCmluZGV4IDI3NTkwNjMuLmExM2E5MTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMaW5lRWxlbWVudC5oCkBAIC0zOCwxMCArMzgsMTAgQEAgcHJpdmF0ZToKICAgICBTVkdM
aW5lRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAgICAKICAgICB2
aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYpOwotICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
aWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJik7CiAKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNNYXJr
ZXJzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xp
bmVhckdyYWRpZW50RWxlbWVudC5oCmluZGV4IGI3OGQzYTkuLjEwZTY0NjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKQEAgLTQwLDEwICs0MCwx
MCBAQCBwcml2YXRlOgogICAgIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYpOwotICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
aWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJS
SURFOworICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJv
b2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBh
dGhFbGVtZW50LmgKaW5kZXggMTViMTMyNS4uMmUyMzRiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdN
UGF0aEVsZW1lbnQuaApAQCAtNDksMTQgKzQ5LDE0IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGJ1
aWxkUGVuZGluZ1Jlc291cmNlKCk7CiAgICAgdm9pZCBjbGVhclJlc291cmNlUmVmZXJlbmNlcygp
OwotICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8o
Q29udGFpbmVyTm9kZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShD
b250YWluZXJOb2RlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRp
b25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKIAogICAgIGJv
b2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotICAgIHZpcnR1
YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWlj
U3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29u
c3QgUmVuZGVyU3R5bGUmKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1
cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgbm90aWZ5UGFyZW50T2ZQYXRoQ2hhbmdlKENvbnRhaW5l
ck5vZGUqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKaW5kZXggZjUyZTMx
NC4uNWY2NDExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCkBAIC0xMjYs
MTEgKzEyNiwxMSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBuZWVkc1BlbmRpbmdSZXNv
dXJjZUhhbmRsaW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIGJvb2wgaXNTdXBw
b3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotICAgIHZpcnR1YWwgdm9pZCBw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJik7Ci0gICAgdmlydHVhbCB2
b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlkZTsK
IAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5
bGU+KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBS
ZW5kZXJTdHlsZSYpIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFz
UmVsYXRpdmVMZW5ndGhzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWFza0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCmlu
ZGV4IGFjMTk2MzcuLjlhNTNmNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdN
YXNrRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCkBA
IC00NSwxMSArNDUsMTEgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgbmVlZHNQZW5kaW5n
UmVzb3VyY2VIYW5kbGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBib29sIGlz
U3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKLSAgICB2aXJ0dWFsIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotICAgIHZpcnR1
YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJp
ZGU7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRl
clN0eWxlPikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVu
Z3RocygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWV0YWRh
dGFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWV0YWRhdGFFbGVtZW50LmgKaW5k
ZXggODRlYmU5NS4uOGM2ZDczNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01l
dGFkYXRhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNZXRhZGF0YUVsZW1l
bnQuaApAQCAtMzMsNyArMzMsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNWR01ldGFkYXRh
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwg
Ym9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgT1ZFUlJJREUgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5k
ZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCmluZGV4IDJhYTA4MDEuLjEw
YzdmODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCkBAIC0xMDIsMTAgKzEwMiwx
MCBAQCBwcml2YXRlOgogICAgIFNWR1BhdGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBT
VkdUZXN0czo6aXNWYWxpZCgpOyB9Ci0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRz
Rm9jdXMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBib29sIGlzU3Vw
cG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKLSAgICB2aXJ0dWFsIHZvaWQg
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lk
IHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c01hcmtlcnMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKQEAgLTExOCwx
MCArMTE4LDEwIEBAIHByaXZhdGU6CiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfQk9PTEVBTihF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQogICAg
IEVORF9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxl
PikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBvdmVycmlkZTsKIAotICAgIHZp
cnR1YWwgTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29u
dGFpbmVyTm9kZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250
YWluZXJOb2RlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBOb2RlOjpJbnNlcnRpb25Ob3RpZmlj
YXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKIAogICAg
IHZvaWQgaW52YWxpZGF0ZU1QYXRoRGVwZW5kZW5jaWVzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU3RyaW5nQnVpbGRlci5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhTdHJpbmdCdWlsZGVyLmgKaW5kZXggOTQxNzkyNi4uMTk4ZjM2ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTdHJpbmdCdWlsZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhTdHJpbmdCdWlsZGVyLmgKQEAgLTM0LDIzICszNCwyMyBAQCBw
dWJsaWM6CiAgICAgU3RyaW5nIHJlc3VsdCgpOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9p
ZCBjbGVhbnVwKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGluY3JlbWVudFBhdGhTZWdt
ZW50Q291bnQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgY29udGludWVDb25zdW1pbmco
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYW51cCgpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBpbmNyZW1lbnRQYXRoU2VnbWVudENvdW50KCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIGNvbnRpbnVlQ29uc3VtaW5nKCkgb3ZlcnJpZGU7CiAKICAgICAvLyBVc2VkIGlu
IFVuYWx0ZXJlZFBhcnNpbmcvTm9ybWFsaXplZFBhcnNpbmcgbW9kZXMuCi0gICAgdmlydHVhbCB2
b2lkIG1vdmVUbyhjb25zdCBGbG9hdFBvaW50JiwgYm9vbCBjbG9zZWQsIFBhdGhDb29yZGluYXRl
TW9kZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGxpbmVUbyhjb25zdCBGbG9hdFBvaW50
JiwgUGF0aENvb3JkaW5hdGVNb2RlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY3VydmVU
b0N1YmljKGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRQ
b2ludCYsIFBhdGhDb29yZGluYXRlTW9kZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNs
b3NlUGF0aCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtb3ZlVG8oY29uc3QgRmxvYXRQ
b2ludCYsIGJvb2wgY2xvc2VkLCBQYXRoQ29vcmRpbmF0ZU1vZGUpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBsaW5lVG8oY29uc3QgRmxvYXRQb2ludCYsIFBhdGhDb29yZGluYXRlTW9kZSkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGN1cnZlVG9DdWJpYyhjb25zdCBGbG9hdFBvaW50
JiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBQYXRoQ29vcmRpbmF0ZU1v
ZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjbG9zZVBhdGgoKSBvdmVycmlkZTsKIAog
ICAgIC8vIE9ubHkgdXNlZCBpbiBVbmFsdGVyZWRQYXJzaW5nIG1vZGUuCi0gICAgdmlydHVhbCB2
b2lkIGxpbmVUb0hvcml6b250YWwoZmxvYXQsIFBhdGhDb29yZGluYXRlTW9kZSkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIGxpbmVUb1ZlcnRpY2FsKGZsb2F0LCBQYXRoQ29vcmRpbmF0ZU1v
ZGUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjdXJ2ZVRvQ3ViaWNTbW9vdGgoY29uc3Qg
RmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBQYXRoQ29vcmRpbmF0ZU1vZGUpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBjdXJ2ZVRvUXVhZHJhdGljKGNvbnN0IEZsb2F0UG9pbnQm
LCBjb25zdCBGbG9hdFBvaW50JiwgUGF0aENvb3JkaW5hdGVNb2RlKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgY3VydmVUb1F1YWRyYXRpY1Ntb290aChjb25zdCBGbG9hdFBvaW50JiwgUGF0
aENvb3JkaW5hdGVNb2RlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYXJjVG8oZmxvYXQs
IGZsb2F0LCBmbG9hdCwgYm9vbCBsYXJnZUFyY0ZsYWcsIGJvb2wgc3dlZXBGbGFnLCBjb25zdCBG
bG9hdFBvaW50JiwgUGF0aENvb3JkaW5hdGVNb2RlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgbGluZVRvSG9yaXpvbnRhbChmbG9hdCwgUGF0aENvb3JkaW5hdGVNb2RlKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgbGluZVRvVmVydGljYWwoZmxvYXQsIFBhdGhDb29yZGluYXRlTW9k
ZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGN1cnZlVG9DdWJpY1Ntb290aChjb25zdCBG
bG9hdFBvaW50JiwgY29uc3QgRmxvYXRQb2ludCYsIFBhdGhDb29yZGluYXRlTW9kZSkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGN1cnZlVG9RdWFkcmF0aWMoY29uc3QgRmxvYXRQb2ludCYs
IGNvbnN0IEZsb2F0UG9pbnQmLCBQYXRoQ29vcmRpbmF0ZU1vZGUpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBjdXJ2ZVRvUXVhZHJhdGljU21vb3RoKGNvbnN0IEZsb2F0UG9pbnQmLCBQYXRo
Q29vcmRpbmF0ZU1vZGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhcmNUbyhmbG9hdCwg
ZmxvYXQsIGZsb2F0LCBib29sIGxhcmdlQXJjRmxhZywgYm9vbCBzd2VlcEZsYWcsIGNvbnN0IEZs
b2F0UG9pbnQmLCBQYXRoQ29vcmRpbmF0ZU1vZGUpIG92ZXJyaWRlOwogCiAgICAgU3RyaW5nQnVp
bGRlciBtX3N0cmluZ0J1aWxkZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdHRlcm5FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1l
bnQuaAppbmRleCAyMzQyNzI3Li5lZTFmNjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0dGVybkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVy
bkVsZW1lbnQuaApAQCAtNTksMTEgKzU5LDExIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29s
IG5lZWRzUGVuZGluZ1Jlc291cmNlSGFuZGxpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
CiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7Ci0g
ICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
KTsKLSAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENo
YW5nZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UGFzc1JlZjxSZW5kZXJTdHlsZT4pIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHNlbGZI
YXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BvbHlFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQu
aAppbmRleCA2NzdlOWYyLi5hYmViZThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUG9seUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQu
aApAQCAtNDUsMTAgKzQ1LDEwIEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFs
IGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KLSAg
ICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYpOwotICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7IAorICAgIHZpcnR1YWwg
dm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3Ry
aW5nJikgb3ZlcnJpZGU7IAogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c01hcmtlcnMo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFs
R3JhZGllbnRFbGVtZW50LmgKaW5kZXggYWEzMzQ0ZC4uZWRmYTAxYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaApAQCAtNDAsMTAgKzQwLDEwIEBA
IHByaXZhdGU6CiAgICAgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCYpOwogCiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJik7Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0
cmluZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmKTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBz
ZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVt
ZW50LmgKaW5kZXggZmQ4YTIyMC4uMDA2YjEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1JlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVt
ZW50LmgKQEAgLTM5LDE1ICszOSwxNSBAQCBwcml2YXRlOgogICAgIFNWR1JlY3RFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBp
c1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQotICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQogCiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJik7Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkg
Y29uc3Q7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwg
UmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJl
bmRlclN0eWxlPikgb3ZlcnJpZGU7CiAKICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BF
UlRJRVMoU1ZHUmVjdEVsZW1lbnQpCiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfTEVOR1RIKFgs
IHgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAppbmRleCBkOWQ1YzhkLi4xY2Y4MzJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgog
ICAgIHVzaW5nIFNWR0dyYXBoaWNzRWxlbWVudDo6ZGVyZWY7CiAKICAgICB2aXJ0dWFsIGJvb2wg
aXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KLSAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IHRydWU7IH0KIAogICAgIC8vICdTVkdTVkdFbGVtZW50JyBmdW5jdGlvbnMKICAgICBjb25zdCBB
dG9taWNTdHJpbmcmIGNvbnRlbnRTY3JpcHRUeXBlKCkgY29uc3Q7CkBAIC0xMzcsMTUgKzEzNywx
NSBAQCBwcml2YXRlOgogICAgIFNWR1NWR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAgICAgdmlydHVhbCB+U1ZHU1ZHRWxlbWVudCgpOwogCi0gICAgdmlydHVhbCB2
b2lkIGRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1
bWVudCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWlj
U3RyaW5nJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChj
b25zdCBSZW5kZXJTdHlsZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgUmVuZGVyUHRyPFJlbmRl
ckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5
bGUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIG92ZXJyaWRlOwogCi0gICAg
dmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWlu
ZXJOb2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5l
ck5vZGUmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVl
c3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2
b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAppbmRleCA3MWFjY2VjLi4zOTBiNzEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKQEAgLTQ2LDEyICs0NiwxMiBAQCBwcml2YXRl
OgogICAgIFNWR1NjcmlwdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jiwg
Ym9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIGFscmVhZHlTdGFydGVkKTsKIAogICAgIGJv
b2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotICAgIHZpcnR1
YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWlj
U3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1
ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bWljU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25S
ZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIG92ZXJyaWRlOwogCiAg
ICAgdmlydHVhbCB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYp
OwotICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmli
dXRlJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGZpbmlzaFBhcnNpbmdDaGls
ZHJlbigpOwogCiAgICAgdmlydHVhbCB2b2lkIGFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJMcyhM
aXN0SGFzaFNldDxVUkw+JikgY29uc3Q7CkBAIC03MSwxMyArNzEsMTMgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hMb2FkRXZlbnQoKSB7IFNWR0V4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQ6OmRpc3BhdGNoTG9hZEV2ZW50KHRoaXMpOyB9CiAKICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbigp
OwotICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikg
T1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05l
ZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAg
ICAvLyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCiAgICAgdmlydHVhbCB2b2lkIHNldEhh
dmVGaXJlZExvYWRFdmVudChib29sIGhhdmVGaXJlZExvYWRFdmVudCkgeyBTY3JpcHRFbGVtZW50
OjpzZXRIYXZlRmlyZWRMb2FkRXZlbnQoaGF2ZUZpcmVkTG9hZEV2ZW50KTsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc1BhcnNlckluc2VydGVkKCkgY29uc3QgeyByZXR1cm4gU2NyaXB0RWxlbWVudDo6
aXNQYXJzZXJJbnNlcnRlZCgpOyB9CiAgICAgdmlydHVhbCBib29sIGhhdmVGaXJlZExvYWRFdmVu
dCgpIGNvbnN0IHsgcmV0dXJuIFNjcmlwdEVsZW1lbnQ6OmhhdmVGaXJlZExvYWRFdmVudCgpOyB9
Ci0gICAgdmlydHVhbCBUaW1lcjxTVkdFbGVtZW50Piogc3ZnTG9hZEV2ZW50VGltZXIoKSBPVkVS
UklERSB7IHJldHVybiAmbV9zdmdMb2FkRXZlbnRUaW1lcjsgfQorICAgIHZpcnR1YWwgVGltZXI8
U1ZHRWxlbWVudD4qIHN2Z0xvYWRFdmVudFRpbWVyKCkgb3ZlcnJpZGUgeyByZXR1cm4gJm1fc3Zn
TG9hZEV2ZW50VGltZXI7IH0KIAogICAgIEJFR0lOX0RFQ0xBUkVfQU5JTUFURURfUFJPUEVSVElF
UyhTVkdTY3JpcHRFbGVtZW50KQogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX1NUUklORyhIcmVm
LCBocmVmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NldEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTZXRFbGVtZW50LmgKaW5kZXggMGQzOGVhMC4uZTlhYWI0
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NldEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2V0RWxlbWVudC5oCkBAIC0zMyw3ICszMyw3IEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICAgICBTVkdTZXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBbmltYXRpb25Nb2RlKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFuaW1hdGlvbk1vZGUoKSBvdmVycmlkZTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTdG9wRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgK
aW5kZXggNWNkNjM4Ni4uMjhiZGVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1N0b3BFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgK
QEAgLTM3LDEzICszNywxMyBAQCBwcml2YXRlOgogICAgIFNWR1N0b3BFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJik7Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc0dyYWRp
ZW50U3RvcCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgaXNHcmFkaWVudFN0b3AoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAg
ICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCByZW5kZXJl
cklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5k
ZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVy
U3R5bGU+KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwogCiAgICAgQkVHSU5fREVDTEFSRV9BTklNQVRFRF9Q
Uk9QRVJUSUVTKFNWR1N0b3BFbGVtZW50KQogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX05VTUJF
UihPZmZzZXQsIG9mZnNldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHls
ZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaAppbmRleCAy
OWUxZTVjLi4xZmJhMDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5oCkBAIC01
MSwxOSArNTEsMTkgQEAgcHJpdmF0ZToKICAgICBTVkdTdHlsZUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogCiAgICAgYm9vbCBp
c1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7Ci0gICAgdmlydHVhbCB2
b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJp
bmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3Qg
aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
cmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBj
aGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0
cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVz
dCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIG92ZXJyaWRlOwogCi0gICAgdmly
dHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBPVkVSUklERSB7
IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0
IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwg
dm9pZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0xvYWRp
bmcoKSBjb25zdCB7IHJldHVybiBtX3N0eWxlU2hlZXRPd25lci5pc0xvYWRpbmcoKTsgfQotICAg
IHZpcnR1YWwgYm9vbCBzaGVldExvYWRlZCgpIE9WRVJSSURFIHsgcmV0dXJuIG1fc3R5bGVTaGVl
dE93bmVyLnNoZWV0TG9hZGVkKGRvY3VtZW50KCkpOyB9Ci0gICAgdmlydHVhbCB2b2lkIHN0YXJ0
TG9hZGluZ0R5bmFtaWNTaGVldCgpIE9WRVJSSURFIHsgbV9zdHlsZVNoZWV0T3duZXIuc3RhcnRM
b2FkaW5nRHluYW1pY1NoZWV0KGRvY3VtZW50KCkpOyB9Ci0gICAgdmlydHVhbCBUaW1lcjxTVkdF
bGVtZW50Piogc3ZnTG9hZEV2ZW50VGltZXIoKSBPVkVSUklERSB7IHJldHVybiAmbV9zdmdMb2Fk
RXZlbnRUaW1lcjsgfQorICAgIHZpcnR1YWwgYm9vbCBzaGVldExvYWRlZCgpIG92ZXJyaWRlIHsg
cmV0dXJuIG1fc3R5bGVTaGVldE93bmVyLnNoZWV0TG9hZGVkKGRvY3VtZW50KCkpOyB9CisgICAg
dmlydHVhbCB2b2lkIHN0YXJ0TG9hZGluZ0R5bmFtaWNTaGVldCgpIG92ZXJyaWRlIHsgbV9zdHls
ZVNoZWV0T3duZXIuc3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0KGRvY3VtZW50KCkpOyB9CisgICAg
dmlydHVhbCBUaW1lcjxTVkdFbGVtZW50Piogc3ZnTG9hZEV2ZW50VGltZXIoKSBvdmVycmlkZSB7
IHJldHVybiAmbV9zdmdMb2FkRXZlbnRUaW1lcjsgfQogCiAgICAgSW5saW5lU3R5bGVTaGVldE93
bmVyIG1fc3R5bGVTaGVldE93bmVyOwogICAgIFRpbWVyPFNWR0VsZW1lbnQ+IG1fc3ZnTG9hZEV2
ZW50VGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaAppbmRleCA5YmExZDJk
Li4yODUwZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmgKQEAgLTM3LDEw
ICszNywxMCBAQCBwcml2YXRlOgogICAgIFNWR1N3aXRjaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAgICAgCiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25z
dCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9Ci0gICAgdmlydHVhbCBib29sIHN1cHBv
cnRzRm9jdXMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBi
b29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAg
ICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBvdmVycmlkZTsKIAogICAgIEJFR0lOX0RF
Q0xBUkVfQU5JTUFURURfUFJPUEVSVElFUyhTVkdTd2l0Y2hFbGVtZW50KQogICAgICAgICBERUNM
QVJFX0FOSU1BVEVEX0JPT0xFQU4oRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1i
b2xFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCmluZGV4
IGIwMmYzMTIuLjEyNzYxZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1i
b2xFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaApA
QCAtNDAsMTIgKzQwLDEyIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU1ZHU3ltYm9sRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0c0ZvY3VzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQog
CiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7Ci0g
ICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
KTsKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0
eWxlPikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3Ro
cygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAppbmRleCA0Mzlj
ZWE0Li4wMTI5NzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKQEAgLTc2
LDggKzc2LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBTVkdUUmVmVGFyZ2V0RXZlbnRMaXN0
ZW5lcihTVkdUUmVmRWxlbWVudCogdHJlZkVsZW1lbnQpOwogCi0gICAgdmlydHVhbCB2b2lkIGhh
bmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVudCopIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEV2ZW50TGlzdGVuZXImKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV2
ZW50Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIG9wZXJhdG9yPT0oY29uc3QgRXZlbnRM
aXN0ZW5lciYpIG92ZXJyaWRlOwogCiAgICAgU1ZHVFJlZkVsZW1lbnQqIG1fdHJlZkVsZW1lbnQ7
CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fdGFyZ2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RSZWZFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1l
bnQuaAppbmRleCBmNWU5YTRhLi4xOGIwZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVFJlZkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1l
bnQuaApAQCAtNDEsMTUgKzQxLDE1IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB+U1ZHVFJlZkVs
ZW1lbnQoKTsKIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYpOwotICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVh
dGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
Ym9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYp
OwogCi0gICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50
byhDb250YWluZXJOb2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9t
KENvbnRhaW5lck5vZGUmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNh
dGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOwogCiAgICAg
dm9pZCB1cGRhdGVSZWZlcmVuY2VkVGV4dChFbGVtZW50Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
U3BhbkVsZW1lbnQuaAppbmRleCBkZmY3YzNmLi40ZWFjYzBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RTcGFuRWxlbWVudC5oCkBAIC0zMyw4ICszMyw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
U1ZHVFNwYW5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgICAg
ICAgICAgCi0gICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVu
dFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJv
b2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgY2hp
bGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaAppbmRleCBmNjQzM2Q4
Li43NDg5NmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5o
CkBAIC05OCwxNSArOTgsMTUgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlk
KCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQogCiAgICAgYm9vbCBpc1N1
cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7Ci0gICAgdmlydHVhbCB2b2lk
IHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcm
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjb2xs
ZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlv
bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhz
KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGlzVGV4dENvbnRlbnQoKSBj
b25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlz
VGV4dENvbnRlbnQoKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiB0cnVlOyB9CiAKICAg
ICAvLyBDdXN0b20gJ3RleHRMZW5ndGgnIHByb3BlcnR5CiAgICAgc3RhdGljIHZvaWQgc3luY2hy
b25pemVUZXh0TGVuZ3RoKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RleHRFbGVtZW50LmgKaW5kZXggZjIxMzUyNS4uN2YxNjY1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RleHRFbGVtZW50LmgKQEAgLTM1LDEwICszNSwxMCBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIFNWR1RleHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0g
ICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0
cnVlOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBvdmVy
cmlkZTsKIH07CiAKIE5PREVfVFlQRV9DQVNUUyhTVkdUZXh0RWxlbWVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaAppbmRleCA5ZDE1MzczLi5mZGQ0ZWNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oCkBAIC0xMjAsMTUgKzEyMCwxNSBAQCBw
cml2YXRlOgogICAgIHZvaWQgY2xlYXJSZXNvdXJjZVJlZmVyZW5jZXMoKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBidWlsZFBlbmRpbmdSZXNvdXJjZSgpOwotICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90
aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSYpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2RlJikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250
YWluZXJOb2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tKENvbnRh
aW5lck5vZGUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYpOwotICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
aWNTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJik7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5v
ZGUmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUGFzc1JlZjxSZW5kZXJTdHlsZT4pIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBj
b25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBS
ZW5kZXJTdHlsZSYpOwogCiAgICAgdmlydHVhbCBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMo
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25p
bmdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVu
dC5oCmluZGV4IGI5NzJkOWEuLjdkYTQ0MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuaApAQCAtMzYsNyArMzYsNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpOwotICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJik7CiAKICAgICBCRUdJTl9ERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRJRVMoU1ZHVGV4
dFBvc2l0aW9uaW5nRWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
aXRsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUaXRsZUVsZW1lbnQuaAppbmRl
eCBlNTFmMmRkLi4wMmNjZGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0
bGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oCkBA
IC0zNCw5ICszNCw5IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU1ZHVGl0bGVFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgdmlydHVhbCBJbnNlcnRpb25O
b3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlJikgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVk
SW50byhDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRG
cm9tKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5D
aGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wg
cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIHsgcmV0dXJuIGZhbHNlOyB9CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybWFibGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1hYmxlLmgKaW5kZXggMTFhYTA3Yy4uYmU3OWQx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybWFibGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtYWJsZS5oCkBAIC00NCw3ICs0NCw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBwYXJzZVRyYW5zZm9ybVZhbHVlKHVuc2lnbmVkIHR5
cGUsIGNvbnN0IFVDaGFyKiYgcHRyLCBjb25zdCBVQ2hhciogZW5kLCBTVkdUcmFuc2Zvcm0mKTsK
ICAgICBzdGF0aWMgU1ZHVHJhbnNmb3JtOjpTVkdUcmFuc2Zvcm1UeXBlIHBhcnNlVHJhbnNmb3Jt
VHlwZShjb25zdCBTdHJpbmcmKTsKIAotICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2Fs
Q29vcmRpbmF0ZVNwYWNlVHJhbnNmb3JtKFNWR0xvY2F0YWJsZTo6Q1RNU2NvcGUpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIGFuaW1hdGVkTG9jYWxUcmFuc2Zvcm0oKTsgfQorICAgIHZpcnR1YWwg
QWZmaW5lVHJhbnNmb3JtIGxvY2FsQ29vcmRpbmF0ZVNwYWNlVHJhbnNmb3JtKFNWR0xvY2F0YWJs
ZTo6Q1RNU2NvcGUpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGFuaW1hdGVkTG9jYWxUcmFuc2Zv
cm0oKTsgfQogICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGFuaW1hdGVkTG9jYWxUcmFuc2Zv
cm0oKSBjb25zdCA9IDA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VW5rbm93bkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVbmtub3duRWxlbWVudC5o
CmluZGV4IGUwYjQ3N2UuLjQzNTRlMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdVbmtub3duRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVbmtub3duRWxl
bWVudC5oCkBAIC01MSw3ICs1MSw3IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHZp
cnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgT1ZFUlJJREUg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAppbmRleCA1ZjEyMGQ4
Li5kZmRjNWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKQEAgLTU2LDE5ICs1Niwx
OSBAQCBwcml2YXRlOgogICAgIFNWR1VzZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50JiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyKTsKIAogICAgIHZpcnR1YWwgYm9vbCBp
c1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQotICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQogCi0gICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2Vy
dGVkSW50byhDb250YWluZXJOb2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92
ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEluc2VydGlvbk5v
dGlmaWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOwog
ICAgIHZpcnR1YWwgdm9pZCBidWlsZFBlbmRpbmdSZXNvdXJjZSgpOwogCiAgICAgYm9vbCBpc1N1
cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7Ci0gICAgdmlydHVhbCB2b2lk
IHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcm
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKIAotICAgIHZpcnR1
YWwgdm9pZCB3aWxsQXR0YWNoUmVuZGVyZXJzKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHdpbGxBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxl
PikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFBhc3NSZWY8UmVuZGVyU3R5bGU+KSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgdG9DbGlwUGF0aChQYXRoJik7CiAKICAgICB2b2lkIGNsZWFyUmVzb3VyY2VSZWZl
cmVuY2VzKCk7CkBAIC0xMTcsNyArMTE3LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
c2V0SGF2ZUZpcmVkTG9hZEV2ZW50KGJvb2wgaGF2ZUZpcmVkTG9hZEV2ZW50KSB7IG1faGF2ZUZp
cmVkTG9hZEV2ZW50ID0gaGF2ZUZpcmVkTG9hZEV2ZW50OyB9CiAgICAgdmlydHVhbCBib29sIGlz
UGFyc2VySW5zZXJ0ZWQoKSBjb25zdCB7IHJldHVybiBtX3dhc0luc2VydGVkQnlQYXJzZXI7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaGF2ZUZpcmVkTG9hZEV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9o
YXZlRmlyZWRMb2FkRXZlbnQ7IH0KLSAgICB2aXJ0dWFsIFRpbWVyPFNWR0VsZW1lbnQ+KiBzdmdM
b2FkRXZlbnRUaW1lcigpIE9WRVJSSURFIHsgcmV0dXJuICZtX3N2Z0xvYWRFdmVudFRpbWVyOyB9
CisgICAgdmlydHVhbCBUaW1lcjxTVkdFbGVtZW50Piogc3ZnTG9hZEV2ZW50VGltZXIoKSBvdmVy
cmlkZSB7IHJldHVybiAmbV9zdmdMb2FkRXZlbnRUaW1lcjsgfQogCiAgICAgYm9vbCBtX3dhc0lu
c2VydGVkQnlQYXJzZXI7CiAgICAgYm9vbCBtX2hhdmVGaXJlZExvYWRFdmVudDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWS2VybkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdWS2VybkVsZW1lbnQuaAppbmRleCBhZWViYjJlLi42ZTgzMjAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVktlcm5FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1ZLZXJuRWxlbWVudC5oCkBAIC0zNSw4ICszNSw4IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgU1ZHVktlcm5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYp
OwogCi0gICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50
byhDb250YWluZXJOb2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9t
KENvbnRhaW5lck5vZGUmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNh
dGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOwogCiAgICAg
dmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSB7IHJldHVy
biBmYWxzZTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKaW5kZXggNTBiNGQ3
Ni4uZDMxMDhiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKQEAgLTUyLDcgKzUy
LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIEZJWE1FOiBzdmdBdHRyaWJ1dGVDaGFuZ2VkIG1pc3Np
bmcuCiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7
Ci0gICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIG92ZXJyaWRl
OwogCiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUm
KSB7IHJldHVybiBmYWxzZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5p
bWF0aW9uL1NWR1NNSUxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NW
R1NNSUxFbGVtZW50LmgKaW5kZXggNWY4M2Q5My4uNzIwNjY0YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuaApAQCAtNDMsMTAgKzQzLDEwIEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5TVkdTTUlMRWxlbWVudCgpOwogCiAgICAgYm9vbCBpc1N1cHBv
cnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7Ci0gICAgdmlydHVhbCB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25S
ZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0
cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlm
aWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOwogICAg
IAogICAgIHZpcnR1YWwgYm9vbCBoYXNWYWxpZEF0dHJpYnV0ZVR5cGUoKSA9IDA7CiAgICAgdmly
dHVhbCBib29sIGhhc1ZhbGlkQXR0cmlidXRlTmFtZSgpOwpAQCAtMTE0LDcgKzExNCw3IEBAIHBy
b3RlY3RlZDoKIAogICAgIHZvaWQgc2V0SW5hY3RpdmUoKSB7IG1fYWN0aXZlU3RhdGUgPSBJbmFj
dGl2ZTsgfQogCi0gICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVy
U3R5bGUmKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCByZW5k
ZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7
IH0KIAogICAgIC8vIFN1Yi1jbGFzc2VzIG1heSBuZWVkIHRvIHRha2UgYWN0aW9uIHdoZW4gdGhl
IHRhcmdldCBpcyBjaGFuZ2VkLgogICAgIHZpcnR1YWwgdm9pZCBzZXRUYXJnZXRFbGVtZW50KFNW
R0VsZW1lbnQqKTsKQEAgLTE5Miw3ICsxOTIsNyBAQCBwcml2YXRlOgogICAgIGZsb2F0IGNhbGN1
bGF0ZUFuaW1hdGlvblBlcmNlbnRBbmRSZXBlYXQoU01JTFRpbWUgZWxhcHNlZCwgdW5zaWduZWQm
IHJlcGVhdCkgY29uc3Q7CiAgICAgU01JTFRpbWUgY2FsY3VsYXRlTmV4dFByb2dyZXNzVGltZShT
TUlMVGltZSBlbGFwc2VkKSBjb25zdDsKIAotICAgIHZpcnR1YWwgYm9vbCBpc1NNSUxFbGVtZW50
KCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9v
bCBpc1NNSUxFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQog
CiAgICAgbXV0YWJsZSBTVkdFbGVtZW50KiBtX3RhcmdldEVsZW1lbnQ7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKaW5kZXggNjFmNTkyNy4uZTYwMWI2YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKQEAgLTUxLDIwICs1MSwyMCBAQCBwdWJsaWM6
CiAgICAgUmVuZGVyQm94KiBlbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdDsKICAgICBGcmFtZVZp
ZXcqIGZyYW1lVmlldygpIGNvbnN0OwogCi0gICAgdmlydHVhbCBib29sIGlzU1ZHSW1hZ2UoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBJbnRTaXplIHNpemUo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2ludHJpbnNpY1NpemU7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaXNTVkdJbWFnZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIEludFNpemUgc2l6ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faW50cmluc2lj
U2l6ZTsgfQogCi0gICAgdmlydHVhbCBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVXaWR0aCgpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBoYXNSZWxhdGl2ZUhlaWdodCgpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBoYXNSZWxhdGl2ZVdpZHRoKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBib29sIGhhc1JlbGF0aXZlSGVpZ2h0KCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRBbmltYXRpb24oYm9vbCAvKmNhdGNoVXBJZk5l
Y2Vzc2FyeSovID0gdHJ1ZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BBbmltYXRp
b24oKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmltYXRpb24oKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRBbmltYXRpb24oYm9vbCAvKmNhdGNoVXBJZk5lY2Vz
c2FyeSovID0gdHJ1ZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHN0b3BBbmltYXRpb24o
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzZXRBbmltYXRpb24oKSBvdmVycmlkZTsK
IAogI2lmIFVTRShDQUlSTykKLSAgICB2aXJ0dWFsIFBhc3NOYXRpdmVJbWFnZVB0ciBuYXRpdmVJ
bWFnZUZvckN1cnJlbnRGcmFtZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc05hdGl2ZUlt
YWdlUHRyIG5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkgb3ZlcnJpZGU7CiAjZW5kaWYKIAog
cHJpdmF0ZToKQEAgLTczLDIzICs3MywyMyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB+U1ZH
SW1hZ2UoKTsKIAotICAgIHZpcnR1YWwgU3RyaW5nIGZpbGVuYW1lRXh0ZW5zaW9uKCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBTdHJpbmcgZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdCBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250YWluZXJTaXplKGNvbnN0IEludFNp
emUmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGFpbmVyU2l6ZShjb25zdCBJ
bnRTaXplJikgb3ZlcnJpZGU7CiAgICAgSW50U2l6ZSBjb250YWluZXJTaXplKCkgY29uc3Q7Ci0g
ICAgdmlydHVhbCBib29sIHVzZXNDb250YWluZXJTaXplKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhM
ZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXpl
JiBpbnRyaW5zaWNSYXRpbykgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHVzZXNDb250YWlu
ZXJTaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9p
ZCBjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5n
dGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbykgb3ZlcnJpZGU7
CiAKLSAgICB2aXJ0dWFsIGJvb2wgZGF0YUNoYW5nZWQoYm9vbCBhbGxEYXRhUmVjZWl2ZWQpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBkYXRhQ2hhbmdlZChib29sIGFsbERhdGFSZWNlaXZl
ZCkgb3ZlcnJpZGU7CiAKICAgICAvLyBGSVhNRTogU1ZHSW1hZ2VzIHdpbGwgYmUgdW5hYmxlIHRv
IHBydW5lIGJlY2F1c2UgdGhpcyBmdW5jdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgeWV0LgotICAg
IHZpcnR1YWwgdm9pZCBkZXN0cm95RGVjb2RlZERhdGEoYm9vbCkgT1ZFUlJJREUgeyB9CisgICAg
dmlydHVhbCB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YShib29sKSBvdmVycmlkZSB7IH0KIAogICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcyB0byBiZSBsZXNzIGNvbnNlcnZhdGl2ZS4KLSAgICB2
aXJ0dWFsIGJvb2wgY3VycmVudEZyYW1lS25vd25Ub0JlT3BhcXVlKCkgT1ZFUlJJREUgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY3VycmVudEZyYW1lS25vd25Ub0JlT3BhcXVl
KCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIFNWR0ltYWdlKEltYWdlT2JzZXJ2
ZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9h
dFJlY3QmIGZyb21SZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRvUmVjdCwgQ29sb3JTcGFjZSBzdHls
ZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIEltYWdlT3JpZW50YXRp
b25EZXNjcmlwdGlvbikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRyYXcoR3JhcGhpY3ND
b250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiBmcm9tUmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0b1Jl
Y3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgQmxlbmRN
b2RlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pIG92ZXJyaWRlOwogICAgIHZvaWQgZHJh
d0ZvckNvbnRhaW5lcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFNpemUsIGZsb2F0LCBj
b25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBDb2xvclNwYWNlLCBDb21wb3NpdGVP
cGVyYXRvciwgQmxlbmRNb2RlKTsKICAgICB2b2lkIGRyYXdQYXR0ZXJuRm9yQ29udGFpbmVyKEdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0U2l6ZSwgZmxvYXQsIGNvbnN0IEZsb2F0UmVjdCYs
IGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBDb2xvclNwYWNlLAog
ICAgICAgICBDb21wb3NpdGVPcGVyYXRvciwgY29uc3QgRmxvYXRSZWN0Jik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZUZvckNvbnRhaW5lci5oCmluZGV4IGY3
ODI3ZjEuLjVjOTI3MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9T
VkdJbWFnZUZvckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9T
VkdJbWFnZUZvckNvbnRhaW5lci5oCkBAIC00MywyNiArNDMsMjYgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR0ltYWdlRm9yQ29udGFpbmVyKGltYWdlLCBjb250YWlu
ZXJTaXplLCB6b29tKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIGlzU1ZHSW1hZ2UoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzU1ZHSW1h
Z2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIEludFNp
emUgc2l6ZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgSW50U2l6ZSBzaXplKCkgY29u
c3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgdXNlc0NvbnRhaW5lclNpemUoKSBjb25z
dCBPVkVSUklERSB7IHJldHVybiBtX2ltYWdlLT51c2VzQ29udGFpbmVyU2l6ZSgpOyB9Ci0gICAg
dmlydHVhbCBib29sIGhhc1JlbGF0aXZlV2lkdGgoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBt
X2ltYWdlLT5oYXNSZWxhdGl2ZVdpZHRoKCk7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRp
dmVIZWlnaHQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2ltYWdlLT5oYXNSZWxhdGl2ZUhl
aWdodCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKExl
bmd0aCYgaW50cmluc2ljV2lkdGgsIExlbmd0aCYgaW50cmluc2ljSGVpZ2h0LCBGbG9hdFNpemUm
IGludHJpbnNpY1JhdGlvKSBPVkVSUklERQorICAgIHZpcnR1YWwgYm9vbCB1c2VzQ29udGFpbmVy
U2l6ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faW1hZ2UtPnVzZXNDb250YWluZXJTaXpl
KCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVXaWR0aCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1faW1hZ2UtPmhhc1JlbGF0aXZlV2lkdGgoKTsgfQorICAgIHZpcnR1YWwgYm9v
bCBoYXNSZWxhdGl2ZUhlaWdodCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faW1hZ2UtPmhh
c1JlbGF0aXZlSGVpZ2h0KCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUludHJpbnNpY0Rp
bWVuc2lvbnMoTGVuZ3RoJiBpbnRyaW5zaWNXaWR0aCwgTGVuZ3RoJiBpbnRyaW5zaWNIZWlnaHQs
IEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pIG92ZXJyaWRlCiAgICAgewogICAgICAgICBtX2lt
YWdlLT5jb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhpbnRyaW5zaWNXaWR0aCwgaW50cmluc2lj
SGVpZ2h0LCBpbnRyaW5zaWNSYXRpbyk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGRyYXco
R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgQ29s
b3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbkRl
c2NyaXB0aW9uKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhdyhHcmFwaGljc0NvbnRl
eHQqLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBDb2xvclNwYWNlLCBDb21w
b3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pIG92
ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCos
IGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9p
bnQmLCBDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciwgY29uc3QgRmxvYXRSZWN0JiwgQmxl
bmRNb2RlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3ND
b250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3Qg
RmxvYXRQb2ludCYsIENvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJl
Y3QmLCBCbGVuZE1vZGUpIG92ZXJyaWRlOwogCiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlz
IHRvIGJlIGxlc3MgY29uc2VydmF0aXZlLgotICAgIHZpcnR1YWwgYm9vbCBjdXJyZW50RnJhbWVL
bm93blRvQmVPcGFxdWUoKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBjdXJyZW50RnJhbWVLbm93blRvQmVPcGFxdWUoKSBvdmVycmlkZSB7IHJldHVybiBmYWxz
ZTsgfQogCi0gICAgdmlydHVhbCBQYXNzTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2VGb3JDdXJy
ZW50RnJhbWUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NOYXRpdmVJbWFnZVB0ciBuYXRp
dmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIFNWR0lt
YWdlRm9yQ29udGFpbmVyKFNWR0ltYWdlKiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBjb250YWlu
ZXJTaXplLCBmbG9hdCB6b29tKQpAQCAtNzIsNyArNzIsNyBAQCBwcml2YXRlOgogICAgIHsKICAg
ICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveURlY29kZWREYXRhKGJvb2wgLypkZXN0cm95
QWxsKi8gPSB0cnVlKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveURlY29k
ZWREYXRhKGJvb2wgLypkZXN0cm95QWxsKi8gPSB0cnVlKSBvdmVycmlkZSB7IH0KIAogICAgIFNW
R0ltYWdlKiBtX2ltYWdlOwogICAgIGNvbnN0IEZsb2F0U2l6ZSBtX2NvbnRhaW5lclNpemU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5oCmluZGV4
IDExNWIyZjEuLjMzZmJiMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGlj
cy9maWx0ZXJzL1NWR0ZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9m
aWx0ZXJzL1NWR0ZpbHRlci5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IEZsb2F0UmVjdCBzb3VyY2VJbWFnZVJlY3QoKSBjb25zdCB7IHJldHVybiBtX2Fic29sdXRlU291
cmNlRHJhd2luZ1JlZ2lvbjsgfQogICAgIEZsb2F0UmVjdCB0YXJnZXRCb3VuZGluZ0JveCgpIGNv
bnN0IHsgcmV0dXJuIG1fdGFyZ2V0Qm91bmRpbmdCb3g7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBp
c1NWR0ZpbHRlcigpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgaXNTVkdGaWx0ZXIoKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVybiB0
cnVlOyB9CiAKIHByaXZhdGU6CiAgICAgU1ZHRmlsdGVyKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
YWJzb2x1dGVUcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UmVjdCYgYWJzb2x1dGVTb3VyY2VEcmF3aW5n
UmVnaW9uLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldEJvdW5kaW5nQm94LCBjb25zdCBGbG9hdFJl
Y3QmIGZpbHRlclJlZ2lvbiwgYm9vbCBlZmZlY3RCQm94TW9kZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkTGlzdFByb3BlcnR5
VGVhck9mZi5oCmluZGV4IDA4Y2E3ODAuLjljNmEyNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVh
ck9mZi5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PExpc3RQcm9wZXJ0eSo+KG1fYW5pbVZhbC5nZXQoKSk7CiAgICAgfQogCi0gICAgdmlydHVh
bCBib29sIGlzQW5pbWF0ZWRMaXN0VGVhck9mZigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNBbmltYXRlZExpc3RUZWFyT2ZmKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgaW50IGZpbmRJdGVtKFNWR1Byb3BlcnR5KiBw
cm9wZXJ0eSkgY29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5
VGVhck9mZi5oCmluZGV4IGNjMDhiOWEuLmJhMTMzZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdFByb3BlcnR5VGVhck9m
Zi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVHJhbnNm
b3JtTGlzdFByb3BlcnR5VGVhck9mZi5oCkBAIC0yOSwxNCArMjksMTQgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBTVkdBbmltYXRlZFRyYW5zZm9ybUxpc3RQcm9wZXJ0eVRlYXJPZmYg
OiBwdWJsaWMgU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybUxpc3Q+
IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJhbnNm
b3JtTGlzdD4qIGJhc2VWYWwoKSBPVkVSUklERQorICAgIHZpcnR1YWwgU1ZHTGlzdFByb3BlcnR5
VGVhck9mZjxTVkdUcmFuc2Zvcm1MaXN0PiogYmFzZVZhbCgpIG92ZXJyaWRlCiAgICAgewogICAg
ICAgICBpZiAoIW1fYmFzZVZhbCkKICAgICAgICAgICAgIG1fYmFzZVZhbCA9IFNWR1RyYW5zZm9y
bUxpc3RQcm9wZXJ0eVRlYXJPZmY6OmNyZWF0ZSh0aGlzLCBCYXNlVmFsUm9sZSwgbV92YWx1ZXMs
IG1fd3JhcHBlcnMpOwogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U1ZHTGlzdFByb3BlcnR5
VGVhck9mZjxTVkdUcmFuc2Zvcm1MaXN0Pio+KG1fYmFzZVZhbC5nZXQoKSk7CiAgICAgfQogCi0g
ICAgdmlydHVhbCBTVkdMaXN0UHJvcGVydHlUZWFyT2ZmPFNWR1RyYW5zZm9ybUxpc3Q+KiBhbmlt
VmFsKCkgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHVHJh
bnNmb3JtTGlzdD4qIGFuaW1WYWwoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKCFtX2Fu
aW1WYWwpCiAgICAgICAgICAgICBtX2FuaW1WYWwgPSBTVkdUcmFuc2Zvcm1MaXN0UHJvcGVydHlU
ZWFyT2ZmOjpjcmVhdGUodGhpcywgQW5pbVZhbFJvbGUsIG1fdmFsdWVzLCBtX3dyYXBwZXJzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0
eVRlYXJPZmYuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0
eVRlYXJPZmYuaAppbmRleCAxYzY3NzEyLi5lY2RkNGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oCkBAIC0xMjEs
NyArMTIxLDcgQEAgcHJvdGVjdGVkOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wg
aXNSZWFkT25seSgpIGNvbnN0IE9WRVJSSURFCisgICAgdmlydHVhbCBib29sIGlzUmVhZE9ubHko
KSBjb25zdCBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKG1fcm9sZSA9PSBBbmltVmFsUm9s
ZSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMTMwLDcgKzEzMCw3IEBAIHByb3RlY3Rl
ZDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBjb21t
aXRDaGFuZ2UoKSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBjb21taXRDaGFuZ2UoKSBvdmVy
cmlkZQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fdmFsdWVzKTsKICAgICAgICAgQVNTRVJUKG1f
d3JhcHBlcnMpOwpAQCAtMTQ5LDEzICsxNDksMTMgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX2Fu
aW1hdGVkUHJvcGVydHktPmNvbW1pdENoYW5nZSgpOwogICAgIH0KIAotICAgIHZpcnR1YWwgYm9v
bCBwcm9jZXNzSW5jb21pbmdMaXN0SXRlbVZhbHVlKGNvbnN0IExpc3RJdGVtVHlwZSYsIHVuc2ln
bmVkKikgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIGJvb2wgcHJvY2Vzc0luY29taW5nTGlzdEl0ZW1W
YWx1ZShjb25zdCBMaXN0SXRlbVR5cGUmLCB1bnNpZ25lZCopIG92ZXJyaWRlCiAgICAgewogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQog
Ci0gICAgdmlydHVhbCBib29sIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtV3JhcHBlcihSZWZQdHI8
TGlzdEl0ZW1UZWFyT2ZmPiYgbmV3SXRlbSwgdW5zaWduZWQqIGluZGV4VG9Nb2RpZnkpIE9WRVJS
SURFCisgICAgdmlydHVhbCBib29sIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtV3JhcHBlcihSZWZQ
dHI8TGlzdEl0ZW1UZWFyT2ZmPiYgbmV3SXRlbSwgdW5zaWduZWQqIGluZGV4VG9Nb2RpZnkpIG92
ZXJyaWRlCiAgICAgewogICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5KiBhbmltYXRlZFByb3Bl
cnR5T2ZJdGVtID0gbmV3SXRlbS0+YW5pbWF0ZWRQcm9wZXJ0eSgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9m
Zi5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUGF0aFNlZ0xpc3RQcm9wZXJ0
eVRlYXJPZmYuaAppbmRleCBlZTcwNGQ2Li41OWM1MmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdQYXRoU2VnTGlzdFByb3BlcnR5VGVhck9mZi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1BhdGhTZWdMaXN0UHJvcGVydHlUZWFy
T2ZmLmgKQEAgLTE0Niw3ICsxNDYsNyBAQCBwcml2YXRlOgogICAgICAgICBtX3ZhbHVlcy0+Y29t
bWl0Q2hhbmdlKG1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29udGV4dEVsZW1lbnQoKSwgbGlzdE1vZGlm
aWNhdGlvbik7CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIHByb2Nlc3NJbmNvbWluZ0xpc3RJ
dGVtVmFsdWUoY29uc3QgTGlzdEl0ZW1UeXBlJiBuZXdJdGVtLCB1bnNpZ25lZCogaW5kZXhUb01v
ZGlmeSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVt
VmFsdWUoY29uc3QgTGlzdEl0ZW1UeXBlJiBuZXdJdGVtLCB1bnNpZ25lZCogaW5kZXhUb01vZGlm
eSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHByb2Nlc3NJbmNvbWluZ0xpc3RJdGVtV3Jh
cHBlcihSZWZQdHI8TGlzdEl0ZW1UZWFyT2ZmPiYsIHVuc2lnbmVkKikKICAgICB7CiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHUHJvcGVydHlUZWFyT2ZmLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAppbmRleCBjNjgzZmI0Li4wMDM0MDAzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRlYXJPZmYuaApA
QCAtODksMTQgKzg5LDE0IEBAIHB1YmxpYzoKICAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5ID0g
MDsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgY29tbWl0Q2hhbmdlKCkgT1ZFUlJJREUKKyAg
ICB2aXJ0dWFsIHZvaWQgY29tbWl0Q2hhbmdlKCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlm
ICghbV9hbmltYXRlZFByb3BlcnR5IHx8IG1fdmFsdWVJc0NvcHkpCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29tbWl0Q2hhbmdlKCk7CiAgICAgfQog
Ci0gICAgdmlydHVhbCBib29sIGlzUmVhZE9ubHkoKSBjb25zdCBPVkVSUklERQorICAgIHZpcnR1
YWwgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmICht
X3JvbGUgPT0gQW5pbVZhbFJvbGUpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IDRkYThmNzQuLmQ3MTU5
MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAt
MTY3LDcgKzE2Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgOiBtX2ludGVybmFsU2V0dGluZ3MoSW50
ZXJuYWxTZXR0aW5nczo6Y3JlYXRlKHBhZ2UpKSB7IH0KICAgICB2aXJ0dWFsIH5JbnRlcm5hbFNl
dHRpbmdzV3JhcHBlcigpIHsgbV9pbnRlcm5hbFNldHRpbmdzLT5ob3N0RGVzdHJveWVkKCk7IH0K
ICNpZiAhQVNTRVJUX0RJU0FCTEVECi0gICAgdmlydHVhbCBib29sIGlzUmVmQ291bnRlZFdyYXBw
ZXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlz
UmVmQ291bnRlZFdyYXBwZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAjZW5k
aWYKICAgICBJbnRlcm5hbFNldHRpbmdzKiBpbnRlcm5hbFNldHRpbmdzKCkgY29uc3QgeyByZXR1
cm4gbV9pbnRlcm5hbFNldHRpbmdzLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAppbmRleCA1NDU3MDZlLi5lOGJhZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCkBAIC0xNzksMjAgKzE3OSwyMCBAQCBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZENs
aWVudER1bW15IDogcHVibGljIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwgewogcHVibGlj
OgogICAgIEluc3BlY3RvckZyb250ZW5kQ2xpZW50RHVtbXkoSW5zcGVjdG9yQ29udHJvbGxlcios
IFBhZ2UqKTsKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JGcm9udGVuZENsaWVudER1bW15KCkgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIGF0dGFjaFdpbmRvdyhEb2NrU2lkZSkgT1ZFUlJJREUgeyB9Ci0g
ICAgdmlydHVhbCB2b2lkIGRldGFjaFdpbmRvdygpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBhdHRhY2hXaW5kb3coRG9ja1NpZGUpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBkZXRhY2hXaW5kb3coKSBvdmVycmlkZSB7IH0KIAotICAgIHZpcnR1YWwgU3RyaW5nIGxvY2Fs
aXplZFN0cmluZ3NVUkwoKSBPVkVSUklERSB7IHJldHVybiBTdHJpbmcoKTsgfQorICAgIHZpcnR1
YWwgU3RyaW5nIGxvY2FsaXplZFN0cmluZ3NVUkwoKSBvdmVycmlkZSB7IHJldHVybiBTdHJpbmco
KTsgfQogCi0gICAgdmlydHVhbCB2b2lkIGJyaW5nVG9Gcm9udCgpIE9WRVJSSURFIHsgfQotICAg
IHZpcnR1YWwgdm9pZCBjbG9zZVdpbmRvdygpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBicmluZ1RvRnJvbnQoKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2VXaW5k
b3coKSBvdmVycmlkZSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2Vk
KGNvbnN0IFN0cmluZyYpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0ZWRV
UkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlIHsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAg
dmlydHVhbCB2b2lkIHNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKSBPVkVSUklERSB7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCkgT1ZF
UlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldFRvb2xiYXJIZWlnaHQodW5zaWduZWQpIE9W
RVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNp
Z25lZCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIHNldEF0dGFjaGVkV2luZG93V2lk
dGgodW5zaWduZWQpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sYmFySGVp
Z2h0KHVuc2lnbmVkKSBvdmVycmlkZSB7IH0KIH07CiAKIEluc3BlY3RvckZyb250ZW5kQ2xpZW50
RHVtbXk6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50RHVtbXkoSW5zcGVjdG9yQ29udHJvbGxlciog
Y29udHJvbGxlciwgUGFnZSogcGFnZSkKQEAgLTIwNCw3ICsyMDQsNyBAQCBjbGFzcyBJbnNwZWN0
b3JGcm9udGVuZENoYW5uZWxEdW1teSA6IHB1YmxpYyBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwg
ewogcHVibGljOgogICAgIGV4cGxpY2l0IEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbER1bW15KFBh
Z2UqKTsKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JGcm9udGVuZENoYW5uZWxEdW1teSgpIHsgfQot
ICAgIHZpcnR1YWwgYm9vbCBzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNz
YWdlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgUGFnZSogbV9m
cm9udGVuZFBhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE0u
Y3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNLmNwcAppbmRleCAyNTRlOGQ0Li42
MGZlYmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETS5jcHAKQEAgLTQxLDEwICs0MSwxMCBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8TW9ja0NETVNlc3Npb24+IGNyZWF0ZSgp
IHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBNb2NrQ0RNU2Vzc2lvbigpKTsgfQogICAgIHZpcnR1YWwg
fk1vY2tDRE1TZXNzaW9uKCkgeyB9CiAKLSAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgc2Vzc2lv
bklkKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9zZXNzaW9uSWQ7IH0KLSAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8VWludDhBcnJheT4gZ2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIFVpbnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1
bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUtleXMoKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgdXBkYXRlKFVpbnQ4QXJyYXkqLCBSZWZQdHI8VWludDhBcnJheT4mIG5leHRNZXNz
YWdlLCB1bnNpZ25lZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2Rl
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9zZXNzaW9uSWQ7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
VWludDhBcnJheT4gZ2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFVp
bnQ4QXJyYXkqIGluaXREYXRhLCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCB1bnNpZ25lZCBzaG9y
dCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVsZWFzZUtleXMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgdXBk
YXRlKFVpbnQ4QXJyYXkqLCBSZWZQdHI8VWludDhBcnJheT4mIG5leHRNZXNzYWdlLCB1bnNpZ25l
ZCBzaG9ydCYgZXJyb3JDb2RlLCB1bnNpZ25lZCBsb25nJiBzeXN0ZW1Db2RlKSBvdmVycmlkZTsK
IAogcHJvdGVjdGVkOgogICAgIE1vY2tDRE1TZXNzaW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tDRE0uaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NE
TS5oCmluZGV4IDNiMzkyZGIuLjI4ODM4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja0NETS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETS5oCkBA
IC00NCw4ICs0NCw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfk1vY2tDRE0oKSB7IH0KIAot
ICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c01JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc093blB0cjxDRE1TZXNzaW9uPiBjcmVhdGVTZXNz
aW9uKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzTUlNRVR5cGUoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQYXNzT3duUHRyPENETVNl
c3Npb24+IGNyZWF0ZVNlc3Npb24oKSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIE1vY2tD
RE0oQ0RNKiBjZG0pIDogbV9jZG0oY2RtKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvQWJzdHJh
Y3RXb3JrZXIuaAppbmRleCAwZjEzZTgwLi4zYmEyZTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL0Fic3RyYWN0V29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9BYnN0cmFjdFdvcmtlci5oCkBAIC00Nyw3ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBjbGFzcyBBYnN0cmFjdFdvcmtlciA6IHB1YmxpYyBSZWZDb3VudGVkPEFic3RyYWN0V29y
a2VyPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGlu
ZURhdGEgewogICAgIHB1YmxpYzoKICAgICAgICAgLy8gRXZlbnRUYXJnZXQgQVBJcwotICAgICAg
ICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKTsgfQorICAgICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSBGSU5BTCB7IHJldHVy
biBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQogCiAgICAgICAg
IERFRklORV9BVFRSSUJVVEVfRVZFTlRfTElTVEVORVIoZXJyb3IpOwogCkBAIC02NCw4ICs2NCw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgaW50cHRyX3QgYXNJRCgpIGNvbnN0IHsg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHRoaXMpOyB9CiAKICAgICBwcml2YXRl
OgotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSBGSU5BTCB7
IHJlZigpOyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgT1ZFUlJJ
REUgRklOQUwgeyBkZXJlZigpOyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdl
dCgpIG92ZXJyaWRlIEZJTkFMIHsgcmVmKCk7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIGRlcmVm
RXZlbnRUYXJnZXQoKSBvdmVycmlkZSBGSU5BTCB7IGRlcmVmKCk7IH0KICAgICB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Rl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggZDk0NjI5Yi4uNTI3NjJjMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaApA
QCAtNDUsMTMgKzQ1LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZShjb25zdCBVUkwmLCBj
b25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+LCBE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQqLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGlj
eSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGlj
eVR5cGUsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbik7CiAgICAgICAgIHZp
cnR1YWwgfkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKCk7CiAKLSAgICAgICAgdmlydHVhbCBi
b29sIGlzRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biB0cnVlOyB9CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc0RlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgICAgIC8vIE92ZXJy
aWRkZW4gdG8gYWxsb3cgdXMgdG8gY2hlY2sgb3VyIHBlbmRpbmcgYWN0aXZpdHkgYWZ0ZXIgZXhl
Y3V0aW5nIGltcG9ydGVkIHNjcmlwdC4KLSAgICAgICAgdmlydHVhbCB2b2lkIGltcG9ydFNjcmlw
dHMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHVybHMsIEV4Y2VwdGlvbkNvZGUmKSBPVkVSUklERTsK
KyAgICAgICAgdmlydHVhbCB2b2lkIGltcG9ydFNjcmlwdHMoY29uc3QgVmVjdG9yPFN0cmluZz4m
IHVybHMsIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKIAogICAgICAgICAvLyBFdmVudFRhcmdl
dAotICAgICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJm
YWNlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZh
Y2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKIAogICAgICAgICB2b2lk
IHBvc3RNZXNzYWdlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgY29uc3QgTWVz
c2FnZVBvcnRBcnJheSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICAgICAgLy8gTmVlZGVkIGZvciBP
YmplY3RpdmUtQyBiaW5kaW5ncyAoc2VlIGJ1ZyAyODc3NCkuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaAppbmRleCA1MTJjNzBiLi40Zjg3NTAxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmgKQEAg
LTQ0LDggKzQ0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIH5EZWRp
Y2F0ZWRXb3JrZXJUaHJlYWQoKTsKIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25z
dCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0
dGluZ3M+LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3Vy
aXR5UG9saWN5OjpIZWFkZXJUeXBlLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmln
aW4pIE9WRVJSSURFOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcnVuRXZlbnRMb29wKCkgT1ZFUlJJ
REU7CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRl
V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0
ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJp
dHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSwgUGFzc1JlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKSBvdmVycmlkZTsKKyAgICAgICAgdmlydHVhbCB2b2lk
IHJ1bkV2ZW50TG9vcCgpIG92ZXJyaWRlOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgRGVkaWNh
dGVkV29ya2VyVGhyZWFkKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25z
dCBHcm91cFNldHRpbmdzKiwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQ
cm94eSYsIFdvcmtlck9iamVjdFByb3h5JiwgV29ya2VyVGhyZWFkU3RhcnRNb2RlLCBjb25zdCBT
dHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFk
ZXJUeXBlLCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1NoYXJlZFdvcmtlci5oCmluZGV4IGFjOGQ0MzcuLjMzNWY1YzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9TaGFyZWRXb3JrZXIuaApAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICAgICAgTWVzc2FnZVBvcnQqIHBvcnQoKSBjb25zdCB7IHJldHVybiBtX3BvcnQu
Z2V0KCk7IH0KIAotICAgICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFy
Z2V0SW50ZXJmYWNlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gU2hhcmVkV29ya2VyRXZlbnRU
YXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZh
Y2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTaGFyZWRX
b3JrZXJFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAg
IGV4cGxpY2l0IFNoYXJlZFdvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggMjI1
MTY4MS4uY2U2ODcwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRX
b3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29y
a2VyR2xvYmFsU2NvcGUuaApAQCAtNDcsMTAgKzQ3LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkV29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0
ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50
LCBzdGQ6OnVuaXF1ZV9wdHI8R3JvdXBTZXR0aW5ncz4sIFNoYXJlZFdvcmtlclRocmVhZCosIGNv
bnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6
OkhlYWRlclR5cGUgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSk7CiAgICAgICAgIHZpcnR1YWwg
flNoYXJlZFdvcmtlckdsb2JhbFNjb3BlKCk7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGlzU2hh
cmVkV29ya2VyR2xvYmFsU2NvcGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9Cisg
ICAgICAgIHZpcnR1YWwgYm9vbCBpc1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgICAgIC8vIEV2ZW50VGFyZ2V0Ci0gICAgICAg
IHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25z
dCBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRh
cmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgICAgIC8vIFNldHRlcnMvR2V0
dGVycyBmb3IgYXR0cmlidXRlcyBpbiBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5pZGwKICAgICAg
ICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihjb25uZWN0KTsKQEAgLTYwLDcgKzYw
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgU2hhcmVk
V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBVUkwmLCBjb25zdCBT
dHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+LCBTaGFyZWRX
b3JrZXJUaHJlYWQqKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2VwdGlvblRvQ29uc29s
ZShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIGlu
dCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFj
az4pIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xl
KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgaW50
IGxpbmVOdW1iZXIsIGludCBjb2x1bW5OdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
Pikgb3ZlcnJpZGU7CiAKICAgICAgICAgU3RyaW5nIG1fbmFtZTsKICAgICB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmgKaW5kZXggOTEwZmFjZC4uMWQyMTRh
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlclRocmVhZC5oCkBAIC00
Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB+U2hhcmVk
V29ya2VyVGhyZWFkKCk7CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdz
PiwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBv
bGljeTo6SGVhZGVyVHlwZSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKSBP
VkVSUklERTsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBj
cmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRT
ZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlLCBQYXNzUmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pIG92ZXJyaWRlOwogCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgU2hhcmVkV29ya2VyVGhyZWFkKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IEdyb3VwU2V0dGluZ3MqLCBjb25zdCBT
dHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiwgV29ya2VyUmVwb3J0aW5nUHJv
eHkmLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5
UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyLmgKaW5kZXggZWU1MjQ2Yy4uNWYwNjAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlci5o
CkBAIC01Miw3ICs1Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8V29ya2VyPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0
cmluZyYgdXJsLCBFeGNlcHRpb25Db2RlJik7CiAgICAgICAgIHZpcnR1YWwgfldvcmtlcigpOwog
Ci0gICAgICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZh
Y2UoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBXb3JrZXJFdmVudFRhcmdldEludGVyZmFjZVR5
cGU7IH0KKyAgICAgICAgdmlydHVhbCBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldElu
dGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdvcmtlckV2ZW50VGFyZ2V0SW50ZXJm
YWNlVHlwZTsgfQogCiAgICAgICAgIHZvaWQgcG9zdE1lc3NhZ2UoUGFzc1JlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIGNvbnN0IE1lc3NhZ2VQb3J0QXJyYXkqLCBFeGNlcHRp
b25Db2RlJik7CiAgICAgICAgIC8vIE5lZWRlZCBmb3IgT2JqZWN0aXZlLUMgYmluZGluZ3MgKHNl
ZSBidWcgMjg3NzQpLgpAQCAtNjAsOSArNjAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICAgICAgdm9pZCB0ZXJtaW5hdGUoKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVu
ZCgpIGNvbnN0IE9WRVJSSURFOwotICAgICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURF
OwotICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgT1ZFUlJJ
REU7CisgICAgICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwgYm9v
bCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBvdmVycmlkZTsKICAgICAKICAgICAgICAgREVG
SU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihtZXNzYWdlKTsKIApAQCAtNzIsOCArNzIsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgbm90aWZ5TmV0d29ya1N0YXRlQ2hh
bmdlKGJvb2wgaXNPbmxpbmUpOwogCiAgICAgICAgIC8vIFdvcmtlclNjcmlwdExvYWRlckNsaWVu
dCBjYWxsYmFja3MKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsK
LSAgICAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVkKCkgT1ZFUlJJREU7CisgICAgICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlGaW5pc2hlZCgpIG92ZXJyaWRlOwogCiAgICAgICAgIGZyaWVuZCB2b2lkIG5ldHdv
cmtTdGF0ZUNoYW5nZWQoYm9vbCBpc09uTGluZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckV2ZW50UXVldWUuY3BwCmluZGV4IDBjYzQ3ODkuLjNiNDYyNzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVlLmNwcApAQCAtNjQsNyArNjQsNyBAQCBw
dWJsaWM6CiAgICAgICAgIGV2ZW50LT50YXJnZXQoKS0+ZGlzcGF0Y2hFdmVudChldmVudCk7CiAg
ICAgfQogCi0gICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAo
bV9pc0NhbmNlbGxlZCkKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1ZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJFdmVudFF1ZXVlLmgKaW5kZXggZTAzNDFmYS4uNDY1NmIxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVlLmgKQEAgLTQwLDkgKzQwLDkgQEAgcHVibGlj
OgogICAgIGV4cGxpY2l0IFdvcmtlckV2ZW50UXVldWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
OwogICAgIHZpcnR1YWwgfldvcmtlckV2ZW50UXVldWUoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBl
bnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9v
bCBjYW5jZWxFdmVudChFdmVudCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBlbnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVu
dD4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjYW5jZWxFdmVudChFdmVudCYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCA1OTQxN2I2Li43ZWZl
OWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3Bl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCkBAIC01
NiwyMCArNTYsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHB1YmxpYzoKICAgICAgICAg
dmlydHVhbCB+V29ya2VyR2xvYmFsU2NvcGUoKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNX
b3JrZXJHbG9iYWxTY29wZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICAg
ICAgdmlydHVhbCBib29sIGlzV29ya2VyR2xvYmFsU2NvcGUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiB0cnVlOyB9CiAKLSAgICAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgT1ZFUlJJREUgRklOQUwgeyByZXR1cm4gY29u
c3RfY2FzdDxXb3JrZXJHbG9iYWxTY29wZSo+KHRoaXMpOyB9CisgICAgICAgIHZpcnR1YWwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJy
aWRlIEZJTkFMIHsgcmV0dXJuIGNvbnN0X2Nhc3Q8V29ya2VyR2xvYmFsU2NvcGUqPih0aGlzKTsg
fQogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgdmlydHVhbCBib29sIGlzRGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgICAgIHZpcnR1
YWwgY29uc3QgVVJMJiB1cmwoKSBjb25zdCBPVkVSUklERSBGSU5BTCB7IHJldHVybiBtX3VybDsg
fQotICAgICAgICB2aXJ0dWFsIFVSTCBjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmKSBjb25zdCBP
VkVSUklERSBGSU5BTDsKKyAgICAgICAgdmlydHVhbCBjb25zdCBVUkwmIHVybCgpIGNvbnN0IG92
ZXJyaWRlIEZJTkFMIHsgcmV0dXJuIG1fdXJsOyB9CisgICAgICAgIHZpcnR1YWwgVVJMIGNvbXBs
ZXRlVVJMKGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRlIEZJTkFMOwogCiAgICAgICAgIGNv
bnN0IEdyb3VwU2V0dGluZ3MqIGdyb3VwU2V0dGluZ3MoKSB7IHJldHVybiBtX2dyb3VwU2V0dGlu
Z3MuZ2V0KCk7IH0KLSAgICAgICAgdmlydHVhbCBTdHJpbmcgdXNlckFnZW50KGNvbnN0IFVSTCYp
IGNvbnN0IE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQoY29uc3Qg
VVJMJikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpc2FibGVFdmFs
KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCB2
b2lkIGRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSBvdmVycmlkZTsKIAog
ICAgICAgICBXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQoKSB7IHJldHVybiBtX3Njcmlw
dC5nZXQoKTsgfQogICAgICAgICB2b2lkIGNsZWFyU2NyaXB0KCkgeyBtX3NjcmlwdC5jbGVhcigp
OyB9CkBAIC04MSw3ICs4MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBib29s
IGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwb3N0
VGFzayhQYXNzT3duUHRyPFRhc2s+KSBPVkVSUklERTsgLy8gRXhlY3V0ZXMgdGhlIHRhc2sgb24g
Y29udGV4dCdzIHRocmVhZCBhc3luY2hyb25vdXNseS4KKyAgICAgICAgdmlydHVhbCB2b2lkIHBv
c3RUYXNrKFBhc3NPd25QdHI8VGFzaz4pIG92ZXJyaWRlOyAvLyBFeGVjdXRlcyB0aGUgdGFzayBv
biBjb250ZXh0J3MgdGhyZWFkIGFzeW5jaHJvbm91c2x5LgogCiAgICAgICAgIC8vIFdvcmtlckds
b2JhbFNjb3BlCiAgICAgICAgIFdvcmtlckdsb2JhbFNjb3BlKiBzZWxmKCkgeyByZXR1cm4gdGhp
czsgfQpAQCAtMTAyLDggKzEwMiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgaW50
IHNldEludGVydmFsKFBhc3NPd25QdHI8U2NoZWR1bGVkQWN0aW9uPiwgaW50IHRpbWVvdXQpOwog
ICAgICAgICB2b2lkIGNsZWFySW50ZXJ2YWwoaW50IHRpbWVvdXRJZCk7CiAKLSAgICAgICAgdmly
dHVhbCBib29sIGlzQ29udGV4dFRocmVhZCgpIGNvbnN0IE9WRVJSSURFOwotICAgICAgICB2aXJ0
dWFsIGJvb2wgaXNKU0V4ZWN1dGlvbkZvcmJpZGRlbigpIGNvbnN0IE9WRVJSSURFOworICAgICAg
ICB2aXJ0dWFsIGJvb2wgaXNDb250ZXh0VGhyZWFkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgICAg
IHZpcnR1YWwgYm9vbCBpc0pTRXhlY3V0aW9uRm9yYmlkZGVuKCkgY29uc3Qgb3ZlcnJpZGU7CiAK
ICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgICAgICBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
KiB3b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCkgeyByZXR1cm4gbV93b3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyLmdldCgpOyB9CkBAIC0xMzQsMjggKzEzNCwyOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHZvaWQgdW5yZWdpc3Rlck9ic2VydmVyKE9ic2VydmVyKik7CiAgICAgICAg
IHZvaWQgbm90aWZ5T2JzZXJ2ZXJzT2ZTdG9wKCk7CiAKLSAgICAgICAgdmlydHVhbCBTZWN1cml0
eU9yaWdpbiogdG9wT3JpZ2luKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV90b3BPcmlnaW4u
Z2V0KCk7IH0KKyAgICAgICAgdmlydHVhbCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV90b3BPcmlnaW4uZ2V0KCk7IH0KIAogICAgIHByb3RlY3Rl
ZDoKICAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiwgV29ya2VyVGhyZWFkKiwg
UGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKTsKICAgICAgICAgdm9pZCBhcHBs
eUNvbnRlbnRTZWN1cml0eVBvbGljeUZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBjb250ZW50U2Vj
dXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSk7CiAKLSAgICAg
ICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVycm9y
TWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVyLCBpbnQgY29s
dW1uTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pIE9WRVJSSURFOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYgZXJyb3JN
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1
bW5OdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPikgb3ZlcnJpZGU7CiAgICAgICAg
IHZvaWQgYWRkTWVzc2FnZVRvV29ya2VyQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2
ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2ln
bmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+LCBKU0M6OkV4ZWNTdGF0ZSogPSAwLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVu
dGlmaWVyID0gMCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVmU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpIE9WRVJSSURFIHsgcmVmKCk7IH0KLSAgICAgICAgdmlydHVh
bCB2b2lkIGRlcmVmU2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIE9WRVJSSURFIHsgZGVyZWYoKTsg
fQorICAgICAgICB2aXJ0dWFsIHZvaWQgcmVmU2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIG92ZXJy
aWRlIHsgcmVmKCk7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIGRlcmVmU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBy
ZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIEZJTkFMIHsgcmVmKCk7IH0KLSAgICAgICAgdmlydHVh
bCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSBGSU5BTCB7IGRlcmVmKCk7IH0KKyAg
ICAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgRklOQUwgeyByZWYo
KTsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIEZJ
TkFMIHsgZGVyZWYoKTsgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVy
LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4sIEpTQzo6RXhlY1N0YXRlKiA9IDAsIHVuc2ln
bmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSBPVkVSUklERTsKLSAgICAgICAgdmlydHVh
bCB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCkg
T1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBQYXNzUmVm
UHRyPFNjcmlwdENhbGxTdGFjaz4sIEpTQzo6RXhlY1N0YXRlKiA9IDAsIHVuc2lnbmVkIGxvbmcg
cmVxdWVzdElkZW50aWZpZXIgPSAwKSBvdmVycmlkZTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGFk
ZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCkgb3ZlcnJpZGU7
CiAKLSAgICAgICAgdmlydHVhbCBFdmVudFRhcmdldCogZXJyb3JFdmVudFRhcmdldCgpIE9WRVJS
SURFOworICAgICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0KiBlcnJvckV2ZW50VGFyZ2V0KCkgb3Zl
cnJpZGU7CiAKLSAgICAgICAgdmlydHVhbCBXb3JrZXJFdmVudFF1ZXVlJiBldmVudFF1ZXVlKCkg
Y29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAgICAgIHZpcnR1YWwgV29ya2VyRXZlbnRRdWV1ZSYg
ZXZlbnRRdWV1ZSgpIGNvbnN0IG92ZXJyaWRlIEZJTkFMOwogCiAgICAgICAgIFVSTCBtX3VybDsK
ICAgICAgICAgU3RyaW5nIG1fdXNlckFnZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4IDBkN2E2Y2QuLmJmNjA3ZjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKQEAgLTUxLDM2ICs1MSwz
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgLy8gSW1wbGVtZW50YXRpb25zIG9m
IFdvcmtlckdsb2JhbFNjb3BlUHJveHkuCiAgICAgICAgIC8vIChPbmx5IHVzZSB0aGVzZSBtZXRo
b2RzIGluIHRoZSB3b3JrZXIgb2JqZWN0IHRocmVhZC4pCi0gICAgICAgIHZpcnR1YWwgdm9pZCBz
dGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJUaHJlYWRTdGFydE1v
ZGUpIE9WRVJSSURFOwotICAgICAgICB2aXJ0dWFsIHZvaWQgdGVybWluYXRlV29ya2VyR2xvYmFs
U2NvcGUoKSBPVkVSUklERTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9Xb3Jr
ZXJHbG9iYWxTY29wZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NPd25Q
dHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+KSBPVkVSUklERTsKLSAgICAgICAgdmlydHVhbCBi
b29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IE9WRVJSSURFOwotICAgICAgICB2aXJ0dWFs
IHZvaWQgd29ya2VyT2JqZWN0RGVzdHJveWVkKCkgT1ZFUlJJREU7Ci0gICAgICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBpc09ubGluZSkgT1ZFUlJJREU7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBzdGFydFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2Ny
aXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2Rl
LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUpIG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIHZvaWQg
dGVybWluYXRlV29ya2VyR2xvYmFsU2NvcGUoKSBvdmVycmlkZTsKKyAgICAgICAgdmlydHVhbCB2
b2lkIHBvc3RNZXNzYWdlVG9Xb3JrZXJHbG9iYWxTY29wZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4sIFBhc3NPd25QdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+KSBvdmVycmlk
ZTsKKyAgICAgICAgdmlydHVhbCBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IG92ZXJy
aWRlOworICAgICAgICB2aXJ0dWFsIHZvaWQgd29ya2VyT2JqZWN0RGVzdHJveWVkKCkgb3ZlcnJp
ZGU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBp
c09ubGluZSkgb3ZlcnJpZGU7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICAgICAgdmlydHVh
bCB2b2lkIGNvbm5lY3RUb0luc3BlY3RvcihXb3JrZXJHbG9iYWxTY29wZVByb3h5OjpQYWdlSW5z
cGVjdG9yKikgT1ZFUlJJREU7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0RnJvbUlu
c3BlY3RvcigpIE9WRVJSSURFOwotICAgICAgICB2aXJ0dWFsIHZvaWQgc2VuZE1lc3NhZ2VUb0lu
c3BlY3Rvcihjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGNv
bm5lY3RUb0luc3BlY3RvcihXb3JrZXJHbG9iYWxTY29wZVByb3h5OjpQYWdlSW5zcGVjdG9yKikg
b3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0RnJvbUluc3BlY3Rvcigp
IG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2VuZE1lc3NhZ2VUb0luc3BlY3Rvcihj
b25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICNlbmRpZgogCiAgICAgICAgIC8vIEltcGxlbWVudGF0
aW9ucyBvZiBXb3JrZXJPYmplY3RQcm94eS4KICAgICAgICAgLy8gKE9ubHkgdXNlIHRoZXNlIG1l
dGhvZHMgaW4gdGhlIHdvcmtlciBjb250ZXh0IHRocmVhZC4pCi0gICAgICAgIHZpcnR1YWwgdm9p
ZCBwb3N0TWVzc2FnZVRvV29ya2VyT2JqZWN0KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiwgUGFzc093blB0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4pIE9WRVJSSURFOwotICAg
ICAgICB2aXJ0dWFsIHZvaWQgcG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0KGNvbnN0IFN0cmlu
ZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkwpIE9WRVJSSURFOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdENv
bnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3QoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBw
b3N0TWVzc2FnZVRvV29ya2VyT2JqZWN0KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiwgUGFzc093blB0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4pIG92ZXJyaWRlOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgcG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0KGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VVUkwpIG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdENvbnNv
bGVNZXNzYWdlVG9Xb3JrZXJPYmplY3QoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTCkgb3ZlcnJpZGU7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAg
ICAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9QYWdlSW5zcGVjdG9yKGNvbnN0IFN0cmlu
ZyYpIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1BhZ2VJbnNw
ZWN0b3IoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICAgICAgdmlydHVhbCB2
b2lkIGNvbmZpcm1NZXNzYWdlRnJvbVdvcmtlck9iamVjdChib29sIGhhc1BlbmRpbmdBY3Rpdml0
eSkgT1ZFUlJJREU7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZXBvcnRQZW5kaW5nQWN0aXZpdHko
Ym9vbCBoYXNQZW5kaW5nQWN0aXZpdHkpIE9WRVJSSURFOwotICAgICAgICB2aXJ0dWFsIHZvaWQg
d29ya2VyR2xvYmFsU2NvcGVDbG9zZWQoKSBPVkVSUklERTsKLSAgICAgICAgdmlydHVhbCB2b2lk
IHdvcmtlckdsb2JhbFNjb3BlRGVzdHJveWVkKCkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwg
dm9pZCBjb25maXJtTWVzc2FnZUZyb21Xb3JrZXJPYmplY3QoYm9vbCBoYXNQZW5kaW5nQWN0aXZp
dHkpIG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0UGVuZGluZ0FjdGl2aXR5
KGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KSBvdmVycmlkZTsKKyAgICAgICAgdmlydHVhbCB2b2lk
IHdvcmtlckdsb2JhbFNjb3BlQ2xvc2VkKCkgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwgdm9p
ZCB3b3JrZXJHbG9iYWxTY29wZURlc3Ryb3llZCgpIG92ZXJyaWRlOwogCiAgICAgICAgIC8vIElt
cGxlbWVudGF0aW9uIG9mIFdvcmtlckxvYWRlclByb3h5LgogICAgICAgICAvLyBUaGVzZSBtZXRo
b2RzIGFyZSBjYWxsZWQgb24gZGlmZmVyZW50IHRocmVhZHMgdG8gc2NoZWR1bGUgbG9hZGluZwog
ICAgICAgICAvLyByZXF1ZXN0cyBhbmQgdG8gc2VuZCBjYWxsYmFja3MgYmFjayB0byBXb3JrZXJH
bG9iYWxTY29wZS4KLSAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RUYXNrVG9Mb2FkZXIoUGFzc093
blB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPikgT1ZFUlJJREU7Ci0gICAgICAgIHZp
cnR1YWwgYm9vbCBwb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKFBhc3NPd25QdHI8
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4sIGNvbnN0IFN0cmluZyYgbW9kZSkgT1ZFUlJJ
REU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwb3N0VGFza1RvTG9hZGVyKFBhc3NPd25QdHI8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4pIG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIGJv
b2wgcG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShQYXNzT3duUHRyPFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OlRhc2s+LCBjb25zdCBTdHJpbmcmIG1vZGUpIG92ZXJyaWRlOwogCiAg
ICAgICAgIHZvaWQgd29ya2VyVGhyZWFkQ3JlYXRlZChQYXNzUmVmUHRyPERlZGljYXRlZFdvcmtl
clRocmVhZD4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9i
amVjdFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck9iamVjdFByb3h5LmgK
aW5kZXggN2FlM2ZiYi4uZTZhNGI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJPYmplY3RQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
T2JqZWN0UHJveHkuaApAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCByZXBvcnRQZW5kaW5nQWN0aXZpdHkoYm9vbCBoYXNQZW5kaW5nQWN0
aXZpdHkpID0gMDsKIAogICAgICAgICAvLyBObyBuZWVkIHRvIG5vdGlmeSB0aGUgcGFyZW50IHBh
Z2UgY29udGV4dCB3aGVuIGRlZGljYXRlZCB3b3JrZXJzIGFyZSBjbG9zaW5nLgotICAgICAgICB2
aXJ0dWFsIHZvaWQgd29ya2VyR2xvYmFsU2NvcGVDbG9zZWQoKSBPVkVSUklERSB7IH0KKyAgICAg
ICAgdmlydHVhbCB2b2lkIHdvcmtlckdsb2JhbFNjb3BlQ2xvc2VkKCkgb3ZlcnJpZGUgeyB9CiAg
ICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyU2NyaXB0TG9hZGVyLmgKaW5kZXggOTE0OTVlMS4uN2I4MDUxYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5oCkBAIC02NSwxMSArNjUsMTEgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGZhaWxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fZmFpbGVkOyB9CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1faWRlbnRpZmllcjsgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
UmVzcG9uc2UodW5zaWduZWQgbG9uZyAvKmlkZW50aWZpZXIqLywgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpIE9WRVJSSURFOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29u
c3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgpIE9WRVJSSURFOwotICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSkg
T1ZFUlJJREU7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJy
b3ImKSBPVkVSUklERTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWxSZWRpcmVjdENoZWNr
KCkgT1ZFUlJJREU7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5z
aWduZWQgbG9uZyAvKmlkZW50aWZpZXIqLywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJy
aWRlOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0
YSwgaW50IGRhdGFMZW5ndGgpIG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmlu
aXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSkgb3ZlcnJpZGU7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlk
ZTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWxSZWRpcmVjdENoZWNrKCkgb3ZlcnJpZGU7
CiAKICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgV1RGOjpSZWZDb3VudGVkPFdv
cmtlclNjcmlwdExvYWRlcj47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAK
aW5kZXggODA0YmUxNS4uN2I0ODk1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhy
ZWFkLmNwcApAQCAtMjg1LDcgKzI4NSw3IEBAIHZvaWQgV29ya2VyVGhyZWFkOjpzdG9wKCkKIH0K
IAogY2xhc3MgUmVsZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5VGFzayA6IHB1YmxpYyBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpUYXNrIHsKLSAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRhc2soU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCopIE9WRVJSSURFIHsgV1RGOjpyZWxlYXNlRmFzdE1hbGxvY0Zy
ZWVNZW1vcnkoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRp
b25Db250ZXh0Kikgb3ZlcnJpZGUgeyBXVEY6OnJlbGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeSgp
OyB9CiB9OwogCiB2b2lkIFdvcmtlclRocmVhZDo6cmVsZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5
SW5BbGxUaHJlYWRzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKaW5kZXggOTMyNWFk
Ny4uZTNmZTIwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKQEAgLTgxLDggKzgx
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRUaW1lb3V0KCk7CiAjZW5kaWYKIAot
ICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiBYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0SW50ZXJmYWNl
VHlwZTsgfQotICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisgICAgdmlydHVhbCBFdmVudFRhcmdldEludGVyZmFj
ZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFhNTEh0dHBS
ZXF1ZXN0RXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgdmlydHVhbCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAogICAg
IGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0KICAgICBTdHJpbmcgc3Rh
dHVzVGV4dChFeGNlcHRpb25Db2RlJikgY29uc3Q7CkBAIC0xNjAsMTQgKzE2MCwxNCBAQCBwcml2
YXRlOgogICAgIGV4cGxpY2l0IFhNTEh0dHBSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
KTsKIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVz
dHJveWVkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNhblN1c3BlbmQoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHN0b3AoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3ll
ZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5kKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHJlc3VtZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzdG9wKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBP
VkVSUklERSB7IHJlZigpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBP
VkVSUklERSB7IGRlcmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBv
dmVycmlkZSB7IHJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBv
dmVycmlkZSB7IGRlcmVmKCk7IH0KIAogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0Owog
ICAgIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpIGNvbnN0OwpAQCAtMTc2LDEyICsx
NzYsMTIgQEAgcHJpdmF0ZToKICAgICBib29sIHVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGli
aWxpdHlNb2RlKCkgY29uc3Q7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRTZW5kRGF0
YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxC
eXRlc1RvQmVTZW50KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3Bv
bnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRh
LCBpbnQgZGF0YUxlbmd0aCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExv
YWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBkb3VibGUgZmluaXNoVGltZSkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsUmVkaXJlY3RDaGVjaygpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50
LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBkb3VibGUgZmluaXNoVGltZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwo
Y29uc3QgUmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRGYWls
UmVkaXJlY3RDaGVjaygpIG92ZXJyaWRlOwogCiAgICAgU3RyaW5nIHJlc3BvbnNlTUlNRVR5cGUo
KSBjb25zdDsKICAgICBib29sIHJlc3BvbnNlSXNYTUwoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFVwbG9hZC5oIGIvU291cmNlL1dlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0VXBsb2FkLmgKaW5kZXggMzNkNzZhNi4uNzVmNWVhZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0VXBsb2FkLmgKKysrIGIvU291
cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0VXBsb2FkLmgKQEAgLTQ1LDggKzQ1LDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGRlcmVmKCkgeyBtX3htbEh0dHBSZXF1
ZXN0LT5kZXJlZigpOyB9CiAgICAgICAgIFhNTEh0dHBSZXF1ZXN0KiB4bWxIdHRwUmVxdWVzdCgp
IGNvbnN0IHsgcmV0dXJuIG1feG1sSHR0cFJlcXVlc3Q7IH0KIAotICAgICAgICB2aXJ0dWFsIEV2
ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gWE1MSHR0cFJlcXVlc3RVcGxvYWRFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0K
LSAgICAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV94bWxIdHRwUmVxdWVzdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpOyB9CisgICAgICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZh
Y2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBYTUxIdHRw
UmVxdWVzdFVwbG9hZEV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAgICAgICB2aXJ0dWFs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX3htbEh0dHBSZXF1ZXN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCk7IH0KIAogICAgICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGFib3J0KTsK
ICAgICAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihlcnJvcik7CkBAIC01OSw4
ICs1OSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBkaXNwYXRjaFByb2dy
ZXNzRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nICZ0eXBlKTsKIAogICAgIHByaXZhdGU6Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIE9WRVJSSURFIEZJTkFMIHsgcmVmKCk7
IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBPVkVSUklERSBGSU5B
TCB7IGRlcmVmKCk7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3Zl
cnJpZGUgRklOQUwgeyByZWYoKTsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRh
cmdldCgpIG92ZXJyaWRlIEZJTkFMIHsgZGVyZWYoKTsgfQogCiAgICAgICAgIFhNTEh0dHBSZXF1
ZXN0KiBtX3htbEh0dHBSZXF1ZXN0OwogICAgICAgICBib29sIG1fbGVuZ3RoQ29tcHV0YWJsZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwCmluZGV4IDM3YTI3NmYuLjM1ZjY3ZDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUveG1sL1hQYXRoRnVuY3Rpb25zLmNwcApAQCAtNjMsMTU4ICs2MywxNTgg
QEAgcHJpdmF0ZToKIH07CiAKIGNsYXNzIEZ1bkxhc3QgRklOQUwgOiBwdWJsaWMgRnVuY3Rpb24g
ewotICAgIHZpcnR1YWwgVmFsdWUgZXZhbHVhdGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIFZhbHVlOjpUeXBlIHJlc3VsdFR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBWYWx1
ZTo6TnVtYmVyVmFsdWU7IH0KKyAgICB2aXJ0dWFsIFZhbHVlIGV2YWx1YXRlKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBWYWx1ZTo6VHlwZSByZXN1bHRUeXBlKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gVmFsdWU6Ok51bWJlclZhbHVlOyB9CiBwdWJsaWM6CiAgICAgRnVuTGFzdCgp
IHsgc2V0SXNDb250ZXh0U2l6ZVNlbnNpdGl2ZSh0cnVlKTsgfQogfTsKIAogY2xhc3MgRnVuUG9z
aXRpb24gRklOQUwgOiBwdWJsaWMgRnVuY3Rpb24gewotICAgIHZpcnR1YWwgVmFsdWUgZXZhbHVh
dGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFZhbHVlOjpUeXBlIHJlc3VsdFR5cGUo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBWYWx1ZTo6TnVtYmVyVmFsdWU7IH0KKyAgICB2aXJ0
dWFsIFZhbHVlIGV2YWx1YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBWYWx1ZTo6
VHlwZSByZXN1bHRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gVmFsdWU6Ok51bWJlclZh
bHVlOyB9CiBwdWJsaWM6CiAgICAgRnVuUG9zaXRpb24oKSB7IHNldElzQ29udGV4dFBvc2l0aW9u
U2Vuc2l0aXZlKHRydWUpOyB9CiB9OwogCiBjbGFzcyBGdW5Db3VudCBGSU5BTCA6IHB1YmxpYyBG
dW5jdGlvbiB7Ci0gICAgdmlydHVhbCBWYWx1ZSBldmFsdWF0ZSgpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgVmFsdWU6OlR5cGUgcmVzdWx0VHlwZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIFZhbHVlOjpOdW1iZXJWYWx1ZTsgfQorICAgIHZpcnR1YWwgVmFsdWUgZXZhbHVhdGUoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFZhbHVlOjpUeXBlIHJlc3VsdFR5cGUoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBWYWx1ZTo6TnVtYmVyVmFsdWU7IH0KIH07CiAKIGNsYXNzIEZ1
bklkIEZJTkFMIDogcHVibGljIEZ1bmN0aW9uIHsKLSAgICB2aXJ0dWFsIFZhbHVlIGV2YWx1YXRl
KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBWYWx1ZTo6VHlwZSByZXN1bHRUeXBlKCkg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gVmFsdWU6Ok5vZGVTZXRWYWx1ZTsgfQorICAgIHZpcnR1
YWwgVmFsdWUgZXZhbHVhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFZhbHVlOjpU
eXBlIHJlc3VsdFR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBWYWx1ZTo6Tm9kZVNldFZh
bHVlOyB9CiB9OwogCiBjbGFzcyBGdW5Mb2NhbE5hbWUgRklOQUwgOiBwdWJsaWMgRnVuY3Rpb24g
ewotICAgIHZpcnR1YWwgVmFsdWUgZXZhbHVhdGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIFZhbHVlOjpUeXBlIHJlc3VsdFR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBWYWx1
ZTo6U3RyaW5nVmFsdWU7IH0KKyAgICB2aXJ0dWFsIFZhbHVlIGV2YWx1YXRlKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBWYWx1ZTo6VHlwZSByZXN1bHRUeXBlKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gVmFsdWU6OlN0cmluZ1ZhbHVlOyB9CiBwdWJsaWM6CiAgICAgRnVuTG9jYWxO
YW1lKCkgeyBzZXRJc0NvbnRleHROb2RlU2Vuc2l0aXZlKHRydWUpOyB9IC8vIGxvY2FsLW5hbWUo
KSB3aXRoIG5vIGFyZ3VtZW50cyB1c2VzIGNvbnRleHQgbm9kZS4gCiB9OwogCiBjbGFzcyBGdW5O
YW1lc3BhY2VVUkkgRklOQUwgOiBwdWJsaWMgRnVuY3Rpb24gewotICAgIHZpcnR1YWwgVmFsdWUg
ZXZhbHVhdGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFZhbHVlOjpUeXBlIHJlc3Vs
dFR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBWYWx1ZTo6U3RyaW5nVmFsdWU7IH0KKyAg
ICB2aXJ0dWFsIFZhbHVlIGV2YWx1YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBW
YWx1ZTo6VHlwZSByZXN1bHRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gVmFsdWU6OlN0
cmluZ1ZhbHVlOyB9CiBwdWJsaWM6CiAgICAgRnVuTmFtZXNwYWNlVVJJKCkgeyBzZXRJc0NvbnRl
eHROb2RlU2Vuc2l0aXZlKHRydWUpOyB9IC8vIG5hbWVzcGFjZS11cmkoKSB3aXRoIG5vIGFyZ3Vt
ZW50cyB1c2VzIGNvbnRleHQgbm9kZS4gCiB9OwogCiBjbGFzcyBGdW5OYW1lIEZJTkFMIDogcHVi
bGljIEZ1bmN0aW9uIHsKLSAgICB2aXJ0dWFsIFZhbHVlIGV2YWx1YXRlKCkgY29uc3QgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBWYWx1ZTo6VHlwZSByZXN1bHRUeXBlKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gVmFsdWU6OlN0cmluZ1ZhbHVlOyB9CisgICAgdmlydHVhbCBWYWx1ZSBldmFsdWF0
ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgVmFsdWU6OlR5cGUgcmVzdWx0VHlwZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFZhbHVlOjpTdHJpbmdWYWx1ZTsgfQogcHVibGljOgog
ICAgIEZ1bk5hbWUoKSB7IHNldElzQ29udGV4dE5vZGVTZW5zaXRpdmUodHJ1ZSk7IH0gLy8gbmFt
ZSgpIHdpdGggbm8gYXJndW1lbnRzIHVzZXMgY29udGV4dCBub2RlLiAKIH07CiAKIGNsYXNzIEZ1
blN0cmluZyBGSU5BTCA6IHB1YmxpYyBGdW5jdGlvbiB7Ci0gICAgdmlydHVhbCBWYWx1ZSBldmFs
dWF0ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgVmFsdWU6OlR5cGUgcmVzdWx0VHlw
ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFZhbHVlOjpTdHJpbmdWYWx1ZTsgfQorICAgIHZp
cnR1YWwgVmFsdWUgZXZhbHVhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFZhbHVl
OjpUeXBlIHJlc3VsdFR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBWYWx1ZTo6U3RyaW5n
VmFsdWU7IH0KIHB1YmxpYzoKICAgICBGdW5TdHJpbmcoKSB7IHNldElzQ29udGV4dE5vZGVTZW5z
aXRpdmUodHJ1ZSk7IH0gLy8gc3RyaW5nKCkgd2l0aCBubyBhcmd1bWVudHMgdXNlcyBjb250ZXh0
IG5vZGUuIAogfTsKIAogY2xhc3MgRnVuQ29uY2F0IEZJTkFMIDogcHVibGljIEZ1bmN0aW9uIHsK
LSAgICB2aXJ0dWFsIFZhbHVlIGV2YWx1YXRlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBWYWx1ZTo6VHlwZSByZXN1bHRUeXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gVmFsdWU6
OlN0cmluZ1ZhbHVlOyB9CisgICAgdmlydHVhbCBWYWx1ZSBldmFsdWF0ZSgpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgVmFsdWU6OlR5cGUgcmVzdWx0VHlwZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIFZhbHVlOjpTdHJpbmdWYWx1ZTsgfQogfTsKIAogY2xhc3MgRnVuU3RhcnRzV2l0
aCBGSU5BTCA6IHB1YmxpYyBGdW5jdGlvbiB7Ci0gICAgdmlydHVhbCBWYWx1ZSBldmFsdWF0ZSgp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgVmFsdWU6OlR5cGUgcmVzdWx0VHlwZSgpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIFZhbHVlOjpCb29sZWFuVmFsdWU7IH0KKyAgICB2aXJ0dWFs
IFZhbHVlIGV2YWx1YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBWYWx1ZTo6VHlw
ZSByZXN1bHRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gVmFsdWU6OkJvb2xlYW5WYWx1
ZTsgfQogfTsKIAogY2xhc3MgRnVuQ29udGFpbnMgRklOQUwgOiBwdWJsaWMgRnVuY3Rpb24gewot
ICAgIHZpcnR1YWwgVmFsdWUgZXZhbHVhdGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IFZhbHVlOjpUeXBlIHJlc3VsdFR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBWYWx1ZTo6
Qm9vbGVhblZhbHVlOyB9CisgICAgdmlydHVhbCBWYWx1ZSBldmFsdWF0ZSgpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgVmFsdWU6OlR5cGUgcmVzdWx0VHlwZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIFZhbHVlOjpCb29sZWFuVmFsdWU7IH0KIH07CiAKIGNsYXNzIEZ1blN1YnN0cmlu
Z0JlZm9yZSBGSU5BTCA6IHB1YmxpYyBGdW5jdGlvbiB7Ci0gICAgdmlydHVhbCBWYWx1ZSBldmFs
dWF0ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgVmFsdWU6OlR5cGUgcmVzdWx0VHlw
ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFZhbHVlOjpTdHJpbmdWYWx1ZTsgfQorICAgIHZp
cnR1YWwgVmFsdWUgZXZhbHVhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFZhbHVl
OjpUeXBlIHJlc3VsdFR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBWYWx1ZTo6U3RyaW5n
VmFsdWU7IH0KIH07CiAKIGNsYXNzIEZ1blN1YnN0cmluZ0FmdGVyIEZJTkFMIDogcHVibGljIEZ1
bmN0aW9uIHsKLSAgICB2aXJ0dWFsIFZhbHVlIGV2YWx1YXRlKCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBWYWx1ZTo6VHlwZSByZXN1bHRUeXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gVmFsdWU6OlN0cmluZ1ZhbHVlOyB9CisgICAgdmlydHVhbCBWYWx1ZSBldmFsdWF0ZSgpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgVmFsdWU6OlR5cGUgcmVzdWx0VHlwZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIFZhbHVlOjpTdHJpbmdWYWx1ZTsgfQogfTsKIAogY2xhc3MgRnVu
U3Vic3RyaW5nIEZJTkFMIDogcHVibGljIEZ1bmN0aW9uIHsKLSAgICB2aXJ0dWFsIFZhbHVlIGV2
YWx1YXRlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBWYWx1ZTo6VHlwZSByZXN1bHRU
eXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gVmFsdWU6OlN0cmluZ1ZhbHVlOyB9CisgICAg
dmlydHVhbCBWYWx1ZSBldmFsdWF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgVmFs
dWU6OlR5cGUgcmVzdWx0VHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFZhbHVlOjpTdHJp
bmdWYWx1ZTsgfQogfTsKIAogY2xhc3MgRnVuU3RyaW5nTGVuZ3RoIEZJTkFMIDogcHVibGljIEZ1
bmN0aW9uIHsKLSAgICB2aXJ0dWFsIFZhbHVlIGV2YWx1YXRlKCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBWYWx1ZTo6VHlwZSByZXN1bHRUeXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gVmFsdWU6Ok51bWJlclZhbHVlOyB9CisgICAgdmlydHVhbCBWYWx1ZSBldmFsdWF0ZSgpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgVmFsdWU6OlR5cGUgcmVzdWx0VHlwZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIFZhbHVlOjpOdW1iZXJWYWx1ZTsgfQogcHVibGljOgogICAgIEZ1
blN0cmluZ0xlbmd0aCgpIHsgc2V0SXNDb250ZXh0Tm9kZVNlbnNpdGl2ZSh0cnVlKTsgfSAvLyBz
dHJpbmctbGVuZ3RoKCkgd2l0aCBubyBhcmd1bWVudHMgdXNlcyBjb250ZXh0IG5vZGUuIAogfTsK
IAogY2xhc3MgRnVuTm9ybWFsaXplU3BhY2UgRklOQUwgOiBwdWJsaWMgRnVuY3Rpb24gewotICAg
IHZpcnR1YWwgVmFsdWUgZXZhbHVhdGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFZh
bHVlOjpUeXBlIHJlc3VsdFR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBWYWx1ZTo6U3Ry
aW5nVmFsdWU7IH0KKyAgICB2aXJ0dWFsIFZhbHVlIGV2YWx1YXRlKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBWYWx1ZTo6VHlwZSByZXN1bHRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gVmFsdWU6OlN0cmluZ1ZhbHVlOyB9CiBwdWJsaWM6CiAgICAgRnVuTm9ybWFsaXplU3Bh
Y2UoKSB7IHNldElzQ29udGV4dE5vZGVTZW5zaXRpdmUodHJ1ZSk7IH0gLy8gbm9ybWFsaXplLXNw
YWNlKCkgd2l0aCBubyBhcmd1bWVudHMgdXNlcyBjb250ZXh0IG5vZGUuIAogfTsKIAogY2xhc3Mg
RnVuVHJhbnNsYXRlIEZJTkFMIDogcHVibGljIEZ1bmN0aW9uIHsKLSAgICB2aXJ0dWFsIFZhbHVl
IGV2YWx1YXRlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBWYWx1ZTo6VHlwZSByZXN1
bHRUeXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gVmFsdWU6OlN0cmluZ1ZhbHVlOyB9Cisg
ICAgdmlydHVhbCBWYWx1ZSBldmFsdWF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
VmFsdWU6OlR5cGUgcmVzdWx0VHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFZhbHVlOjpT
dHJpbmdWYWx1ZTsgfQogfTsKIAogY2xhc3MgRnVuQm9vbGVhbiBGSU5BTCA6IHB1YmxpYyBGdW5j
dGlvbiB7Ci0gICAgdmlydHVhbCBWYWx1ZSBldmFsdWF0ZSgpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgVmFsdWU6OlR5cGUgcmVzdWx0VHlwZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IFZhbHVlOjpCb29sZWFuVmFsdWU7IH0KKyAgICB2aXJ0dWFsIFZhbHVlIGV2YWx1YXRlKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBWYWx1ZTo6VHlwZSByZXN1bHRUeXBlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gVmFsdWU6OkJvb2xlYW5WYWx1ZTsgfQogfTsKIAogY2xhc3MgRnVu
Tm90IDogcHVibGljIEZ1bmN0aW9uIHsKLSAgICB2aXJ0dWFsIFZhbHVlIGV2YWx1YXRlKCkgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBWYWx1ZTo6VHlwZSByZXN1bHRUeXBlKCkgY29uc3Qg
T1ZFUlJJREUgeyByZXR1cm4gVmFsdWU6OkJvb2xlYW5WYWx1ZTsgfQorICAgIHZpcnR1YWwgVmFs
dWUgZXZhbHVhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFZhbHVlOjpUeXBlIHJl
c3VsdFR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBWYWx1ZTo6Qm9vbGVhblZhbHVlOyB9
CiB9OwogCiBjbGFzcyBGdW5UcnVlIEZJTkFMIDogcHVibGljIEZ1bmN0aW9uIHsKLSAgICB2aXJ0
dWFsIFZhbHVlIGV2YWx1YXRlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBWYWx1ZTo6
VHlwZSByZXN1bHRUeXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gVmFsdWU6OkJvb2xlYW5W
YWx1ZTsgfQorICAgIHZpcnR1YWwgVmFsdWUgZXZhbHVhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIFZhbHVlOjpUeXBlIHJlc3VsdFR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBWYWx1ZTo6Qm9vbGVhblZhbHVlOyB9CiB9OwogCiBjbGFzcyBGdW5GYWxzZSBGSU5BTCA6IHB1
YmxpYyBGdW5jdGlvbiB7Ci0gICAgdmlydHVhbCBWYWx1ZSBldmFsdWF0ZSgpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgVmFsdWU6OlR5cGUgcmVzdWx0VHlwZSgpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIFZhbHVlOjpCb29sZWFuVmFsdWU7IH0KKyAgICB2aXJ0dWFsIFZhbHVlIGV2YWx1
YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBWYWx1ZTo6VHlwZSByZXN1bHRUeXBl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gVmFsdWU6OkJvb2xlYW5WYWx1ZTsgfQogfTsKIAog
Y2xhc3MgRnVuTGFuZyBGSU5BTCA6IHB1YmxpYyBGdW5jdGlvbiB7Ci0gICAgdmlydHVhbCBWYWx1
ZSBldmFsdWF0ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgVmFsdWU6OlR5cGUgcmVz
dWx0VHlwZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFZhbHVlOjpCb29sZWFuVmFsdWU7IH0K
KyAgICB2aXJ0dWFsIFZhbHVlIGV2YWx1YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBWYWx1ZTo6VHlwZSByZXN1bHRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gVmFsdWU6
OkJvb2xlYW5WYWx1ZTsgfQogcHVibGljOgogICAgIEZ1bkxhbmcoKSB7IHNldElzQ29udGV4dE5v
ZGVTZW5zaXRpdmUodHJ1ZSk7IH0gLy8gbGFuZygpIGFsd2F5cyB3b3JrcyBvbiBjb250ZXh0IG5v
ZGUuIAogfTsKIAogY2xhc3MgRnVuTnVtYmVyIEZJTkFMIDogcHVibGljIEZ1bmN0aW9uIHsKLSAg
ICB2aXJ0dWFsIFZhbHVlIGV2YWx1YXRlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBW
YWx1ZTo6VHlwZSByZXN1bHRUeXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gVmFsdWU6Ok51
bWJlclZhbHVlOyB9CisgICAgdmlydHVhbCBWYWx1ZSBldmFsdWF0ZSgpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgVmFsdWU6OlR5cGUgcmVzdWx0VHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIFZhbHVlOjpOdW1iZXJWYWx1ZTsgfQogcHVibGljOgogICAgIEZ1bk51bWJlcigpIHsg
c2V0SXNDb250ZXh0Tm9kZVNlbnNpdGl2ZSh0cnVlKTsgfSAvLyBudW1iZXIoKSB3aXRoIG5vIGFy
Z3VtZW50cyB1c2VzIGNvbnRleHQgbm9kZS4gCiB9OwogCiBjbGFzcyBGdW5TdW0gRklOQUwgOiBw
dWJsaWMgRnVuY3Rpb24gewotICAgIHZpcnR1YWwgVmFsdWUgZXZhbHVhdGUoKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIFZhbHVlOjpUeXBlIHJlc3VsdFR5cGUoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBWYWx1ZTo6TnVtYmVyVmFsdWU7IH0KKyAgICB2aXJ0dWFsIFZhbHVlIGV2YWx1
YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBWYWx1ZTo6VHlwZSByZXN1bHRUeXBl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gVmFsdWU6Ok51bWJlclZhbHVlOyB9CiB9OwogCiBj
bGFzcyBGdW5GbG9vciBGSU5BTCA6IHB1YmxpYyBGdW5jdGlvbiB7Ci0gICAgdmlydHVhbCBWYWx1
ZSBldmFsdWF0ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgVmFsdWU6OlR5cGUgcmVz
dWx0VHlwZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFZhbHVlOjpOdW1iZXJWYWx1ZTsgfQor
ICAgIHZpcnR1YWwgVmFsdWUgZXZhbHVhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IFZhbHVlOjpUeXBlIHJlc3VsdFR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBWYWx1ZTo6
TnVtYmVyVmFsdWU7IH0KIH07CiAKIGNsYXNzIEZ1bkNlaWxpbmcgRklOQUwgOiBwdWJsaWMgRnVu
Y3Rpb24gewotICAgIHZpcnR1YWwgVmFsdWUgZXZhbHVhdGUoKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIFZhbHVlOjpUeXBlIHJlc3VsdFR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biBWYWx1ZTo6TnVtYmVyVmFsdWU7IH0KKyAgICB2aXJ0dWFsIFZhbHVlIGV2YWx1YXRlKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBWYWx1ZTo6VHlwZSByZXN1bHRUeXBlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gVmFsdWU6Ok51bWJlclZhbHVlOyB9CiB9OwogCiBjbGFzcyBGdW5S
b3VuZCBGSU5BTCA6IHB1YmxpYyBGdW5jdGlvbiB7Ci0gICAgdmlydHVhbCBWYWx1ZSBldmFsdWF0
ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgVmFsdWU6OlR5cGUgcmVzdWx0VHlwZSgp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFZhbHVlOjpOdW1iZXJWYWx1ZTsgfQorICAgIHZpcnR1
YWwgVmFsdWUgZXZhbHVhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFZhbHVlOjpU
eXBlIHJlc3VsdFR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBWYWx1ZTo6TnVtYmVyVmFs
dWU7IH0KIHB1YmxpYzoKICAgICBzdGF0aWMgZG91YmxlIHJvdW5kKGRvdWJsZSk7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUGF0aC5oIGIvU291cmNlL1dlYkNvcmUv
eG1sL1hQYXRoUGF0aC5oCmluZGV4IDE0ZTg4MTI4Li40MWNmZmU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWFBhdGhQYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRo
UGF0aC5oCkBAIC00MCw4ICs0MCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAg
IEZpbHRlcihzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4sIFZlY3RvcjxzdGQ6OnVuaXF1ZV9w
dHI8RXhwcmVzc2lvbj4+IHByZWRpY2F0ZXMpOwogCiAgICAgICAgIHByaXZhdGU6Ci0gICAgICAg
ICAgICB2aXJ0dWFsIFZhbHVlIGV2YWx1YXRlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgICAgICAg
ICB2aXJ0dWFsIFZhbHVlOjpUeXBlIHJlc3VsdFR5cGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biBWYWx1ZTo6Tm9kZVNldFZhbHVlOyB9CisgICAgICAgICAgICB2aXJ0dWFsIFZhbHVlIGV2YWx1
YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgICAgICAgICB2aXJ0dWFsIFZhbHVlOjpUeXBlIHJl
c3VsdFR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBWYWx1ZTo6Tm9kZVNldFZhbHVlOyB9
CiAKICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxFeHByZXNzaW9uPiBtX2V4cHJlc3Npb247
CiAgICAgICAgICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+PiBtX3ByZWRp
Y2F0ZXM7CkBAIC01OSw4ICs1OSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAg
IHZvaWQgcHJlcGVuZFN0ZXAoc3RkOjp1bmlxdWVfcHRyPFN0ZXA+KTsKIAogICAgICAgICBwcml2
YXRlOgotICAgICAgICAgICAgdmlydHVhbCBWYWx1ZSBldmFsdWF0ZSgpIGNvbnN0IE9WRVJSSURF
OwotICAgICAgICAgICAgdmlydHVhbCBWYWx1ZTo6VHlwZSByZXN1bHRUeXBlKCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gVmFsdWU6Ok5vZGVTZXRWYWx1ZTsgfQorICAgICAgICAgICAgdmlydHVh
bCBWYWx1ZSBldmFsdWF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgICAgICAgICAgdmlydHVhbCBW
YWx1ZTo6VHlwZSByZXN1bHRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gVmFsdWU6Ok5v
ZGVTZXRWYWx1ZTsgfQogCiAgICAgICAgICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFN0ZXA+
PiBtX3N0ZXBzOwogICAgICAgICAgICAgYm9vbCBtX2lzQWJzb2x1dGU7CkBAIC03MSw4ICs3MSw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIFBhdGgoc3RkOjp1bmlxdWVfcHRy
PEV4cHJlc3Npb24+IGZpbHRlciwgc3RkOjp1bmlxdWVfcHRyPExvY2F0aW9uUGF0aD4pOwogCiAg
ICAgICAgIHByaXZhdGU6Ci0gICAgICAgICAgICB2aXJ0dWFsIFZhbHVlIGV2YWx1YXRlKCkgY29u
c3QgT1ZFUlJJREU7Ci0gICAgICAgICAgICB2aXJ0dWFsIFZhbHVlOjpUeXBlIHJlc3VsdFR5cGUo
KSBjb25zdCBPVkVSUklERSB7IHJldHVybiBWYWx1ZTo6Tm9kZVNldFZhbHVlOyB9CisgICAgICAg
ICAgICB2aXJ0dWFsIFZhbHVlIGV2YWx1YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgICAgICAg
ICB2aXJ0dWFsIFZhbHVlOjpUeXBlIHJlc3VsdFR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBWYWx1ZTo6Tm9kZVNldFZhbHVlOyB9CiAKICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxF
eHByZXNzaW9uPiBtX2ZpbHRlcjsKICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxMb2NhdGlv
blBhdGg+IG1fcGF0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFByZWRp
Y2F0ZS5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUHJlZGljYXRlLmgKaW5kZXggNDU3Mzk5
MS4uODU4ZTU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUHJlZGljYXRl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoUHJlZGljYXRlLmgKQEAgLTM4LDggKzM4
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgZXhwbGljaXQgTnVtYmVyKGRv
dWJsZSk7CiAKICAgICAgICAgcHJpdmF0ZToKLSAgICAgICAgICAgIHZpcnR1YWwgVmFsdWUgZXZh
bHVhdGUoKSBjb25zdCBPVkVSUklERTsKLSAgICAgICAgICAgIHZpcnR1YWwgVmFsdWU6OlR5cGUg
cmVzdWx0VHlwZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFZhbHVlOjpOdW1iZXJWYWx1ZTsg
fQorICAgICAgICAgICAgdmlydHVhbCBWYWx1ZSBldmFsdWF0ZSgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgICAgICAgICAgdmlydHVhbCBWYWx1ZTo6VHlwZSByZXN1bHRUeXBlKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gVmFsdWU6Ok51bWJlclZhbHVlOyB9CiAKICAgICAgICAgICAgIFZhbHVlIG1f
dmFsdWU7CiAgICAgICAgIH07CkBAIC00OSw4ICs0OSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgICAgIGV4cGxpY2l0IFN0cmluZ0V4cHJlc3Npb24oU3RyaW5nJiYpOwogCiAgICAg
ICAgIHByaXZhdGU6Ci0gICAgICAgICAgICB2aXJ0dWFsIFZhbHVlIGV2YWx1YXRlKCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgICAgICAgICB2aXJ0dWFsIFZhbHVlOjpUeXBlIHJlc3VsdFR5cGUoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiBWYWx1ZTo6U3RyaW5nVmFsdWU7IH0KKyAgICAgICAgICAg
IHZpcnR1YWwgVmFsdWUgZXZhbHVhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICAgICAgICAgIHZp
cnR1YWwgVmFsdWU6OlR5cGUgcmVzdWx0VHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFZh
bHVlOjpTdHJpbmdWYWx1ZTsgfQogCiAgICAgICAgICAgICBWYWx1ZSBtX3ZhbHVlOwogICAgICAg
ICB9OwpAQCAtNjAsOCArNjAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBl
eHBsaWNpdCBOZWdhdGl2ZShzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4pOwogCiAgICAgICAg
IHByaXZhdGU6Ci0gICAgICAgICAgICB2aXJ0dWFsIFZhbHVlIGV2YWx1YXRlKCkgY29uc3QgT1ZF
UlJJREU7Ci0gICAgICAgICAgICB2aXJ0dWFsIFZhbHVlOjpUeXBlIHJlc3VsdFR5cGUoKSBjb25z
dCBPVkVSUklERSB7IHJldHVybiBWYWx1ZTo6TnVtYmVyVmFsdWU7IH0KKyAgICAgICAgICAgIHZp
cnR1YWwgVmFsdWUgZXZhbHVhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICAgICAgICAgIHZpcnR1
YWwgVmFsdWU6OlR5cGUgcmVzdWx0VHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFZhbHVl
OjpOdW1iZXJWYWx1ZTsgfQogICAgICAgICB9OwogCiAgICAgICAgIGNsYXNzIE51bWVyaWNPcCBG
SU5BTCA6IHB1YmxpYyBFeHByZXNzaW9uIHsKQEAgLTcwLDggKzcwLDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICAgICAgTnVtZXJpY09wKE9wY29kZSwgc3RkOjp1bmlxdWVfcHRyPEV4
cHJlc3Npb24+IGxocywgc3RkOjp1bmlxdWVfcHRyPEV4cHJlc3Npb24+IHJocyk7CiAKICAgICAg
ICAgcHJpdmF0ZToKLSAgICAgICAgICAgIHZpcnR1YWwgVmFsdWUgZXZhbHVhdGUoKSBjb25zdCBP
VkVSUklERTsKLSAgICAgICAgICAgIHZpcnR1YWwgVmFsdWU6OlR5cGUgcmVzdWx0VHlwZSgpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIFZhbHVlOjpOdW1iZXJWYWx1ZTsgfQorICAgICAgICAgICAg
dmlydHVhbCBWYWx1ZSBldmFsdWF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgICAgICAgICAgdmly
dHVhbCBWYWx1ZTo6VHlwZSByZXN1bHRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gVmFs
dWU6Ok51bWJlclZhbHVlOyB9CiAKICAgICAgICAgICAgIE9wY29kZSBtX29wY29kZTsKICAgICAg
ICAgfTsKQEAgLTgwLDEwICs4MCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHB1
YmxpYzoKICAgICAgICAgICAgIGVudW0gT3Bjb2RlIHsgT1BfRVEsIE9QX05FLCBPUF9HVCwgT1Bf
TFQsIE9QX0dFLCBPUF9MRSB9OwogICAgICAgICAgICAgRXFUZXN0T3AoT3Bjb2RlLCBzdGQ6OnVu
aXF1ZV9wdHI8RXhwcmVzc2lvbj4gbGhzLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4gcmhz
KTsKLSAgICAgICAgICAgIHZpcnR1YWwgVmFsdWUgZXZhbHVhdGUoKSBjb25zdCBPVkVSUklERTsK
KyAgICAgICAgICAgIHZpcnR1YWwgVmFsdWUgZXZhbHVhdGUoKSBjb25zdCBvdmVycmlkZTsKIAog
ICAgICAgICBwcml2YXRlOgotICAgICAgICAgICAgdmlydHVhbCBWYWx1ZTo6VHlwZSByZXN1bHRU
eXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gVmFsdWU6OkJvb2xlYW5WYWx1ZTsgfQorICAg
ICAgICAgICAgdmlydHVhbCBWYWx1ZTo6VHlwZSByZXN1bHRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gVmFsdWU6OkJvb2xlYW5WYWx1ZTsgfQogICAgICAgICAgICAgYm9vbCBjb21wYXJl
KGNvbnN0IFZhbHVlJiwgY29uc3QgVmFsdWUmKSBjb25zdDsKIAogICAgICAgICAgICAgT3Bjb2Rl
IG1fb3Bjb2RlOwpAQCAtOTUsOSArOTUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
ICAgICBMb2dpY2FsT3AoT3Bjb2RlLCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4gbGhzLCBz
dGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4gcmhzKTsKIAogICAgICAgICBwcml2YXRlOgotICAg
ICAgICAgICAgdmlydHVhbCBWYWx1ZTo6VHlwZSByZXN1bHRUeXBlKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gVmFsdWU6OkJvb2xlYW5WYWx1ZTsgfQorICAgICAgICAgICAgdmlydHVhbCBWYWx1
ZTo6VHlwZSByZXN1bHRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gVmFsdWU6OkJvb2xl
YW5WYWx1ZTsgfQogICAgICAgICAgICAgYm9vbCBzaG9ydENpcmN1aXRPbigpIGNvbnN0OwotICAg
ICAgICAgICAgdmlydHVhbCBWYWx1ZSBldmFsdWF0ZSgpIGNvbnN0IE9WRVJSSURFOworICAgICAg
ICAgICAgdmlydHVhbCBWYWx1ZSBldmFsdWF0ZSgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgICAg
ICAgICBPcGNvZGUgbV9vcGNvZGU7CiAgICAgICAgIH07CkBAIC0xMDcsOCArMTA3LDggQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgVW5pb24oc3RkOjp1bmlxdWVfcHRyPEV4cHJl
c3Npb24+LCBzdGQ6OnVuaXF1ZV9wdHI8RXhwcmVzc2lvbj4pOwogCiAgICAgICAgIHByaXZhdGU6
Ci0gICAgICAgICAgICB2aXJ0dWFsIFZhbHVlIGV2YWx1YXRlKCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgICAgICAgICB2aXJ0dWFsIFZhbHVlOjpUeXBlIHJlc3VsdFR5cGUoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBWYWx1ZTo6Tm9kZVNldFZhbHVlOyB9CisgICAgICAgICAgICB2aXJ0dWFsIFZh
bHVlIGV2YWx1YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgICAgICAgICB2aXJ0dWFsIFZhbHVl
OjpUeXBlIHJlc3VsdFR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBWYWx1ZTo6Tm9kZVNl
dFZhbHVlOyB9CiAgICAgICAgIH07CiAKICAgICAgICAgYm9vbCBldmFsdWF0ZVByZWRpY2F0ZShj
b25zdCBFeHByZXNzaW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5
bGVTaGVldC5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXQuaAppbmRleCAxMWY0
OWIzLi40MWJkMDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVl
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0LmgKQEAgLTc0LDcgKzc0
LDcgQEAgcHVibGljOgogICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJjZUxv
YWRlcigpOwogCiAgICAgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQoKTsKLSAgICB2aXJ0dWFsIFhT
TFN0eWxlU2hlZXQqIHBhcmVudFN0eWxlU2hlZXQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBt
X3BhcmVudFN0eWxlU2hlZXQ7IH0KKyAgICB2aXJ0dWFsIFhTTFN0eWxlU2hlZXQqIHBhcmVudFN0
eWxlU2hlZXQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3BhcmVudFN0eWxlU2hlZXQ7IH0K
ICAgICB2b2lkIHNldFBhcmVudFN0eWxlU2hlZXQoWFNMU3R5bGVTaGVldCogcGFyZW50KTsKIAog
ICAgIHhtbERvY1B0ciBkb2N1bWVudCgpOwpAQCAtODYsMTggKzg2LDE4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIG1hcmtBc1Byb2Nlc3NlZCgpOwogICAgIGJvb2wgcHJvY2Vzc2VkKCkgY29uc3QgeyBy
ZXR1cm4gbV9wcm9jZXNzZWQ7IH0KICAgICAKLSAgICB2aXJ0dWFsIFN0cmluZyB0eXBlKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gInRleHQveG1sIjsgfQotICAgIHZpcnR1YWwgYm9vbCBkaXNh
YmxlZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1faXNEaXNhYmxlZDsgfQotICAgIHZpcnR1
YWwgdm9pZCBzZXREaXNhYmxlZChib29sIGIpIE9WRVJSSURFIHsgbV9pc0Rpc2FibGVkID0gYjsg
fQotICAgIHZpcnR1YWwgTm9kZSogb3duZXJOb2RlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
bV9vd25lck5vZGU7IH0KLSAgICB2aXJ0dWFsIFN0cmluZyBocmVmKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gbV9vcmlnaW5hbFVSTDsgfQotICAgIHZpcnR1YWwgU3RyaW5nIHRpdGxlKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQotCi0gICAgdmlydHVhbCB2b2lk
IGNsZWFyT3duZXJOb2RlKCkgT1ZFUlJJREUgeyBtX293bmVyTm9kZSA9IDA7IH0KLSAgICB2aXJ0
dWFsIFVSTCBiYXNlVVJMKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9maW5hbFVSTDsgfQot
ICAgIHZpcnR1YWwgYm9vbCBpc0xvYWRpbmcoKSBjb25zdCBPVkVSUklERTsKLQotICAgIHZpcnR1
YWwgYm9vbCBpc1hTTFN0eWxlU2hlZXQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9
CisgICAgdmlydHVhbCBTdHJpbmcgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJ0ZXh0
L3htbCI7IH0KKyAgICB2aXJ0dWFsIGJvb2wgZGlzYWJsZWQoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX2lzRGlzYWJsZWQ7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0RGlzYWJsZWQoYm9vbCBi
KSBvdmVycmlkZSB7IG1faXNEaXNhYmxlZCA9IGI7IH0KKyAgICB2aXJ0dWFsIE5vZGUqIG93bmVy
Tm9kZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fb3duZXJOb2RlOyB9CisgICAgdmlydHVh
bCBTdHJpbmcgaHJlZigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fb3JpZ2luYWxVUkw7IH0K
KyAgICB2aXJ0dWFsIFN0cmluZyB0aXRsZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGVtcHR5
U3RyaW5nKCk7IH0KKworICAgIHZpcnR1YWwgdm9pZCBjbGVhck93bmVyTm9kZSgpIG92ZXJyaWRl
IHsgbV9vd25lck5vZGUgPSAwOyB9CisgICAgdmlydHVhbCBVUkwgYmFzZVVSTCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fZmluYWxVUkw7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNMb2FkaW5n
KCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNYU0xTdHlsZVNoZWV0KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiBwcml2YXRlOgogICAgIFhTTFN0eWxl
U2hlZXQoTm9kZSogcGFyZW50Tm9kZSwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbFVSTCwgY29uc3Qg
VVJMJiBmaW5hbFVSTCwgYm9vbCBlbWJlZGRlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggYjE4ZTUx
NC4uODdlMTE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE0LTAxLTE2
ICBQZXRlciBNb2xuYXIgIDxwbW9sbmFyLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgUmVtb3ZlIHdvcmthcm91bmQgZm9yIGNvbXBpbGVycyBub3Qgc3VwcG9ydGluZyBl
eHBsaWNpdCBvdmVycmlkZSBjb250cm9sCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjcxMTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBOb3cgYWxsIGNvbXBpbGVycyBzdXBwb3J0IGV4cGxpY2l0IG92ZXJy
aWRlIGNvbnRyb2wsIHRoaXMgd29ya2Fyb3VuZCBjYW4gYmUgcmVtb3ZlZC4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5oOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1Byb2dyZXNzVHJhY2tlckNsaWVudEVmbC5oOgorCiAyMDE0LTAxLTE1ICBSeXVhbiBD
aG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzFdIEltcGxl
bWVudCBQcm9ncmVzc1RyYWNrZXJDbGllbnRFZmwgdG8gZml4IHRoZSBjcmFzaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmgg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuaApp
bmRleCA4NmJlODNiLi5mNjM0MGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRFZmwuaApAQCAtODUsNyArODUsNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQp
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0VG9vbGJhckhlaWdodCh1bnNpZ25lZCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHNldFRvb2xiYXJIZWlnaHQodW5zaWduZWQpIG92ZXJyaWRlOwogCiAgICAg
dm9pZCBkaXNjb25uZWN0SW5zcGVjdG9yQ2xpZW50KCkgeyBtX2luc3BlY3RvckNsaWVudCA9IDA7
IH0KICAgICB2b2lkIGRlc3Ryb3lJbnNwZWN0b3JXaW5kb3coYm9vbCBub3RpZnlJbnNwZWN0b3JD
b250cm9sbGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L1Byb2dyZXNzVHJhY2tlckNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvUHJvZ3Jlc3NUcmFja2VyQ2xpZW50RWZsLmgKaW5kZXggNmU3MTQyNi4uOGY1YThmYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvUHJvZ3Jlc3NUcmFj
a2VyQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvUHJv
Z3Jlc3NUcmFja2VyQ2xpZW50RWZsLmgKQEAgLTQxLDExICs0MSwxMSBAQCBwdWJsaWM6CiAgICAg
ZXhwbGljaXQgUHJvZ3Jlc3NUcmFja2VyQ2xpZW50RWZsKEV2YXNfT2JqZWN0Kik7CiAgICAgCiBw
cml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBwcm9ncmVzc1RyYWNrZXJEZXN0cm95ZWQoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvZ3Jlc3NUcmFja2VyRGVzdHJveWVkKCkgb3ZlcnJp
ZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcHJvZ3Jlc3NTdGFydGVkKFdlYkNvcmU6OkZyYW1lJiBv
cmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBwcm9n
cmVzc0VzdGltYXRlQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSYgb3JpZ2luYXRpbmdQcm9ncmVzc0Zy
YW1lKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcHJvZ3Jlc3NGaW5pc2hlZChXZWJDb3Jl
OjpGcmFtZSYgb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgcHJvZ3Jlc3NTdGFydGVkKFdlYkNvcmU6OkZyYW1lJiBvcmlnaW5hdGluZ1Byb2dyZXNz
RnJhbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwcm9ncmVzc0VzdGltYXRlQ2hhbmdl
ZChXZWJDb3JlOjpGcmFtZSYgb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcHJvZ3Jlc3NGaW5pc2hlZChXZWJDb3JlOjpGcmFtZSYgb3JpZ2luYXRp
bmdQcm9ncmVzc0ZyYW1lKSBvdmVycmlkZTsKIAogICAgIEV2YXNfT2JqZWN0KiBtX3ZpZXc7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9ndGsvQ2hhbmdlTG9nCmluZGV4IDRhMzNlZjQuLjBkZmZiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNiBAQAorMjAxNC0wMS0xNiAgUGV0ZXIgTW9sbmFyICA8cG1vbG5hci51LXN6
ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgorCisgICAgICAgIFJlbW92ZSB3b3JrYXJvdW5kIGZv
ciBjb21waWxlcnMgbm90IHN1cHBvcnRpbmcgZXhwbGljaXQgb3ZlcnJpZGUgY29udHJvbAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3MTExCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm93IGFsbCBjb21w
aWxlcnMgc3VwcG9ydCBleHBsaWNpdCBvdmVycmlkZSBjb250cm9sLCB0aGlzIHdvcmthcm91bmQg
Y2FuIGJlIHJlbW92ZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRH
dGsuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuaDoKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Qcm9ncmVzc1RyYWNrZXJDbGllbnRHdGsuaDoKKwogMjAx
NC0wMS0xNSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dUS11bV0sxXSBBZGQgUHJvZ3Jlc3NUcmFja2VyQ2xpZW50IGltcGxlbWVudGF0aW9uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsu
aCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCmlu
ZGV4IGJmNzdhZTEuLjVmNTFjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCkBAIC0xMzIsNyArMTMyLDcgQEAgY2xhc3MgRWRp
dG9yQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCB7CiAKICAgICAgICAgdmly
dHVhbCBib29sIHNob3VsZFNob3dVbmljb2RlTWVudSgpOwogCi0gICAgICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c0dsb2JhbFNlbGVjdGlvbigpIE9WRVJSSURFOworICAgICAgICB2aXJ0dWFsIGJv
b2wgc3VwcG9ydHNHbG9iYWxTZWxlY3Rpb24oKSBvdmVycmlkZTsKIAogICAgIHByaXZhdGU6CiAj
aWYgRU5BQkxFKFNQRUxMQ0hFQ0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5oCmluZGV4IGM1ZGFmZWUuLjcxNDFjZmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVu
dEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNs
aWVudEd0ay5oCkBAIC05Myw3ICs5Myw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBz
ZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEF0
dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sYmFy
SGVpZ2h0KHVuc2lnbmVkKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbGJhckhl
aWdodCh1bnNpZ25lZCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdGVkVVJM
Q2hhbmdlZChjb25zdCBXVEY6OlN0cmluZyYgbmV3VVJMKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvUHJvZ3Jlc3NUcmFja2VyQ2xpZW50R3RrLmggYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9Qcm9ncmVzc1RyYWNrZXJDbGllbnRHdGsu
aAppbmRleCBhZGEzZGQwLi45ZDc3ODk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9Qcm9ncmVzc1RyYWNrZXJDbGllbnRHdGsuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9Qcm9ncmVzc1RyYWNrZXJDbGllbnRHdGsuaApAQCAtMzAs
MTEgKzMwLDExIEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBQcm9ncmVzc1RyYWNrZXJDbGllbnQo
V2ViS2l0V2ViVmlldyopOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBwcm9ncmVzc1Ry
YWNrZXJEZXN0cm95ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvZ3Jlc3NUcmFj
a2VyRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcHJvZ3Jlc3NTdGFy
dGVkKFdlYkNvcmU6OkZyYW1lJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHByb2dyZXNz
RXN0aW1hdGVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHByb2dyZXNzRmluaXNoZWQoV2ViQ29yZTo6RnJhbWUmKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgcHJvZ3Jlc3NTdGFydGVkKFdlYkNvcmU6OkZyYW1lJikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lJikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHByb2dyZXNzRmluaXNoZWQoV2ViQ29yZTo6RnJhbWUm
KSBvdmVycmlkZTsKIAogICAgIFdlYktpdFdlYlZpZXcqIG1fd2ViVmlldzsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFu
Z2VMb2cKaW5kZXggYzg2MWYzMi4uNDM2NWNjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9p
b3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE5IEBACisyMDE0LTAxLTE2ICBQZXRlciBNb2xuYXIgIDxwbW9sbmFyLnUtc3plZ2VkQHBhcnRu
ZXIuc2Ftc3VuZy5jb20+CisKKyAgICAgICAgUmVtb3ZlIHdvcmthcm91bmQgZm9yIGNvbXBpbGVy
cyBub3Qgc3VwcG9ydGluZyBleHBsaWNpdCBvdmVycmlkZSBjb250cm9sCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjcxMTEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3cgYWxsIGNvbXBpbGVycyBzdXBw
b3J0IGV4cGxpY2l0IG92ZXJyaWRlIGNvbnRyb2wsIHRoaXMgd29ya2Fyb3VuZCBjYW4gYmUgcmVt
b3ZlZC4KKworICAgICAgICAqIE1pc2MvRW1vamlGYWxsYmFja0ZvbnRTZWxlY3Rvci5oOgorICAg
ICAgICAqIFN0b3JhZ2UvV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50Lmg6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51SU9TLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvU2VhcmNoUG9wdXBNZW51SU9TLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50SU9TLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRGlza0ltYWdlQ2Fj
aGVDbGllbnRJT1MuaDoKKwogMjAxNC0wMS0xNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBBdm9pZCBQTEFURk9STSgpIG1hY3JvcyBpbiBleHBvcnRl
ZCBoZWFkZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3MvTWlzYy9FbW9qaUZhbGxi
YWNrRm9udFNlbGVjdG9yLmggYi9Tb3VyY2UvV2ViS2l0L2lvcy9NaXNjL0Vtb2ppRmFsbGJhY2tG
b250U2VsZWN0b3IuaAppbmRleCBiODVjYzY5Li42MGEzY2E3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2lvcy9NaXNjL0Vtb2ppRmFsbGJhY2tGb250U2VsZWN0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2lvcy9NaXNjL0Vtb2ppRmFsbGJhY2tGb250U2VsZWN0b3IuaApAQCAtMzIsMTcgKzMy
LDE3IEBACiBjbGFzcyBFbW9qaUZhbGxiYWNrRm9udFNlbGVjdG9yIDogcHVibGljIFdlYkNvcmU6
OkZvbnRTZWxlY3RvciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RW1vamlGYWxs
YmFja0ZvbnRTZWxlY3Rvcj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IEVtb2ppRmFs
bGJhY2tGb250U2VsZWN0b3IoKSk7IH0KLSAgICB2aXJ0dWFsIH5FbW9qaUZhbGxiYWNrRm9udFNl
bGVjdG9yKCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZv
bnREYXRhPiBnZXRGb250RGF0YShjb25zdCBXZWJDb3JlOjpGb250RGVzY3JpcHRpb24mLCBjb25z
dCBBdG9taWNTdHJpbmcmIGZhbWlseU5hbWUpIE9WRVJSSURFIHsgQVNTRVJUX05PVF9SRUFDSEVE
KCk7IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCBib29sIHJlc29sdmVzRmFtaWx5Rm9yKGNvbnN0
IFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbiYpIGNvbnN0IE9WRVJSSURFIHsgQVNTRVJUX05PVF9S
RUFDSEVEKCk7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgc2l6ZV90IGZhbGxiYWNrRm9u
dERhdGFDb3VudCgpIE9WRVJSSURFIHsgcmV0dXJuIDE7IH07Ci0gICAgdmlydHVhbCBQYXNzUmVm
UHRyPFdlYkNvcmU6OkZvbnREYXRhPiBnZXRGYWxsYmFja0ZvbnREYXRhKGNvbnN0IFdlYkNvcmU6
OkZvbnREZXNjcmlwdGlvbiYsIHNpemVfdCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB+RW1vamlG
YWxsYmFja0ZvbnRTZWxlY3RvcigpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxXZWJDb3JlOjpGb250RGF0YT4gZ2V0Rm9udERhdGEoY29uc3QgV2ViQ29yZTo6Rm9udERlc2Ny
aXB0aW9uJiwgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHlOYW1lKSBvdmVycmlkZSB7IEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgYm9vbCByZXNvbHZlc0Zh
bWlseUZvcihjb25zdCBXZWJDb3JlOjpGb250RGVzY3JpcHRpb24mKSBjb25zdCBvdmVycmlkZSB7
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHNpemVf
dCBmYWxsYmFja0ZvbnREYXRhQ291bnQoKSBvdmVycmlkZSB7IHJldHVybiAxOyB9OworICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGb250RGF0YT4gZ2V0RmFsbGJhY2tGb250RGF0YShj
b25zdCBXZWJDb3JlOjpGb250RGVzY3JpcHRpb24mLCBzaXplX3QpIG92ZXJyaWRlOwogCi0gICAg
dmlydHVhbCB2b2lkIHJlZ2lzdGVyRm9ySW52YWxpZGF0aW9uQ2FsbGJhY2tzKFdlYkNvcmU6OkZv
bnRTZWxlY3RvckNsaWVudCopIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lz
dGVyRm9ySW52YWxpZGF0aW9uQ2FsbGJhY2tzKFdlYkNvcmU6OkZvbnRTZWxlY3RvckNsaWVudCop
IE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckZvckludmFsaWRhdGlvbkNh
bGxiYWNrcyhXZWJDb3JlOjpGb250U2VsZWN0b3JDbGllbnQqKSBvdmVycmlkZSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgdW5yZWdpc3RlckZvckludmFsaWRhdGlvbkNhbGxiYWNrcyhXZWJDb3JlOjpG
b250U2VsZWN0b3JDbGllbnQqKSBvdmVycmlkZSB7IH0KIAotICAgIHZpcnR1YWwgdW5zaWduZWQg
dmVyc2lvbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHVuc2ln
bmVkIHVuaXF1ZUlkKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwg
dW5zaWduZWQgdmVyc2lvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0
dWFsIHVuc2lnbmVkIHVuaXF1ZUlkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQogCiBw
cml2YXRlOgogICAgIEVtb2ppRmFsbGJhY2tGb250U2VsZWN0b3IoKSB7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvaW9zL1N0b3JhZ2UvV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0L2lvcy9TdG9yYWdlL1dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlckNs
aWVudC5oCmluZGV4IDM5YTJhZmYuLjQ3OTMwY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
aW9zL1N0b3JhZ2UvV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9pb3MvU3RvcmFnZS9XZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQuaApAQCAt
MjksMTAgKzI5LDEwIEBAIGNsYXNzIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudCA6IHB1
YmxpYyBXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllCiBwdWJsaWM6CiAgICAgc3Rh
dGljIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudCogc2hhcmVkV2ViU1FMaXRlRGF0YWJh
c2VUcmFja2VyQ2xpZW50KCk7CiAKLSAgICB2aXJ0dWFsIH5XZWJTUUxpdGVEYXRhYmFzZVRyYWNr
ZXJDbGllbnQoKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIH5XZWJTUUxpdGVEYXRhYmFzZVRy
YWNrZXJDbGllbnQoKSBvdmVycmlkZSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVnaW5G
aXJzdFRyYW5zYWN0aW9uKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExh
c3RUcmFuc2FjdGlvbigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVnaW5GaXJz
dFRyYW5zYWN0aW9uKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExhc3RU
cmFuc2FjdGlvbigpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIFdlYlNRTGl0ZURhdGFiYXNl
VHJhY2tlckNsaWVudCgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3MvV2ViQ29y
ZVN1cHBvcnQvUG9wdXBNZW51SU9TLmggYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9y
dC9Qb3B1cE1lbnVJT1MuaAppbmRleCBmNTNjOTc4Li43MDMyYzNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVJT1MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9Qb3B1cE1lbnVJT1MuaApAQCAtMzcsMTAgKzM3LDEw
IEBAIGNsYXNzIFBvcHVwTWVudUlPUyA6IHB1YmxpYyBXZWJDb3JlOjpQb3B1cE1lbnUgewogcHVi
bGljOgogICAgIFBvcHVwTWVudUlPUyhXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKTsKIAotICAg
IHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBXZWJDb3JlOjpGcmFt
ZVZpZXcqLCBpbnQgaW5kZXgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBoaWRlKCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2hvdyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgV2ViQ29yZTo6RnJhbWVWaWV3Kiwg
aW50IGluZGV4KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgV2Vi
Q29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3BvcHVwQ2xp
ZW50OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9TZWFy
Y2hQb3B1cE1lbnVJT1MuaCBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1NlYXJj
aFBvcHVwTWVudUlPUy5oCmluZGV4IGFlNjRjYzAuLjYxOTdiN2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1NlYXJjaFBvcHVwTWVudUlPUy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1NlYXJjaFBvcHVwTWVudUlPUy5oCkBAIC0z
MiwxMCArMzIsMTAgQEAgY2xhc3MgU2VhcmNoUG9wdXBNZW51SU9TIDogcHVibGljIFdlYkNvcmU6
OlNlYXJjaFBvcHVwTWVudSB7CiBwdWJsaWM6CiAgICAgU2VhcmNoUG9wdXBNZW51SU9TKFdlYkNv
cmU6OlBvcHVwTWVudUNsaWVudCopOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpQb3B1cE1lbnUq
IHBvcHVwTWVudSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNo
ZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNo
SXRlbXMpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNoZXMoY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBX
ZWJDb3JlOjpQb3B1cE1lbnUqIHBvcHVwTWVudSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgc2VhcmNoSXRlbXMpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBsb2Fk
UmVjZW50U2VhcmNoZXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8U3RyaW5nPiYg
c2VhcmNoSXRlbXMpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCkgb3ZlcnJp
ZGU7CiAKIHByaXZhdGU6CiAgICAgUmVmUHRyPFBvcHVwTWVudUlPUz4gbV9wb3B1cDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElP
Uy5oIGIvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9T
LmgKaW5kZXggYTEyZjAyZi4uMTZmYjllNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9p
b3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLmgKQEAgLTMyLDYwICszMiw2MCBA
QCBwdWJsaWM6CiAgICAgICAgIDogV2ViQ2hyb21lQ2xpZW50KHdlYlZpZXcpCiAgICAgICAgICwg
bV9mb3JtTm90aWZpY2F0aW9uU3VwcHJlc3Npb25zKDApIHsgfQogICAgIAotICAgIHZpcnR1YWwg
dm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd1JlY3QoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBXVEY6OlN0cmluZyYpIE9WRVJS
SURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRv
d1JlY3QoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25z
dCBXVEY6OlN0cmluZyYpIG92ZXJyaWRlIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGZvY3VzKCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVj
dGlvbikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIGZvY3VzKCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVjdGlvbikgb3ZlcnJp
ZGUgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZy
YW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcnVu
SmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZy
YW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZWZh
dWx0VmFsdWUsIFdURjo6U3RyaW5nJiByZXN1bHQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3Jl
OjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYg
bWVzc2FnZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgV1RGOjpTdHJpbmcmIHJl
c3VsdCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6
OkZyYW1lKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nlcj4pIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdl
YkNvcmU6OkZpbGVDaG9vc2VyPikgb3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQotICAgIHZpcnR1YWwgdm9pZCBkaWRQcmV2ZW50RGVmYXVsdEZvckV2ZW50KCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRpZFByZXZlbnREZWZhdWx0Rm9yRXZlbnQoKSBvdmVycmlkZTsK
ICNlbmRpZgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTW9iaWxlRG9jVHlwZSgpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoV2ViQ29y
ZTo6RnJhbWUqLCBib29sKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgb2JzZXJ2ZWRDb250
ZW50Q2hhbmdlKFdlYkNvcmU6OkZyYW1lKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNs
ZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhXZWJDb3JlOjpGcmFtZSopIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShjb25zdCBX
ZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoV2ViQ29yZTo6RnJh
bWUqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNTdG9wcGluZygpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBkaWRMYXlvdXQoTGF5b3V0VHlwZSkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGRpZFN0YXJ0T3ZlcmZsb3dTY3JvbGwoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkRW5kT3ZlcmZsb3dTY3JvbGwoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKFdlYkNvcmU6OkZyYW1lKiwgYm9vbCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIG9ic2VydmVkQ29udGVudENoYW5nZShXZWJDb3JlOjpGcmFtZSop
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMo
V2ViQ29yZTo6RnJhbWUqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hWaWV3
cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMm
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5UmV2ZWFsZWRTZWxlY3Rp
b25CeVNjcm9sbGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lKikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBib29sIGlzU3RvcHBpbmcoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkTGF5b3V0
KExheW91dFR5cGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydE92ZXJmbG93
U2Nyb2xsKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZEVuZE92ZXJmbG93U2Nyb2xs
KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3VwcHJlc3NGb3JtTm90aWZpY2F0aW9u
cygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybU5vdGlmaWNhdGlvbnMo
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3VwcHJlc3NGb3JtTm90aWZpY2F0aW9ucygp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybU5vdGlmaWNhdGlvbnMoKSBv
dmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hhbmdlKGNvbnN0
IFdlYkNvcmU6Ok5vZGUqKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRl
RGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBvdmVycmlkZSB7IH0KIAotICAgIHZpcnR1
YWwgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgV2ViQ29yZTo6Tm9kZSopIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkQmx1cihjb25zdCBXZWJDb3JlOjpOb2RlKikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBXZWJDb3JlOjpO
b2RlKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IFdl
YkNvcmU6Ok5vZGUqKSBvdmVycmlkZTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJh
bWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopIG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmx1c2hD
b21wb3NpdGluZ0xheWVycygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRGbHVzaENv
bXBvc2l0aW5nTGF5ZXJzKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmll
d3BvcnRDb25zdHJhaW5lZExheWVycyhIYXNoTWFwPFBsYXRmb3JtTGF5ZXIqLCBPd25QdHI8V2Vi
Q29yZTo6Vmlld3BvcnRDb25zdHJhaW50cz4gPiYsIEhhc2hNYXA8UGxhdGZvcm1MYXllciosIFBs
YXRmb3JtTGF5ZXIqPiYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWV3cG9y
dENvbnN0cmFpbmVkTGF5ZXJzKEhhc2hNYXA8UGxhdGZvcm1MYXllciosIE93blB0cjxXZWJDb3Jl
OjpWaWV3cG9ydENvbnN0cmFpbnRzPiA+JiwgSGFzaE1hcDxQbGF0Zm9ybUxheWVyKiwgUGxhdGZv
cm1MYXllcio+Jikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgZmV0Y2hDdXN0b21GaXhl
ZFBvc2l0aW9uTGF5b3V0UmVjdChXZWJDb3JlOjpJbnRSZWN0JikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGFkZE9yVXBkYXRlU2Nyb2xsaW5nTGF5ZXIoV2ViQ29yZTo6Tm9kZSosIFBsYXRm
b3JtTGF5ZXIqLCBQbGF0Zm9ybUxheWVyKiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGJvb2wg
YWxsb3dIb3Jpem9udGFsU2Nyb2xsYmFyLCBib29sIGFsbG93VmVydGljYWxTY3JvbGxiYXIpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVTY3JvbGxpbmdMYXllcihXZWJDb3JlOjpO
b2RlKiwgUGxhdGZvcm1MYXllciosIFBsYXRmb3JtTGF5ZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIGJvb2wgZmV0Y2hDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdChXZWJDb3JlOjpJbnRS
ZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFkZE9yVXBkYXRlU2Nyb2xsaW5nTGF5
ZXIoV2ViQ29yZTo6Tm9kZSosIFBsYXRmb3JtTGF5ZXIqLCBQbGF0Zm9ybUxheWVyKiwgY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYsIGJvb2wgYWxsb3dIb3Jpem9udGFsU2Nyb2xsYmFyLCBib29sIGFs
bG93VmVydGljYWxTY3JvbGxiYXIpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVT
Y3JvbGxpbmdMYXllcihXZWJDb3JlOjpOb2RlKiwgUGxhdGZvcm1MYXllciosIFBsYXRmb3JtTGF5
ZXIqKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVj
dGlvbklzTmF0dXJhbCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxp
Z25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6
OlBvcHVwTWVudUNsaWVudCopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3Jl
OjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2Vs
ZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0
ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Qgb3ZlcnJpZGU7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgd2ViQXBwT3JpZW50YXRpb25zVXBkYXRlZCgpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkRWxlbWVudENoYW5nZWQoV2ViQ29yZTo6RWxlbWVudCop
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB3ZWJBcHBPcmllbnRhdGlvbnNVcGRhdGVkKCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGZvY3VzZWRFbGVtZW50Q2hhbmdlZChXZWJDb3Jl
OjpFbGVtZW50Kikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgaW50IG1fZm9ybU5vdGlmaWNh
dGlvblN1cHByZXNzaW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVT
dXBwb3J0L1dlYkRpc2tJbWFnZUNhY2hlQ2xpZW50SU9TLmggYi9Tb3VyY2UvV2ViS2l0L2lvcy9X
ZWJDb3JlU3VwcG9ydC9XZWJEaXNrSW1hZ2VDYWNoZUNsaWVudElPUy5oCmluZGV4IGU5MzU5NTQu
LmE2MzEwMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dl
YkRpc2tJbWFnZUNhY2hlQ2xpZW50SU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9pb3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRGlza0ltYWdlQ2FjaGVDbGllbnRJT1MuaApAQCAtMzEsNyArMzEsNyBAQCBj
bGFzcyBXZWJEaXNrSW1hZ2VDYWNoZUNsaWVudCBGSU5BTCA6IHB1YmxpYyBXZWJDb3JlOjpEaXNr
SW1hZ2VDYWNoZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRGlz
a0ltYWdlQ2FjaGVDbGllbnQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJEaXNr
SW1hZ2VDYWNoZUNsaWVudCgpKTsgfQogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ3Jl
YXRlRGlza0ltYWdlQ2FjaGVEaXJlY3RvcnkoY29uc3QgV1RGOjpTdHJpbmcmIGRpcmVjdG9yeSkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZURpc2tJbWFnZUNhY2hlRGlyZWN0
b3J5KGNvbnN0IFdURjo6U3RyaW5nJiBkaXJlY3RvcnkpIG92ZXJyaWRlOwogfTsKIAogdm9pZCBX
ZWJLaXRJbml0aWFsaXplV2ViRGlza0ltYWdlQ2FjaGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBj
YTViYWE0Li5mZjgyZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTQt
MDEtMTYgIFBldGVyIE1vbG5hciAgPHBtb2xuYXIudS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNv
bT4KKworICAgICAgICBSZW1vdmUgd29ya2Fyb3VuZCBmb3IgY29tcGlsZXJzIG5vdCBzdXBwb3J0
aW5nIGV4cGxpY2l0IG92ZXJyaWRlIGNvbnRyb2wKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzExMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vdyBhbGwgY29tcGlsZXJzIHN1cHBvcnQgZXhwbGljaXQg
b3ZlcnJpZGUgY29udHJvbCwgdGhpcyB3b3JrYXJvdW5kIGNhbiBiZSByZW1vdmVkLgorCisgICAg
ICAgICogU3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFnZXJDbGllbnQuaDoKKyAgICAgICAgKiBTdG9y
YWdlL1dlYlN0b3JhZ2VUcmFja2VyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVD
bGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvbkNs
aWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJHZW9sb2NhdGlvbkNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkljb25E
YXRhYmFzZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNs
aWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5o
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oOgorICAgICAgICAqIFdlYlZp
ZXcvV2ViU2NyaXB0RGVidWdnZXIuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLmg6
CisKIDIwMTQtMDEtMTUgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgRml4IHRoZSBpT1MgYnVpbGQgYWZ0ZXIgcjE2MjExNApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFnZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1N0b3JhZ2UvV2ViRGF0YWJhc2VNYW5hZ2VyQ2xpZW50LmgKaW5kZXggNjdj
MDhkZS4uMTRhMTU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJE
YXRhYmFzZU1hbmFnZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dl
YkRhdGFiYXNlTWFuYWdlckNsaWVudC5oCkBAIC0zNSw5ICszNSw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRNb2RpZnlPcmlnaW4oV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4qKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRNb2RpZnlEYXRhYmFzZShXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiosIGNvbnN0IFdURjo6U3RyaW5nJiBkYXRhYmFzZUlkZW50aWZpZXIp
OwogI2lmIFBMQVRGT1JNKElPUykKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRBZGROZXdP
cmlnaW4oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hEaWREZWxldGVEYXRhYmFzZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaERpZERlbGV0ZURhdGFiYXNlT3JpZ2luKCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoRGlkQWRkTmV3T3JpZ2luKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRGVsZXRlRGF0YWJhc2UoKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWREZWxldGVEYXRhYmFzZU9yaWdp
bigpIG92ZXJyaWRlOwogICAgIHZvaWQgbmV3RGF0YWJhc2VPcmlnaW5XYXNBZGRlZCgpOwogICAg
IHZvaWQgZGF0YWJhc2VXYXNEZWxldGVkKCk7CiAgICAgdm9pZCBkYXRhYmFzZU9yaWdpbldhc0Rl
bGV0ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1N0b3JhZ2UvV2ViU3RvcmFn
ZVRyYWNrZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1N0b3JhZ2UvV2ViU3RvcmFnZVRy
YWNrZXJDbGllbnQuaAppbmRleCBmM2YyNTcxLi4yOWRiZTU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9TdG9yYWdlL1dlYlN0b3JhZ2VUcmFja2VyQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9tYWMvU3RvcmFnZS9XZWJTdG9yYWdlVHJhY2tlckNsaWVudC5oCkBAIC00MSw1ICs0
MSw1IEBAIHByaXZhdGU6CiAgICAgV2ViU3RvcmFnZVRyYWNrZXJDbGllbnQoKTsKIAogICAgIC8v
IFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyQ2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlz
aExvYWRpbmdPcmlnaW5zKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExv
YWRpbmdPcmlnaW5zKCkgb3ZlcnJpZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaAppbmRleCBj
ZTRjYzc5Li4yMDM3N2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaApAQCAtMzYsMTcgKzM2LDE3
IEBAIGNsYXNzIFdlYkFsdGVybmF0aXZlVGV4dENsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpBbHRl
cm5hdGl2ZVRleHRDbGllbnQgewogcHVibGljOgogICAgIFdlYkFsdGVybmF0aXZlVGV4dENsaWVu
dChXZWJWaWV3ICopOwogICAgIHZpcnR1YWwgfldlYkFsdGVybmF0aXZlVGV4dENsaWVudCgpOwot
ICAgIHZpcnR1YWwgdm9pZCBwYWdlRGVzdHJveWVkKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIHBhZ2VEZXN0cm95ZWQoKSBvdmVycmlkZTsKICNpZiBVU0UoQVVUT0NPUlJFQ1RJT05fUEFO
RUwpCi0gICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uQWx0ZXJuYXRpdmUoV2ViQ29yZTo6
QWx0ZXJuYXRpdmVUZXh0VHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0Jv
eE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0
cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2
ZVJlcGxhY2VtZW50U3RyaW5ncykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc21pc3NB
bHRlcm5hdGl2ZShXZWJDb3JlOjpSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0KSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBkaXNtaXNzQWx0ZXJuYXRpdmVTb29uKFdlYkNv
cmU6OlJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHQpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCByZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNlKFdlYkNvcmU6OkF1dG9jb3Jy
ZWN0aW9uUmVzcG9uc2VUeXBlLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hv
d0NvcnJlY3Rpb25BbHRlcm5hdGl2ZShXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRUeXBlLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3Qg
U3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGFsdGVybmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0FsdGVybmF0aXZlKFdlYkNvcmU6OlJlYXNv
bkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3Ry
aW5nIGRpc21pc3NBbHRlcm5hdGl2ZVNvb24oV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0Fs
dGVybmF0aXZlVGV4dCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlY29yZEF1dG9jb3Jy
ZWN0aW9uUmVzcG9uc2UoV2ViQ29yZTo6QXV0b2NvcnJlY3Rpb25SZXNwb25zZVR5cGUsIGNvbnN0
IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcp
IG92ZXJyaWRlOwogI2VuZGlmCiAjaWYgVVNFKERJQ1RBVElPTl9BTFRFUk5BVElWRVMpCi0gICAg
dmlydHVhbCB2b2lkIHNob3dEaWN0YXRpb25BbHRlcm5hdGl2ZVVJKGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYgYm91bmRpbmdCb3hPZkRpY3RhdGVkVGV4dCwgdWludDY0X3QgZGljdGF0aW9uQ29u
dGV4dCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZURpY3RhdGlvbkFsdGVybmF0
aXZlcyh1aW50NjRfdCBkaWN0YXRpb25Db250ZXh0KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFZl
Y3RvcjxTdHJpbmc+IGRpY3RhdGlvbkFsdGVybmF0aXZlcyh1aW50NjRfdCBkaWN0YXRpb25Db250
ZXh0KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd0RpY3RhdGlvbkFsdGVybmF0aXZl
VUkoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mRGljdGF0ZWRUZXh0LCB1
aW50NjRfdCBkaWN0YXRpb25Db250ZXh0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVt
b3ZlRGljdGF0aW9uQWx0ZXJuYXRpdmVzKHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRleHQpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gZGljdGF0aW9uQWx0ZXJuYXRpdmVzKHVp
bnQ2NF90IGRpY3RhdGlvbkNvbnRleHQpIG92ZXJyaWRlOwogI2VuZGlmCiBwcml2YXRlOgogI2lm
IFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggYjgzOTI4Ni4uNDUxYTQ0YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTQ2LDEz
MCArNDYsMTMwIEBAIGNsYXNzIFdlYkNocm9tZUNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpDaHJv
bWVDbGllbnQgewogcHVibGljOgogICAgIFdlYkNocm9tZUNsaWVudChXZWJWaWV3Kik7CiAgICAg
Ci0gICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKSBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0V2luZG93UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dSZWN0KCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93UmVjdCgpIG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgcGFnZVJlY3QoKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpIG92ZXJyaWRlOwog
Ci0gICAgdmlydHVhbCB2b2lkIGZvY3VzKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVu
Zm9jdXMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpIG92ZXJyaWRlOwogICAgIAotICAgIHZpcnR1YWwgYm9v
bCBjYW5UYWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCB0YWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgYm9vbCBjYW5UYWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB0YWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rp
b24pIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGZvY3VzZWRFbGVtZW50Q2hhbmdlZChX
ZWJDb3JlOjpFbGVtZW50KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGZvY3VzZWRGcmFt
ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZm9j
dXNlZEVsZW1lbnRDaGFuZ2VkKFdlYkNvcmU6OkVsZW1lbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgZm9jdXNlZEZyYW1lQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSopIG92ZXJyaWRlOwog
Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpQYWdlKiBjcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJhbWUq
LCBjb25zdCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6V2luZG93
RmVhdHVyZXMmLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIHNob3coKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlBh
Z2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9h
ZFJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6
Ok5hdmlnYXRpb25BY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdygpIG92
ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGNhblJ1bk1vZGFsKCkgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIHJ1bk1vZGFsKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGNhblJ1
bk1vZGFsKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJ1bk1vZGFsKCkgb3ZlcnJpZGU7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbGJhcnNWaXNpYmxlKGJvb2wpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgYm9vbCB0b29sYmFyc1Zpc2libGUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0VG9vbGJhcnNWaXNpYmxlKGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9v
bCB0b29sYmFyc1Zpc2libGUoKSBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
U3RhdHVzYmFyVmlzaWJsZShib29sKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc3RhdHVz
YmFyVmlzaWJsZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0dXNiYXJWaXNp
YmxlKGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzdGF0dXNiYXJWaXNpYmxlKCkg
b3ZlcnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbGJhcnNWaXNpYmxlKGJv
b2wpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxiYXJzVmlzaWJsZSgpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxiYXJzVmlzaWJsZShib29sKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsYmFyc1Zpc2libGUoKSBvdmVycmlkZTsKICAgICAK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0TWVudWJhclZpc2libGUoYm9vbCkgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIG1lbnViYXJWaXNpYmxlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHNldE1lbnViYXJWaXNpYmxlKGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBtZW51
YmFyVmlzaWJsZSgpIG92ZXJyaWRlOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBzZXRSZXNpemFi
bGUoYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFJlc2l6YWJsZShib29sKSBv
dmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShXZWJD
b3JlOjpNZXNzYWdlU291cmNlLCBXZWJDb3JlOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFdURjo6U3Ry
aW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIs
IGNvbnN0IFdURjo6U3RyaW5nJiBzb3VyY2VVUkwpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBhZGRNZXNzYWdlVG9Db25zb2xlKFdlYkNvcmU6Ok1lc3NhZ2VTb3VyY2UsIFdlYkNvcmU6Ok1l
c3NhZ2VMZXZlbCwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgV1RGOjpTdHJpbmcmIHNvdXJjZVVSTCkg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1Q
YW5lbChjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6RnJhbWUqKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25z
dCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6RnJhbWUqKSBvdmVycmlkZTsKIAotICAg
IHZpcnR1YWwgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgY2xvc2VXaW5kb3dTb29uKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcnVuSmF2
YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWUq
LCBjb25zdCBXVEY6OlN0cmluZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBydW5KYXZh
U2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFdURjo6U3RyaW5nJiBkZWZhdWx0VmFsdWUsIFdURjo6U3RyaW5nJiByZXN1bHQpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFt
ZSosIGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHJ1bkph
dmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFt
ZSosIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6OlN0cmluZyYgZGVmYXVs
dFZhbHVlLCBXVEY6OlN0cmluZyYgcmVzdWx0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBXZWJD
b3JlOjpJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBXZWJDb3JlOjpJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3Qgb3ZlcnJpZGU7
CiAKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNJbW1lZGlhdGVJbnZhbGlkYXRpb24oKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmLCBib29sKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNv
bnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmLCBib29sKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2Ny
b2xsKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNJbW1lZGlhdGVJbnZhbGlkYXRpb24o
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmLCBib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxp
ZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xs
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBS
ZWN0KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuVG9S
b290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgV2ViQ29yZTo6SW50UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBw
bGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29u
dGVudHNTaXplQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkludFNpemUm
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNv
cmU6OkludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qgcm9vdFZpZXdUb1Nj
cmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUqLCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgV1RGOjpT
dHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25z
dCBXVEY6OlN0cmluZyYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhcnNN
b2RlRGlkQ2hhbmdlKCkgY29uc3QgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCBib29sIHNob3Vs
ZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVk
T2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3JlOjpFbGVt
ZW50KiwgV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3Zl
ckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVy
RmxhZ3MpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5n
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVbmF2YWlsYWJs
ZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1
Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29yZTo6RWxlbWVudCosIFdlYkNv
cmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNv
bnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSBvdmVy
cmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFdURjo6U3RyaW5nJiwg
V2ViQ29yZTo6VGV4dERpcmVjdGlvbikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFRv
b2xUaXAoY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uKSBvdmVycmlk
ZTsKIAotICAgIHZpcnR1YWwgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSopIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSopIG92ZXJyaWRlOwogI2lmIEVO
QUJMRShTUUxfREFUQUJBU0UpCi0gICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90
YShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiBkYXRhYmFzZU5hbWUsIFdlYkNv
cmU6OkRhdGFiYXNlRGV0YWlscykgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVk
RGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiBkYXRhYmFz
ZU5hbWUsIFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscykgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICB2
aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5R
dW90YShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHBvcHVsYXRlVmlzaXRlZExpbmtzKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFj
ZU5lZWRlZCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3Bh
Y2VOZWVkZWQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwb3B1bGF0ZVZpc2l0ZWRMaW5r
cygpIG92ZXJyaWRlOwogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQotICAgIHZpcnR1
YWwgdm9pZCBhbm5vdGF0ZWRSZWdpb25zQ2hhbmdlZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBhbm5vdGF0ZWRSZWdpb25zQ2hhbmdlZCgpIG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICB2
aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lKiwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpGaWxlQ2hvb3Nlcj4pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZv
ckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRl
ciopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJh
bWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdl
YkNvcmU6OkZpbGVJY29uTG9hZGVyKikgb3ZlcnJpZGU7CiAKICNpZiAhUExBVEZPUk0oSU9TKQot
ICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29s
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1
cnNvciYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1v
dXNlTW92ZXMoYm9vbCkgb3ZlcnJpZGU7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6
RmxvYXRSZWN0IGN1c3RvbUhpZ2hsaWdodFJlY3QoV2ViQ29yZTo6Tm9kZSosIGNvbnN0IFdURjo6
QXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGxpbmVSZWN0KSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDdXN0b21IaWdobGlnaHQoV2ViQ29yZTo6
Tm9kZSosIGNvbnN0IFdURjo6QXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIGJveFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgbGluZVJlY3QsIGJvb2wg
YmVoaW5kVGV4dCwgYm9vbCBlbnRpcmVMaW5lKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNv
cmU6OkZsb2F0UmVjdCBjdXN0b21IaWdobGlnaHRSZWN0KFdlYkNvcmU6Ok5vZGUqLCBjb25zdCBX
VEY6OkF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBsaW5lUmVj
dCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q3VzdG9tSGlnaGxpZ2h0KFdlYkNv
cmU6Ok5vZGUqLCBjb25zdCBXVEY6OkF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiBib3hSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGxpbmVSZWN0LCBi
b29sIGJlaGluZFRleHQsIGJvb2wgZW50aXJlTGluZSkgb3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9DT0xPUikKLSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8V2ViQ29yZTo6Q29sb3JD
aG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50Kiwg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8
V2ViQ29yZTo6Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JD
aG9vc2VyQ2xpZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVycmlkZTsKICNlbmRpZgog
Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1v
ZGUoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgTlNSZXNwb25kZXIgKmZpcnN0UmVzcG9uZGVy
KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG1ha2VGaXJzdFJlc3BvbmRlcihOU1Jlc3Bv
bmRlciAqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIE5TUmVzcG9uZGVyICpmaXJzdFJlc3BvbmRl
cigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBtYWtlRmlyc3RSZXNwb25kZXIoTlNSZXNw
b25kZXIgKikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlU3VkZGVuVGVybWlu
YXRpb24oKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZVN1ZGRlblRlcm1pbmF0
aW9uKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGVuYWJsZVN1ZGRlblRlcm1pbmF0aW9u
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigp
IG92ZXJyaWRlOwogICAgIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0gICAgdmlydHVhbCB2
b2lkIG5lZWRUb3VjaEV2ZW50cyhib29sKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
bmVlZFRvdWNoRXZlbnRzKGJvb2wpIG92ZXJyaWRlIHsgfQogI2VuZGlmCiAKLSAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkUmVwbGFjZVdpdGhHZW5lcmF0ZWRGaWxlRm9yVXBsb2FkKGNvbnN0IFdURjo6
U3RyaW5nJiBwYXRoLCBXVEY6OlN0cmluZyAmZ2VuZXJhdGVkRmlsZW5hbWUpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZ2VuZXJhdGVSZXBsYWNlbWVudEZpbGUoY29uc3QgV1RG
OjpTdHJpbmcmIHBhdGgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXBsYWNl
V2l0aEdlbmVyYXRlZEZpbGVGb3JVcGxvYWQoY29uc3QgV1RGOjpTdHJpbmcmIHBhdGgsIFdURjo6
U3RyaW5nICZnZW5lcmF0ZWRGaWxlbmFtZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXVEY6OlN0
cmluZyBnZW5lcmF0ZVJlcGxhY2VtZW50RmlsZShjb25zdCBXVEY6OlN0cmluZyYgcGF0aCkgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hhbmdlKGNvbnN0IFdlYkNv
cmU6Ok5vZGUqKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hh
bmdlKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBvdmVycmlkZSB7IH0KIAotICAgIHZpcnR1YWwgdm9p
ZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgV2ViQ29yZTo6Tm9kZSopIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBlbGVtZW50RGlkQmx1cihjb25zdCBXZWJDb3JlOjpOb2RlKikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBXZWJDb3JlOjpOb2RlKikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IFdlYkNvcmU6
Ok5vZGUqKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQYWludEVudGlyZUNv
bnRlbnRzKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNob3VsZFBhaW50RW50
aXJlQ29udGVudHMoKSBjb25zdCBvdmVycmlkZTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29y
ZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJh
bWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBvdmVycmlkZTsKIAog
ICAgIHZpcnR1YWwgQ29tcG9zaXRpbmdUcmlnZ2VyRmxhZ3MgYWxsb3dlZENvbXBvc2l0aW5nVHJp
Z2dlcnMoKSBjb25zdAogICAgIHsKQEAgLTE4NiwyNCArMTg2LDI0IEBAIHB1YmxpYzoKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiAhUExBVEZPUk0oSU9TKQotICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShXZWJDb3JlOjpOb2Rl
KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsc2NyZWVuRm9yTm9kZShXZWJD
b3JlOjpOb2RlKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbHNjcmVl
bkZvck5vZGUoY29uc3QgV2ViQ29yZTo6Tm9kZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBlbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKFdlYkNvcmU6Ok5vZGUqKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKFdlYkNvcmU6Ok5vZGUqKSBvdmVycmlk
ZTsKICNlbmRpZgogICAgIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICB2aXJ0dWFs
IGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50
KiwgYm9vbCB3aXRoS2V5Ym9hcmQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1
bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25z
dCBXZWJDb3JlOjpFbGVtZW50KiwgYm9vbCB3aXRoS2V5Ym9hcmQpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNv
cmU6OkVsZW1lbnQqKSBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgdmlydHVhbCBib29sIHNlbGVj
dEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1l
bnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBN
ZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGly
ZWN0aW9uKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGhhc09wZW5lZFBvcHVwKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4g
Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0
ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBvdmVycmlk
ZTsKIAotICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2ln
bmVkKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJz
Q2hhbmdlZCh1bnNpZ25lZCkgb3ZlcnJpZGUgeyB9CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAg
V2ViVmlldyogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fd2ViVmlldzsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50
LmgKaW5kZXggMDE1M2EyMy4uYTM4ZGFkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5oCkBAIC0zNCwxOSArMzQs
MTkgQEAgY2xhc3MgV2ViQ29udGV4dE1lbnVDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6Q29udGV4
dE1lbnVDbGllbnQgewogcHVibGljOgogICAgIFdlYkNvbnRleHRNZW51Q2xpZW50KFdlYlZpZXcg
KndlYlZpZXcpOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0TWVudURlc3Ryb3llZCgp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0TWVudURlc3Ryb3llZCgpIG92ZXJy
aWRlOwogICAgIAotICAgIHZpcnR1YWwgTlNNdXRhYmxlQXJyYXkqIGdldEN1c3RvbU1lbnVGcm9t
RGVmYXVsdEl0ZW1zKFdlYkNvcmU6OkNvbnRleHRNZW51KikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGNvbnRleHRNZW51SXRlbVNlbGVjdGVkKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSos
IGNvbnN0IFdlYkNvcmU6OkNvbnRleHRNZW51KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBOU011
dGFibGVBcnJheSogZ2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRlbXMoV2ViQ29yZTo6Q29udGV4
dE1lbnUqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVJdGVtU2VsZWN0
ZWQoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtKiwgY29uc3QgV2ViQ29yZTo6Q29udGV4dE1lbnUq
KSBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgZG93bmxvYWRVUkwoY29uc3QgV2Vi
Q29yZTo6VVJMJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNlYXJjaFdpdGhHb29nbGUo
Y29uc3QgV2ViQ29yZTo6RnJhbWUqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbG9va1Vw
SW5EaWN0aW9uYXJ5KFdlYkNvcmU6OkZyYW1lKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29s
IGlzU3BlYWtpbmcoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3BlYWsoY29uc3QgV1RG
OjpTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcFNwZWFraW5nKCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNlYXJjaFdpdGhTcG90bGlnaHQoKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRleHRNZW51KCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGRvd25sb2FkVVJMKGNvbnN0IFdlYkNvcmU6OlVSTCYpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBzZWFyY2hXaXRoR29vZ2xlKGNvbnN0IFdlYkNvcmU6OkZyYW1lKikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGxvb2tVcEluRGljdGlvbmFyeShXZWJDb3JlOjpGcmFtZSop
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1NwZWFraW5nKCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHNwZWFrKGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHN0b3BTcGVha2luZygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZWFy
Y2hXaXRoU3BvdGxpZ2h0KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNob3dDb250ZXh0
TWVudSgpIG92ZXJyaWRlOwogCiAgICAgV2ViVmlldyAqd2ViVmlldygpIHsgcmV0dXJuIG1fd2Vi
VmlldzsgfQogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCmluZGV4IDdlNDk4NzEu
LjY2M2E4YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkRldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaApAQCAtNDMsMTEgKzQzLDExIEBA
IHB1YmxpYzoKICAgICBXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudChXZWJWaWV3Kik7CiAKICAg
ICAvLyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCBtZXRob2RzCi0gICAgdmlydHVhbCB2b2lkIHNl
dENvbnRyb2xsZXIoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpE
ZXZpY2VPcmllbnRhdGlvbkRhdGEqIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxlcihXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRV
cGRhdGluZygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uRGF0YSogbGFzdE9y
aWVudGF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIGlk
PFdlYkRldmljZU9yaWVudGF0aW9uUHJvdmlkZXI+IGdldFByb3ZpZGVyKCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmgKaW5kZXgg
ZmZkNjU1MS4uMDFlNWQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRHJhZ0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkRyYWdDbGllbnQuaApAQCAtMzIsMTMgKzMyLDEzIEBACiBjbGFzcyBXZWJEcmFnQ2xp
ZW50IDogcHVibGljIFdlYkNvcmU6OkRyYWdDbGllbnQgewogcHVibGljOgogICAgIFdlYkRyYWdD
bGllbnQoV2ViVmlldyopOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9ybURyYWdEZXN0aW5h
dGlvbkFjdGlvbihXZWJDb3JlOjpEcmFnRGVzdGluYXRpb25BY3Rpb24sIFdlYkNvcmU6OkRyYWdE
YXRhJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtRHJhZ1NvdXJjZUFj
dGlvbihXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYs
IFdlYkNvcmU6OkNsaXBib2FyZCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6RHJh
Z0Rlc3RpbmF0aW9uQWN0aW9uIGFjdGlvbk1hc2tGb3JEcmFnKFdlYkNvcmU6OkRyYWdEYXRhJikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRyYWdDb250cm9sbGVyRGVzdHJveWVkKCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uIGRyYWdTb3VyY2VB
Y3Rpb25NYXNrRm9yUG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHdpbmRvd1BvaW50KSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnKFdlYkNvcmU6OkRyYWdJbWFnZVJl
ZiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRyYWdQb3MsIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBldmVudFBvcywgV2ViQ29yZTo6Q2xpcGJvYXJkJiwgV2ViQ29yZTo6RnJhbWUmLCBib29s
IGxpbmtEcmFnKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVjbGFyZUFuZFdyaXRlRHJh
Z0ltYWdlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFdlYkNvcmU6OkVsZW1lbnQmLCBj
b25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpGcmFtZSopIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9ybURyYWdEZXN0aW5hdGlvbkFjdGlvbihX
ZWJDb3JlOjpEcmFnRGVzdGluYXRpb25BY3Rpb24sIFdlYkNvcmU6OkRyYWdEYXRhJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihXZWJDb3Jl
OjpEcmFnU291cmNlQWN0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNvcmU6OkNs
aXBib2FyZCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RHJhZ0Rlc3RpbmF0aW9u
QWN0aW9uIGFjdGlvbk1hc2tGb3JEcmFnKFdlYkNvcmU6OkRyYWdEYXRhJikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGRyYWdDb250cm9sbGVyRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uIGRyYWdTb3VyY2VBY3Rpb25NYXNrRm9y
UG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHdpbmRvd1BvaW50KSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnKFdlYkNvcmU6OkRyYWdJbWFnZVJlZiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGRyYWdQb3MsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBldmVudFBv
cywgV2ViQ29yZTo6Q2xpcGJvYXJkJiwgV2ViQ29yZTo6RnJhbWUmLCBib29sIGxpbmtEcmFnKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFdlYkNvcmU6OkVsZW1lbnQmLCBjb25zdCBXZWJDb3Jl
OjpVUkwmLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpGcmFtZSopIG92ZXJyaWRlOwogcHJpdmF0
ZToKICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCAwNGUxYmJmLi44MGNmMDEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaApAQCAtNDAsMTQ4ICs0MCwxNDggQEAgY2xhc3MgV2ViRWRpdG9yQ2xpZW50IDogcHVi
bGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCwgcHVibGljIFdlYkNvcmU6OlRleHRDaGVja2UKIHB1
YmxpYzoKICAgICBXZWJFZGl0b3JDbGllbnQoV2ViVmlldyAqKTsKICAgICB2aXJ0dWFsIH5XZWJF
ZGl0b3JDbGllbnQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBwYWdlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAKICNpZiAhUExB
VEZPUk0oSU9TKQotICAgIHZpcnR1YWwgYm9vbCBpc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQoKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlR3JhbW1hckNoZWNraW5nKCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBib29sIGlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5n
KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBpbnQgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUdyYW1tYXJDaGVja2luZygpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgaW50IHNwZWxsQ2hlY2tlckRvY3VtZW50VGFnKCkgb3Zl
cnJpZGU7CiAjZWxzZQotICAgIHZpcnR1YWwgYm9vbCBpc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQo
KSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVHcmFt
bWFyQ2hlY2tpbmcoKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNHcmFtbWFyQ2hl
Y2tpbmdFbmFibGVkKCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgdG9nZ2xlR3JhbW1hckNoZWNraW5nKCkgb3ZlcnJpZGUgeyB9CiAgICAgLy8gTm90ZTogaXND
b250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSBpcyBpbXBsZW1lbnRlZC4KLSAgICB2aXJ0
dWFsIGJvb2wgaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKSBPVkVSUklERSB7
IH0KLSAgICB2aXJ0dWFsIGludCBzcGVsbENoZWNrZXJEb2N1bWVudFRhZygpIE9WRVJSSURFIHsg
cmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQ29udGludW91c1NwZWxs
Q2hlY2tpbmcoKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIGludCBzcGVsbENoZWNrZXJEb2N1
bWVudFRhZygpIG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KICNlbmRpZgogCi0gICAgdmlydHVhbCBi
b29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9v
bCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIGJvb2wgc21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIG92ZXJyaWRlOwogCi0g
ICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKFdlYkNvcmU6OlJhbmdlKikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKFdlYkNvcmU6OlJhbmdlKikg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQmVnaW5FZGl0aW5nKFdlYkNvcmU6
OlJhbmdlKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZEVuZEVkaXRpbmcoV2Vi
Q29yZTo6UmFuZ2UqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0Tm9k
ZShXZWJDb3JlOjpOb2RlKiwgV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpFZGl0b3JJbnNlcnRB
Y3Rpb24pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnNlcnRUZXh0KGNvbnN0
IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpFZGl0b3JJbnNlcnRBY3Rp
b24pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdl
KFdlYkNvcmU6OlJhbmdlKiBmcm9tUmFuZ2UsIFdlYkNvcmU6OlJhbmdlKiB0b1JhbmdlLCBXZWJD
b3JlOjpFQWZmaW5pdHksIGJvb2wgc3RpbGxTZWxlY3RpbmcpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRCZWdpbkVkaXRpbmcoV2ViQ29yZTo6UmFuZ2UqKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkRW5kRWRpdGluZyhXZWJDb3JlOjpSYW5nZSopIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnNlcnROb2RlKFdlYkNvcmU6Ok5vZGUqLCBXZWJD
b3JlOjpSYW5nZSosIFdlYkNvcmU6OkVkaXRvckluc2VydEFjdGlvbikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBib29sIHNob3VsZEluc2VydFRleHQoY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJDb3Jl
OjpSYW5nZSosIFdlYkNvcmU6OkVkaXRvckluc2VydEFjdGlvbikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIHNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqIGZyb21S
YW5nZSwgV2ViQ29yZTo6UmFuZ2UqIHRvUmFuZ2UsIFdlYkNvcmU6OkVBZmZpbml0eSwgYm9vbCBz
dGlsbFNlbGVjdGluZykgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlT
dHlsZShXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXMqLCBXZWJDb3JlOjpSYW5nZSopIE9WRVJSSURF
OworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxlKFdlYkNvcmU6OlN0eWxlUHJvcGVy
dGllcyosIFdlYkNvcmU6OlJhbmdlKikgb3ZlcnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCBib29s
IHNob3VsZE1vdmVSYW5nZUFmdGVyRGVsZXRlKFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6UmFu
Z2UqIHJhbmdlVG9CZVJlcGxhY2VkKSBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgdm9pZCBkaWRC
ZWdpbkVkaXRpbmcoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kRWRpdGluZygp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9h
cmQoV2ViQ29yZTo6UmFuZ2UqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkV3JpdGVT
ZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0Q2xp
ZW50UGFzdGVib2FyZERhdGFGb3JSYW5nZShXZWJDb3JlOjpSYW5nZSosIFZlY3RvcjxTdHJpbmc+
JiBwYXN0ZWJvYXJkVHlwZXMsIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPj4m
IHBhc3RlYm9hcmREYXRhKSBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgTlNTdHJpbmcqIHVzZXJW
aXNpYmxlU3RyaW5nKE5TVVJMICopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6RG9j
dW1lbnRGcmFnbWVudCogZG9jdW1lbnRGcmFnbWVudEZyb21BdHRyaWJ1dGVkU3RyaW5nKE5TQXR0
cmlidXRlZFN0cmluZyAqLCBWZWN0b3I8IFJlZlB0cjxXZWJDb3JlOjpBcmNoaXZlUmVzb3VyY2U+
PiYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRJbnNlcnRpb25QYXN0ZWJvYXJkKGNv
bnN0IFN0cmluZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgTlNVUkwqIGNhbm9uaWNhbGl6ZVVS
TChOU1VSTCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgTlNVUkwqIGNhbm9uaWNhbGl6ZVVSTFN0
cmluZyhOU1N0cmluZyopIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRNb3ZlUmFu
Z2VBZnRlckRlbGV0ZShXZWJDb3JlOjpSYW5nZSosIFdlYkNvcmU6OlJhbmdlKiByYW5nZVRvQmVS
ZXBsYWNlZCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5FZGl0aW5nKCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZEVuZEVkaXRpbmcoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgd2lsbFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKFdlYkNvcmU6OlJh
bmdlKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0
ZWJvYXJkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGdldENsaWVudFBhc3RlYm9hcmRE
YXRhRm9yUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqLCBWZWN0b3I8U3RyaW5nPiYgcGFzdGVib2FyZFR5
cGVzLCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4+JiBwYXN0ZWJvYXJkRGF0
YSkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIE5TU3RyaW5nKiB1c2VyVmlzaWJsZVN0cmluZyhO
U1VSTCAqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQq
IGRvY3VtZW50RnJhZ21lbnRGcm9tQXR0cmlidXRlZFN0cmluZyhOU0F0dHJpYnV0ZWRTdHJpbmcg
KiwgVmVjdG9yPCBSZWZQdHI8V2ViQ29yZTo6QXJjaGl2ZVJlc291cmNlPj4mKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0SW5zZXJ0aW9uUGFzdGVib2FyZChjb25zdCBTdHJpbmcmKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIE5TVVJMKiBjYW5vbmljYWxpemVVUkwoTlNVUkwqKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIE5TVVJMKiBjYW5vbmljYWxpemVVUkxTdHJpbmcoTlNTdHJpbmcq
KSBvdmVycmlkZTsKICAgICAKICNpZiBVU0UoQVBQS0lUKQotICAgIHZpcnR1YWwgdm9pZCB1cHBl
cmNhc2VXb3JkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGxvd2VyY2FzZVdvcmQoKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2FwaXRhbGl6ZVdvcmQoKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgdXBwZXJjYXNlV29yZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBsb3dlcmNhc2VXb3JkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNhcGl0YWxpemVX
b3JkKCkgb3ZlcnJpZGU7CiAjZW5kaWYKIAogI2lmIFVTRShBVVRPTUFUSUNfVEVYVF9SRVBMQUNF
TUVOVCkKLSAgICB2aXJ0dWFsIHZvaWQgc2hvd1N1YnN0aXR1dGlvbnNQYW5lbChib29sIHNob3cp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzdWJzdGl0dXRpb25zUGFuZWxJc1Nob3dpbmco
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlU21hcnRJbnNlcnREZWxldGUoKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVu
YWJsZWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQXV0b21hdGljUXVvdGVT
dWJzdGl0dXRpb24oKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNBdXRvbWF0aWNMaW5r
RGV0ZWN0aW9uRW5hYmxlZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVBdXRv
bWF0aWNMaW5rRGV0ZWN0aW9uKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzQXV0b21h
dGljRGFzaFN1YnN0aXR1dGlvbkVuYWJsZWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
dG9nZ2xlQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
Ym9vbCBpc0F1dG9tYXRpY1RleHRSZXBsYWNlbWVudEVuYWJsZWQoKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgdG9nZ2xlQXV0b21hdGljVGV4dFJlcGxhY2VtZW50KCkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBib29sIGlzQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCgpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rp
b24oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd1N1YnN0aXR1dGlvbnNQYW5lbChi
b29sIHNob3cpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzdWJzdGl0dXRpb25zUGFuZWxJ
c1Nob3dpbmcoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlU21hcnRJbnNlcnRE
ZWxldGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBdXRvbWF0aWNRdW90ZVN1YnN0
aXR1dGlvbkVuYWJsZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQXV0b21h
dGljUXVvdGVTdWJzdGl0dXRpb24oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBdXRv
bWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB0
b2dnbGVBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IGlzQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJsZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgdG9nZ2xlQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbigpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBpc0F1dG9tYXRpY1RleHRSZXBsYWNlbWVudEVuYWJsZWQoKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQXV0b21hdGljVGV4dFJlcGxhY2VtZW50KCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5h
YmxlZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVBdXRvbWF0aWNTcGVsbGlu
Z0NvcnJlY3Rpb24oKSBvdmVycmlkZTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKERFTEVUSU9OX1VJ
KQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTaG93RGVsZXRlSW50ZXJmYWNlKFdlYkNvcmU6OkhU
TUxFbGVtZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNob3VsZFNob3dEZWxldGVJ
bnRlcmZhY2UoV2ViQ29yZTo6SFRNTEVsZW1lbnQqKSBvdmVycmlkZTsKICNlbmRpZgogCi0gICAg
VGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCkgT1ZFUlJJREUgeyByZXR1cm4gdGhpczsg
fQorICAgIFRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIG92ZXJyaWRlIHsgcmV0dXJu
IHRoaXM7IH0KIAotICAgIHZpcnR1YWwgdm9pZCByZXNwb25kVG9DaGFuZ2VkQ29udGVudHMoKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbihXZWJD
b3JlOjpGcmFtZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXNwb25kVG9DaGFuZ2Vk
Q29udGVudHMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uZFRvQ2hhbmdlZFNl
bGVjdGlvbihXZWJDb3JlOjpGcmFtZSopIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHJl
Z2lzdGVyVW5kb1N0ZXAoUGFzc1JlZlB0cjxXZWJDb3JlOjpVbmRvU3RlcD4pIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclJlZG9TdGVwKFBhc3NSZWZQdHI8V2ViQ29yZTo6VW5k
b1N0ZXA+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJVbmRvUmVkb09wZXJhdGlv
bnMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJVbmRvU3RlcChQYXNzUmVm
UHRyPFdlYkNvcmU6OlVuZG9TdGVwPikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lz
dGVyUmVkb1N0ZXAoUGFzc1JlZlB0cjxXZWJDb3JlOjpVbmRvU3RlcD4pIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBjbGVhclVuZG9SZWRvT3BlcmF0aW9ucygpIG92ZXJyaWRlOwogCi0gICAg
dmlydHVhbCBib29sIGNhbkNvcHlDdXQoV2ViQ29yZTo6RnJhbWUqLCBib29sIGRlZmF1bHRWYWx1
ZSkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNhblBhc3RlKFdlYkNvcmU6OkZy
YW1lKiwgYm9vbCBkZWZhdWx0VmFsdWUpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9v
bCBjYW5VbmRvKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNhblJlZG8oKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuQ29weUN1dChXZWJDb3JlOjpGcmFt
ZSosIGJvb2wgZGVmYXVsdFZhbHVlKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
Y2FuUGFzdGUoV2ViQ29yZTo6RnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBib29sIGNhblVuZG8oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgY2FuUmVkbygpIGNvbnN0IG92ZXJyaWRlOwogICAgIAotICAgIHZpcnR1YWwgdm9p
ZCB1bmRvKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlZG8oKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgdW5kbygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZWRvKCkg
b3ZlcnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWJvYXJkRXZlbnQoV2Vi
Q29yZTo6S2V5Ym9hcmRFdmVudCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVJ
bnB1dE1ldGhvZEtleWRvd24oV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCopIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBoYW5kbGVLZXlib2FyZEV2ZW50KFdlYkNvcmU6OktleWJvYXJkRXZlbnQq
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlSW5wdXRNZXRob2RLZXlkb3duKFdl
YkNvcmU6OktleWJvYXJkRXZlbnQqKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCB0ZXh0
RmllbGREaWRCZWdpbkVkaXRpbmcoV2ViQ29yZTo6RWxlbWVudCopIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCB0ZXh0RmllbGREaWRFbmRFZGl0aW5nKFdlYkNvcmU6OkVsZW1lbnQqKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdGV4dERpZENoYW5nZUluVGV4dEZpZWxkKFdlYkNvcmU6
OkVsZW1lbnQqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgZG9UZXh0RmllbGRDb21tYW5k
RnJvbUV2ZW50KFdlYkNvcmU6OkVsZW1lbnQqLCBXZWJDb3JlOjpLZXlib2FyZEV2ZW50KikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRXaWxsQmVEZWxldGVkSW5UZXh0RmllbGQoV2Vi
Q29yZTo6RWxlbWVudCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB0ZXh0RGlkQ2hhbmdl
SW5UZXh0QXJlYShXZWJDb3JlOjpFbGVtZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHRleHRGaWVsZERpZEJlZ2luRWRpdGluZyhXZWJDb3JlOjpFbGVtZW50Kikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHRleHRGaWVsZERpZEVuZEVkaXRpbmcoV2ViQ29yZTo6RWxlbWVudCop
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB0ZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGQoV2Vi
Q29yZTo6RWxlbWVudCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBkb1RleHRGaWVsZENv
bW1hbmRGcm9tRXZlbnQoV2ViQ29yZTo6RWxlbWVudCosIFdlYkNvcmU6OktleWJvYXJkRXZlbnQq
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFdpbGxCZURlbGV0ZWRJblRleHRGaWVs
ZChXZWJDb3JlOjpFbGVtZW50Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHRleHREaWRD
aGFuZ2VJblRleHRBcmVhKFdlYkNvcmU6OkVsZW1lbnQqKSBvdmVycmlkZTsKIAogI2lmIFBMQVRG
T1JNKElPUykKLSAgICB2aXJ0dWFsIHZvaWQgc3VwcHJlc3NTZWxlY3Rpb25Ob3RpZmljYXRpb25z
KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlc3RvcmVTZWxlY3Rpb25Ob3RpZmljYXRp
b25zKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHN0YXJ0RGVsYXlpbmdBbmRDb2FsZXNj
aW5nQ29udGVudENoYW5nZU5vdGlmaWNhdGlvbnMoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgc3RvcERlbGF5aW5nQW5kQ29hbGVzY2luZ0NvbnRlbnRDaGFuZ2VOb3RpZmljYXRpb25zKCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHdyaXRlRGF0YVRvUGFzdGVib2FyZChOU0RpY3Rp
b25hcnkqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIE5TQXJyYXkqIHN1cHBvcnRlZFBhc3RlYm9h
cmRUeXBlc0ZvckN1cnJlbnRTZWxlY3Rpb24oKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIE5TQXJy
YXkqIHJlYWREYXRhRnJvbVBhc3RlYm9hcmQoTlNTdHJpbmcqIHR5cGUsIGludCBpbmRleCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBib29sIGhhc1JpY2hseUVkaXRhYmxlU2VsZWN0aW9uKCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBpbnQgZ2V0UGFzdGVib2FyZEl0ZW1zQ291bnQoKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQqIGRvY3VtZW50RnJhZ21l
bnRGcm9tRGVsZWdhdGUoaW50IGluZGV4KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcGVy
Zm9ybXNUd29TdGVwUGFzdGUoV2ViQ29yZTo6RG9jdW1lbnRGcmFnbWVudCopIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgaW50IHBhc3RlYm9hcmRDaGFuZ2VDb3VudCgpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBzdXBwcmVzc1NlbGVjdGlvbk5vdGlmaWNhdGlvbnMoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVzdG9yZVNlbGVjdGlvbk5vdGlmaWNhdGlvbnMoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgc3RhcnREZWxheWluZ0FuZENvYWxlc2NpbmdDb250ZW50Q2hhbmdl
Tm90aWZpY2F0aW9ucygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdG9wRGVsYXlpbmdB
bmRDb2FsZXNjaW5nQ29udGVudENoYW5nZU5vdGlmaWNhdGlvbnMoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgd3JpdGVEYXRhVG9QYXN0ZWJvYXJkKE5TRGljdGlvbmFyeSopIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgTlNBcnJheSogc3VwcG9ydGVkUGFzdGVib2FyZFR5cGVzRm9yQ3VycmVu
dFNlbGVjdGlvbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgTlNBcnJheSogcmVhZERhdGFGcm9t
UGFzdGVib2FyZChOU1N0cmluZyogdHlwZSwgaW50IGluZGV4KSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgaGFzUmljaGx5RWRpdGFibGVTZWxlY3Rpb24oKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGludCBnZXRQYXN0ZWJvYXJkSXRlbXNDb3VudCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
V2ViQ29yZTo6RG9jdW1lbnRGcmFnbWVudCogZG9jdW1lbnRGcmFnbWVudEZyb21EZWxlZ2F0ZShp
bnQgaW5kZXgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBwZXJmb3Jtc1R3b1N0ZXBQYXN0
ZShXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBpbnQg
cGFzdGVib2FyZENoYW5nZUNvdW50KCkgb3ZlcnJpZGU7CiAjZW5kaWYKICAgICAKICNpZiAhUExB
VEZPUk0oSU9TKQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRFcmFzZU1hcmtlcnNBZnRlckNoYW5n
ZVNlbGVjdGlvbihXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgaWdub3JlV29yZEluU3BlbGxEb2N1bWVudChjb25zdCBXVEY6OlN0cmlu
ZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBsZWFybldvcmQoY29uc3QgV1RGOjpTdHJp
bmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tTcGVsbGluZ09mU3RyaW5nKGNv
bnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgaW50KiBtaXNzcGVsbGluZ0xvY2F0aW9uLCBpbnQqIG1p
c3NwZWxsaW5nTGVuZ3RoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGdldEF1
dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFdURjo6U3RyaW5nJikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNoZWNrR3JhbW1hck9mU3RyaW5nKGNvbnN0IFVD
aGFyKiwgaW50IGxlbmd0aCwgV1RGOjpWZWN0b3I8V2ViQ29yZTo6R3JhbW1hckRldGFpbD4mLCBp
bnQqIGJhZEdyYW1tYXJMb2NhdGlvbiwgaW50KiBiYWRHcmFtbWFyTGVuZ3RoKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIFZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+IGNoZWNrVGV4
dE9mUGFyYWdyYXBoKFN0cmluZ1ZpZXcsIFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrIGNo
ZWNraW5nVHlwZXMpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTcGVsbGluZ1VJ
V2l0aEdyYW1tYXJTdHJpbmcoY29uc3QgV1RGOjpTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpHcmFt
bWFyRGV0YWlsJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlX
aXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgV1RGOjpTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9vbCBzaG93KSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBn
ZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYgd29yZCwgY29uc3QgV1RGOjpTdHJp
bmcmIGNvbnRleHQsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3NlcykgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBib29sIHNob3VsZEVyYXNlTWFya2Vyc0FmdGVyQ2hhbmdlU2VsZWN0aW9u
KFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGUpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBpZ25vcmVXb3JkSW5TcGVsbERvY3VtZW50KGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGxlYXJuV29yZChjb25zdCBXVEY6OlN0cmluZyYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBjaGVja1NwZWxsaW5nT2ZTdHJpbmcoY29uc3QgVUNoYXIq
LCBpbnQgbGVuZ3RoLCBpbnQqIG1pc3NwZWxsaW5nTG9jYXRpb24sIGludCogbWlzc3BlbGxpbmdM
ZW5ndGgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZ2V0QXV0b0NvcnJlY3RT
dWdnZXN0aW9uRm9yTWlzc3BlbGxlZFdvcmQoY29uc3QgV1RGOjpTdHJpbmcmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgY2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQg
bGVuZ3RoLCBXVEY6OlZlY3RvcjxXZWJDb3JlOjpHcmFtbWFyRGV0YWlsPiYsIGludCogYmFkR3Jh
bW1hckxvY2F0aW9uLCBpbnQqIGJhZEdyYW1tYXJMZW5ndGgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgVmVjdG9yPFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdD4gY2hlY2tUZXh0T2ZQYXJhZ3Jh
cGgoU3RyaW5nVmlldywgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2sgY2hlY2tpbmdUeXBl
cykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1h
clN0cmluZyhjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkdyYW1tYXJEZXRhaWwm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVs
bGVkV29yZChjb25zdCBXVEY6OlN0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBz
aG93U3BlbGxpbmdVSShib29sIHNob3cpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzcGVs
bGluZ1VJSXNTaG93aW5nKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNG
b3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiB3b3JkLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGV4
dCwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKSBvdmVycmlkZTsKICNlbHNlCi0g
ICAgdmlydHVhbCBib29sIHNob3VsZEVyYXNlTWFya2Vyc0FmdGVyQ2hhbmdlU2VsZWN0aW9uKFdl
YkNvcmU6OlRleHRDaGVja2luZ1R5cGUpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgaWdub3JlV29yZEluU3BlbGxEb2N1bWVudChjb25zdCBXVEY6OlN0
cmluZyYpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBsZWFybldvcmQoY29uc3QgV1RG
OjpTdHJpbmcmKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tTcGVsbGluZ09m
U3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgaW50KiBtaXNzcGVsbGluZ0xvY2F0aW9u
LCBpbnQqIG1pc3NwZWxsaW5nTGVuZ3RoKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIGdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFdU
Rjo6U3RyaW5nJikgT1ZFUlJJREUgeyByZXR1cm4gIiI7IH0KLSAgICB2aXJ0dWFsIHZvaWQgY2hl
Y2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBXVEY6OlZlY3RvcjxX
ZWJDb3JlOjpHcmFtbWFyRGV0YWlsPiYsIGludCogYmFkR3JhbW1hckxvY2F0aW9uLCBpbnQqIGJh
ZEdyYW1tYXJMZW5ndGgpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgVmVjdG9yPFdlYkNvcmU6
OlRleHRDaGVja2luZ1Jlc3VsdD4gY2hlY2tUZXh0T2ZQYXJhZ3JhcGgoU3RyaW5nVmlldywgV2Vi
Q29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2sgY2hlY2tpbmdUeXBlcykgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhjb25zdCBXVEY6
OlN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkdyYW1tYXJEZXRhaWwmKSBPVkVSUklERSB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBX
VEY6OlN0cmluZyYpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBzaG93U3BlbGxpbmdV
SShib29sIHNob3cpIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgYm9vbCBzcGVsbGluZ1VJSXNT
aG93aW5nKCkgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZ2V0
R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RGOjpTdHJpbmcmIHdvcmQsIGNvbnN0IFdURjo6U3RyaW5n
JiBjb250ZXh0LCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpIE9WRVJSSURFIHsg
fQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRFcmFzZU1hcmtlcnNBZnRlckNoYW5nZVNlbGVjdGlv
bihXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9CisgICAgdmlydHVhbCB2b2lkIGlnbm9yZVdvcmRJblNwZWxsRG9jdW1lbnQoY29uc3QgV1RG
OjpTdHJpbmcmKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbGVhcm5Xb3JkKGNvbnN0
IFdURjo6U3RyaW5nJikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGNoZWNrU3BlbGxp
bmdPZlN0cmluZyhjb25zdCBVQ2hhciosIGludCBsZW5ndGgsIGludCogbWlzc3BlbGxpbmdMb2Nh
dGlvbiwgaW50KiBtaXNzcGVsbGluZ0xlbmd0aCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCBX
VEY6OlN0cmluZyBnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChjb25z
dCBXVEY6OlN0cmluZyYpIG92ZXJyaWRlIHsgcmV0dXJuICIiOyB9CisgICAgdmlydHVhbCB2b2lk
IGNoZWNrR3JhbW1hck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgV1RGOjpWZWN0
b3I8V2ViQ29yZTo6R3JhbW1hckRldGFpbD4mLCBpbnQqIGJhZEdyYW1tYXJMb2NhdGlvbiwgaW50
KiBiYWRHcmFtbWFyTGVuZ3RoKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIFZlY3RvcjxXZWJD
b3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+IGNoZWNrVGV4dE9mUGFyYWdyYXBoKFN0cmluZ1ZpZXcs
IFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGVNYXNrIGNoZWNraW5nVHlwZXMpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTcGVsbGluZ1VJV2l0aEdyYW1tYXJTdHJpbmcoY29uc3Qg
V1RGOjpTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpHcmFtbWFyRGV0YWlsJikgb3ZlcnJpZGUgeyB9
CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29u
c3QgV1RGOjpTdHJpbmcmKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2hvd1NwZWxs
aW5nVUkoYm9vbCBzaG93KSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3BlbGxpbmdV
SUlzU2hvd2luZygpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lk
IGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiB3b3JkLCBjb25zdCBXVEY6OlN0
cmluZyYgY29udGV4dCwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKSBvdmVycmlk
ZSB7IH0KICNlbmRpZiAvLyBQTEFURk9STShJT1MpCi0gICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJ
bnB1dE1ldGhvZFN0YXRlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0
aG9kU3RhdGUoYm9vbCBlbmFibGVkKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dENoZWNraW5nT2ZTdHJpbmcoUGFzc1JlZlB0cjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0
PikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFi
bGVkKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmco
UGFzc1JlZlB0cjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0Pikgb3ZlcnJpZGU7CiAKICAg
ICB2b2lkIGRpZENoZWNrU3VjY2VlZChpbnQgc2VxdWVuY2UsIE5TQXJyYXkqIHJlc3VsdHMpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaAppbmRleCA5NjNmMzRmLi5mMzZjOTI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAg
LTU3LDE3NiArNTcsMTc2IEBAIHB1YmxpYzoKICAgICBXZWJGcmFtZSogd2ViRnJhbWUoKSBjb25z
dCB7IHJldHVybiBtX3dlYkZyYW1lLmdldCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2
b2lkIGZyYW1lTG9hZGVyRGVzdHJveWVkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGhh
c1dlYlZpZXcoKSBjb25zdCBPVkVSUklERTsgLy8gbWFpbmx5IGZvciBhc3NlcnRpb25zCisgICAg
dmlydHVhbCB2b2lkIGZyYW1lTG9hZGVyRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBib29sIGhhc1dlYlZpZXcoKSBjb25zdCBvdmVycmlkZTsgLy8gbWFpbmx5IGZvciBhc3NlcnRp
b25zCiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFrZVJlcHJlc2VudGF0aW9uKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGhhc0hUTUxWaWV3KCkgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGZvcmNlTGF5b3V0KCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIG1ha2VSZXByZXNlbnRhdGlvbihXZWJDb3JlOjpEb2N1bWVudExvYWRl
ciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBoYXNIVE1MVmlldygpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBmb3JjZUxheW91dCgpIG92ZXJyaWRlOwogI2lmIFBMQVRG
T1JNKElPUykKLSAgICB2aXJ0dWFsIHZvaWQgZm9yY2VMYXlvdXRXaXRob3V0UmVjYWxjdWxhdGlu
Z1N0eWxlcygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBmb3JjZUxheW91dFdpdGhvdXRS
ZWNhbGN1bGF0aW5nU3R5bGVzKCkgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICB2aXJ0dWFsIHZvaWQg
Zm9yY2VMYXlvdXRGb3JOb25IVE1MKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGZvcmNl
TGF5b3V0Rm9yTm9uSFRNTCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHNldENvcGll
c09uU2Nyb2xsKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldENvcGllc09uU2Nyb2xs
KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoZWRGcm9tUGFyZW50MigpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hlZEZyb21QYXJlbnQzKCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRldGFjaGVkRnJvbVBhcmVudDIoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGV0YWNoZWRGcm9tUGFyZW50MygpIG92ZXJyaWRlOwogCi0gICAgdmlydHVh
bCB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChXZWJDb3JlOjpEb2N1bWVu
dExvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY29udmVydE1h
aW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGFzc2lnbklkZW50aWZpZXJUb0luaXRp
YWxSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgYXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3QodW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFNl
bmRSZXF1ZXN0KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpEb2N1bWVudExvYWRlcios
IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDYW5jZWxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoV2Vi
Q29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGly
ZWN0UmVzcG9uc2UpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VDcmVkZW50
aWFsU3RvcmFnZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRp
Zmllcikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENhbmNlbEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpIG92ZXJyaWRlOwog
I2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCi0gICAgdmlydHVhbCBib29s
IGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoV2ViQ29yZTo6RG9jdW1lbnRM
b2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlByb3RlY3Rp
b25TcGFjZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjYW5BdXRoZW50aWNhdGVBZ2Fp
bnN0UHJvdGVjdGlvblNwYWNlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmKSBvdmVycmlkZTsK
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIHZpcnR1YWwgUmV0YWluUHRyPENGRGlj
dGlvbmFyeVJlZj4gY29ubmVjdGlvblByb3BlcnRpZXMoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIq
LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUmV0YWlu
UHRyPENGRGljdGlvbmFyeVJlZj4gY29ubmVjdGlvblByb3BlcnRpZXMoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpIG92ZXJyaWRlOwogI2VuZGlmCiAK
LSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6RG9j
dW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRS
ZWNlaXZlQ29udGVudExlbmd0aChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aERpZEZhaWxMb2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7Ci0KLSAg
ICB2aXJ0dWFsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHdpbGxDYWNoZVJlc3BvbnNlKFdlYkNvcmU6
OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBOU0NhY2hlZFVSTFJl
c3BvbnNlKikgY29uc3QgT1ZFUlJJREU7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRI
YW5kbGVPbmxvYWRFdmVudHMoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hE
aWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29u
c3QgV2ViQ29yZTo6VVJMJiwgZG91YmxlIGludGVydmFsLCBkb3VibGUgZmlyZURhdGUpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFn
ZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFB1c2hTdGF0ZVdpdGhp
blBhZ2UoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZXBsYWNlU3Rh
dGVXaXRoaW5QYWdlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUG9w
U3RhdGVXaXRoaW5QYWdlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlk
UmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoV2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3Ro
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyhXZWJDb3JlOjpEb2N1
bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciYpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBOU0NhY2hlZFVSTFJlc3BvbnNl
KiB3aWxsQ2FjaGVSZXNwb25zZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgTlNDYWNoZWRVUkxSZXNwb25zZSopIGNvbnN0IG92ZXJyaWRlOworCisg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkSGFuZGxlT25sb2FkRXZlbnRzKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJv
dmlzaW9uYWxMb2FkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2Fu
Y2VsQ2xpZW50UmVkaXJlY3QoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hX
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFdlYkNvcmU6OlVSTCYsIGRvdWJsZSBpbnRl
cnZhbCwgZG91YmxlIGZpcmVEYXRlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hEaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2UoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hEaWRQdXNoU3RhdGVXaXRoaW5QYWdlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoRGlkUmVwbGFjZVN0YXRlV2l0aGluUGFnZSgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFBvcFN0YXRlV2l0aGluUGFnZSgpIG92ZXJyaWRlOwog
ICAgIAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxDbG9zZSgpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVJY29uKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3QgV2ViQ29yZTo6U3Ry
aW5nV2l0aERpcmVjdGlvbiYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERp
ZENoYW5nZUljb25zKFdlYkNvcmU6Okljb25UeXBlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hEaWRDb21taXRMb2FkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmFpbExvYWQoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERpZEZpbmlzaERvY3VtZW50TG9hZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaERpZEZpbmlzaExvYWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hEaWRMYXlvdXQoV2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lcykgT1ZFUlJJREU7Ci0KLSAgICB2
aXJ0dWFsIFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgV2ViQ29yZTo6
TmF2aWdhdGlvbkFjdGlvbiYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFNo
b3coKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsQ2xvc2UoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlSWNvbigpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKGNvbnN0IFdl
YkNvcmU6OlN0cmluZ1dpdGhEaXJlY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlzcGF0Y2hEaWRDaGFuZ2VJY29ucyhXZWJDb3JlOjpJY29uVHlwZSkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ29tbWl0TG9hZCgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZhaWxM
b2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hEb2N1bWVudExvYWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoRGlkTGF5b3V0KFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZXMpIG92ZXJyaWRl
OworCisgICAgdmlydHVhbCBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0
IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlzcGF0Y2hTaG93KCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlv
bik7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIGNvbnN0IFdURjo6
U3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24pIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgV2ViQ29yZTo6RnJh
bWVQb2xpY3lGdW5jdGlvbikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNhbmNlbFBvbGlj
eUNoZWNrKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0
ZT4sIGNvbnN0IFdURjo6U3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVu
Y3Rpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRl
PiwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hVbmFibGVUb0ltcGxlbWVudFBvbGljeShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoVW5hYmxlVG9JbXBsZW1lbnRQ
b2xpY3koY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOwogCi0gICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVudChQYXNzUmVmUHRyPFdlYkNvcmU6
OkZvcm1TdGF0ZT4pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxTdWJt
aXRGb3JtKFBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgV2ViQ29yZTo6RnJhbWVQb2xp
Y3lGdW5jdGlvbikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFNlbmRT
dWJtaXRFdmVudChQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4pIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKFBhc3NSZWZQdHI8V2ViQ29yZTo6
Rm9ybVN0YXRlPiwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbikgb3ZlcnJpZGU7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgcmV2ZXJ0VG9Qcm92aXNpb25hbFN0YXRlKFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldE1haW5Eb2N1bWVudEVycm9y
KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21N
ZW1vcnlDYWNoZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBpbnQgbGVuZ3Ro
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmV2ZXJ0VG9Qcm92aXNpb25hbFN0YXRlKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldE1h
aW5Eb2N1bWVudEVycm9yKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBkaXNwYXRjaERpZExv
YWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmLCBpbnQgbGVuZ3RoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRNYWluRnJh
bWVEb2N1bWVudFJlYWR5KGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRNYWlu
RnJhbWVEb2N1bWVudFJlYWR5KGJvb2wpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHN0
YXJ0RG93bmxvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5n
JiBzdWdnZXN0ZWROYW1lID0gU3RyaW5nKCkpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBz
dGFydERvd25sb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmlu
ZyYgc3VnZ2VzdGVkTmFtZSA9IFN0cmluZygpKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9p
ZCB3aWxsQ2hhbmdlVGl0bGUoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVGl0bGUoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbENoYW5nZVRpdGxlKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVRpdGxlKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY29t
bWl0dGVkTG9hZChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IGNoYXIqLCBpbnQpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hlZExvYWRpbmcoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2xvYmFsSGlzdG9y
eSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHbG9iYWxIaXN0b3J5UmVkaXJl
Y3RMaW5rcygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb21taXR0ZWRMb2FkKFdlYkNv
cmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgY2hhciosIGludCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGZpbmlzaGVkTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVudExvYWRlciopIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHbG9iYWxIaXN0b3J5KCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdsb2JhbEhpc3RvcnlSZWRpcmVjdExpbmtzKCkgb3ZlcnJp
ZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkR29Ub0hpc3RvcnlJdGVtKFdlYkNvcmU6Okhp
c3RvcnlJdGVtKikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BM
b2FkaW5nRm9ySGlzdG9yeUl0ZW0oV2ViQ29yZTo6SGlzdG9yeUl0ZW0qKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2xvYmFsSGlzdG9yeUl0ZW1Gb3JQYWdlKCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBib29sIHNob3VsZEdvVG9IaXN0b3J5SXRlbShXZWJDb3JlOjpI
aXN0b3J5SXRlbSopIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdG9w
TG9hZGluZ0Zvckhpc3RvcnlJdGVtKFdlYkNvcmU6Okhpc3RvcnlJdGVtKikgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdsb2JhbEhpc3RvcnlJdGVtRm9yUGFnZSgpIG92
ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50KFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2ViQ29yZTo6VVJMJikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGRpZERldGVjdFhTUyhjb25zdCBXZWJDb3JlOjpVUkwmLCBib29sIGRpZEJsb2Nr
RW50aXJlUGFnZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZERpc3BsYXlJbnNlY3Vy
ZUNvbnRlbnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250
ZW50KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZERldGVjdFhTUyhjb25zdCBXZWJDb3JlOjpVUkwmLCBi
b29sIGRpZEJsb2NrRW50aXJlUGFnZSkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6
OlJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2Nr
ZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEVy
cm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291
cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBm
aWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFu
ZGxlTG9hZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJy
b3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRGYWxs
QmFjayhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBib29sIHNob3VsZEZhbGxCYWNrKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBvdmVy
cmlkZTsKIAotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdXNlckFnZW50KGNvbnN0IFdlYkNvcmU6
OlVSTCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdXNlckFnZW50KGNvbnN0
IFdlYkNvcmU6OlVSTCYpIG92ZXJyaWRlOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBzYXZlUGxh
dGZvcm1EYXRhVG9DYWNoZWRGcmFtZShXZWJDb3JlOjpDYWNoZWRGcmFtZSopIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGcm9tQ2FjaGVkRnJhbWUoV2Vi
Q29yZTo6Q2FjaGVkRnJhbWUqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVBsYXRm
b3JtRGF0YVRvQ2FjaGVkRnJhbWUoV2ViQ29yZTo6Q2FjaGVkRnJhbWUqKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkRnJvbUNhY2hlZEZyYW1lKFdlYkNv
cmU6OkNhY2hlZEZyYW1lKikgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIHZpcnR1
YWwgdm9pZCBkaWRSZXN0b3JlRnJhbWVIaWVyYXJjaHlGb3JDYWNoZWRGcmFtZSgpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN0b3JlRnJhbWVIaWVyYXJjaHlGb3JDYWNoZWRGcmFt
ZSgpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgdmlydHVhbCB2b2lkIHRyYW5zaXRpb25Ub0NvbW1p
dHRlZEZvck5ld1BhZ2UoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhbnNpdGlvblRv
Q29tbWl0dGVkRm9yTmV3UGFnZSgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGRpZFNh
dmVUb1BhZ2VDYWNoZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN0b3JlRnJv
bVBhZ2VDYWNoZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRTYXZlVG9QYWdlQ2Fj
aGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUo
KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0
KGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEJlY29tZUZyYW1l
c2V0KGJvb2wpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGNhbkhhbmRsZVJlcXVlc3Qo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBib29sIGNhblNob3dNSU1FVHlwZShjb25zdCBXVEY6OlN0cmluZyYgTUlNRVR5cGUpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBjYW5TaG93TUlNRVR5cGVBc0hUTUwoY29u
c3QgV1RGOjpTdHJpbmcmIE1JTUVUeXBlKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJv
b2wgcmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUoY29uc3QgV1RGOjpTdHJpbmcmIFVS
TFNjaGVtZSkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBnZW5lcmF0
ZWRNSU1FVHlwZUZvclVSTFNjaGVtZShjb25zdCBXVEY6OlN0cmluZyYgVVJMU2NoZW1lKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuSGFuZGxlUmVxdWVzdChjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
Y2FuU2hvd01JTUVUeXBlKGNvbnN0IFdURjo6U3RyaW5nJiBNSU1FVHlwZSkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBib29sIGNhblNob3dNSU1FVHlwZUFzSFRNTChjb25zdCBXVEY6OlN0
cmluZyYgTUlNRVR5cGUpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCByZXByZXNl
bnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZShjb25zdCBXVEY6OlN0cmluZyYgVVJMU2NoZW1lKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGdlbmVyYXRlZE1JTUVUeXBl
Rm9yVVJMU2NoZW1lKGNvbnN0IFdURjo6U3RyaW5nJiBVUkxTY2hlbWUpIGNvbnN0IG92ZXJyaWRl
OwogCi0gICAgdmlydHVhbCB2b2lkIGZyYW1lTG9hZENvbXBsZXRlZCgpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBzYXZlVmlld1N0YXRlVG9JdGVtKFdlYkNvcmU6Okhpc3RvcnlJdGVtKikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlc3RvcmVWaWV3U3RhdGUoKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgcHJvdmlzaW9uYWxMb2FkU3RhcnRlZCgpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IHByZXBhcmVGb3JEYXRhU291cmNlUmVwbGFjZW1lbnQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8V2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI+IGNyZWF0ZURvY3VtZW50TG9hZGVy
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlN1YnN0aXR1
dGVEYXRhJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGZyYW1lTG9hZENvbXBsZXRlZCgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzYXZlVmlld1N0YXRlVG9JdGVtKFdlYkNvcmU6
Okhpc3RvcnlJdGVtKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVWaWV3U3Rh
dGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvdmlzaW9uYWxMb2FkU3RhcnRlZCgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkKCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JEYXRhU291cmNlUmVwbGFjZW1lbnQoKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI+IGNyZWF0
ZURvY3VtZW50TG9hZGVyKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdl
YkNvcmU6OlN1YnN0aXR1dGVEYXRhJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
VGl0bGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nV2l0aERpcmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6
OlVSTCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRUaXRsZShjb25zdCBXZWJDb3Jl
OjpTdHJpbmdXaXRoRGlyZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7CiAK
ICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0
IFdlYkNvcmU6OlVSTCYgdXJsLCBjb25zdCBXVEY6OlN0cmluZyYgbmFtZSwgV2ViQ29yZTo6SFRN
TEZyYW1lT3duZXJFbGVtZW50KiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBXVEY6OlN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBp
bnQgbWFyZ2luV2lkdGgsIGludCBtYXJnaW5IZWlnaHQpIE9WRVJSSURFOworICAgICAgICBjb25z
dCBXVEY6OlN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2lu
V2lkdGgsIGludCBtYXJnaW5IZWlnaHQpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxXZWJDb3JlOjpXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwg
V2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQqLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBW
ZWN0b3I8V1RGOjpTdHJpbmc+JiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBjb25zdCBXVEY6OlN0cmluZyYsIGJv
b2wpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZWNyZWF0ZVBsdWdpbihXZWJDb3JlOjpX
aWRnZXQqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVkaXJlY3REYXRhVG9QbHVnaW4o
V2ViQ29yZTo6V2lkZ2V0KiBwbHVnaW5XaWRnZXQpIE9WRVJSSURFOworICAgICAgICBjb25zdCBW
ZWN0b3I8V1RGOjpTdHJpbmc+JiwgY29uc3QgV1RGOjpTdHJpbmcmLCBib29sKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVjcmVhdGVQbHVnaW4oV2ViQ29yZTo6V2lkZ2V0Kikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdlYkNvcmU6OldpZGdl
dCogcGx1Z2luV2lkZ2V0KSBvdmVycmlkZTsKICAgICAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
V2ViQ29yZTo6V2lkZ2V0PiBjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmLCBXZWJDb3JlOjpIVE1MQXBwbGV0RWxlbWVudCosIGNvbnN0IFdlYkNvcmU6OlVSTCYg
YmFzZVVSTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8
V1RGOjpTdHJpbmc+JiBwYXJhbVZhbHVlcykgT1ZFUlJJREU7CisgICAgICAgIGNvbnN0IFZlY3Rv
cjxXVEY6OlN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIHBh
cmFtVmFsdWVzKSBvdmVycmlkZTsKICAgICAKICNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9W
SURFTykKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBjcmVhdGVNZWRp
YVBsYXllclByb3h5UGx1Z2luKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50KiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0IFZl
Y3RvcjxXVEY6OlN0cmluZz4mLCBjb25zdCBXVEY6OlN0cmluZyYpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBoaWRlTWVkaWFQbGF5ZXJQcm94eVBsdWdpbihXZWJDb3JlOjpXaWRnZXQqKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2hvd01lZGlhUGxheWVyUHJveHlQbHVnaW4oV2Vi
Q29yZTo6V2lkZ2V0KikgT1ZFUlJJREU7CisgICAgICAgIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmlu
Zz4mLCBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgY29uc3QgV1RGOjpTdHJpbmcmKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZU1lZGlhUGxheWVyUHJveHlQbHVnaW4oV2ViQ29y
ZTo6V2lkZ2V0Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNob3dNZWRpYVBsYXllclBy
b3h5UGx1Z2luKFdlYkNvcmU6OldpZGdldCopIG92ZXJyaWRlOwogI2VuZGlmCiAgICAgCi0gICAg
dmlydHVhbCBXZWJDb3JlOjpPYmplY3RDb250ZW50VHlwZSBvYmplY3RDb250ZW50VHlwZShjb25z
dCBXZWJDb3JlOjpVUkwmLCBjb25zdCBXVEY6OlN0cmluZyYgbWltZVR5cGUsIGJvb2wgc2hvdWxk
UHJlZmVyUGx1Z0luc0ZvckltYWdlcykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmlu
ZyBvdmVycmlkZU1lZGlhVHlwZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29y
ZTo6T2JqZWN0Q29udGVudFR5cGUgb2JqZWN0Q29udGVudFR5cGUoY29uc3QgV2ViQ29yZTo6VVJM
JiwgY29uc3QgV1RGOjpTdHJpbmcmIG1pbWVUeXBlLCBib29sIHNob3VsZFByZWZlclBsdWdJbnNG
b3JJbWFnZXMpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgb3ZlcnJpZGVNZWRp
YVR5cGUoKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hE
aWRDbGVhcldpbmRvd09iamVjdEluV29ybGQoV2ViQ29yZTo6RE9NV3JhcHBlcldvcmxkJikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2xlYXJXaW5kb3dPYmplY3RJ
bldvcmxkKFdlYkNvcmU6OkRPTVdyYXBwZXJXb3JsZCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmly
dHVhbCB2b2lkIHJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29sIGxpc3RlbikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29sIGxp
c3Rlbikgb3ZlcnJpZGU7CiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgdmlydHVhbCBib29sIHNo
b3VsZExvYWRNZWRpYUVsZW1lbnRVUkwoY29uc3QgV2ViQ29yZTo6VVJMJikgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBib29sIHNob3VsZExvYWRNZWRpYUVsZW1lbnRVUkwoY29uc3QgV2Vi
Q29yZTo6VVJMJikgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykK
LSAgICB2aXJ0dWFsIFJlbW90ZUFYT2JqZWN0UmVmIGFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3Qo
KSBPVkVSUklERSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBSZW1vdGVBWE9iamVjdFJlZiBh
Y2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0KCkgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQogI2VuZGlm
CiAgICAgCiAgICAgUmV0YWluUHRyPFdlYkZyYW1lUG9saWN5TGlzdGVuZXI+IHNldFVwUG9saWN5
TGlzdGVuZXIoV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmgKaW5kZXggZWU2ZGRhYi4uZWIyMGNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApA
QCAtNTEsMTIgKzUxLDEyIEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwg
Ym9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgYm9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRSdW5Mb29wUGFpcnMo
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFJldGFpblB0cjxDRkRhdGFSZWY+IHNvdXJj
ZUFwcGxpY2F0aW9uQXVkaXREYXRhKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYgc3RvcmFnZVNlc3Npb24oKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgU2NoZWR1bGVQYWlySGFzaFNldCogc2NoZWR1bGVkUnVuTG9vcFBhaXJz
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBzb3Vy
Y2VBcHBsaWNhdGlvbkF1ZGl0RGF0YSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9u
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlv
bkNsaWVudC5oCmluZGV4IDgwYTQzODkuLmE4NGY0ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaApAQCAtMzcs
MjAgKzM3LDIwIEBAIHB1YmxpYzoKICAgICBXZWJHZW9sb2NhdGlvbkNsaWVudChXZWJWaWV3ICop
OwogICAgIFdlYlZpZXcgKndlYlZpZXcoKSB7IHJldHVybiBtX3dlYlZpZXc7IH0KIAotICAgIHZp
cnR1YWwgdm9pZCBnZW9sb2NhdGlvbkRlc3Ryb3llZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBzdGFydFVwZGF0aW5nKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BVcGRh
dGluZygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBnZW9sb2NhdGlvbkRlc3Ryb3llZCgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpIG92ZXJyaWRlOwogI2lmIFBMQVRGT1JNKElP
UykKICAgICAvLyBGSVhNRTogdW5pZnkgdGhpcyB3aXRoIE1hYyBvbiBPcGVuU291cmNlLgotICAg
IHZpcnR1YWwgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koYm9vbCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sKSBvdmVycmlkZTsKICNlbHNl
Ci0gICAgdmlydHVhbCB2b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sKSBPVkVSUklERSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpIG92ZXJyaWRl
IHsgfQogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24q
IGxhc3RQb3NpdGlvbigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6R2VvbG9jYXRp
b25Qb3NpdGlvbiogbGFzdFBvc2l0aW9uKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6R2VvbG9jYXRpb24qKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgY2FuY2VsUGVybWlzc2lvblJlcXVlc3QoV2ViQ29yZTo6R2VvbG9jYXRpb24q
KSBPVkVSUklERSB7IH07CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNv
cmU6Okdlb2xvY2F0aW9uKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbFBlcm1p
c3Npb25SZXF1ZXN0KFdlYkNvcmU6Okdlb2xvY2F0aW9uKikgb3ZlcnJpZGUgeyB9OwogCiBwcml2
YXRlOgogICAgIFdlYlZpZXcgKm1fd2ViVmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkljb25EYXRhYmFzZUNsaWVudC5oIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSWNvbkRhdGFiYXNlQ2xpZW50LmgKaW5kZXggOTdiMTc2
My4uZTNjNjMzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViSWNvbkRhdGFiYXNlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViSWNvbkRhdGFiYXNlQ2xpZW50LmgKQEAgLTMxLDkgKzMxLDkgQEAKIAogY2xhc3Mg
V2ViSWNvbkRhdGFiYXNlQ2xpZW50IDogcHVibGljIFdlYkNvcmU6Okljb25EYXRhYmFzZUNsaWVu
dCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZUFsbEljb25zKCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEltcG9ydEljb25VUkxGb3JQYWdlVVJMKGNvbnN0IFN0
cmluZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRJbXBvcnRJY29uRGF0YUZvclBh
Z2VVUkwoY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENoYW5n
ZUljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBkaWRGaW5pc2hVUkxJbXBvcnQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVt
b3ZlQWxsSWNvbnMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkSW1wb3J0SWNvblVS
TEZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRp
ZEltcG9ydEljb25EYXRhRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaFVSTEltcG9ydCgpIG92ZXJyaWRlOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3Rv
ckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9y
Q2xpZW50LmgKaW5kZXggMWU3YTA2ZC4uMDFjMWM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKQEAgLTYzLDIyICs2
MywyMiBAQCBjbGFzcyBXZWJJbnNwZWN0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6SW5zcGVj
dG9yQ2xpZW50LCBwdWJsaWMgV2ViQ29yZTo6SW5zcAogcHVibGljOgogICAgIGV4cGxpY2l0IFdl
Ykluc3BlY3RvckNsaWVudChXZWJWaWV3ICopOwogCi0gICAgdmlydHVhbCB2b2lkIGluc3BlY3Rv
ckRlc3Ryb3llZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0b3JEZXN0cm95
ZWQoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRD
aGFubmVsKiBvcGVuSW5zcGVjdG9yRnJvbnRlbmQoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxl
ciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjbG9zZUluc3BlY3RvckZyb250ZW5kKCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGJyaW5nRnJvbnRlbmRUb0Zyb250KCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlc2l6ZU1haW5GcmFtZShXZWJDb3JlOjpGcmFtZSop
IE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
KiBvcGVuSW5zcGVjdG9yRnJvbnRlbmQoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlciopIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjbG9zZUluc3BlY3RvckZyb250ZW5kKCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGJyaW5nRnJvbnRlbmRUb0Zyb250KCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZFJlc2l6ZU1haW5GcmFtZShXZWJDb3JlOjpGcmFtZSopIG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGhpZ2hsaWdodCgpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBoaWRlSGlnaGxpZ2h0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGhpZ2hs
aWdodCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBoaWRlSGlnaGxpZ2h0KCkgb3ZlcnJp
ZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgaW5kaWNhdGUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgaGlkZUluZGljYXRpb24oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaW5kaWNh
dGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZUluZGljYXRpb24oKSBvdmVycmlk
ZTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRTZXRTZWFyY2hpbmdGb3JOb2RlKGJvb2wpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRTZXRTZWFyY2hpbmdGb3JOb2RlKGJvb2wpIG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCBib29sIHNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJp
bmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNv
bnN0IFN0cmluZyYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBpbnNwZWN0b3JTdGFydHNBdHRhY2hl
ZCgpOwogICAgIHZvaWQgc2V0SW5zcGVjdG9yU3RhcnRzQXR0YWNoZWQoYm9vbCk7CkBAIC0xMTcs
MTYgKzExNywxNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0QXR0YWNoZWRXaW5k
b3dIZWlnaHQodW5zaWduZWQgaGVpZ2h0KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QXR0YWNoZWRX
aW5kb3dXaWR0aCh1bnNpZ25lZCBoZWlnaHQpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sYmFy
SGVpZ2h0KHVuc2lnbmVkKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbGJhckhl
aWdodCh1bnNpZ25lZCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdGVkVVJM
Q2hhbmdlZChjb25zdCBTdHJpbmcmIG5ld1VSTCk7CiAKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRh
dGVXaW5kb3dUaXRsZSgpIGNvbnN0OwogCi0gICAgdmlydHVhbCBib29sIGNhblNhdmUoKSBPVkVS
UklERSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNhdmUoY29uc3QgU3RyaW5n
JiB1cmwsIGNvbnN0IFN0cmluZyYgY29udGVudCwgYm9vbCBmb3JjZVNhdmVBcywgYm9vbCBiYXNl
NjRFbmNvZGVkKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kKGNvbnN0IFN0cmlu
ZyYgdXJsLCBjb25zdCBTdHJpbmcmIGNvbnRlbnQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9v
bCBjYW5TYXZlKCkgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBz
YXZlKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIGNvbnRlbnQsIGJvb2wgZm9yY2VT
YXZlQXMsIGJvb2wgYmFzZTY0RW5jb2RlZCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFw
cGVuZChjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBjb250ZW50KSBvdmVycmlkZTsK
IAogI2lmICFQTEFURk9STShJT1MpCiAgICAgV2ViVmlldyogbV9pbnNwZWN0ZWRXZWJWaWV3Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0
aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmlj
YXRpb25DbGllbnQuaAppbmRleCA4MDZmYTBmLi4xYTA3ODM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaApA
QCAtNTQsMTkgKzU0LDE5IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIHZpcnR1
YWwgYm9vbCBzaG93KFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiopIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBjYW5jZWwoV2ViQ29yZTo6Tm90aWZpY2F0aW9uKikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ry
b3llZChXZWJDb3JlOjpOb3RpZmljYXRpb24qKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
bm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
Ym9vbCBzaG93KFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiopIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBjYW5jZWwoV2ViQ29yZTo6Tm90aWZpY2F0aW9uKikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3ll
ZChXZWJDb3JlOjpOb3RpZmljYXRpb24qKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90
aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpIG92ZXJyaWRlOwogI2lmIEVOQUJMRShMRUdB
Q1lfTk9USUZJQ0FUSU9OUykKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8V2ViQ29yZTo6Vm9pZENh
bGxiYWNrPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlZvaWRD
YWxsYmFjaz4pIG92ZXJyaWRlOwogI2VuZGlmCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0g
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBQYXNzUmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxs
YmFjaz4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpOb3RpZmlj
YXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+KSBvdmVycmlkZTsKICNlbmRpZgotICAgIHZpcnR1YWwg
dm9pZCBjYW5jZWxSZXF1ZXN0c0ZvclBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9u
Q2xpZW50OjpQZXJtaXNzaW9uIGNoZWNrUGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbFJlcXVlc3RzRm9y
UGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kikgb3ZlcnJpZGUgeyB9
CisgICAgdmlydHVhbCBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gY2hl
Y2tQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBvdmVycmlkZTsK
IAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElP
TlMpCiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgV2ViTm90aWZpY2F0aW9uUG9saWN5TGlzdGVuZXIgKik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5o
CmluZGV4IGYwODMyZjYuLjY0ODg5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC00NywyMiArNDcs
MjIgQEAgcHJpdmF0ZToKICAgICBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMoKTsKICAgICAKICAgICAv
LyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkNvb2tp
ZXNTdHJhdGVneSogY3JlYXRlQ29va2llc1N0cmF0ZWd5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBXZWJDb3JlOjpEYXRhYmFzZVN0cmF0ZWd5KiBjcmVhdGVEYXRhYmFzZVN0cmF0ZWd5KCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpMb2FkZXJTdHJhdGVneSogY3JlYXRlTG9hZGVy
U3RyYXRlZ3koKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJh
dGVneSogY3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBX
ZWJDb3JlOjpQbHVnaW5TdHJhdGVneSogY3JlYXRlUGx1Z2luU3RyYXRlZ3koKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIFdlYkNvcmU6OlNoYXJlZFdvcmtlclN0cmF0ZWd5KiBjcmVhdGVTaGFyZWRX
b3JrZXJTdHJhdGVneSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6Q29va2llc1N0
cmF0ZWd5KiBjcmVhdGVDb29raWVzU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdl
YkNvcmU6OkRhdGFiYXNlU3RyYXRlZ3kqIGNyZWF0ZURhdGFiYXNlU3RyYXRlZ3koKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkxvYWRlclN0cmF0ZWd5KiBjcmVhdGVMb2FkZXJTdHJh
dGVneSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5
KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNv
cmU6OlBsdWdpblN0cmF0ZWd5KiBjcmVhdGVQbHVnaW5TdHJhdGVneSgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgV2ViQ29yZTo6U2hhcmVkV29ya2VyU3RyYXRlZ3kqIGNyZWF0ZVNoYXJlZFdvcmtl
clN0cmF0ZWd5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpTdG9yYWdlU3RyYXRl
Z3kqIGNyZWF0ZVN0b3JhZ2VTdHJhdGVneSgpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgV2ViQ29y
ZTo6VmlzaXRlZExpbmtTdHJhdGVneSogY3JlYXRlVmlzaXRlZExpbmtTdHJhdGVneSgpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6VmlzaXRlZExpbmtTdHJhdGVneSogY3JlYXRlVmlz
aXRlZExpbmtTdHJhdGVneSgpIG92ZXJyaWRlOwogCiAgICAgLy8gV2ViQ29yZTo6Q29va2llc1N0
cmF0ZWd5Ci0gICAgdmlydHVhbCBTdHJpbmcgY29va2llc0ZvckRPTShjb25zdCBXZWJDb3JlOjpO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFdlYkNvcmU6OlVSTCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDb29raWVz
RnJvbURPTShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJD
b3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFdlYkNvcmU6OlVSTCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvb2tp
ZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJM
JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVDb29raWUoY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBTdHJpbmcgY29va2llc0ZvckRPTShjb25zdCBXZWJDb3JlOjpOZXR3
b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFdlYkNvcmU6OlVSTCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRDb29raWVzRnJv
bURPTShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3Jl
OjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFdlYkNvcmU6OlVSTCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIGNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lv
biYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgV2ViQ29yZTo6
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBXZWJDb3JlOjpVUkwmLCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBkZWxldGVDb29raWUoY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7
CiAKICAgICAvLyBXZWJDb3JlOjpEYXRhYmFzZVN0cmF0ZWd5CiAgICAgLy8gLSBVc2luZyBkZWZh
dWx0IGltcGxlbWVudGF0aW9uLgpAQCAtNzEsNDIgKzcxLDQyIEBAIHByaXZhdGU6CiAgICAgLy8g
LSBVc2luZyBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgogCiAgICAgLy8gV2ViQ29yZTo6UGx1Z2lu
U3RyYXRlZ3kKLSAgICB2aXJ0dWFsIHZvaWQgcmVmcmVzaFBsdWdpbnMoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZ2V0UGx1Z2luSW5mbyhjb25zdCBXZWJDb3JlOjpQYWdlKiwgVmVjdG9y
PFdlYkNvcmU6OlBsdWdpbkluZm8+JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlZnJl
c2hQbHVnaW5zKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGdldFBsdWdpbkluZm8oY29u
c3QgV2ViQ29yZTo6UGFnZSosIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYpIG92ZXJyaWRl
OwogCiAgICAgLy8gV2ViQ29yZTo6TG9hZGVyU3RyYXRlZ3kKICAgICAvLyAtIFVzaW5nIGRlZmF1
bHQgaW1wbGVtZW50YXRpb24uCiAKICAgICAvLyBXZWJDb3JlOjpWaXNpdGVkTGlua1N0cmF0ZWd5
Ci0gICAgdmlydHVhbCBib29sIGlzTGlua1Zpc2l0ZWQoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6
OkxpbmtIYXNoLCBjb25zdCBXZWJDb3JlOjpVUkwmIGJhc2VVUkwsIGNvbnN0IFdURjo6QXRvbWlj
U3RyaW5nJiBhdHRyaWJ1dGVVUkwpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBhZGRWaXNp
dGVkTGluayhXZWJDb3JlOjpQYWdlKiwgV2ViQ29yZTo6TGlua0hhc2gpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgYm9vbCBpc0xpbmtWaXNpdGVkKFdlYkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpMaW5r
SGFzaCwgY29uc3QgV2ViQ29yZTo6VVJMJiBiYXNlVVJMLCBjb25zdCBXVEY6OkF0b21pY1N0cmlu
ZyYgYXR0cmlidXRlVVJMKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkVmlzaXRlZExp
bmsoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OkxpbmtIYXNoKSBvdmVycmlkZTsKICAgICAKICAg
ICAvLyBXZWJDb3JlOjpQYXN0ZWJvYXJkU3RyYXRlZ3kKICNpZiBQTEFURk9STShJT1MpCi0gICAg
dmlydHVhbCB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRX
ZWJDb250ZW50JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJk
KGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRJbWFnZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25z
dCBTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGludCBnZXRQYXN0ZWJvYXJkSXRlbXND
b3VudCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIHJlYWRTdHJpbmdGcm9tUGFzdGVi
b2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IHJlYWRCdWZmZXJG
cm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6VVJMIHJlYWRVUkxGcm9tUGFzdGVib2FyZChp
bnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgbG9uZyBjaGFuZ2VDb3VudCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB3cml0
ZVRvUGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQ
YXN0ZWJvYXJkSW1hZ2UmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd3JpdGVUb1Bhc3Rl
Ym9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBpbnQgZ2V0UGFzdGVib2FyZEl0ZW1zQ291bnQoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFN0cmluZyByZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBj
b25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiByZWFkQnVmZmVyRnJvbVBhc3RlYm9hcmQoaW50
IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIFdlYkNvcmU6OlVSTCByZWFkVVJMRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBjb25zdCBT
dHJpbmcmIHBhc3RlYm9hcmRUeXBlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGxvbmcgY2hhbmdl
Q291bnQoKSBvdmVycmlkZTsKICNlbmRpZgotICAgIHZpcnR1YWwgdm9pZCBnZXRUeXBlcyhWZWN0
b3I8U3RyaW5nPiYgdHlwZXMsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGJ1ZmZlckZv
clR5cGUoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGdldFBhdGhuYW1lc0ZvclR5cGUo
VmVjdG9yPFN0cmluZz4mIHBhdGhuYW1lcywgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwg
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJp
bmcgc3RyaW5nRm9yVHlwZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJp
bmcmIHBhc3RlYm9hcmROYW1lKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGxvbmcgY2hhbmdlQ291
bnQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBT
dHJpbmcgdW5pcXVlTmFtZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6Q29sb3Ig
Y29sb3IoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBXZWJDb3JlOjpVUkwgdXJsKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBnZXRUeXBlcyhWZWN0b3I8U3RyaW5nPiYgdHlwZXMsIGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGJ1ZmZlckZvclR5cGUoY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGdldFBhdGhuYW1lc0ZvclR5cGUoVmVjdG9yPFN0cmluZz4mIHBhdGhuYW1l
cywgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
TmFtZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgc3RyaW5nRm9yVHlwZShjb25zdCBT
dHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGxvbmcgY2hhbmdlQ291bnQoY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgdW5pcXVlTmFtZSgpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6Q29sb3IgY29sb3IoY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpVUkwgdXJsKGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBsb25nIGFk
ZFR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXN0ZWJvYXJkVHlwZXMsIGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZE5hbWUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgbG9uZyBzZXRUeXBlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcGFzdGVib2FyZFR5cGVzLCBjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmROYW1lKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGxvbmcgY29weShjb25zdCBTdHJpbmcm
IGZyb21QYXN0ZWJvYXJkLCBjb25zdCBTdHJpbmcmIHRvUGFzdGVib2FyZCkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBsb25nIHNldEJ1ZmZlckZvclR5cGUoUGFzc1JlZlB0cjxXZWJDb3JlOjpTaGFy
ZWRCdWZmZXI+LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGxvbmcgc2V0UGF0aG5hbWVzRm9y
VHlwZShjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUs
IGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgbG9u
ZyBzZXRTdHJpbmdGb3JUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgbG9uZyBhZGRUeXBlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFzdGVib2FyZFR5cGVzLCBj
b25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGxvbmcg
c2V0VHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhc3RlYm9hcmRUeXBlcywgY29uc3QgU3Ry
aW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBsb25nIGNvcHkoY29u
c3QgU3RyaW5nJiBmcm9tUGFzdGVib2FyZCwgY29uc3QgU3RyaW5nJiB0b1Bhc3RlYm9hcmQpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgbG9uZyBzZXRCdWZmZXJGb3JUeXBlKFBhc3NSZWZQdHI8V2Vi
Q29yZTo6U2hhcmVkQnVmZmVyPiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBsb25nIHNldFBh
dGhuYW1lc0ZvclR5cGUoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGxvbmcgc2V0U3RyaW5nRm9yVHlwZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
IHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsK
IH07CiAKICNlbmRpZiAvLyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXNfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGll
bnQuaAppbmRleCBlNDk2NTFhLi5lYjc0MzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaApAQCAt
MzUsMTYgKzM1LDE2IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBXZWJQcm9ncmVzc1RyYWNrZXJD
bGllbnQoV2ViVmlldyopOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBwcm9ncmVzc1Ry
YWNrZXJEZXN0cm95ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvZ3Jlc3NUcmFj
a2VyRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAgICAgCiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICB2
aXJ0dWFsIHZvaWQgd2lsbENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCkgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIGRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHdpbGxDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpIG92ZXJyaWRlOwogI2Vu
ZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgcHJvZ3Jlc3NTdGFydGVkKFdlYkNvcmU6OkZyYW1lJiBv
cmlnaW5hdGluZ1Byb2dyZXNzRnJhbWUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBwcm9n
cmVzc0VzdGltYXRlQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSYgb3JpZ2luYXRpbmdQcm9ncmVzc0Zy
YW1lKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcHJvZ3Jlc3NGaW5pc2hlZChXZWJDb3Jl
OjpGcmFtZSYgb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgcHJvZ3Jlc3NTdGFydGVkKFdlYkNvcmU6OkZyYW1lJiBvcmlnaW5hdGluZ1Byb2dyZXNz
RnJhbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwcm9ncmVzc0VzdGltYXRlQ2hhbmdl
ZChXZWJDb3JlOjpGcmFtZSYgb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcHJvZ3Jlc3NGaW5pc2hlZChXZWJDb3JlOjpGcmFtZSYgb3JpZ2luYXRp
bmdQcm9ncmVzc0ZyYW1lKSBvdmVycmlkZTsKIAogICAgIFdlYlZpZXcgKm1fd2ViVmlldzsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJVc2VyTWVk
aWFDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRp
YUNsaWVudC5oCmluZGV4IGNiNWVhNzEuLmYxNjI4ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlVzZXJNZWRpYUNsaWVudC5oCkBAIC00NCw5ICs0
NCw5IEBAIHB1YmxpYzoKICAgICB+V2ViVXNlck1lZGlhQ2xpZW50KCk7CiAKICAgICAvLyBVc2Vy
TWVkaWFDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oUGFzc1JlZlB0
cjxXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0PikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGNhbmNlbFJlcXVlc3QoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdCopIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBwYWdlRGVzdHJveWVkKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4p
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxSZXF1ZXN0KFdlYkNvcmU6OlVzZXJN
ZWRpYVJlcXVlc3QqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgp
IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIFdlYlZpZXcqIG1fd2ViVmlldzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViU2NyaXB0RGVidWdnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViU2NyaXB0RGVidWdnZXIuaAppbmRleCA0ZTZkOGEyLi4y
NTBkNzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlNjcmlwdERl
YnVnZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJTY3JpcHREZWJ1Z2dl
ci5oCkBAIC01NSw5ICs1NSw5IEBAIHB1YmxpYzoKICAgICBKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX2dsb2JhbE9iamVjdC5nZXQoKTsgfQogCiBw
cml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VQYXJzZWQoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OlNvdXJjZVByb3ZpZGVyKiwgaW50IGVycm9yTGluZSwgY29uc3QgV1RGOjpTdHJpbmcmIGVy
cm9yTXNnKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlUGF1c2UoSlNDOjpEZWJ1
Z2dlcjo6UmVhc29uRm9yUGF1c2UsIEpTQzo6SlNHbG9iYWxPYmplY3QqKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgbmVlZFBhdXNlSGFuZGxpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCopIE9W
RVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc291cmNlUGFyc2VkKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpTb3VyY2VQcm92aWRlciosIGludCBlcnJvckxpbmUsIGNvbnN0
IFdURjo6U3RyaW5nJiBlcnJvck1zZykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGhhbmRs
ZVBhdXNlKEpTQzo6RGVidWdnZXI6OlJlYXNvbkZvclBhdXNlLCBKU0M6OkpTR2xvYmFsT2JqZWN0
Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIG5lZWRQYXVzZUhhbmRsaW5nKEpTQzo6SlNH
bG9iYWxPYmplY3QqKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBib29sIG1fY2Fs
bGluZ0RlbGVnYXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXdEYXRhLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKaW5k
ZXggOTAyNzQ3OS4uZDQzOWRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0Rh
dGEuaApAQCAtODgsNyArODgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViVmlld0xheWVy
Rmx1c2hTY2hlZHVsZXIoKSB7IH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgcnVuTG9v
cE9ic2VydmVyQ2FsbGJhY2soKSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBydW5Mb29wT2Jz
ZXJ2ZXJDYWxsYmFjaygpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBSZWZQdHI8TGF5ZXJGbHVz
aENvbnRyb2xsZXI+IHByb3RlY3RvciA9IG1fZmx1c2hDb250cm9sbGVyOwogICAgICAgICBXZWJD
b3JlOjpMYXllckZsdXNoU2NoZWR1bGVyOjpydW5Mb29wT2JzZXJ2ZXJDYWxsYmFjaygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQWNjZXNzaWJsZURvY3VtZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9BY2Nlc3NpYmxlRG9jdW1lbnQuaAppbmRleCBmNmNhMzlmLi5kNDQ5ODgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9BY2Nlc3NpYmxlRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L3dpbi9BY2Nlc3NpYmxlRG9jdW1lbnQuaApAQCAtMzQsOCArMzQsOCBAQCBw
dWJsaWM6CiAgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CiAKIHByb3Rl
Y3RlZDoKLSAgICB2aXJ0dWFsIGxvbmcgcm9sZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgbG9uZyBzdGF0ZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgbG9uZyByb2xlKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBsb25nIHN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7
CiB9OwogCiAjZW5kaWYgLy8gQWNjZXNzaWJsZURvY3VtZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRl
eCAxYjliNzQ2Li41NmIyMGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTQtMDEtMTYgIFBldGVyIE1vbG5hciAgPHBtb2xuYXIudS1zemVnZWRAcGFydG5lci5zYW1zdW5n
LmNvbT4KKworICAgICAgICBSZW1vdmUgd29ya2Fyb3VuZCBmb3IgY29tcGlsZXJzIG5vdCBzdXBw
b3J0aW5nIGV4cGxpY2l0IG92ZXJyaWRlIGNvbnRyb2wKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzExMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdyBhbGwgY29tcGlsZXJzIHN1cHBvcnQgZXhwbGlj
aXQgb3ZlcnJpZGUgY29udHJvbCwgdGhpcyB3b3JrYXJvdW5kIGNhbiBiZSByZW1vdmVkLgorCisg
ICAgICAgICogQWNjZXNzaWJsZURvY3VtZW50Lmg6CisgICAgICAgICogRnVsbHNjcmVlblZpZGVv
Q29udHJvbGxlci5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2Vi
SGlzdG9yeS5oOgorCiAyMDE0LTAxLTEwICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgVHdlYWsgUHJvZ3Jlc3NUcmFja2VyQ2xpZW50IGZ1bmN0aW9ucwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmNwcAppbmRl
eCBkZjMzNmE2Li43ZmY4NjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9GdWxsc2Ny
ZWVuVmlkZW9Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9GdWxsc2NyZWVu
VmlkZW9Db250cm9sbGVyLmNwcApAQCAtMTk2LDcgKzE5Niw3IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBib29sIHBsYXRmb3JtQ0FMYXllckRyYXdzQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQ0FMYXllckxheWVyRGlkRGlzcGxheShQ
bGF0Zm9ybUxheWVyKikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQ0FMYXllckRpZENy
ZWF0ZVRpbGVzKGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JikgeyB9Ci0gICAgdmlydHVhbCBmbG9h
dCBwbGF0Zm9ybUNBTGF5ZXJEZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0
dXJuIDE7IH0KKyAgICB2aXJ0dWFsIGZsb2F0IHBsYXRmb3JtQ0FMYXllckRldmljZVNjYWxlRmFj
dG9yKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMTsgfQogCiAgICAgRnVsbHNjcmVlblZpZGVv
Q29udHJvbGxlciogbV9wYXJlbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA0NjRlOWU0Li5kYTNlMTk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aApAQCAtMTQ2LDcgKzE0Niw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lO
KSAmJiBVU0UoQVZGT1VOREFUSU9OKQotICAgIHZpcnR1YWwgV2ViQ29yZTo6R3JhcGhpY3NEZXZp
Y2VBZGFwdGVyKiBncmFwaGljc0RldmljZUFkYXB0ZXIoKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIFdlYkNvcmU6OkdyYXBoaWNzRGV2aWNlQWRhcHRlciogZ3JhcGhpY3NEZXZpY2VBZGFw
dGVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxS
ZWN0SW50b1ZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IHsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgKaW5kZXggMzBkYWIwZi4uYTA2MTc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC01MiwxNTEgKzUy
LDE1MSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaGFzV2ViVmlldygpIGNvbnN0Owog
Ci0gICAgdmlydHVhbCB2b2lkIGZvcmNlTGF5b3V0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGZvcmNlTGF5b3V0KCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsK
IAotICAgIHZpcnR1YWwgdm9pZCBmcmFtZUxvYWRlckRlc3Ryb3llZCgpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBtYWtlUmVwcmVzZW50YXRpb24oV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIq
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZm9yY2VMYXlvdXRGb3JOb25IVE1MKCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGZyYW1lTG9hZGVyRGVzdHJveWVkKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIG1ha2VSZXByZXNlbnRhdGlvbihXZWJDb3JlOjpEb2N1bWVudExv
YWRlciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBmb3JjZUxheW91dEZvck5vbkhUTUwo
KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRDb3BpZXNPblNjcm9sbCgpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRDb3BpZXNPblNjcm9sbCgpIG92ZXJyaWRlOwogCi0g
ICAgdmlydHVhbCB2b2lkIGRldGFjaGVkRnJvbVBhcmVudDIoKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGV0YWNoZWRGcm9tUGFyZW50MygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBkZXRhY2hlZEZyb21QYXJlbnQyKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRldGFj
aGVkRnJvbVBhcmVudDMoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBjb252ZXJ0TWFp
blJlc291cmNlTG9hZFRvRG93bmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9E
b3dubG9hZChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgYXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3QodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYpOwogCi0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFNlbmRS
ZXF1ZXN0KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiByZWRpcmVjdFJlc3BvbnNlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
VXNlQ3JlZGVudGlhbFN0b3JhZ2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDYW5jZWxBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UoV2Vi
Q29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaERpZEZhaWxMb2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3Bv
bnNlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3Jh
Z2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlQ29u
dGVudExlbmd0aChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgaW50IGRhdGFMZW5ndGgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aERpZEZpbmlzaExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZhaWxM
b2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIHNob3VsZENhY2hlUmVzcG9uc2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25z
dCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsb25nIGxvbmcgbGVuZ3RoKTsKIAotICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEhhbmRsZU9ubG9hZEV2ZW50cygpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENhbmNl
bENsaWVudFJlZGlyZWN0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2ls
bFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBXZWJDb3JlOjpVUkwmLCBkb3VibGUgaW50ZXJ2
YWwsIGRvdWJsZSBmaXJlRGF0ZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
RGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoRGlkUHVzaFN0YXRlV2l0aGluUGFnZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERpZFJlcGxhY2VTdGF0ZVdpdGhpblBhZ2UoKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRQb3BTdGF0ZVdpdGhpblBhZ2UoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsQ2xvc2UoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlSWNvbigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKGNvbnN0IFdlYkNvcmU6OlN0cmluZ1dpdGhE
aXJlY3Rpb24mKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VJ
Y29ucyhXZWJDb3JlOjpJY29uVHlwZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoRGlkQ29tbWl0TG9hZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERp
ZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZhaWxMb2FkKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlRXJyb3ImKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRG
aW5pc2hEb2N1bWVudExvYWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hE
aWRGaW5pc2hMb2FkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkTGF5
b3V0KFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZXMpIE9WRVJSSURFOwotCi0gICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZy
YW1lUG9saWN5RnVuY3Rpb24pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERl
Y2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0
aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpGb3JtU3RhdGU+LCBjb25zdCBXVEY6OlN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpGcmFt
ZVBvbGljeUZ1bmN0aW9uKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rp
b24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPFdlYkNvcmU6
OkZvcm1TdGF0ZT4sIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24pIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpIE9WRVJSSURFOwotCi0gICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoVW5hYmxlVG9JbXBsZW1lbnRQb2xpY3koY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciYpIE9WRVJSSURFOwotCi0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFNl
bmRTdWJtaXRFdmVudChQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4pIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKFBhc3NSZWZQdHI8V2ViQ29y
ZTo6Rm9ybVN0YXRlPiwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbikgT1ZFUlJJREU7Ci0K
LSAgICB2aXJ0dWFsIHZvaWQgcmV2ZXJ0VG9Qcm92aXNpb25hbFN0YXRlKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGRpc3BhdGNoRGlkTG9hZFJl
c291cmNlRnJvbU1lbW9yeUNhY2hlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYs
IGludCBsZW5ndGgpIE9WRVJSSURFOwotCi0gICAgdmlydHVhbCBXZWJDb3JlOjpGcmFtZSogZGlz
cGF0Y2hDcmVhdGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hTaG93KCkgT1ZFUlJJREU7Ci0KLSAgICB2aXJ0
dWFsIHZvaWQgc2V0TWFpbkRvY3VtZW50RXJyb3IoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IHNldE1haW5GcmFtZURvY3VtZW50UmVhZHkoYm9vbCkgT1ZFUlJJREU7Ci0KLSAgICB2aXJ0dWFs
IHZvaWQgc3RhcnREb3dubG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUgPSBTdHJpbmcoKSkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoRGlkSGFuZGxlT25sb2FkRXZlbnRzKCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2FuY2VsQ2xpZW50
UmVkaXJlY3QoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsUGVyZm9y
bUNsaWVudFJlZGlyZWN0KGNvbnN0IFdlYkNvcmU6OlVSTCYsIGRvdWJsZSBpbnRlcnZhbCwgZG91
YmxlIGZpcmVEYXRlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDaGFu
Z2VMb2NhdGlvbldpdGhpblBhZ2UoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hEaWRQdXNoU3RhdGVXaXRoaW5QYWdlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoRGlkUmVwbGFjZVN0YXRlV2l0aGluUGFnZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERpZFBvcFN0YXRlV2l0aGluUGFnZSgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaFdpbGxDbG9zZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaERpZFJlY2VpdmVJY29uKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nV2l0aERpcmVjdGlv
biYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENoYW5nZUljb25zKFdl
YkNvcmU6Okljb25UeXBlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRD
b21taXRMb2FkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmFpbExvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpbmlzaERv
Y3VtZW50TG9hZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpbmlz
aExvYWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRMYXlvdXQoV2Vi
Q29yZTo6TGF5b3V0TWlsZXN0b25lcykgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6RnJhbWVQb2xp
Y3lGdW5jdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yTmV3V2luZG93QWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1T
dGF0ZT4sIGNvbnN0IFdURjo6U3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OkZyYW1lUG9saWN5
RnVuY3Rpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0
YXRlPiwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlzcGF0Y2hVbmFibGVUb0ltcGxlbWVudFBvbGljeShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yJikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsU2VuZFN1Ym1p
dEV2ZW50KFBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoV2lsbFN1Ym1pdEZvcm0oUGFzc1JlZlB0cjxXZWJDb3JlOjpGb3Jt
U3RhdGU+LCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uKSBvdmVycmlkZTsKKworICAgIHZp
cnR1YWwgdm9pZCByZXZlcnRUb1Byb3Zpc2lvbmFsU3RhdGUoV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZGlzcGF0Y2hEaWRMb2FkUmVzb3VyY2VG
cm9tTWVtb3J5Q2FjaGUoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgaW50IGxl
bmd0aCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENy
ZWF0ZVBhZ2UoY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaFNob3coKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9p
ZCBzZXRNYWluRG9jdW1lbnRFcnJvcihXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TWFp
bkZyYW1lRG9jdW1lbnRSZWFkeShib29sKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBz
dGFydERvd25sb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmlu
ZyYgc3VnZ2VzdGVkTmFtZSA9IFN0cmluZygpKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBwcm9ncmVzc1N0YXJ0ZWQoV2ViQ29yZTo6RnJhbWUmKTsKICAgICB2aXJ0dWFsIHZvaWQgcHJv
Z3Jlc3NFc3RpbWF0ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUmKTsKICAgICB2aXJ0dWFsIHZvaWQg
cHJvZ3Jlc3NGaW5pc2hlZChXZWJDb3JlOjpGcmFtZSYpOwogCi0gICAgdmlydHVhbCB2b2lkIGNv
bW1pdHRlZExvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBjaGFyKiwgaW50KSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZmluaXNoZWRMb2FkaW5nKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNvbW1pdHRlZExvYWQoV2Vi
Q29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBjaGFyKiwgaW50KSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgZmluaXNoZWRMb2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKikgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbENoYW5nZVRpdGxlKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVRpdGxlKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxD
aGFuZ2VUaXRsZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciopIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBkaWRDaGFuZ2VUaXRsZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciopIG92ZXJyaWRl
OwogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdsb2JhbEhpc3RvcnkoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2xvYmFsSGlzdG9yeVJlZGlyZWN0TGlua3MoKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkR29Ub0hpc3RvcnlJdGVtKFdlYkNvcmU6Okhpc3Rv
cnlJdGVtKikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BMb2Fk
aW5nRm9ySGlzdG9yeUl0ZW0oV2ViQ29yZTo6SGlzdG9yeUl0ZW0qKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2xvYmFsSGlzdG9yeUl0ZW1Gb3JQYWdlKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdsb2JhbEhpc3RvcnkoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2xvYmFsSGlzdG9yeVJlZGlyZWN0TGlua3MoKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkR29Ub0hpc3RvcnlJdGVtKFdlYkNvcmU6Okhpc3Rv
cnlJdGVtKikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BMb2Fk
aW5nRm9ySGlzdG9yeUl0ZW0oV2ViQ29yZTo6SGlzdG9yeUl0ZW0qKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2xvYmFsSGlzdG9yeUl0ZW1Gb3JQYWdlKCkgb3ZlcnJp
ZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnQoV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4qLCBjb25zdCBXZWJDb3JlOjpVUkwmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkRGV0ZWN0WFNTKGNvbnN0IFdlYkNvcmU6OlVSTCYsIGJvb2wgZGlkQmxvY2tFbnRp
cmVQYWdlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29u
dGVudCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnQo
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBjb25zdCBXZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRGV0ZWN0WFNTKGNvbnN0IFdlYkNvcmU6OlVSTCYsIGJvb2wg
ZGlkQmxvY2tFbnRpcmVQYWdlKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEVy
cm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZmls
ZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRs
ZUxvYWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNhbm5vdFNo
b3dVUkxFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFu
Z2VFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRGYWxsQmFjayhj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29s
IHNob3VsZEZhbGxCYWNrKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsK
IAotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdXNlckFnZW50KGNvbnN0IFdlYkNvcmU6OlVSTCYp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdXNlckFnZW50KGNvbnN0IFdlYkNv
cmU6OlVSTCYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyPiBjcmVhdGVEb2N1bWVudExvYWRlcihjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YSYpOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRUaXRsZShjb25zdCBXZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uJiwgY29uc3Qg
V2ViQ29yZTo6VVJMJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2F2ZVBsYXRmb3JtRGF0YVRvQ2Fj
aGVkRnJhbWUoV2ViQ29yZTo6Q2FjaGVkRnJhbWUqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkRnJvbUNhY2hlZEZyYW1lKFdlYkNvcmU6OkNhY2hlZEZy
YW1lKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRlZEZv
ck5ld1BhZ2UoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVBsYXRmb3JtRGF0YVRv
Q2FjaGVkRnJhbWUoV2ViQ29yZTo6Q2FjaGVkRnJhbWUqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkRnJvbUNhY2hlZEZyYW1lKFdlYkNvcmU6OkNhY2hl
ZEZyYW1lKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRl
ZEZvck5ld1BhZ2UoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBjYW5IYW5kbGVSZXF1
ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBjYW5TaG93TUlNRVR5cGUoY29uc3QgV1RGOjpTdHJpbmcmIE1JTUVUeXBl
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgY2FuU2hvd01JTUVUeXBlQXNIVE1M
KGNvbnN0IFdURjo6U3RyaW5nJiBNSU1FVHlwZSkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBib29sIHJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKGNvbnN0IFdURjo6U3RyaW5n
JiBVUkxTY2hlbWUpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZ2Vu
ZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUoY29uc3QgV1RGOjpTdHJpbmcmIFVSTFNjaGVtZSkg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGNhbkhhbmRsZVJlcXVlc3QoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBi
b29sIGNhblNob3dNSU1FVHlwZShjb25zdCBXVEY6OlN0cmluZyYgTUlNRVR5cGUpIGNvbnN0IG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjYW5TaG93TUlNRVR5cGVBc0hUTUwoY29uc3QgV1RG
OjpTdHJpbmcmIE1JTUVUeXBlKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVw
cmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUoY29uc3QgV1RGOjpTdHJpbmcmIFVSTFNjaGVt
ZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBnZW5lcmF0ZWRNSU1F
VHlwZUZvclVSTFNjaGVtZShjb25zdCBXVEY6OlN0cmluZyYgVVJMU2NoZW1lKSBjb25zdCBvdmVy
cmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBmcmFtZUxvYWRDb21wbGV0ZWQoKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgc2F2ZVZpZXdTdGF0ZVRvSXRlbShXZWJDb3JlOjpIaXN0b3J5SXRl
bSAqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZVZpZXdTdGF0ZSgpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBwcm92aXNpb25hbExvYWRTdGFydGVkKCkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgcHJlcGFyZUZvckRhdGFTb3VyY2VSZXBsYWNlbWVudCgpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBmcmFtZUxvYWRDb21wbGV0ZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2F2ZVZpZXdTdGF0ZVRvSXRlbShXZWJDb3JlOjpIaXN0b3J5SXRlbSAqKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZVZpZXdTdGF0ZSgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBwcm92aXNpb25hbExvYWRTdGFydGVkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGRpZEZpbmlzaExvYWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZUZv
ckRhdGFTb3VyY2VSZXBsYWNlbWVudCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGRp
ZFNhdmVUb1BhZ2VDYWNoZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN0b3Jl
RnJvbVBhZ2VDYWNoZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRTYXZlVG9QYWdl
Q2FjaGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVzdG9yZUZyb21QYWdlQ2Fj
aGUoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEJlY29tZUZyYW1l
c2V0KGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEJlY29tZUZy
YW1lc2V0KGJvb2wpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIGNhbkNhY2hlUGFnZSgp
IGNvbnN0OwogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBjcmVhdGVG
cmFtZShjb25zdCBXZWJDb3JlOjpVUkwmIHVybCwgY29uc3QgV1RGOjpTdHJpbmcmIG5hbWUsIFdl
YkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50LAotICAgICAgICBjb25z
dCBXVEY6OlN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2lu
V2lkdGgsIGludCBtYXJnaW5IZWlnaHQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxXZWJDb3JlOjpXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwg
V2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQqLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBW
ZWN0b3I8V1RGOjpTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0IFdU
Rjo6U3RyaW5nJiwgYm9vbCBsb2FkTWFudWFsbHkpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCByZWNyZWF0ZVBsdWdpbihXZWJDb3JlOjpXaWRnZXQqKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgcmVkaXJlY3REYXRhVG9QbHVnaW4oV2ViQ29yZTo6V2lkZ2V0KiBwbHVnaW5XaWRn
ZXQpIE9WRVJSSURFOworICAgICAgICBjb25zdCBXVEY6OlN0cmluZyYgcmVmZXJyZXIsIGJvb2wg
YWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgsIGludCBtYXJnaW5IZWlnaHQpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGNyZWF0ZVBsdWdp
bihjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQqLCBj
b25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgY29uc3QgVmVj
dG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0IFdURjo6U3RyaW5nJiwgYm9vbCBsb2FkTWFudWFsbHkp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZWNyZWF0ZVBsdWdpbihXZWJDb3JlOjpXaWRn
ZXQqKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVkaXJlY3REYXRhVG9QbHVnaW4o
V2ViQ29yZTo6V2lkZ2V0KiBwbHVnaW5XaWRnZXQpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OldpZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6SFRNTEFwcGxldEVsZW1lbnQqLCBjb25zdCBXZWJD
b3JlOjpVUkwmIGJhc2VVUkwsIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtTmFtZXMs
IGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtVmFsdWVzKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0
KGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1MQXBwbGV0RWxlbWVudCosIGNv
bnN0IFdlYkNvcmU6OlVSTCYgYmFzZVVSTCwgY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYgcGFy
YW1OYW1lcywgY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYgcGFyYW1WYWx1ZXMpIG92ZXJyaWRl
OwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpPYmplY3RDb250ZW50VHlwZSBvYmplY3RDb250ZW50
VHlwZShjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBXVEY6OlN0cmluZyYgbWltZVR5cGUsIGJv
b2wgc2hvdWxkUHJlZmVyUGx1Z0luc0ZvckltYWdlcykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBX
VEY6OlN0cmluZyBvdmVycmlkZU1lZGlhVHlwZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgV2ViQ29yZTo6T2JqZWN0Q29udGVudFR5cGUgb2JqZWN0Q29udGVudFR5cGUoY29uc3QgV2Vi
Q29yZTo6VVJMJiwgY29uc3QgV1RGOjpTdHJpbmcmIG1pbWVUeXBlLCBib29sIHNob3VsZFByZWZl
clBsdWdJbnNGb3JJbWFnZXMpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgb3Zl
cnJpZGVNZWRpYVR5cGUoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERpZENsZWFyV2luZG93T2JqZWN0SW5Xb3JsZChXZWJDb3JlOjpET01XcmFwcGVyV29ybGQm
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFBlcmZvcm1GaXJzdE5hdmlnYXRpb24oKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDbGVhcldpbmRvd09i
amVjdEluV29ybGQoV2ViQ29yZTo6RE9NV3JhcHBlcldvcmxkJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBkaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAg
ICBDT01QdHI8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lcj4gc2V0VXBQb2xpY3lMaXN0ZW5lcihXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uKTsKICAgICB2b2lkIHJlY2VpdmVkUG9saWN5RGVjaXNp
b24oV2ViQ29yZTo6UG9saWN5QWN0aW9uKTsKIAotICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckZv
ckljb25Ob3RpZmljYXRpb24oYm9vbCBsaXN0ZW4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCByZWdpc3RlckZvckljb25Ob3RpZmljYXRpb24oYm9vbCBsaXN0ZW4pIG92ZXJyaWRlOwogCiAg
ICAgdmlydHVhbCBib29sIHNob3VsZEFsd2F5c1VzZVBsdWdpbkRvY3VtZW50KGNvbnN0IFdURjo6
U3RyaW5nJiBtaW1lVHlwZSkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAppbmRleCBk
NDgwNjk2Li43NTIyMThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC00NywxMSArNDcs
MTEgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tl
ZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIGNvbnN0IG92ZXJyaWRlOwog
I2lmIFVTRShDRk5FVFdPUkspCi0gICAgdmlydHVhbCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAjZW5kaWYKLSAgICB2aXJ0dWFsIFN0cmluZyByZWZlcnJlcigpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgU3RyaW5nIHJlZmVycmVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBTdHJpbmcgdXNlckFnZW50KCkgY29uc3QgeyByZXR1cm4gbV91c2VyQWdlbnQ7IH0KIAog
ICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oIGIvU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXggMTkwZTA3Mi4uMmExMjc1YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9y
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVj
dG9yQ2xpZW50LmgKQEAgLTEwOSw3ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVh
bCB2b2lkIHNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCk7CiAgICAgdmly
dHVhbCB2b2lkIHNldEF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQpOwotICAgIHZpcnR1YWwg
dm9pZCBzZXRUb29sYmFySGVpZ2h0KHVuc2lnbmVkKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0VG9vbGJhckhlaWdodCh1bnNpZ25lZCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZv
aWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBXVEY6OlN0cmluZyYgbmV3VVJMKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViSGlzdG9yeS5oIGIvU291cmNlL1dlYktpdC93
aW4vV2ViSGlzdG9yeS5oCmluZGV4IDIwOGY3M2IuLmZkZDQyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkhpc3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJIaXN0
b3J5LmgKQEAgLTYwLDggKzYwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERN
RVRIT0RDQUxMVFlQRSBzZXRPcHRpb25hbFNoYXJlZEhpc3RvcnkoIAogICAgICAgICAvKiBbaW5d
ICovIElXZWJIaXN0b3J5KiBoaXN0b3J5KTsKICAgICAKLSAgICB2aXJ0dWFsIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgdW51c2VkMSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSB1bnVzZWQyKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIHVudXNlZDEoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgdW51c2VkMigpIG92ZXJyaWRlOwogICAgIAogICAgIHZpcnR1
YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBhZGRJdGVtcyggCiAgICAgICAgIC8qIFtpbl0g
Ki8gaW50IGl0ZW1Db3VudCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXggZGM5YTZmMi4uYzk3MTk4
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNC0wMS0xNiAgUGV0
ZXIgTW9sbmFyICA8cG1vbG5hci51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgorCisgICAg
ICAgIFJlbW92ZSB3b3JrYXJvdW5kIGZvciBjb21waWxlcnMgbm90IHN1cHBvcnRpbmcgZXhwbGlj
aXQgb3ZlcnJpZGUgY29udHJvbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI3MTExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTm93IGFsbCBjb21waWxlcnMgc3VwcG9ydCBleHBsaWNpdCBvdmVycmlkZSBj
b250cm9sLCB0aGlzIHdvcmthcm91bmQgY2FuIGJlIHJlbW92ZWQuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0NvbnRleHRNZW51Q2xpZW50V2luQ0UuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EcmFn
Q2xpZW50V2luQ0UuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5D
RS5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuaDoK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0V2luQ0UuaDoK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRXaW5DRS5oOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmg6CisKIDIwMTMtMTIt
MDMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBQdXNoIFJlbW90ZSBJbnNwZWN0b3IgZGVidWdnaW5nIGNvbm5lY3Rpb24gbWFu
YWdlbWVudCBpbnRvIEphdmFTY3JpcHRDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmggYi9Tb3VyY2UvV2ViS2l0L3dp
bmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKaW5kZXggMzRlMmE3MS4uMzE4
NDcyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRXaW5DRS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50V2luQ0UuaApAQCAtMzUsODQgKzM1LDg0IEBAIGNsYXNzIENocm9tZUNsaWVu
dFdpbkNFIDogcHVibGljIFdlYkNvcmU6OkNocm9tZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgQ2hy
b21lQ2xpZW50V2luQ0UoV2ViVmlldyogd2ViVmlldyk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY2hy
b21lRGVzdHJveWVkKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3ll
ZCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJl
Y3Qgd2luZG93UmVjdCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29y
ZTo6RmxvYXRSZWN0IHdpbmRvd1JlY3QoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgV2ViQ29y
ZTo6RmxvYXRSZWN0IHBhZ2VSZWN0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpG
bG9hdFJlY3QgcGFnZVJlY3QoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBmb2N1cygp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCkgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGZvY3VzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKSBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBjYW5UYWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNE
aXJlY3Rpb24pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB0YWtlRm9jdXMoV2ViQ29yZTo6
Rm9jdXNEaXJlY3Rpb24pIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjYW5UYWtlRm9jdXMo
V2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB0YWtl
Rm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2
b2lkIGZvY3VzZWRFbGVtZW50Q2hhbmdlZChXZWJDb3JlOjpFbGVtZW50KikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUqKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZEVsZW1lbnRDaGFuZ2VkKFdlYkNvcmU6OkVs
ZW1lbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZEZyYW1lQ2hhbmdlZChX
ZWJDb3JlOjpGcmFtZSopIG92ZXJyaWRlOwogCiAgICAgLy8gVGhlIEZyYW1lIHBvaW50ZXIgcHJv
dmlkZXMgdGhlIENocm9tZUNsaWVudCB3aXRoIGNvbnRleHQgYWJvdXQgd2hpY2gKICAgICAvLyBG
cmFtZSB3YW50cyB0byBjcmVhdGUgdGhlIG5ldyBQYWdlLiAgQWxzbywgdGhlIG5ld2x5IGNyZWF0
ZWQgd2luZG93CiAgICAgLy8gc2hvdWxkIG5vdCBiZSBzaG93biB0byB0aGUgdXNlciB1bnRpbCB0
aGUgQ2hyb21lQ2xpZW50IG9mIHRoZSBuZXdseQogICAgIC8vIGNyZWF0ZWQgUGFnZSBoYXMgaXRz
IHNob3cgbWV0aG9kIGNhbGxlZC4KLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdp
bmRvdyhXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBj
b25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25B
Y3Rpb24mKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2hvdygpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgV2ViQ29yZTo6UGFnZSogY3JlYXRlV2luZG93KFdlYkNvcmU6OkZyYW1lKiwgY29u
c3QgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1
cmVzJiwgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBzaG93KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuTW9k
YWwoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcnVuTW9kYWwoKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIGJvb2wgY2FuUnVuTW9kYWwoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
cnVuTW9kYWwoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sYmFyc1Zpc2li
bGUoYm9vbCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHRvb2xiYXJzVmlzaWJsZSgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sYmFyc1Zpc2libGUoYm9vbCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBib29sIHRvb2xiYXJzVmlzaWJsZSgpIG92ZXJyaWRlOwogCi0gICAg
dmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclZpc2libGUoYm9vbCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBib29sIHN0YXR1c2JhclZpc2libGUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0U3RhdHVzYmFyVmlzaWJsZShib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc3Rh
dHVzYmFyVmlzaWJsZSgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbGJh
cnNWaXNpYmxlKGJvb2wpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxiYXJzVmlz
aWJsZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxiYXJzVmlzaWJsZShi
b29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsYmFyc1Zpc2libGUoKSBvdmVy
cmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRNZW51YmFyVmlzaWJsZShib29sKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgbWVudWJhclZpc2libGUoKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0TWVudWJhclZpc2libGUoYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBi
b29sIG1lbnViYXJWaXNpYmxlKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UmVz
aXphYmxlKGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRSZXNpemFibGUoYm9v
bCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShXZWJD
b3JlOjpNZXNzYWdlU291cmNlLCBXZWJDb3JlOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFdURjo6U3Ry
aW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIs
IGNvbnN0IFdURjo6U3RyaW5nJiBzb3VyY2VJRCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGFkZE1lc3NhZ2VUb0NvbnNvbGUoV2ViQ29yZTo6TWVzc2FnZVNvdXJjZSwgV2ViQ29yZTo6TWVz
c2FnZUxldmVsLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJl
ciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBXVEY6OlN0cmluZyYgc291cmNlSUQpIG92
ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIFdlYkNvcmU6OkZyYW1lKikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3Qg
V1RGOjpTdHJpbmcmIG1lc3NhZ2UsIFdlYkNvcmU6OkZyYW1lKikgb3ZlcnJpZGU7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgY2xvc2VXaW5kb3dTb29uKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGNsb3NlV2luZG93U29vbigpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHJ1bkphdmFT
Y3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJikgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lKiwg
Y29uc3QgV1RGOjpTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNj
cmlwdFByb21wdChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBj
b25zdCBXVEY6OlN0cmluZyYgZGVmYXVsdFZhbHVlLCBXVEY6OlN0cmluZyYgcmVzdWx0KSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBXVEY6OlN0cmlu
ZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0
KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpLZXlib2FyZFVJTW9kZSBrZXlib2Fy
ZFVJTW9kZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQo
V2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6
U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQo
V2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29uc3QgV1RGOjpT
dHJpbmcmIGRlZmF1bHRWYWx1ZSwgV1RGOjpTdHJpbmcmIHJlc3VsdCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgV1RGOjpTdHJpbmcmKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgV2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKSBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCB3aW5kb3dSZXNpemVyUmVj
dCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCB3aW5kb3dS
ZXNpemVyUmVjdCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gTWV0aG9kcyB1c2VkIGJ5IEhv
c3RXaW5kb3cuCi0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiwgYm9vbCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRh
dGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6
OkludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qgcm9vdFZpZXdUb1NjcmVl
bihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQ
bGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUqLCBjb25z
dCBXZWJDb3JlOjpJbnRTaXplJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNj
cm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYs
IGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRS
b290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYsIGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRQb2ludCBzY3Jl
ZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xp
ZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURp
ZENoYW5nZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3IoY29u
c3QgV2ViQ29yZTo6Q3Vyc29yJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEN1cnNv
ckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKSBvdmVycmlkZTsKICAgICAvLyBFbmQgbWV0aG9k
cyB1c2VkIGJ5IEhvc3RXaW5kb3cuCiAKLSAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3Zl
ckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVy
RmxhZ3MpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVu
dChjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBXVEY6OlN0cmlu
ZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRUb29sVGlwKGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikgb3Zl
cnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKSBvdmVycmlkZTsKIAog
I2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0gICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJh
c2VRdW90YShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiBkYXRhYmFzZU5hbWUs
IFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscykgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGV4
Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiBk
YXRhYmFzZU5hbWUsIFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscykgb3ZlcnJpZGU7CiAjZW5kaWYK
IAogICAgIC8vIENhbGxiYWNrIGludm9rZWQgd2hlbiB0aGUgYXBwbGljYXRpb24gY2FjaGUgZmFp
bHMgdG8gc2F2ZSBhIGNhY2hlIG9iamVjdApAQCAtMTIwLDQ5ICsxMjAsNDkgQEAgcHVibGljOgog
ICAgIC8vIHNpemUgb3IgcGFzdCB0aGUgYW1vdW50IG9mIGZyZWUgc3BhY2Ugb24gdGhlIGRldmlj
ZS4KICAgICAvLyBUaGUgY2hyb21lIGNsaWVudCB3b3VsZCBuZWVkIHRvIHRha2Ugc29tZSBhY3Rp
b24gc3VjaCBhcyBldmljdGluZyBzb21lCiAgICAgLy8gb2xkIGNhY2hlcy4KLSAgICB2aXJ0dWFs
IHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNl
TmVlZGVkKSBvdmVycmlkZTsKIAogICAgIC8vIENhbGxiYWNrIGludm9rZWQgd2hlbiB0aGUgYXBw
bGljYXRpb24gY2FjaGUgb3JpZ2luIHF1b3RhIGlzIHJlYWNoZWQuIFRoaXMKICAgICAvLyBtZWFu
cyB0aGF0IHRoZSByZXNvdXJjZXMgYXR0ZW1wdGluZyB0byBiZSBjYWNoZWQgdmlhIHRoZSBtYW5p
ZmVzdCBhcmUKICAgICAvLyBtb3JlIHRoYW4gYWxsb3dlZCBvbiB0aGlzIG9yaWdpbi4gVGhpcyBj
YWxsYmFjayBhbGxvd3MgdGhlIGNocm9tZSBjbGllbnQKICAgICAvLyB0byB0YWtlIGFjdGlvbiwg
c3VjaCBhcyBwcm9tcHRpbmcgdGhlIHVzZXIgdG8gYXNrIHRvIGluY3JlYXNlIHRoZSBxdW90YQog
ICAgIC8vIGZvciB0aGlzIG9yaWdpbi4KLSAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90
YWxTcGFjZU5lZWRlZCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNh
dGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRv
dGFsU3BhY2VOZWVkZWQpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5l
bChXZWJDb3JlOjpGcmFtZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUNob29zZXI+KSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lKiwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nlcj4pIG92ZXJyaWRlOwogICAgIC8vIEFzeW5jaHJv
bm91cyByZXF1ZXN0IHRvIGxvYWQgYW4gaWNvbiBmb3Igc3BlY2lmaWVkIGZpbGVuYW1lcy4KLSAg
ICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+
JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6Rmls
ZUljb25Mb2FkZXIqKSBvdmVycmlkZTsKIAogICAgIC8vIE5vdGlmaWNhdGlvbiB0aGF0IHRoZSBn
aXZlbiBmb3JtIGVsZW1lbnQgaGFzIGNoYW5nZWQuIFRoaXMgZnVuY3Rpb24KICAgICAvLyB3aWxs
IGJlIGNhbGxlZCBmcmVxdWVudGx5LCBzbyBoYW5kbGluZyBzaG91bGQgYmUgdmVyeSBmYXN0Lgot
ICAgIHZpcnR1YWwgdm9pZCBmb3JtU3RhdGVEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6Tm9kZSop
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBmb3JtU3RhdGVEaWRDaGFuZ2UoY29uc3QgV2Vi
Q29yZTo6Tm9kZSopIG92ZXJyaWRlOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIC8vIFBhc3MgMCBhcyB0aGUgR3JhcGhpY3NMYXllciB0byBkZXRhdGNoIHRoZSByb290
IGxheWVyLgotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3Jl
OjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgLy8gU2V0cyBhIGZsYWcgdG8gc3BlY2lmeSB0
aGF0IHRoZSBuZXh0IHRpbWUgY29udGVudCBpcyBkcmF3biB0byB0aGUgd2luZG93LAogICAgIC8v
IHRoZSBjaGFuZ2VzIGFwcGVhciBvbiB0aGUgc2NyZWVuIGluIHN5bmNocm9ueSB3aXRoIHVwZGF0
ZXMgdG8gR3JhcGhpY3NMYXllcnMuCi0gICAgdmlydHVhbCB2b2lkIHNldE5lZWRzT25lU2hvdERy
YXdpbmdTeW5jaHJvbml6YXRpb24oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVl
ZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpIG92ZXJyaWRlOwogICAgIC8vIFNldHMg
YSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUgdmlldyBuZWVkcyB0byBiZSB1cGRhdGVkLCBzbyB3
ZSBuZWVkCiAgICAgLy8gdG8gZG8gYW4gZWFnZXIgbGF5b3V0IGJlZm9yZSB0aGUgZHJhd2luZy4K
LSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBvdmVy
cmlkZTsKICNlbmRpZgogCi0gICAgdmlydHVhbCB2b2lkIHNldExhc3RTZXRDdXJzb3JUb0N1cnJl
bnRDdXJzb3IoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgQVhTdGFydEZyYW1lTG9hZCgp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBBWEZpbmlzaEZyYW1lTG9hZCgpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBzZXRMYXN0U2V0Q3Vyc29yVG9DdXJyZW50Q3Vyc29yKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIEFYU3RhcnRGcmFtZUxvYWQoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgQVhGaW5pc2hGcmFtZUxvYWQoKSBvdmVycmlkZTsKIAogI2lmIEVOQUJM
RShUT1VDSF9FVkVOVFMpCi0gICAgdmlydHVhbCB2b2lkIG5lZWRUb3VjaEV2ZW50cyhib29sKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbmVlZFRvdWNoRXZlbnRzKGJvb2wpIG92ZXJyaWRl
OwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25J
c05hdHVyYWwoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVu
dEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9v
bCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVD
bGllbnQqKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51
Q2xpZW50KikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0
aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHNlbGVj
dEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29y
ZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQYXNzUmVm
UHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNv
cmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lk
IG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIE9WRVJSSURFIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSBvdmVy
cmlkZSB7IH0KIAogcHJpdmF0ZToKICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50V2lu
Q0UuaCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGll
bnRXaW5DRS5oCmluZGV4IDExZTk2ZjguLjEwNTU1ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRXaW5DRS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRXaW5DRS5o
CkBAIC0zNSwxNyArMzUsMTcgQEAgY2xhc3MgQ29udGV4dE1lbnVDbGllbnRXaW5DRSA6IHB1Ymxp
YyBXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudCB7CiBwdWJsaWM6CiAgICAgQ29udGV4dE1lbnVD
bGllbnRXaW5DRShXZWJWaWV3Kik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVEZXN0
cm95ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVEZXN0cm95ZWQo
KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgUGFzc093blB0cjxXZWJDb3JlOjpDb250ZXh0TWVu
dT4gY3VzdG9taXplTWVudShQYXNzT3duUHRyPFdlYkNvcmU6OkNvbnRleHRNZW51PikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51SXRlbVNlbGVjdGVkKFdlYkNvcmU6OkNv
bnRleHRNZW51SXRlbSosIGNvbnN0IFdlYkNvcmU6OkNvbnRleHRNZW51KikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBQYXNzT3duUHRyPFdlYkNvcmU6OkNvbnRleHRNZW51PiBjdXN0b21pemVNZW51
KFBhc3NPd25QdHI8V2ViQ29yZTo6Q29udGV4dE1lbnU+KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgY29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtKiwg
Y29uc3QgV2ViQ29yZTo6Q29udGV4dE1lbnUqKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9p
ZCBkb3dubG9hZFVSTChjb25zdCBXZWJDb3JlOjpVUkwmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgc2VhcmNoV2l0aEdvb2dsZShjb25zdCBXZWJDb3JlOjpGcmFtZSopIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBsb29rVXBJbkRpY3Rpb25hcnkoV2ViQ29yZTo6RnJhbWUqKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3BlYWsoY29uc3QgV1RGOjpTdHJpbmcmKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcFNwZWFraW5nKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBib29sIGlzU3BlYWtpbmcoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZG93bmxvYWRV
UkwoY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNlYXJj
aFdpdGhHb29nbGUoY29uc3QgV2ViQ29yZTo6RnJhbWUqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgbG9va1VwSW5EaWN0aW9uYXJ5KFdlYkNvcmU6OkZyYW1lKikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHNwZWFrKGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHN0b3BTcGVha2luZygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1Nw
ZWFraW5nKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50
V2luQ0UuaCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudFdp
bkNFLmgKaW5kZXggYTQ4NTk0Mi4uOGJhMWM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
aW5jZS9XZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50V2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRXaW5DRS5oCkBAIC0zMSwxNSArMzEsMTUg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIERyYWdDbGllbnRXaW5DRSA6IHB1YmxpYyBX
ZWJDb3JlOjpEcmFnQ2xpZW50IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFBlcmZv
cm1EcmFnRGVzdGluYXRpb25BY3Rpb24oV2ViQ29yZTo6RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLCBX
ZWJDb3JlOjpEcmFnRGF0YSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9y
bURyYWdTb3VyY2VBY3Rpb24oV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmLCBXZWJDb3JlOjpDbGlwYm9hcmQmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IFdlYkNvcmU6OkRyYWdEZXN0aW5hdGlvbkFjdGlvbiBhY3Rpb25NYXNrRm9yRHJhZyhXZWJDb3Jl
OjpEcmFnRGF0YSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9ybURyYWdE
ZXN0aW5hdGlvbkFjdGlvbihXZWJDb3JlOjpEcmFnRGVzdGluYXRpb25BY3Rpb24sIFdlYkNvcmU6
OkRyYWdEYXRhJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtRHJhZ1Nv
dXJjZUFjdGlvbihXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYsIFdlYkNvcmU6OkNsaXBib2FyZCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29y
ZTo6RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIGFjdGlvbk1hc2tGb3JEcmFnKFdlYkNvcmU6OkRyYWdE
YXRhJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24g
ZHJhZ1NvdXJjZUFjdGlvbk1hc2tGb3JQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiBkcmFnU291cmNl
QWN0aW9uTWFza0ZvclBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jikgb3ZlcnJpZGU7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnKFdlYkNvcmU6OkRyYWdJbWFnZVJlZiwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNvcmU6OkNs
aXBib2FyZCYsIFdlYkNvcmU6OkZyYW1lJiwgYm9vbCA9IGZhbHNlKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgc3RhcnREcmFnKFdlYkNvcmU6OkRyYWdJbWFnZVJlZiwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNvcmU6OkNsaXBib2Fy
ZCYsIFdlYkNvcmU6OkZyYW1lJiwgYm9vbCA9IGZhbHNlKSBvdmVycmlkZTsKIAotICAgIHZpcnR1
YWwgdm9pZCBkcmFnQ29udHJvbGxlckRlc3Ryb3llZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBkcmFnQ29udHJvbGxlckRlc3Ryb3llZCgpIG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudFdpbkNFLmggYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudFdpbkNFLmgKaW5kZXggMzQxMTQ2NS4uOGZmNzYwZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2lu
Q0UuaApAQCAtMzcsNzEgKzM3LDcxIEBAIHB1YmxpYzoKICAgICBFZGl0b3JDbGllbnRXaW5DRShX
ZWJWaWV3Kik7CiAgICAgfkVkaXRvckNsaWVudFdpbkNFKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
cGFnZURlc3Ryb3llZCgpIE9WRVJSSURFOwotCi0gICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0
ZVJhbmdlKFdlYkNvcmU6OlJhbmdlKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
aXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgdG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHRvZ2dsZUdyYW1tYXJDaGVja2luZygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgaW50
IHNwZWxsQ2hlY2tlckRvY3VtZW50VGFnKCkgT1ZFUlJJREU7Ci0KLSAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkQmVnaW5FZGl0aW5nKFdlYkNvcmU6OlJhbmdlKikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBib29sIHNob3VsZEVuZEVkaXRpbmcoV2ViQ29yZTo6UmFuZ2UqKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0Tm9kZShXZWJDb3JlOjpOb2RlKiwgV2ViQ29yZTo6UmFu
Z2UqLCBXZWJDb3JlOjpFZGl0b3JJbnNlcnRBY3Rpb24pIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRJbnNlcnRUZXh0KGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6UmFuZ2Uq
LCBXZWJDb3JlOjpFZGl0b3JJbnNlcnRBY3Rpb24pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6UmFu
Z2UqLCBXZWJDb3JlOjpFQWZmaW5pdHksIGJvb2wpIE9WRVJSSURFOwotCi0gICAgdmlydHVhbCBi
b29sIHNob3VsZEFwcGx5U3R5bGUoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldCosIFdlYkNvcmU6
OlJhbmdlKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZE1vdmVSYW5nZUFmdGVy
RGVsZXRlKFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6UmFuZ2UqKSBPVkVSUklERTsKLQotICAg
IHZpcnR1YWwgdm9pZCBkaWRCZWdpbkVkaXRpbmcoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgcmVzcG9uZFRvQ2hhbmdlZENvbnRlbnRzKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IHJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24oV2ViQ29yZTo6RnJhbWUqKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkRW5kRWRpdGluZygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCB3aWxsV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoV2ViQ29yZTo6UmFuZ2UqKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0Q2xpZW50UGFzdGVib2FyZERhdGFGb3JSYW5nZShX
ZWJDb3JlOjpSYW5nZSosIFZlY3RvcjxTdHJpbmc+JiBwYXN0ZWJvYXJkVHlwZXMsIFZlY3RvcjxS
ZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiA+JiBwYXN0ZWJvYXJkRGF0YSkgT1ZFUlJJREU7
Ci0KLSAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJVbmRvU3RlcChXVEY6OlBhc3NSZWZQdHI8V2Vi
Q29yZTo6VW5kb1N0ZXA+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJSZWRv
U3RlcChXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6VW5kb1N0ZXA+KSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgY2xlYXJVbmRvUmVkb09wZXJhdGlvbnMoKSBPVkVSUklERTsKLQotICAgIHZp
cnR1YWwgYm9vbCBjYW5Db3B5Q3V0KFdlYkNvcmU6OkZyYW1lKiwgYm9vbCBkZWZhdWx0VmFsdWUp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBjYW5QYXN0ZShXZWJDb3JlOjpGcmFt
ZSosIGJvb2wgZGVmYXVsdFZhbHVlKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
Y2FuVW5kbygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBjYW5SZWRvKCkgY29u
c3QgT1ZFUlJJREU7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgdW5kbygpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCByZWRvKCkgT1ZFUlJJREU7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlS2V5
Ym9hcmRFdmVudChXZWJDb3JlOjpLZXlib2FyZEV2ZW50KikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bihXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kikg
T1ZFUlJJREU7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKFdl
YkNvcmU6OkVsZW1lbnQqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdGV4dEZpZWxkRGlk
RW5kRWRpdGluZyhXZWJDb3JlOjpFbGVtZW50KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IHRleHREaWRDaGFuZ2VJblRleHRGaWVsZChXZWJDb3JlOjpFbGVtZW50KikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBib29sIGRvVGV4dEZpZWxkQ29tbWFuZEZyb21FdmVudChXZWJDb3JlOjpFbGVt
ZW50KiwgV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCB0ZXh0V2lsbEJlRGVsZXRlZEluVGV4dEZpZWxkKFdlYkNvcmU6OkVsZW1lbnQqKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgdGV4dERpZENoYW5nZUluVGV4dEFyZWEoV2ViQ29yZTo6RWxl
bWVudCopIE9WRVJSSURFOwotCi0gICAgdmlydHVhbCBib29sIHNob3VsZEVyYXNlTWFya2Vyc0Fm
dGVyQ2hhbmdlU2VsZWN0aW9uKFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGUpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBpZ25vcmVXb3JkSW5TcGVsbERvY3VtZW50KGNvbnN0IFdU
Rjo6U3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGxlYXJuV29yZChjb25zdCBX
VEY6OlN0cmluZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjaGVja1NwZWxsaW5nT2ZT
dHJpbmcoY29uc3QgVUNoYXIqLCBpbnQsIGludCosIGludCopIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgZ2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlzc3BlbGxlZFdvcmQo
Y29uc3QgV1RGOjpTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tHcmFt
bWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQsIFdURjo6VmVjdG9yPFdlYkNvcmU6OkdyYW1t
YXJEZXRhaWw+JiwgaW50KiwgaW50KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0
ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhjb25zdCBXVEY6OlN0cmluZyYsIGNvbnN0IFdl
YkNvcmU6OkdyYW1tYXJEZXRhaWwmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
U3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBXVEY6OlN0cmluZyYpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBzaG93U3BlbGxpbmdVSShib29sKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYgd29yZCwgY29uc3QgV1RG
OjpTdHJpbmcmIGNvbnRleHQsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3NlcykgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdURjo6UGFzc1JlZlB0
cjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0PikgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVh
bCBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNrZXIoKSBPVkVSUklERSB7IHJl
dHVybiB0aGlzOyB9CisgICAgdmlydHVhbCB2b2lkIHBhZ2VEZXN0cm95ZWQoKSBvdmVycmlkZTsK
KworICAgIHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVSYW5nZShXZWJDb3JlOjpSYW5nZSopIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdF
bmFibGVkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUNvbnRpbnVvdXNTcGVs
bENoZWNraW5nKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzR3JhbW1hckNoZWNraW5n
RW5hYmxlZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVHcmFtbWFyQ2hlY2tp
bmcoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGludCBzcGVsbENoZWNrZXJEb2N1bWVudFRhZygp
IG92ZXJyaWRlOworCisgICAgdmlydHVhbCBib29sIHNob3VsZEJlZ2luRWRpdGluZyhXZWJDb3Jl
OjpSYW5nZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRFbmRFZGl0aW5nKFdl
YkNvcmU6OlJhbmdlKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHNob3VsZEluc2VydE5v
ZGUoV2ViQ29yZTo6Tm9kZSosIFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6RWRpdG9ySW5zZXJ0
QWN0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0VGV4dChjb25z
dCBXVEY6OlN0cmluZyYsIFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6RWRpdG9ySW5zZXJ0QWN0
aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5n
ZShXZWJDb3JlOjpSYW5nZSosIFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6RUFmZmluaXR5LCBi
b29sKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxlKFdlYkNv
cmU6OlN0eWxlUHJvcGVydHlTZXQqLCBXZWJDb3JlOjpSYW5nZSopIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRNb3ZlUmFuZ2VBZnRlckRlbGV0ZShXZWJDb3JlOjpSYW5nZSosIFdl
YkNvcmU6OlJhbmdlKikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5FZGl0
aW5nKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlc3BvbmRUb0NoYW5nZWRDb250ZW50
cygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9u
KFdlYkNvcmU6OkZyYW1lKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZEVuZEVkaXRp
bmcoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFdyaXRlU2VsZWN0aW9uVG9QYXN0
ZWJvYXJkKFdlYkNvcmU6OlJhbmdlKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFdy
aXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGdl
dENsaWVudFBhc3RlYm9hcmREYXRhRm9yUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqLCBWZWN0b3I8U3Ry
aW5nPiYgcGFzdGVib2FyZFR5cGVzLCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZl
cj4gPiYgcGFzdGVib2FyZERhdGEpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHJlZ2lz
dGVyVW5kb1N0ZXAoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlVuZG9TdGVwPikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoV1RGOjpQYXNzUmVmUHRyPFdlYkNv
cmU6OlVuZG9TdGVwPikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyVW5kb1JlZG9P
cGVyYXRpb25zKCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIGJvb2wgY2FuQ29weUN1dChXZWJD
b3JlOjpGcmFtZSosIGJvb2wgZGVmYXVsdFZhbHVlKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgY2FuUGFzdGUoV2ViQ29yZTo6RnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGNhblVuZG8oKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGJvb2wgY2FuUmVkbygpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdmlydHVh
bCB2b2lkIHVuZG8oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVkbygpIG92ZXJyaWRl
OworCisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWJvYXJkRXZlbnQoV2ViQ29yZTo6S2V5Ym9h
cmRFdmVudCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVJbnB1dE1ldGhvZEtl
eWRvd24oV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCopIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2
b2lkIHRleHRGaWVsZERpZEJlZ2luRWRpdGluZyhXZWJDb3JlOjpFbGVtZW50Kikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHRleHRGaWVsZERpZEVuZEVkaXRpbmcoV2ViQ29yZTo6RWxlbWVu
dCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB0ZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGQo
V2ViQ29yZTo6RWxlbWVudCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBkb1RleHRGaWVs
ZENvbW1hbmRGcm9tRXZlbnQoV2ViQ29yZTo6RWxlbWVudCosIFdlYkNvcmU6OktleWJvYXJkRXZl
bnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dFdpbGxCZURlbGV0ZWRJblRleHRG
aWVsZChXZWJDb3JlOjpFbGVtZW50Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHRleHRE
aWRDaGFuZ2VJblRleHRBcmVhKFdlYkNvcmU6OkVsZW1lbnQqKSBvdmVycmlkZTsKKworICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRFcmFzZU1hcmtlcnNBZnRlckNoYW5nZVNlbGVjdGlvbihXZWJDb3Jl
OjpUZXh0Q2hlY2tpbmdUeXBlKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaWdu
b3JlV29yZEluU3BlbGxEb2N1bWVudChjb25zdCBXVEY6OlN0cmluZyYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBsZWFybldvcmQoY29uc3QgV1RGOjpTdHJpbmcmKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2hlY2tTcGVsbGluZ09mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50LCBp
bnQqLCBpbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGdldEF1dG9Db3Jy
ZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGNoZWNrR3JhbW1hck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwg
aW50LCBXVEY6OlZlY3RvcjxXZWJDb3JlOjpHcmFtbWFyRGV0YWlsPiYsIGludCosIGludCopIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTcGVsbGluZ1VJV2l0aEdyYW1tYXJTdHJp
bmcoY29uc3QgV1RGOjpTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpHcmFtbWFyRGV0YWlsJikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdv
cmQoY29uc3QgV1RGOjpTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd1Nw
ZWxsaW5nVUkoYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHNwZWxsaW5nVUlJc1No
b3dpbmcoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29u
c3QgV1RGOjpTdHJpbmcmIHdvcmQsIGNvbnN0IFdURjo6U3RyaW5nJiBjb250ZXh0LCBXVEY6OlZl
Y3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3
aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRJ
bnB1dE1ldGhvZFN0YXRlKGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVx
dWVzdD4pIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgV2ViQ29yZTo6VGV4dENoZWNrZXJDbGll
bnQqIHRleHRDaGVja2VyKCkgb3ZlcnJpZGUgeyByZXR1cm4gdGhpczsgfQogCiBwcml2YXRlOgog
ICAgIGNvbnN0IGNoYXIqIGludGVycHJldEtleUV2ZW50KGNvbnN0IFdlYkNvcmU6OktleWJvYXJk
RXZlbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRXaW5DRS5oIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmgKaW5kZXggZGJhZjliNy4uN2I5NzEyNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudFdpbkNFLmgKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFdpbkNFLmgKQEAgLTM4LDE0OCArMzgsMTQ4IEBAIGNsYXNzIEZyYW1lTG9h
ZGVyQ2xpZW50V2luQ0UgOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnQgewogcHVi
bGljOgogICAgIEZyYW1lTG9hZGVyQ2xpZW50V2luQ0UoV2ViVmlldyopOwogICAgIHZpcnR1YWwg
fkZyYW1lTG9hZGVyQ2xpZW50V2luQ0UoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZnJhbWVMb2FkZXJE
ZXN0cm95ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZnJhbWVMb2FkZXJEZXN0cm95
ZWQoKSBvdmVycmlkZTsKIAogICAgIFdlYlZpZXcqIHdlYlZpZXcoKSBjb25zdCB7IHJldHVybiBt
X3dlYlZpZXc7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBoYXNXZWJWaWV3KCkgY29uc3QgT1ZFUlJJ
REU7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgbWFrZVJlcHJlc2VudGF0aW9uKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGZvcmNlTGF5b3V0KCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGZvcmNlTGF5b3V0Rm9yTm9uSFRNTCgpIE9WRVJSSURF
OwotCi0gICAgdmlydHVhbCB2b2lkIHNldENvcGllc09uU2Nyb2xsKCkgT1ZFUlJJREU7Ci0KLSAg
ICB2aXJ0dWFsIHZvaWQgZGV0YWNoZWRGcm9tUGFyZW50MigpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBkZXRhY2hlZEZyb21QYXJlbnQzKCkgT1ZFUlJJREU7Ci0KLSAgICB2aXJ0dWFsIHZv
aWQgYXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYpIE9WRVJSSURFOwotCi0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFNlbmRSZXF1
ZXN0KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyAgaWRlbnRpZmllciwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYgcmVkaXJlY3RSZXNwb25zZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZFVz
ZUNyZWRlbnRpYWxTdG9yYWdlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25n
ICBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVSZXNwb25zZShXZWJD
b3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgIGlkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXIqLCB1bnNpZ25lZCBsb25nICBpZGVudGlmaWVyKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2ln
bmVkIGxvbmcgIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGJvb2wgZGlzcGF0Y2hEaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5
Q2FjaGUoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgaW50IGxlbmd0aCkgT1ZF
UlJJREU7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRIYW5kbGVPbmxvYWRFdmVudHMo
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVk
aXJlY3RGb3JQcm92aXNpb25hbExvYWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hEaWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgV2ViQ29yZTo6VVJMJiwg
ZG91YmxlLCBkb3VibGUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENo
YW5nZUxvY2F0aW9uV2l0aGluUGFnZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERpZFB1c2hTdGF0ZVdpdGhpblBhZ2UoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlzcGF0Y2hEaWRSZXBsYWNlU3RhdGVXaXRoaW5QYWdlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoRGlkUG9wU3RhdGVXaXRoaW5QYWdlKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoV2lsbENsb3NlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoRGlkUmVjZWl2ZUljb24oKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaERpZFJlY2VpdmVUaXRsZShjb25zdCBXZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0
aW9uJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2hhbmdlSWNvbnMo
V2ViQ29yZTo6SWNvblR5cGUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERp
ZENvbW1pdExvYWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGYWls
UHJvdmlzaW9uYWxMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmluaXNo
RG9jdW1lbnRMb2FkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmlu
aXNoTG9hZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZExheW91dChX
ZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmVzKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFz
V2ViVmlldygpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIG1ha2VSZXByZXNl
bnRhdGlvbihXZWJDb3JlOjpEb2N1bWVudExvYWRlciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBmb3JjZUxheW91dCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBmb3JjZUxheW91
dEZvck5vbkhUTUwoKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRDb3BpZXNPblNj
cm9sbCgpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIGRldGFjaGVkRnJvbVBhcmVudDIo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoZWRGcm9tUGFyZW50MygpIG92ZXJy
aWRlOworCisgICAgdmlydHVhbCB2b2lkIGFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2ln
bmVkIGxvbmcgIGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZShXZWJDb3JlOjpEb2N1bWVu
dExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6
OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaERpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyKiwgdW5zaWduZWQgbG9uZyAgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6QXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hE
aWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25n
ICBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBkYXRhTGVu
Z3RoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5n
KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyAgaWRlbnRpZmllcikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmFpbExvYWRpbmcoV2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nICBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGRpc3BhdGNoRGlk
TG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYsIGludCBsZW5ndGgpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
RGlkSGFuZGxlT25sb2FkRXZlbnRzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0
KGNvbnN0IFdlYkNvcmU6OlVSTCYsIGRvdWJsZSwgZG91YmxlKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2UoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRQdXNoU3RhdGVXaXRoaW5QYWdlKCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVwbGFjZVN0YXRlV2l0aGluUGFnZSgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFBvcFN0YXRlV2l0aGluUGFn
ZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxDbG9zZSgpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVJY29uKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3QgV2Vi
Q29yZTo6U3RyaW5nV2l0aERpcmVjdGlvbiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaERpZENoYW5nZUljb25zKFdlYkNvcmU6Okljb25UeXBlKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDb21taXRMb2FkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmFpbExv
YWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERpZEZpbmlzaERvY3VtZW50TG9hZCgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hEaWRMYXlvdXQoV2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lcykgb3ZlcnJpZGU7
CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3Qg
V2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaFNob3coKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkZyYW1lKiBkaXNw
YXRjaENyZWF0ZVBhZ2UoY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFNob3coKSBvdmVycmlkZTsKIAotICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlv
bkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdURjo6UGFzc1JlZlB0
cjxXZWJDb3JlOjpGb3JtU3RhdGU+LCBjb25zdCBXVEY6OlN0cmluZyYgZnJhbWVOYW1lLCBXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmln
YXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXVEY6OlBhc3NS
ZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV1RG
OjpQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIGNvbnN0IFdURjo6U3RyaW5nJiBmcmFt
ZU5hbWUsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24pIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgV2Vi
Q29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+LCBXZWJDb3JlOjpGcmFtZVBvbGlj
eUZ1bmN0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2so
KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFVuYWJsZVRvSW1wbGVtZW50
UG9saWN5KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hVbmFibGVUb0ltcGxlbWVudFBvbGljeShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxs
U2VuZFN1Ym1pdEV2ZW50KFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+KSBPVkVS
UklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShXVEY6OlBh
c3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlv
bikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVu
dChXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPikgb3ZlcnJpZGUgeyB9CisgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFN1Ym1pdEZvcm0oV1RGOjpQYXNzUmVmUHRyPFdlYkNv
cmU6OkZvcm1TdGF0ZT4sIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24pIG92ZXJyaWRlOwog
Ci0gICAgdmlydHVhbCB2b2lkIHJldmVydFRvUHJvdmlzaW9uYWxTdGF0ZShXZWJDb3JlOjpEb2N1
bWVudExvYWRlciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRNYWluRG9jdW1lbnRF
cnJvcihXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmV2ZXJ0VG9Qcm92aXNpb25hbFN0YXRl
KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNl
dE1haW5Eb2N1bWVudEVycm9yKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHBvc3RQcm9n
cmVzc1N0YXJ0ZWROb3RpZmljYXRpb24oKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcG9z
dFByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkTm90aWZpY2F0aW9uKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uKCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHBvc3RQcm9ncmVzc1N0YXJ0ZWROb3RpZmljYXRpb24oKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgcG9zdFByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkTm90aWZpY2F0
aW9uKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90
aWZpY2F0aW9uKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFdURjo6U3RyaW5n
JiBuYW1lLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQqLCBjb25zdCBXVEY6OlN0cmlu
ZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgsIGludCBt
YXJnaW5IZWlnaHQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpX
aWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6SFRN
TFBsdWdJbkVsZW1lbnQqLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBXVEY6OlZlY3RvcjxX
VEY6OlN0cmluZz4mLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mLCBjb25zdCBXVEY6
OlN0cmluZyYsIGJvb2wpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZWNyZWF0ZVBsdWdp
bihXZWJDb3JlOjpXaWRnZXQqKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVkaXJl
Y3REYXRhVG9QbHVnaW4oV2ViQ29yZTo6V2lkZ2V0KiBwbHVnaW5XaWRnZXQpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGNyZWF0ZUphdmFBcHBsZXRX
aWRnZXQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6OkhUTUxBcHBsZXRFbGVtZW50
KiwgY29uc3QgV2ViQ29yZTo6VVJMJiBiYXNlVVJMLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0
cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgcGFyYW1W
YWx1ZXMpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgb3ZlcnJpZGVNZWRpYVR5
cGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDbGVhcldp
bmRvd09iamVjdEluV29ybGQoV2ViQ29yZTo6RE9NV3JhcHBlcldvcmxkJikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBjcmVhdGVGcmFtZShjb25z
dCBXZWJDb3JlOjpVUkwmLCBjb25zdCBXVEY6OlN0cmluZyYgbmFtZSwgV2ViQ29yZTo6SFRNTEZy
YW1lT3duZXJFbGVtZW50KiwgY29uc3QgV1RGOjpTdHJpbmcmIHJlZmVycmVyLCBib29sIGFsbG93
c1Njcm9sbGluZywgaW50IG1hcmdpbldpZHRoLCBpbnQgbWFyZ2luSGVpZ2h0KSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBjcmVhdGVQbHVnaW4oY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50KiwgY29uc3Qg
V2ViQ29yZTo6VVJMJiwgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiwgY29uc3QgV1RG
OjpWZWN0b3I8V1RGOjpTdHJpbmc+JiwgY29uc3QgV1RGOjpTdHJpbmcmLCBib29sKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVjcmVhdGVQbHVnaW4oV2ViQ29yZTo6V2lkZ2V0Kikgb3Zl
cnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdlYkNvcmU6
OldpZGdldCogcGx1Z2luV2lkZ2V0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
V2ViQ29yZTo6V2lkZ2V0PiBjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmLCBXZWJDb3JlOjpIVE1MQXBwbGV0RWxlbWVudCosIGNvbnN0IFdlYkNvcmU6OlVSTCYg
YmFzZVVSTCwgY29uc3QgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25z
dCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtVmFsdWVzKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIG92ZXJyaWRlTWVkaWFUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxkKFdlYkNv
cmU6OkRPTVdyYXBwZXJXb3JsZCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkb2N1bWVu
dEVsZW1lbnRBdmFpbGFibGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9y
bUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHJl
Z2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0aW9uKGJvb2wpIG92ZXJyaWRlOwogCi0gICAgdmly
dHVhbCBXZWJDb3JlOjpPYmplY3RDb250ZW50VHlwZSBvYmplY3RDb250ZW50VHlwZShjb25zdCBX
ZWJDb3JlOjpVUkwmLCBjb25zdCBXVEY6OlN0cmluZyYgbWltZVR5cGUsIGJvb2wgc2hvdWxkUHJl
ZmVyUGx1Z0luc0ZvckltYWdlcykgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpPYmpl
Y3RDb250ZW50VHlwZSBvYmplY3RDb250ZW50VHlwZShjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25z
dCBXVEY6OlN0cmluZyYgbWltZVR5cGUsIGJvb2wgc2hvdWxkUHJlZmVyUGx1Z0luc0ZvckltYWdl
cykgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TWFpbkZyYW1lRG9jdW1lbnRSZWFk
eShib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TWFpbkZyYW1lRG9jdW1lbnRS
ZWFkeShib29sKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzdGFydERvd25sb2FkKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFt
ZSA9IFN0cmluZygpKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnREb3dubG9hZChj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5h
bWUgPSBTdHJpbmcoKSkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbENoYW5nZVRp
dGxlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGRpZENoYW5nZVRpdGxlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHdpbGxDaGFuZ2VUaXRsZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciopIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VUaXRsZShXZWJDb3JlOjpEb2N1bWVu
dExvYWRlciopIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGNvbW1pdHRlZExvYWQoV2Vi
Q29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBjaGFyKiwgaW50KSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgZmluaXNoZWRMb2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNvbW1pdHRlZExvYWQoV2ViQ29yZTo6RG9jdW1lbnRM
b2FkZXIqLCBjb25zdCBjaGFyKiwgaW50KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZmlu
aXNoZWRMb2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKikgb3ZlcnJpZGU7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlR2xvYmFsSGlzdG9yeSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVHbG9iYWxIaXN0b3J5UmVkaXJlY3RMaW5rcygpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRHb1RvSGlzdG9yeUl0ZW0oV2ViQ29yZTo6SGlzdG9yeUl0ZW0qKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3RvcExvYWRpbmdGb3JIaXN0
b3J5SXRlbShXZWJDb3JlOjpIaXN0b3J5SXRlbSopIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVHbG9iYWxIaXN0b3J5KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHVwZGF0ZUdsb2JhbEhpc3RvcnlSZWRpcmVjdExpbmtzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBib29sIHNob3VsZEdvVG9IaXN0b3J5SXRlbShXZWJDb3JlOjpIaXN0b3J5SXRlbSopIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJ
dGVtKFdlYkNvcmU6Okhpc3RvcnlJdGVtKikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnQoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBjb25z
dCBXZWJDb3JlOjpVUkwmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRGV0ZWN0WFNT
KGNvbnN0IFdlYkNvcmU6OlVSTCYsIGJvb2wgZGlkQmxvY2tFbnRpcmVQYWdlKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnQoV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4qLCBjb25zdCBXZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkRGV0ZWN0WFNTKGNvbnN0IFdlYkNvcmU6OlVSTCYsIGJvb2wgZGlkQmxvY2tFbnRpcmVQYWdl
KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5jZWxs
ZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciBjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGludGVycnVw
dGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikg
T1ZFUlJJREU7Ci0KLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2Fubm90U2hv
d01JTUVUeXBlRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJy
b3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRGYWxsQmFjayhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7
Ci0KLSAgICB2aXJ0dWFsIGJvb2wgY2FuSGFuZGxlUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgY2FuU2hvd01J
TUVUeXBlKGNvbnN0IFdURjo6U3RyaW5nJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBi
b29sIGNhblNob3dNSU1FVHlwZUFzSFRNTChjb25zdCBXVEY6OlN0cmluZyYpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCByZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZShj
b25zdCBXVEY6OlN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgV1RGOjpTdHJp
bmcgZ2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUoY29uc3QgV1RGOjpTdHJpbmcmKSBjb25z
dCBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgdm9pZCBmcmFtZUxvYWRDb21wbGV0ZWQoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2F2ZVZpZXdTdGF0ZVRvSXRlbShXZWJDb3JlOjpIaXN0
b3J5SXRlbSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlVmlld1N0YXRlKCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHByb3Zpc2lvbmFsTG9hZFN0YXJ0ZWQoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZCgpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBwcmVwYXJlRm9yRGF0YVNvdXJjZVJlcGxhY2VtZW50KCkgT1ZFUlJJREU7Ci0K
LSAgICB2aXJ0dWFsIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpEb2N1bWVudExvYWRlcj4gY3Jl
YXRlRG9jdW1lbnRMb2FkZXIoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
V2ViQ29yZTo6U3Vic3RpdHV0ZURhdGEmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
VGl0bGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nV2l0aERpcmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6
OlVSTCYpIE9WRVJSSURFOwotCi0gICAgdmlydHVhbCBXVEY6OlN0cmluZyB1c2VyQWdlbnQoY29u
c3QgV2ViQ29yZTo6VVJMJikgT1ZFUlJJREU7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc2F2ZVBsYXRm
b3JtRGF0YVRvQ2FjaGVkRnJhbWUoV2ViQ29yZTo6Q2FjaGVkRnJhbWUqKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkRnJvbUNhY2hlZEZyYW1lKFdlYkNv
cmU6OkNhY2hlZEZyYW1lKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHRyYW5zaXRpb25U
b0NvbW1pdHRlZEZvck5ld1BhZ2UoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlJl
c291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRF
cnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3Ig
ZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhh
bmRsZUxvYWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7
CisKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRmFsbEJhY2soY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBib29sIGNhbkhhbmRsZVJlcXVlc3Qo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIGNhblNob3dNSU1FVHlwZShjb25zdCBXVEY6OlN0cmluZyYpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgYm9vbCBjYW5TaG93TUlNRVR5cGVBc0hUTUwoY29uc3QgV1RGOjpT
dHJpbmcmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcmVwcmVzZW50YXRpb25F
eGlzdHNGb3JVUkxTY2hlbWUoY29uc3QgV1RGOjpTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIGdlbmVyYXRlZE1JTUVUeXBlRm9yVVJMU2NoZW1lKGNvbnN0
IFdURjo6U3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZnJhbWVM
b2FkQ29tcGxldGVkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNhdmVWaWV3U3RhdGVU
b0l0ZW0oV2ViQ29yZTo6SGlzdG9yeUl0ZW0qKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVzdG9yZVZpZXdTdGF0ZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwcm92aXNpb25h
bExvYWRTdGFydGVkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWQo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZUZvckRhdGFTb3VyY2VSZXBsYWNl
bWVudCgpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXI+IGNyZWF0ZURvY3VtZW50TG9hZGVyKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhJikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHNldFRpdGxlKGNvbnN0IFdlYkNvcmU6OlN0cmluZ1dpdGhEaXJlY3Rp
b24mLCBjb25zdCBXZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgV1RGOjpT
dHJpbmcgdXNlckFnZW50KGNvbnN0IFdlYkNvcmU6OlVSTCYpIG92ZXJyaWRlOworCisgICAgdmly
dHVhbCB2b2lkIHNhdmVQbGF0Zm9ybURhdGFUb0NhY2hlZEZyYW1lKFdlYkNvcmU6OkNhY2hlZEZy
YW1lKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRlZEZy
b21DYWNoZWRGcmFtZShXZWJDb3JlOjpDYWNoZWRGcmFtZSopIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkgb3ZlcnJpZGU7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkU2F2ZVRvUGFnZUNhY2hlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZFJlc3RvcmVGcm9tUGFnZUNhY2hlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGRpZFNhdmVUb1BhZ2VDYWNoZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZXN0b3JlRnJvbVBhZ2VDYWNoZSgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJv
b2wgY2FuQ2FjaGVQYWdlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbnZl
cnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3du
bG9hZChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsKIAotICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVh
dGVOZXR3b3JraW5nQ29udGV4dCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgp
IG92ZXJyaWRlOwogCiAgICAgdm9pZCBzZXRGcmFtZShXZWJDb3JlOjpGcmFtZSAqZnJhbWUpIHsg
bV9mcmFtZSA9IGZyYW1lOyB9CiAgICAgV2ViQ29yZTo6RnJhbWUgKmZyYW1lKCkgeyByZXR1cm4g
bV9mcmFtZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9y
dC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0V2luQ0UuaCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dFdpbkNFLmgKaW5kZXggNjc3YWFmOS4u
MTU3NzU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9G
cmFtZU5ldHdvcmtpbmdDb250ZXh0V2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRXaW5DRS5oCkBAIC0zNiw5ICszNiw5
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGcmFtZU5ldHdvcmtpbmdD
b250ZXh0V2luQ0UoZnJhbWUsIHVzZXJBZ2VudCkpOwogICAgIH0KIAotICAgIHZpcnR1YWwgV1RG
OjpTdHJpbmcgdXNlckFnZW50KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXVEY6OlN0
cmluZyByZWZlcnJlcigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyB1c2VyQWdlbnQoKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHJlZmVycmVyKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0
ZToKICAgICBGcmFtZU5ldHdvcmtpbmdDb250ZXh0V2luQ0UoV2ViQ29yZTo6RnJhbWUqIGZyYW1l
LCBjb25zdCBXVEY6OlN0cmluZyYgdXNlckFnZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50V2luQ0UuaCBiL1NvdXJjZS9X
ZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50V2luQ0UuaAppbmRleCBl
ZGRjZDZmLi40ODY0NmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVT
dXBwb3J0L0luc3BlY3RvckNsaWVudFdpbkNFLmgKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9X
ZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRXaW5DRS5oCkBAIC0zNywxNiArMzcsMTYgQEAg
cHVibGljOgogICAgIGV4cGxpY2l0IEluc3BlY3RvckNsaWVudFdpbkNFKFdlYlZpZXcqKTsKICAg
ICB+SW5zcGVjdG9yQ2xpZW50V2luQ0UoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0b3JE
ZXN0cm95ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdG9yRGVzdHJveWVk
KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2hh
bm5lbCogb3Blbkluc3BlY3RvckZyb250ZW5kKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXIq
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2xvc2VJbnNwZWN0b3JGcm9udGVuZCgpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBicmluZ0Zyb250ZW5kVG9Gcm9udCgpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiBvcGVuSW5z
cGVjdG9yRnJvbnRlbmQoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlciopIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBjbG9zZUluc3BlY3RvckZyb250ZW5kKCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGJyaW5nRnJvbnRlbmRUb0Zyb250KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgaGlnaGxpZ2h0KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGhpZGVIaWdo
bGlnaHQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlnaGxpZ2h0KCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGhpZGVIaWdobGlnaHQoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1
YWwgYm9vbCBzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgV1RGOjpTdHJpbmcmKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGJvb2wgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFdURjo6U3Ry
aW5nJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV9pbnNwZWN0ZWRXZWJW
aWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9QbGF0
Zm9ybVN0cmF0ZWdpZXNXaW5DRS5oIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9y
dC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5oCmluZGV4IDRiMGVkMWUuLjcwNzllOWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVn
aWVzV2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRm
b3JtU3RyYXRlZ2llc1dpbkNFLmgKQEAgLTQyLDMzICs0MiwzMyBAQCBwcml2YXRlOgogICAgIFBs
YXRmb3JtU3RyYXRlZ2llc1dpbkNFKCk7CiAKICAgICAvLyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0
ZWdpZXMKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVneSogY3JlYXRlQ29va2ll
c1N0cmF0ZWd5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpEYXRhYmFzZVN0cmF0
ZWd5KiBjcmVhdGVEYXRhYmFzZVN0cmF0ZWd5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJD
b3JlOjpMb2FkZXJTdHJhdGVneSogY3JlYXRlTG9hZGVyU3RyYXRlZ3koKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneSogY3JlYXRlUGFzdGVib2FyZFN0
cmF0ZWd5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneSog
Y3JlYXRlUGx1Z2luU3RyYXRlZ3koKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlNo
YXJlZFdvcmtlclN0cmF0ZWd5KiBjcmVhdGVTaGFyZWRXb3JrZXJTdHJhdGVneSgpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgV2ViQ29yZTo6U3RvcmFnZVN0cmF0ZWd5KiBjcmVhdGVTdG9yYWdlU3Ry
YXRlZ3koKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlZpc2l0ZWRMaW5rU3RyYXRl
Z3kqIGNyZWF0ZVZpc2l0ZWRMaW5rU3RyYXRlZ3koKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdl
YkNvcmU6OkNvb2tpZXNTdHJhdGVneSogY3JlYXRlQ29va2llc1N0cmF0ZWd5KCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBXZWJDb3JlOjpEYXRhYmFzZVN0cmF0ZWd5KiBjcmVhdGVEYXRhYmFzZVN0
cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpMb2FkZXJTdHJhdGVneSog
Y3JlYXRlTG9hZGVyU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlBh
c3RlYm9hcmRTdHJhdGVneSogY3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneSogY3JlYXRlUGx1Z2luU3RyYXRlZ3ko
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlNoYXJlZFdvcmtlclN0cmF0ZWd5KiBj
cmVhdGVTaGFyZWRXb3JrZXJTdHJhdGVneSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29y
ZTo6U3RvcmFnZVN0cmF0ZWd5KiBjcmVhdGVTdG9yYWdlU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIFdlYkNvcmU6OlZpc2l0ZWRMaW5rU3RyYXRlZ3kqIGNyZWF0ZVZpc2l0ZWRMaW5r
U3RyYXRlZ3koKSBvdmVycmlkZTsKIAogICAgIC8vIFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVneQot
ICAgIHZpcnR1YWwgU3RyaW5nIGNvb2tpZXNGb3JET00oY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJD
b3JlOjpVUkwmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29va2llc0Zyb21ET00o
Y29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgV2ViQ29yZTo6TmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBX
ZWJDb3JlOjpVUkwmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRWYWx1ZShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBj
b25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IFdlYkNvcmU6Ok5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
V2ViQ29yZTo6VVJMJiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgU3RyaW5nIGNvb2tpZXNGb3JET00oY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3Jl
OjpVUkwmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29u
c3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJD
b3JlOjpVUkwmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25z
dCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2Vi
Q29yZTo6VVJMJiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lv
biYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogCiAgICAg
Ly8gV2ViQ29yZTo6RGF0YWJhc2VTdHJhdGVneQogICAgIC8vIC0gVXNpbmcgZGVmYXVsdCBpbXBs
ZW1lbnRhdGlvbi4KIAogICAgIC8vIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5Ci0gICAgdmlydHVh
bCB2b2lkIHJlZnJlc2hQbHVnaW5zKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGdldFBs
dWdpbkluZm8oY29uc3QgV2ViQ29yZTo6UGFnZSosIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZv
PiYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZWZyZXNoUGx1Z2lucygpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBnZXRQbHVnaW5JbmZvKGNvbnN0IFdlYkNvcmU6OlBhZ2UqLCBW
ZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mKSBvdmVycmlkZTsKIAogICAgIC8vIFdlYkNvcmU6
OlZpc2l0ZWRMaW5rU3RyYXRlZ3kKLSAgICB2aXJ0dWFsIGJvb2wgaXNMaW5rVmlzaXRlZChXZWJD
b3JlOjpQYWdlKiwgV2ViQ29yZTo6TGlua0hhc2gsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0
IFdURjo6QXRvbWljU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGFkZFZpc2l0
ZWRMaW5rKFdlYkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpMaW5rSGFzaCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBib29sIGlzTGlua1Zpc2l0ZWQoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OkxpbmtI
YXNoLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBXVEY6OkF0b21pY1N0cmluZyYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBhZGRWaXNpdGVkTGluayhXZWJDb3JlOjpQYWdlKiwgV2Vi
Q29yZTo6TGlua0hhc2gpIG92ZXJyaWRlOwogfTsKIAogI2VuZGlmIC8vIFBsYXRmb3JtU3RyYXRl
Z2llc1dpbkNFX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiMTdjMmJhLi5jZTVkMDYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTU2IEBACisyMDE0LTAxLTE2ICBQZXRlciBNb2xuYXIgIDxwbW9sbmFyLnUtc3pl
Z2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CisKKyAgICAgICAgUmVtb3ZlIHdvcmthcm91bmQgZm9y
IGNvbXBpbGVycyBub3Qgc3VwcG9ydGluZyBleHBsaWNpdCBvdmVycmlkZSBjb250cm9sCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjcxMTEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOb3cgYWxsIGNvbXBp
bGVycyBzdXBwb3J0IGV4cGxpY2l0IG92ZXJyaWRlIGNvbnRyb2wsIHRoaXMgd29ya2Fyb3VuZCBj
YW4gYmUgcmVtb3ZlZC4KKworICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nl
c3MuaDoKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmg6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVBy
b2Nlc3NJREJDb25uZWN0aW9uLmg6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWRE
Qi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9Bc3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50Lmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvU3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0b3IuaDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvUGx1Z2luUHJvY2Vzc01haW4ubW06CisgICAgICAg
ICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaDoKKyAgICAgICAgKiBQbHVn
aW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1dlYlBy
b2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9Db2NvYS9SZW1vdGVPYmpl
Y3RSZWdpc3RyeS5oOgorICAgICAgICAqIFNoYXJlZC9BUElPYmplY3QuaDoKKyAgICAgICAgKiBT
aGFyZWQvQXN5bmNSZXF1ZXN0Lmg6CisgICAgICAgICogU2hhcmVkL0FzeW5jVGFzay5oOgorICAg
ICAgICAqIFNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaDoKKyAg
ICAgICAgKiBTaGFyZWQvQ2hpbGRQcm9jZXNzLmg6CisgICAgICAgICogU2hhcmVkL0NoaWxkUHJv
Y2Vzc1Byb3h5Lmg6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ29v
cmRpbmF0ZWRTdXJmYWNlLmg6CisgICAgICAgICogU2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZC5o
OgorICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2Nv
bE1hbmFnZXIuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29ubmVjdGlvbi5oOgorICAgICAgICAq
IFNoYXJlZC9XZWJSZXNvdXJjZUJ1ZmZlci5oOgorICAgICAgICAqIFNoYXJlZC9jZi9LZXllZEVu
Y29kZXIuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1NlY0l0ZW1TaGltLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW06CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1BhZ2VDbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L0RhdGFiYXNlcy9EYXRhYmFzZVByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9E
b3dubG9hZHMvRG93bmxvYWRQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJl
YVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1
c3RvbVByb3RvY29sTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9TY3JvbGxpbmcv
UmVtb3RlU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9TdG9yYWdlL1N0b3Jh
Z2VNYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29v
a2llTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdl
clByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYkluc3BlY3RvclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYktleVZhbHVlU3Rv
cmFnZU1hbmFnZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViVmlld0VmbC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvVmlld0dlc3R1cmVDb250cm9sbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJD
b2xvclBpY2tlck1hYy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0
TWFuYWdlclByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9CYXR0ZXJ5
L1dlYkJhdHRlcnlNYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNv
b2tpZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIv
V2ViSURCRmFjdG9yeUJhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9J
bmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
RGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vzc01h
aW4ubW06CisgICAgICAgICogV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5Lmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94
eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvbWFjL1dLQnVu
ZGxlUGFnZUJhbm5lck1hYy5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2Vi
TWVkaWFDYWNoZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJl
c291cmNlTG9hZFNjaGVkdWxlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0
d29ya0luZm9NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvbk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL09yaWdpbkRhdGEv
V2ViT3JpZ2luRGF0YU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvTmV0c2NhcGVQbHVnaW4uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1BERlBsdWdpbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
QW5ub3RhdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2lu
Q2hvaWNlQW5ub3RhdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luUGFzc3dvcmRGaWVsZC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYv
UERGUGx1Z2luVGV4dEFubm90YXRpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blZpZXcuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUvV2ViUmVzb3VyY2VD
YWNoZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdl
QXJlYUltcGwuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZUFyZWFNYXAu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCYXR0ZXJ5Q2xpZW50Lmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdl
ci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlUHJveGlt
aXR5Q2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFn
Q2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9s
b2NhdGlvbkNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50Lmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOZXR3b3JrSW5mb0NsaWVudC5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1l
bnUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlZpYnJhdGlvbkNs
aWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rvci5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZUNvbnRleHQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuaDoKKwogMjAx
NC0wMS0xNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0dUS11bRUZMXVtOSVhdIERvIG5vdCB1c2UgUHJpbnRDb250ZXh0LCBGcmFtZSBhbmQg
RG9jdW1lbnRMb2FkZXIgaW4gRXJyb3JzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRh
YmFzZVByb2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVBy
b2Nlc3MvRGF0YWJhc2VQcm9jZXNzLmgKaW5kZXggMzM1M2M4Yi4uYTM2NGUyMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlUHJvY2Vzcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVByb2Nlc3MuaApAQCAtNjQs
MTYgKzY0LDE2IEBAIHByaXZhdGU6CiAgICAgRGF0YWJhc2VQcm9jZXNzKCk7CiAKICAgICAvLyBD
aGlsZFByb2Nlc3MKLSAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hp
bGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXph
dGlvblBhcmFtZXRlcnMmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZVNh
bmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJv
eEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBp
bml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGlu
aXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVy
cyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplUHJvY2Vzc05hbWUoY29u
c3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGluaXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxp
emF0aW9uUGFyYW1ldGVycyYsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0
aW9uKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHNob3VsZFRlcm1pbmF0ZSgpIG92ZXJy
aWRlOwogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24qKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiosIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQ
Qzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2Rl
ciYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24q
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiosIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUs
IElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKIAogICAgIC8vIE1l
c3NhZ2UgSGFuZGxlcnMKICAgICB2b2lkIGluaXRpYWxpemVEYXRhYmFzZVByb2Nlc3MoY29uc3Qg
RGF0YWJhc2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmgKaW5kZXggNzhkODg1Yy4uYzlkMWIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uaApAQCAtNDcsMTQgKzQ3LDE0IEBAIHByaXZhdGU6CiAgICAgRGF0YWJhc2VUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAKICAgICAvLyBJ
UEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiopIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVu
Y2UgbWVzc2FnZU5hbWUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiopIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwg
SVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZl
cmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGFiYXNl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNz
YWdlRGVjb2RlciYpOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCi0gICAgdmlydHVhbCBJ
UEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgT1ZFUlJJREUgeyByZXR1
cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9Ci0gICAgdmlydHVhbCB1aW50NjRfdCBtZXNzYWdlU2Vu
ZGVyRGVzdGluYXRpb25JRCgpIE9WRVJSSURFIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIElQ
Qzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJldHVy
biBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KKyAgICB2aXJ0dWFsIHVpbnQ2NF90IG1lc3NhZ2VTZW5k
ZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQogCiAjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCiAgICAgLy8gTWVzc2FnZXMgaGFuZGxlcnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURC
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9E
YXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmgKaW5kZXggOGQzN2M2Yi4uYjY5Yjc1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFz
ZVByb2Nlc3NJREJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmgKQEAgLTU3LDggKzU3
LDggQEAgcHJpdmF0ZToKICAgICBEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uKERhdGFiYXNl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbiYsIHVpbnQ2NF90IGlkYkNvbm5lY3Rpb25JZGVudGlmaWVy
KTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgotICAgIHZpcnR1YWwgSVBDOjpDb25uZWN0
aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdWlu
dDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBPVkVSUklERSB7IHJldHVybiBtX3Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyOyB9CisgICAgdmlydHVhbCBJUEM6OkNvbm5lY3Rpb24q
IG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB1aW50NjRf
dCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRlIHsgcmV0dXJuIG1fc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXI7IH0KIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCiAgICAg
dm9pZCBlc3RhYmxpc2hDb25uZWN0aW9uKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25z
dCBTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2lu
RGF0YSYgbWFpbkZyYW1lT3JpZ2luKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFi
YXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3Jl
U1FMaXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0
ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5oCmluZGV4IGNkMTE5OGMuLjhl
Y2YyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVk
REIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0
YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuaApAQCAtNTIsMTYgKzUyLDE2IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgflVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlKCk7CiAKLSAg
ICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJREJEYXRhYmFzZU1ldGFkYXRhPiBn
ZXRPckVzdGFibGlzaE1ldGFkYXRhKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VNZXRhZGF0YT4gZ2V0T3JFc3RhYmxpc2hNZXRhZGF0
YSgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGVzdGFibGlzaFRyYW5zYWN0aW9uKGNv
bnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2Jq
ZWN0U3RvcmVJRHMsIFdlYkNvcmU6OkluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgYmVnaW5UcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlv
bklkZW50aWZpZXImKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgY29tbWl0VHJhbnNhY3Rp
b24oY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBib29sIHJlc2V0VHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHJvbGxiYWNrVHJhbnNhY3Rpb24oY29uc3QgSURC
VHJhbnNhY3Rpb25JZGVudGlmaWVyJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGVzdGFi
bGlzaFRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYsIGNvbnN0IFZl
Y3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJRHMsIFdlYkNvcmU6OkluZGV4ZWREQjo6VHJhbnNh
Y3Rpb25Nb2RlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgYmVnaW5UcmFuc2FjdGlvbihj
b25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJv
b2wgY29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBib29sIHJlc2V0VHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNh
Y3Rpb25JZGVudGlmaWVyJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHJvbGxiYWNrVHJh
bnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJikgb3ZlcnJpZGU7CiAKLSAg
ICB2aXJ0dWFsIGJvb2wgY2hhbmdlRGF0YWJhc2VWZXJzaW9uKGNvbnN0IElEQlRyYW5zYWN0aW9u
SWRlbnRpZmllciYsIHVpbnQ2NF90IG5ld1ZlcnNpb24pIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
Ym9vbCBjcmVhdGVPYmplY3RTdG9yZShjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXImLCBj
b25zdCBXZWJDb3JlOjpJREJPYmplY3RTdG9yZU1ldGFkYXRhJikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBib29sIGNoYW5nZURhdGFiYXNlVmVyc2lvbihjb25zdCBJREJUcmFuc2FjdGlvbklkZW50
aWZpZXImLCB1aW50NjRfdCBuZXdWZXJzaW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
Y3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiwgY29uc3Qg
V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVNZXRhZGF0YSYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgog
ICAgIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlKGNvbnN0IFVuaXF1ZUlEQkRh
dGFiYXNlSWRlbnRpZmllciYsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvQXN5bmNocm9ub3VzTmV0d29y
a0xvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvQXN5bmNocm9u
b3VzTmV0d29ya0xvYWRlckNsaWVudC5oCmluZGV4IDhhOWEwMjMuLmFiOGFhY2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0FzeW5jaHJvbm91c05ldHdvcmtMb2Fk
ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9Bc3luY2hyb25v
dXNOZXR3b3JrTG9hZGVyQ2xpZW50LmgKQEAgLTM4LDE1ICszOCwxNSBAQCBwdWJsaWM6CiAgICAg
QXN5bmNocm9ub3VzTmV0d29ya0xvYWRlckNsaWVudCgpOwogCiBwcml2YXRlOgotICAgIHZpcnR1
YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3QoTmV0d29ya1Jlc291cmNlTG9hZGVyKiwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiByZWRpcmVjdFJlc3BvbnNlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFNl
bmRSZXF1ZXN0KE5ldHdvcmtSZXNvdXJjZUxvYWRlciosIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgbmV3UmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RS
ZXNwb25zZSkgb3ZlcnJpZGU7CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFD
SykKLSAgICB2aXJ0dWFsIHZvaWQgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFj
ZShOZXR3b3JrUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2Um
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3Rl
Y3Rpb25TcGFjZShOZXR3b3JrUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2UmKSBvdmVycmlkZTsKICNlbmRpZgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
UmVzcG9uc2UoTmV0d29ya1Jlc291cmNlTG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKE5l
dHdvcmtSZXNvdXJjZUxvYWRlciosIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciosIGludCBlbmNvZGVk
RGF0YUxlbmd0aCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFNlbmREYXRhKE5ldHdv
cmtSZXNvdXJjZUxvYWRlciosIHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVk
IGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBkaWRGaW5pc2hMb2FkaW5nKE5ldHdvcmtSZXNvdXJjZUxvYWRlciosIGRvdWJsZSBmaW5pc2hU
aW1lKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChOZXR3b3JrUmVzb3VyY2VM
b2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShOZXR3b3JrUmVzb3VyY2VMb2FkZXIqLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVCdWZmZXIoTmV0d29ya1Jlc291cmNlTG9hZGVyKiwgV2ViQ29yZTo6U2hhcmVk
QnVmZmVyKiwgaW50IGVuY29kZWREYXRhTGVuZ3RoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkU2VuZERhdGEoTmV0d29ya1Jlc291cmNlTG9hZGVyKiwgdW5zaWduZWQgbG9uZyBsb25n
IGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoTmV0d29ya1Jlc291cmNlTG9h
ZGVyKiwgZG91YmxlIGZpbmlzaFRpbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRG
YWlsKE5ldHdvcmtSZXNvdXJjZUxvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
KSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggMjQ4ZTNhYy4uNTQ4NGQ0
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
CkBAIC03OCwyNyArNzgsMjcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFs
aXplTmV0d29ya1Byb2Nlc3MoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
KTsKIAotICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgdGVybWluYXRlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBwbGF0Zm9ybVRlcm1pbmF0ZSgp
OwogCiAgICAgLy8gQ2hpbGRQcm9jZXNzCi0gICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVQcm9j
ZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQ2hpbGRQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGluaXRpYWxpemVTYW5kYm94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1l
dGVycyYsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZFRlcm1pbmF0ZSgpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBpbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXph
dGlvblBhcmFtZXRlcnMmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZVBy
b2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFBy
b2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJh
bWV0ZXJzJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9u
KElQQzo6Q29ubmVjdGlvbiopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRUZXJt
aW5hdGUoKSBvdmVycmlkZTsKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVz
c2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBD
OjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYp
OwotICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24qKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biosIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xv
c2UoSVBDOjpDb25uZWN0aW9uKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBt
ZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3Zl
cnJpZGU7CiAKICAgICAvLyBEb3dubG9hZE1hbmFnZXI6OkNsaWVudAotICAgIHZpcnR1YWwgdm9p
ZCBkaWRDcmVhdGVEb3dubG9hZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWREZXN0
cm95RG93bmxvYWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIElQQzo6Q29ubmVjdGlvbiogZG93
bmxvYWRQcm94eUNvbm5lY3Rpb24oKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIEF1dGhlbnRpY2F0
aW9uTWFuYWdlciYgZG93bmxvYWRzQXV0aGVudGljYXRpb25NYW5hZ2VyKCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZURvd25sb2FkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGRpZERlc3Ryb3lEb3dubG9hZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgSVBDOjpD
b25uZWN0aW9uKiBkb3dubG9hZFByb3h5Q29ubmVjdGlvbigpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgQXV0aGVudGljYXRpb25NYW5hZ2VyJiBkb3dubG9hZHNBdXRoZW50aWNhdGlvbk1hbmFnZXIo
KSBvdmVycmlkZTsKIAogICAgIC8vIE1lc3NhZ2UgSGFuZGxlcnMKICAgICB2b2lkIGRpZFJlY2Vp
dmVOZXR3b3JrUHJvY2Vzc01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVj
b2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggODE4Y2NlYi4uOWRm
YzhmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC0zNywyMCArMzcsMjAg
QEAgcHVibGljOgogICAgIAogcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0
ZWdpZXMKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVneSogY3JlYXRlQ29va2ll
c1N0cmF0ZWd5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpEYXRhYmFzZVN0cmF0
ZWd5KiBjcmVhdGVEYXRhYmFzZVN0cmF0ZWd5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJD
b3JlOjpMb2FkZXJTdHJhdGVneSogY3JlYXRlTG9hZGVyU3RyYXRlZ3koKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneSogY3JlYXRlUGFzdGVib2FyZFN0
cmF0ZWd5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneSog
Y3JlYXRlUGx1Z2luU3RyYXRlZ3koKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlNo
YXJlZFdvcmtlclN0cmF0ZWd5KiBjcmVhdGVTaGFyZWRXb3JrZXJTdHJhdGVneSgpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgV2ViQ29yZTo6U3RvcmFnZVN0cmF0ZWd5KiBjcmVhdGVTdG9yYWdlU3Ry
YXRlZ3koKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlZpc2l0ZWRMaW5rU3RyYXRl
Z3kqIGNyZWF0ZVZpc2l0ZWRMaW5rU3RyYXRlZ3koKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdl
YkNvcmU6OkNvb2tpZXNTdHJhdGVneSogY3JlYXRlQ29va2llc1N0cmF0ZWd5KCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBXZWJDb3JlOjpEYXRhYmFzZVN0cmF0ZWd5KiBjcmVhdGVEYXRhYmFzZVN0
cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpMb2FkZXJTdHJhdGVneSog
Y3JlYXRlTG9hZGVyU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlBh
c3RlYm9hcmRTdHJhdGVneSogY3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneSogY3JlYXRlUGx1Z2luU3RyYXRlZ3ko
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlNoYXJlZFdvcmtlclN0cmF0ZWd5KiBj
cmVhdGVTaGFyZWRXb3JrZXJTdHJhdGVneSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29y
ZTo6U3RvcmFnZVN0cmF0ZWd5KiBjcmVhdGVTdG9yYWdlU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIFdlYkNvcmU6OlZpc2l0ZWRMaW5rU3RyYXRlZ3kqIGNyZWF0ZVZpc2l0ZWRMaW5r
U3RyYXRlZ3koKSBvdmVycmlkZTsKIAogICAgIC8vIFdlYkNvcmU6OkxvYWRlclN0cmF0ZWd5Ci0g
ICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTY2hlZHVsZXIqIHJlc291cmNlTG9hZFNj
aGVkdWxlcigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0KiwgdW5zaWduZWQgbG9uZyByZXNvdXJj
ZUxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFscywgV2ViQ29yZTo6Q2xpZW50Q3JlZGVudGlhbFBvbGljeSwgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBWZWN0b3I8
Y2hhcj4mIGRhdGEpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
U2NoZWR1bGVyKiByZXNvdXJjZUxvYWRTY2hlZHVsZXIoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4
dCosIHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHMsIFdlYkNvcmU6OkNs
aWVudENyZWRlbnRpYWxQb2xpY3ksIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhKSBvdmVycmlkZTsKICNpZiBFTkFC
TEUoQkxPQikKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkJsb2JSZWdpc3RyeSogY3JlYXRlQmxvYlJl
Z2lzdHJ5KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpCbG9iUmVnaXN0cnkqIGNy
ZWF0ZUJsb2JSZWdpc3RyeSgpIG92ZXJyaWRlOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4
IDQ3MmZiZTUuLmVlYjJjYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCkBAIC03OSwzNiArNzksMzYgQEAgcHVibGlj
OgogICAgIHZvaWQgYWJvcnQoKTsKIAogICAgIC8vIFJlc291cmNlSGFuZGxlQ2xpZW50IG1ldGhv
ZHMKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0QXN5bmMoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkU2VuZERhdGEoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCB1bnNpZ25lZCBs
b25nIGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlQXN5bmMoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIHVuc2lnbmVkLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+LCBpbnQgZW5j
b2RlZERhdGFMZW5ndGgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2Fk
aW5nKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgZG91YmxlIGZpbmlzaFRpbWUpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3
YXNCbG9ja2VkKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGNhbm5vdFNob3dVUkwoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGUqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2hvdWxkVXNlQ3JlZGVu
dGlhbFN0b3JhZ2VBc3luYyhXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSopIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlY2VpdmVkQ2FuY2Vs
bGF0aW9uKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgdXNlc0FzeW5jQ2Fs
bGJhY2tzKCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxs
U2VuZFJlcXVlc3RBc3luYyhXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGly
ZWN0UmVzcG9uc2UpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRTZW5kRGF0YShXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZSosIHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2ln
bmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZURhdGEoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwg
dW5zaWduZWQsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVCdWZmZXIoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBQYXNzUmVmUHRy
PFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4sIGludCBlbmNvZGVkRGF0YUxlbmd0aCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGUqLCBkb3VibGUgZmluaXNoVGltZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZEZh
aWwoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdhc0Jsb2NrZWQoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGUqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2Fubm90U2hvd1VSTChXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRV
c2VDcmVkZW50aWFsU3RvcmFnZShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSopIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZUFzeW5jKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFdl
YkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlKiwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRDYW5jZWxsYXRpb24oV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGUqLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgYm9vbCB1c2VzQXN5bmNDYWxsYmFja3MoKSBvdmVycmlkZSB7IHJldHVy
biB0cnVlOyB9CiAKICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQotICAg
IHZpcnR1YWwgdm9pZCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlQXN5bmMo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2Um
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3Rl
Y3Rpb25TcGFjZUFzeW5jKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgY29uc3QgV2ViQ29yZTo6
UHJvdGVjdGlvblNwYWNlJikgb3ZlcnJpZGU7CiAjZW5kaWYKIAogI2lmIFVTRShORVRXT1JLX0NG
REFUQV9BUlJBWV9DQUxMQkFDSykKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNEYXRhQXJyYXko
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGFBcnJheShXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZSosIENGQXJyYXlSZWYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c0RhdGFBcnJheSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlRGF0YUFycmF5KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwgQ0ZBcnJheVJlZikgb3ZlcnJp
ZGU7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBzdGF0aWMgc2l6ZV90IGZpbGVC
YWNrZWRSZXNvdXJjZU1pbmltdW1TaXplKCk7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICB2aXJ0
dWFsIHZvaWQgd2lsbENhY2hlUmVzcG9uc2VBc3luYyhXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSos
IE5TQ2FjaGVkVVJMUmVzcG9uc2UgKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxT
dG9wQnVmZmVyaW5nRGF0YShXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCB1
bnNpZ25lZCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxDYWNoZVJlc3BvbnNlQXN5
bmMoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBOU0NhY2hlZFVSTFJlc3BvbnNlICopIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQpIG92ZXJyaWRlOwogI2VuZGlmCiAj
ZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCkBAIC0xNDgsOCArMTQ4LDggQEAgcHJpdmF0ZToKICAg
ICBOZXR3b3JrUmVzb3VyY2VMb2FkZXIoY29uc3QgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMmLCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyosIFBhc3NSZWZQdHI8TWVzc2FnZXM6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkOjpE
ZWxheWVkUmVwbHk+KTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgotICAgIHZpcnR1YWwg
SVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBPVkVSUklERSB7
IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAgICB2aXJ0dWFsIElQQzo6Q29ubmVjdGlvbiogbWVz
c2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHVpbnQ2NF90IG1l
c3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9pZGVudGlmaWVy
OyB9CiAKICAgICB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0
LmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4
dC5oCmluZGV4IDNiNzQxMzUuLjk1NDJhOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaApAQCAtNDUsNyArNDUs
NyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
KiBwcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdDsgfQorICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0OyB9CiAKIHByaXZhdGU6CiAgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQoYm9vbCBwcml2
YXRlQnJvd3NpbmdFbmFibGVkLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QpCkBAIC01NywxNiArNTcsMTYgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIHsgfQog
Ci0gICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc3RvcmFnZVNlc3Npb24oKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzdG9yYWdlU2Vzc2lvbigp
IGNvbnN0IG92ZXJyaWRlOwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgc2V0TmVlZHNT
aXRlU3BlY2lmaWNRdWlya3MoYm9vbCB2YWx1ZSkgeyBtX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtz
ID0gdmFsdWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3Mo
KSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNldExvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0Vu
YWJsZWQoYm9vbCB2YWx1ZSkgeyBtX2xvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQgPSB2
YWx1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVk
KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBzb3Vy
Y2VBcHBsaWNhdGlvbkF1ZGl0RGF0YSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGxvY2FsRmlsZUNvbnRl
bnRTbmlmZmluZ0VuYWJsZWQoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFJldGFpblB0
cjxDRkRhdGFSZWY+IHNvdXJjZUFwcGxpY2F0aW9uQXVkaXREYXRhKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgogCiAjaWYg
VVNFKFNPVVApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9TeW5j
aHJvbm91c05ldHdvcmtMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL1N5bmNocm9ub3VzTmV0d29ya0xvYWRlckNsaWVudC5oCmluZGV4IDI4YmEwYWMuLjk0NzA2
NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1N5bmNocm9ub3Vz
TmV0d29ya0xvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L1N5bmNocm9ub3VzTmV0d29ya0xvYWRlckNsaWVudC5oCkBAIC00NCwyMCArNDQsMjAgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBTeW5jaHJvbm91c05ldHdvcmtMb2FkZXJDbGllbnQgOiBw
dWJsaWMgTmV0d29ya0xvYWRlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgU3luY2hyb25vdXNOZXR3
b3JrTG9hZGVyQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxS
ZXF1ZXN0LCBQYXNzUmVmUHRyPE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZDo6RGVsYXllZFJlcGx5Pik7Ci0gICAgdmlydHVhbCB+
U3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB+
U3luY2hyb25vdXNOZXR3b3JrTG9hZGVyQ2xpZW50KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFs
IGJvb2wgaXNTeW5jaHJvbm91cygpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgaXNTeW5jaHJvbm91cygpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAogcHJp
dmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KE5ldHdvcmtSZXNvdXJjZUxv
YWRlciosIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcHJvcG9zZWRSZXF1ZXN0LCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KE5ldHdvcmtSZXNvdXJjZUxvYWRlciosIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcHJvcG9zZWRSZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKSBvdmVycmlkZTsKICNpZiBVU0UoUFJP
VEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQotICAgIHZpcnR1YWwgdm9pZCBjYW5BdXRoZW50
aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKE5ldHdvcmtSZXNvdXJjZUxvYWRlciosIGNvbnN0
IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBj
YW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKE5ldHdvcmtSZXNvdXJjZUxvYWRl
ciosIGNvbnN0IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYpIG92ZXJyaWRlOwogI2VuZGlmCi0g
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShOZXR3b3JrUmVzb3VyY2VMb2FkZXIq
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVCdWZmZXIoTmV0d29ya1Jlc291cmNlTG9hZGVyKiwgV2ViQ29yZTo6
U2hhcmVkQnVmZmVyKiwgaW50IGVuY29kZWREYXRhTGVuZ3RoKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkU2VuZERhdGEoTmV0d29ya1Jlc291cmNlTG9hZGVyKiwgdW5zaWduZWQgbG9u
ZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkg
T1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoTmV0d29ya1Jl
c291cmNlTG9hZGVyKiwgZG91YmxlIGZpbmlzaFRpbWUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBkaWRGYWlsKE5ldHdvcmtSZXNvdXJjZUxvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlRXJyb3ImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KE5ldHdvcmtSZXNvdXJjZUxvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJ1ZmZlcihOZXR3b3JrUmVz
b3VyY2VMb2FkZXIqLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXIqLCBpbnQgZW5jb2RlZERhdGFMZW5n
dGgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRTZW5kRGF0YShOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxv
bmcgdG90YWxCeXRlc1RvQmVTZW50KSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlk
RmluaXNoTG9hZGluZyhOZXR3b3JrUmVzb3VyY2VMb2FkZXIqLCBkb3VibGUgZmluaXNoVGltZSkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoTmV0d29ya1Jlc291cmNlTG9hZGVy
KiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBz
ZW5kRGVsYXllZFJlcGx5KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9tYWMvRGlza0NhY2hlTW9uaXRvci5oCmluZGV4IGJmYTMxZTIuLjMxODgzYzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9EaXNrQ2FjaGVNb25pdG9y
LmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL0Rpc2tDYWNoZU1vbml0
b3IuaApAQCAtNDcsOCArNDcsOCBAQCBwcml2YXRlOgogICAgIERpc2tDYWNoZU1vbml0b3IoQ0ZD
YWNoZWRVUkxSZXNwb25zZVJlZiwgTmV0d29ya1Jlc291cmNlTG9hZGVyKik7CiAKICAgICAvLyBJ
UEM6Ok1lc3NhZ2VTZW5kZXIKLSAgICB2aXJ0dWFsIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNl
bmRlckNvbm5lY3Rpb24oKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHVpbnQ2NF90IG1lc3NhZ2VT
ZW5kZXJEZXN0aW5hdGlvbklEKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBJUEM6OkNvbm5lY3Rp
b24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB1aW50
NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRlOwogCiAgICAgUmVmUHRy
PE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7
CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQ
cm9jZXNzL1BsdWdpblByb2Nlc3NNYWluLm1tIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1BsdWdpblByb2Nlc3NNYWluLm1tCmluZGV4
IGVhYmFiZGQuLjc4NDQwZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbi5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nl
c3MvUGx1Z2luUHJvY2Vzc01haW4ubW0KQEAgLTkyLDcgKzkyLDcgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRSdW5Mb29wKCkg
T1ZFUlJJREUKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRSdW5Mb29wKCkgb3ZlcnJpZGUKICAgICB7
CiAgICAgICAgIEFTU0VSVChOU0FwcCk7CiAgICAgICAgIFtOU0FwcCBydW5dOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgKaW5k
ZXggZDc2OTk3MS4uNTlkMWUzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCkBAIC05NSwxNCArOTUsMTQgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBwbHVnaW5Qcm9jZXNzQ3Jhc2hlZCgpOwogICAgIHZpcnR1YWwgdm9p
ZCB3aWxsU2VuZEV2ZW50VG9QbHVnaW4oKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkSW5pdGlhbGl6
ZVBsdWdpbigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsVG9Jbml0aWFsaXpl
UGx1Z2luKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZEluaXRpYWxpemVQbHVnaW4o
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdpbigp
IG92ZXJyaWRlOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHZpcnR1YWwgdm9pZCBwbHVnaW5G
b2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKGJvb2wpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBzZXRDb21wbGV4VGV4dElucHV0U3RhdGUoUGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIG1hY2hfcG9ydF90IGNvbXBvc2l0aW5nUmVuZGVyU2VydmVy
UG9ydCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBvcGVuUGx1Z2luUHJlZmVyZW5jZVBh
bmUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGx1Z2luRm9jdXNPcldpbmRvd0ZvY3Vz
Q2hhbmdlZChib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29tcGxleFRleHRJ
bnB1dFN0YXRlKFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBtYWNoX3BvcnRfdCBjb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgb3BlblBsdWdpblByZWZlcmVuY2VQYW5lKCkgb3ZlcnJpZGU7CiAj
ZW5kaWYKIAogICAgIHZpcnR1YWwgZmxvYXQgY29udGVudHNTY2FsZUZhY3RvcigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaAppbmRleCA0NzJmZWI2Li5h
ODdhMzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblBy
b2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3Mu
aApAQCAtNzAsMjAgKzcwLDIwIEBAIHByaXZhdGU6CiAgICAgflBsdWdpblByb2Nlc3MoKTsKIAog
ICAgIC8vIENoaWxkUHJvY2VzcwotICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplUHJvY2Vzcyhj
b25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0lu
aXRpYWxpemF0aW9uUGFyYW1ldGVycyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBpbml0
aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMm
LCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBib29sIHNob3VsZFRlcm1pbmF0ZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBpbml0
aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0
IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBpbml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXph
dGlvblBhcmFtZXRlcnMmLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBib29sIHNob3VsZFRlcm1pbmF0ZSgpIG92ZXJyaWRlOwogICAgIHZv
aWQgcGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXph
dGlvblBhcmFtZXRlcnMmKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIHZvaWQg
c3RvcFJ1bkxvb3AoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFJ1bkxvb3AoKSBv
dmVycmlkZTsKICNlbmRpZgogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNz
YWdlRGVjb2RlciYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShJUEM6OkNv
bm5lY3Rpb24qKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNl
aXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpN
ZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShJUEM6
OkNvbm5lY3Rpb24qKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFs
aWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VS
ZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsK
IAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCBkaWRSZWNlaXZlUGx1Z2luUHJv
Y2Vzc01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5o
CmluZGV4IDc5MjY5ZTYuLmY3YjkyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTYyLDggKzYyLDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRlc3Ryb3lQbHVnaW5Db250cm9sbGVyUHJveHkoUGx1Z2luQ29udHJvbGxl
clByb3h5Kik7CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQ
Qzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biosIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5j
b2Rlcj4mKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0
aW9uKik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24qLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6
OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvQ29jb2EvUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvQ29jb2EvUmVtb3RlT2JqZWN0UmVnaXN0cnkuaAppbmRleCAwOWMyZjA1
Li43NjU5YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1Jl
bW90ZU9iamVjdFJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2Nv
YS9SZW1vdGVPYmplY3RSZWdpc3RyeS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogcHJp
dmF0ZToKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biosIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKIAogICAgIC8vIE1lc3NhZ2UgaGFu
ZGxlcnMKICAgICB2b2lkIGludm9rZU1ldGhvZChjb25zdCBVc2VyRGF0YSYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSU9iamVjdC5oCmluZGV4IDUzN2RiYzguLjUyYmVmMTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJT2JqZWN0LmgKQEAgLTIyMCw3ICsyMjAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgewogICAgIH0K
IAotICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gQVBJVHlw
ZTsgfQorICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQVBJ
VHlwZTsgfQogCiAjaWYgREVMRUdBVEVfUkVGX0NPVU5USU5HX1RPX0NPQ09BCiAgICAgdm9pZCog
b3BlcmF0b3IgbmV3KHNpemVfdCBzaXplKSB7IHJldHVybiBuZXdPYmplY3Qoc2l6ZSwgQVBJVHlw
ZSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Bc3luY1JlcXVlc3QuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Bc3luY1JlcXVlc3QuaAppbmRleCAwYTFkM2ZlLi5kZGQ1
Y2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXN5bmNSZXF1ZXN0LmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FzeW5jUmVxdWVzdC5oCkBAIC04Niw3ICs4Niw3IEBA
IHByaXZhdGU6CiAgICAgICAgIEFTU0VSVChtX2NvbXBsZXRpb25IYW5kbGVyKTsKICAgICB9CiAK
LSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJDb21wbGV0aW9uSGFuZGxlcigpIE9WRVJSSURFCisgICAg
dmlydHVhbCB2b2lkIGNsZWFyQ29tcGxldGlvbkhhbmRsZXIoKSBvdmVycmlkZQogICAgIHsKICAg
ICAgICAgbV9jb21wbGV0aW9uSGFuZGxlciA9IG51bGxwdHI7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FzeW5jVGFzay5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FzeW5jVGFzay5oCmluZGV4IDM1Nzg3MDEuLjNhYmFmYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Bc3luY1Rhc2suaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXN5
bmNUYXNrLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAg
ICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRhc2soKSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBw
ZXJmb3JtVGFzaygpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBtX3Rhc2tGdW5jdGlvbigpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaAppbmRleCBlNjhlM2ZhLi42ODgyMDkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRp
b25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0aW9uTWFuYWdlci5oCkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKIAogcHJpdmF0
ZToKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbios
IElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKIAogICAgIGJvb2wgdHJ5VXNlQ2VydGlm
aWNhdGVJbmZvRm9yQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJiwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9DaGlsZFByb2Nlc3MuaAppbmRleCBkZmRmMDAyLi40YzZhZDI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0NoaWxkUHJvY2Vzcy5oCkBAIC05Nyw4ICs5Nyw4IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0
ZToKICAgICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKLSAgICB2aXJ0dWFsIElQQzo6Q29ubmVjdGlv
biogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHVpbnQ2
NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBJ
UEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRlOwog
CiAgICAgdm9pZCB0ZXJtaW5hdGlvblRpbWVyRmlyZWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ2hpbGRQcm9jZXNzUHJveHkuaAppbmRleCBjZThlYzU2Li5mNTNiOThhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuaApAQCAtNzMsNyArNzMsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgdm9pZCBhYm9ydFByb2Nlc3NMYXVuY2hJZk5lZWRlZCgpOwogCiAgICAgLy8g
UHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTGF1bmNo
aW5nKFByb2Nlc3NMYXVuY2hlciosIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIq
LCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBkaXNw
YXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAg
IGJvb2wgZGlzcGF0Y2hTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+Jik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGlu
YXRlZFN1cmZhY2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNz
L1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5oCmluZGV4IGE0MzAzOTIuLjc3YWYxNzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1dlYkNvb3JkaW5h
dGVkU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL1dlYkNvb3JkaW5hdGVkU3VyZmFjZS5oCkBAIC03MSwxMCArNzEsMTAgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB+V2ViQ29vcmRpbmF0ZWRTdXJmYWNlKCk7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgcGFpbnRUb1N1cmZhY2UoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFdlYkNvcmU6OkNvb3Jk
aW5hdGVkU3VyZmFjZTo6Q2xpZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhaW50
VG9TdXJmYWNlKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBXZWJDb3JlOjpDb29yZGluYXRlZFN1
cmZhY2U6OkNsaWVudCopIG92ZXJyaWRlOwogCiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQotICAg
IHZpcnR1YWwgdm9pZCBjb3B5VG9UZXh0dXJlKFBhc3NSZWZQdHI8V2ViQ29yZTo6Qml0bWFwVGV4
dHVyZT4sIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHRhcmdldCwgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIHNvdXJjZU9mZnNldCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNvcHlUb1Rl
eHR1cmUoUGFzc1JlZlB0cjxXZWJDb3JlOjpCaXRtYXBUZXh0dXJlPiwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgdGFyZ2V0LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc291cmNlT2Zmc2V0KSBv
dmVycmlkZTsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25s
b2Fkcy9Eb3dubG9hZC5oCmluZGV4IDZmMzhiOTAuLmQ2N2EwNGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvRG93bmxvYWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvRG93bmxvYWRzL0Rvd25sb2FkLmgKQEAgLTEwNiw4ICsxMDYsOCBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCi0gICAgdmlydHVhbCBJUEM6
OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBv
dmVycmlkZTsKIAogICAgIHZvaWQgcGxhdGZvcm1JbnZhbGlkYXRlKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90
b2NvbE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3Rv
Y29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIuaAppbmRleCA1MDUxMDdlLi44M2JjOTFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsv
Q3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5oCkBAIC03NywxOCArNzcsMTgg
QEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIENoaWxkUHJvY2Vzc1N1cHBsZW1lbnQKLSAg
ICB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiopIE9WRVJSSURFOwor
ICAgIHZvaWQgaW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKikgb3ZlcnJpZGU7
CiAKICAgICAvLyBXZWJQcm9jZXNzU3VwcGxlbWVudAotICAgIHZvaWQgaW5pdGlhbGl6ZShjb25z
dCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJikgT1ZFUlJJREU7CisgICAgdm9pZCBpbml0
aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKSBvdmVycmlkZTsKIAog
I2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgLy8gTmV0d29ya1Byb2Nlc3NTdXBwbGVt
ZW50Ci0gICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJikgT1ZFUlJJREU7CisgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IE5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJikgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIC8vIElQQzo6
TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVj
b2RlciYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkaWRGYWlsV2l0aEVycm9yKHVpbnQ2NF90IGN1
c3RvbVByb3RvY29sSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKICAgICB2b2lk
IGRpZExvYWREYXRhKHVpbnQ2NF90IGN1c3RvbVByb3RvY29sSUQsIGNvbnN0IElQQzo6RGF0YVJl
ZmVyZW5jZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0aW9uLmgKaW5kZXggZjliZjA5
MS4uNzg3MjE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5oCkBAIC00OSw3
ICs0OSw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgZGVjb2RlTWVzc2FnZUJvZHko
SVBDOjpBcmd1bWVudERlY29kZXImLCBSZWZQdHI8QVBJOjpPYmplY3Q+JikgPSAwOwogCiAgICAg
Ly8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBv
dmVycmlkZTsKIAogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJDb25uZWN0aW9u
TWVzc2FnZVJlY2VpdmVyLmNwcAogICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkNvbm5lY3Rpb25NZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZXNvdXJjZUJ1ZmZlci5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmgKaW5kZXggN2IzMGQ5OC4uNjliNDk1OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmgKQEAgLTM4LDExICszOCwx
MSBAQCBjbGFzcyBXZWJSZXNvdXJjZUJ1ZmZlciA6IHB1YmxpYyBXZWJDb3JlOjpSZXNvdXJjZUJ1
ZmZlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUmVzb3VyY2VCdWZmZXI+
IGNyZWF0ZShQYXNzUmVmUHRyPFNoYXJlYWJsZVJlc291cmNlPiByZXNvdXJjZSkgeyByZXR1cm4g
YWRvcHRSZWYobmV3IFdlYlJlc291cmNlQnVmZmVyKHJlc291cmNlKSk7IH0KIAotICAgIHZpcnR1
YWwgfldlYlJlc291cmNlQnVmZmVyKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB+V2ViUmVzb3Vy
Y2VCdWZmZXIoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgY29uc3QgY2hhciogZGF0YSgpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdW5zaWduZWQgc2l6ZSgpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBjb25zdCBjaGFyKiBkYXRhKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB1bnNpZ25l
ZCBzaXplKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzRW1wdHkoKSBjb25z
dCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBXZWJSZXNvdXJjZUJ1ZmZlcihQYXNzUmVmUHRy
PFNoYXJlYWJsZVJlc291cmNlPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Y2YvS2V5ZWRFbmNvZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2YvS2V5ZWRFbmNvZGVy
LmgKaW5kZXggYmM2NDRlZC4uMTNmZTczNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL2NmL0tleWVkRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9jZi9LZXll
ZEVuY29kZXIuaApAQCAtMzgsMjIgKzM4LDIyIEBAIHB1YmxpYzoKICAgICB+S2V5ZWRFbmNvZGVy
KCk7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIGVuY29kZUJ5dGVzKGNvbnN0IFN0cmlu
ZyYga2V5LCBjb25zdCB1aW50OF90Kiwgc2l6ZV90KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgZW5jb2RlQm9vbChjb25zdCBTdHJpbmcmIGtleSwgYm9vbCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGVuY29kZVVJbnQzMihjb25zdCBTdHJpbmcmIGtleSwgdWludDMyX3QpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVJbnQzMihjb25zdCBTdHJpbmcmIGtleSwgaW50
MzJfdCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGVuY29kZUludDY0KGNvbnN0IFN0cmlu
ZyYga2V5LCBpbnQ2NF90KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZW5jb2RlRmxvYXQo
Y29uc3QgU3RyaW5nJiBrZXksIGZsb2F0KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZW5j
b2RlRG91YmxlKGNvbnN0IFN0cmluZyYga2V5LCBkb3VibGUpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBlbmNvZGVTdHJpbmcoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVCeXRlcyhjb25zdCBTdHJpbmcmIGtleSwg
Y29uc3QgdWludDhfdCosIHNpemVfdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGVuY29k
ZUJvb2woY29uc3QgU3RyaW5nJiBrZXksIGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBlbmNvZGVVSW50MzIoY29uc3QgU3RyaW5nJiBrZXksIHVpbnQzMl90KSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZW5jb2RlSW50MzIoY29uc3QgU3RyaW5nJiBrZXksIGludDMyX3QpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVJbnQ2NChjb25zdCBTdHJpbmcmIGtleSwg
aW50NjRfdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGVuY29kZUZsb2F0KGNvbnN0IFN0
cmluZyYga2V5LCBmbG9hdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGVuY29kZURvdWJs
ZShjb25zdCBTdHJpbmcmIGtleSwgZG91YmxlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZW5jb2RlU3RyaW5nKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsK
IAotICAgIHZpcnR1YWwgdm9pZCBiZWdpbk9iamVjdChjb25zdCBTdHJpbmcmIGtleSkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGVuZE9iamVjdCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBiZWdpbk9iamVjdChjb25zdCBTdHJpbmcmIGtleSkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGVuZE9iamVjdCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGJlZ2luQXJy
YXkoY29uc3QgU3RyaW5nJiBrZXkpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBiZWdpbkFy
cmF5RWxlbWVudCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBlbmRBcnJheUVsZW1lbnQo
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZW5kQXJyYXkoKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgYmVnaW5BcnJheShjb25zdCBTdHJpbmcmIGtleSkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGJlZ2luQXJyYXlFbGVtZW50KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGVuZEFycmF5RWxlbWVudCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBlbmRBcnJh
eSgpIG92ZXJyaWRlOwogCiAgICAgUmV0YWluUHRyPENGTXV0YWJsZURpY3Rpb25hcnlSZWY+IG1f
cm9vdERpY3Rpb25hcnk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
U2VjSXRlbVNoaW0uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVNoaW0uaApp
bmRleCA1MmNiOWQ2Li40MmVlNTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bWFjL1NlY0l0ZW1TaGltLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVt
U2hpbS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHByaXZhdGU6CiAgICAgU2VjSXRlbVNoaW0oKTsKIAog
ICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyLgotICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKIAogICAg
IHZvaWQgc2VjSXRlbVJlc3BvbnNlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU2VjSXRlbVJl
c3BvbnNlRGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCmluZGV4IGNi
NjMxOTEuLjIwZDZiODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCkBAIC02
OCw1MiArNjgsNTIgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZv
aWQgd2lsbENoYW5nZUlzTG9hZGluZygpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIHdpbGxD
aGFuZ2VJc0xvYWRpbmcoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgW21fY29udHJvbGxlciB3
aWxsQ2hhbmdlVmFsdWVGb3JLZXk6QCJsb2FkaW5nIl07CiAgICAgfQogCi0gICAgdmlydHVhbCB2
b2lkIGRpZENoYW5nZUlzTG9hZGluZygpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIGRpZENo
YW5nZUlzTG9hZGluZygpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBbbV9jb250cm9sbGVyIGRp
ZENoYW5nZVZhbHVlRm9yS2V5OkAibG9hZGluZyJdOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9p
ZCB3aWxsQ2hhbmdlVGl0bGUoKSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2hhbmdl
VGl0bGUoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgW21fY29udHJvbGxlciB3aWxsQ2hhbmdl
VmFsdWVGb3JLZXk6QCJ0aXRsZSJdOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFu
Z2VUaXRsZSgpIE9WRVJSSURFCisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVRpdGxlKCkgb3Zl
cnJpZGUKICAgICB7CiAgICAgICAgIFttX2NvbnRyb2xsZXIgZGlkQ2hhbmdlVmFsdWVGb3JLZXk6
QCJ0aXRsZSJdOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2hhbmdlQWN0aXZlVVJM
KCkgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbENoYW5nZUFjdGl2ZVVSTCgpIG92ZXJy
aWRlCiAgICAgewogICAgICAgICBbbV9jb250cm9sbGVyIHdpbGxDaGFuZ2VWYWx1ZUZvcktleTpA
ImFjdGl2ZVVSTCJdOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VBY3RpdmVV
UkwoKSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VBY3RpdmVVUkwoKSBvdmVy
cmlkZQogICAgIHsKICAgICAgICAgW21fY29udHJvbGxlciBkaWRDaGFuZ2VWYWx1ZUZvcktleTpA
ImFjdGl2ZVVSTCJdOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2hhbmdlSGFzT25s
eVNlY3VyZUNvbnRlbnQoKSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2hhbmdlSGFz
T25seVNlY3VyZUNvbnRlbnQoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgW21fY29udHJvbGxl
ciB3aWxsQ2hhbmdlVmFsdWVGb3JLZXk6QCJoYXNPbmx5U2VjdXJlQ29udGVudCJdOwogICAgIH0K
IAotICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VIYXNPbmx5U2VjdXJlQ29udGVudCgpIE9WRVJS
SURFCisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUhhc09ubHlTZWN1cmVDb250ZW50KCkgb3Zl
cnJpZGUKICAgICB7CiAgICAgICAgIFttX2NvbnRyb2xsZXIgZGlkQ2hhbmdlVmFsdWVGb3JLZXk6
QCJoYXNPbmx5U2VjdXJlQ29udGVudCJdOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCB3aWxs
Q2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCB3aWxs
Q2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgW21fY29u
dHJvbGxlciB3aWxsQ2hhbmdlVmFsdWVGb3JLZXk6QCJlc3RpbWF0ZWRQcm9ncmVzcyJdOwogICAg
IH0KIAotICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VFc3RpbWF0ZWRQcm9ncmVzcygpIE9WRVJS
SURFCisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUVzdGltYXRlZFByb2dyZXNzKCkgb3ZlcnJp
ZGUKICAgICB7CiAgICAgICAgIFttX2NvbnRyb2xsZXIgZGlkQ2hhbmdlVmFsdWVGb3JLZXk6QCJl
c3RpbWF0ZWRQcm9ncmVzcyJdOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IGIxNTcxYTEuLmUxN2E1ZjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaApA
QCAtNjAsNTEgKzYwLDUxIEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgUGFnZUNsaWVudEltcGwo
R3RrV2lkZ2V0Kik7CiAKICAgICAvLyBQYWdlQ2xpZW50Ci0gICAgdmlydHVhbCBzdGQ6OnVuaXF1
ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQcm94eSgpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGxheVZpZXcoKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgY2FuU2Nyb2xsVmlldygpIE9WRVJSSURFIHsgcmV0dXJuIGZh
bHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNjcm9sbFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgaXNWaWV3V2luZG93QWN0aXZlKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBib29sIGlzVmlld0ZvY3VzZWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNW
aWV3VmlzaWJsZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc1ZpZXdJbldpbmRvdygp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQ3Jhc2goKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVsYXVuY2hQcm9jZXNzKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHBhZ2VDbG9zZWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcHJlZmVy
ZW5jZXNEaWRDaGFuZ2UoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdG9vbFRpcENoYW5n
ZWQoY29uc3QgV1RGOjpTdHJpbmcmLCBjb25zdCBXVEY6OlN0cmluZyYpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJikgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNv
bnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCByZWdpc3RlckVkaXRDb21tYW5kKFBhc3NSZWZQdHI8V2ViRWRpdENvbW1hbmRQcm94eT4s
IFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNs
ZWFyQWxsRWRpdENvbW1hbmRzKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNhblVuZG9S
ZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGV4ZWN1dGVVbmRvUmVkbyhXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGNvbnZlcnRUb0RldmljZVNwYWNlKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRS
ZWN0IGNvbnZlcnRUb1VzZXJTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvV2luZG93KGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0
IHdpbmRvd1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgZG9uZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50
JiwgYm9vbCB3YXNFdmVudEhhbmRsZWQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxXZWJQb3B1cE1lbnVQcm94eT4gY3JlYXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVByb3h5Kikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvbnRleHRNZW51UHJveHk+IGNy
ZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVByb3h5KikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gY3JlYXRlRHJhd2luZ0FyZWFQcm94
eSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGxheVZp
ZXcoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuU2Nyb2xsVmlldygpIG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbFZpZXcoY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xs
T2Zmc2V0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNWaWV3V2luZG93QWN0aXZlKCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBib29sIGlzVmlld0ZvY3VzZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgaXNWaWV3VmlzaWJsZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1Zp
ZXdJbldpbmRvdygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQ3Jhc2go
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVsYXVuY2hQcm9jZXNzKCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHBhZ2VDbG9zZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
dG9vbFRpcENoYW5nZWQoY29uc3QgV1RGOjpTdHJpbmcmLCBjb25zdCBXVEY6OlN0cmluZyYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29y
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VN
b3Zlcyhib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQ
cm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckVkaXRDb21tYW5kKFBhc3NSZWZQdHI8V2ViRWRpdENv
bW1hbmRQcm94eT4sIFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGNsZWFyQWxsRWRpdENvbW1hbmRzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBi
b29sIGNhblVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGV4ZWN1dGVVbmRvUmVkbyhXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGNvbnZlcnRUb0RldmljZVNw
YWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2Vi
Q29yZTo6RmxvYXRSZWN0IGNvbnZlcnRUb1VzZXJTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvV2lu
ZG93KGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJD
b3JlOjpJbnRSZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZG9uZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJL
ZXlib2FyZEV2ZW50JiwgYm9vbCB3YXNFdmVudEhhbmRsZWQpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gY3JlYXRlUG9wdXBNZW51UHJveHkoV2Vi
UGFnZVByb3h5Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvbnRleHRN
ZW51UHJveHk+IGNyZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVByb3h5Kikgb3ZlcnJpZGU7
CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdl
YkNvbG9yUGlja2VyPiBjcmVhdGVDb2xvclBpY2tlcihXZWJQYWdlUHJveHkqLCBjb25zdCBXZWJD
b3JlOjpDb2xvciYgaW50aWFsQ29sb3IsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29sb3JQaWNrZXI+IGNyZWF0ZUNvbG9yUGlj
a2VyKFdlYlBhZ2VQcm94eSosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbnRpYWxDb2xvciwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgdmlydHVhbCB2b2lk
IHNldEZpbmRJbmRpY2F0b3IoUGFzc1JlZlB0cjxGaW5kSW5kaWNhdG9yPiwgYm9vbCBmYWRlT3V0
LCBib29sIGFuaW1hdGUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBnZXRFZGl0b3JDb21t
YW5kc0ZvcktleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBjb25zdCBBdG9t
aWNTdHJpbmcmLCBWZWN0b3I8V1RGOjpTdHJpbmc+JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHVwZGF0ZVRleHRJbnB1dFN0YXRlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHN0
YXJ0RHJhZyhjb25zdCBXZWJDb3JlOjpEcmFnRGF0YSYsIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0
bWFwPiBkcmFnSW1hZ2UpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRGaW5kSW5kaWNh
dG9yKFBhc3NSZWZQdHI8RmluZEluZGljYXRvcj4sIGJvb2wgZmFkZU91dCwgYm9vbCBhbmltYXRl
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RWRpdG9yQ29tbWFuZHNGb3JLZXlFdmVu
dChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiwgY29uc3QgQXRvbWljU3RyaW5nJiwgVmVj
dG9yPFdURjo6U3RyaW5nPiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUZXh0
SW5wdXRTdGF0ZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdGFydERyYWcoY29uc3Qg
V2ViQ29yZTo6RHJhZ0RhdGEmLCBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gZHJhZ0ltYWdl
KSBvdmVycmlkZTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICB2aXJ0
dWFsIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVD
b250ZXh0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTW9kZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJU
cmVlQ29udGV4dCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBleGl0QWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOwog
I2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2Fk
UHJveHkqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0TG9hZEZvck1haW5G
cmFtZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVEb3dubG9hZFJlcXVlc3Qo
RG93bmxvYWRQcm94eSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRMb2Fk
Rm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CiAKICAgICAvLyBBdXhpbGlhcnkgQ2xpZW50IENyZWF0
aW9uCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpAQCAtMTEzLDEyICsxMTMsMTIgQEAgcHJp
dmF0ZToKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICAvLyBXZWJGdWxsU2NyZWVu
TWFuYWdlclByb3h5Q2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIGNsb3NlRnVsbFNjcmVlbk1hbmFn
ZXIoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNGdWxsU2NyZWVuKCkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbFNjcmVlbigpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBleGl0RnVsbFNjcmVlbigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBiZWdh
bkVudGVyRnVsbFNjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbml0aWFsRnJhbWUsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIGZpbmFsRnJhbWUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBiZWdhbkV4aXRGdWxsU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluaXRpYWxG
cmFtZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZmluYWxGcmFtZSkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIGNsb3NlRnVsbFNjcmVlbk1hbmFnZXIoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgaXNGdWxsU2NyZWVuKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGVudGVy
RnVsbFNjcmVlbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbigp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBiZWdhbkVudGVyRnVsbFNjcmVlbihjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiBpbml0aWFsRnJhbWUsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGZp
bmFsRnJhbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBiZWdhbkV4aXRGdWxsU2NyZWVu
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluaXRpYWxGcmFtZSwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgZmluYWxGcmFtZSkgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIC8vIE1lbWJlcnMgb2Yg
UGFnZUNsaWVudEltcGwgY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDQwODMzMzcuLmY4NjJiNzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvUGFnZUNsaWVudEltcGxJ
T1MuaApAQCAtNDUsODIgKzQ1LDgyIEBAIHB1YmxpYzoKICAgICAKIHByaXZhdGU6CiAgICAgLy8g
UGFnZUNsaWVudAotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+
IGNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIGRpc3BsYXlWaWV3KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNh
blNjcm9sbFZpZXcoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsVmlldyhjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBz
Y3JvbGxPZmZzZXQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50U2l6ZSB2aWV3
U2l6ZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc1ZpZXdXaW5kb3dBY3RpdmUoKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNWaWV3Rm9jdXNlZCgpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBpc1ZpZXdWaXNpYmxlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29s
IGlzVmlld0luV2luZG93KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRD
cmFzaCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWxhdW5jaFByb2Nlc3MoKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFnZUNsb3NlZCgpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBwcmVmZXJlbmNlc0RpZENoYW5nZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCB0b29sVGlwQ2hhbmdlZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdChXZWJGcmFtZVByb3h5JiwgV2ViU2VjdXJpdHlPcmlnaW4mLCBHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0UHJveHkmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ29t
bWl0TG9hZEZvck1haW5GcmFtZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFu
Z2VDb250ZW50U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3Qg
V2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IHJlZ2lzdGVyRWRpdENvbW1hbmQoUGFzc1JlZlB0cjxXZWJFZGl0Q29tbWFuZFByb3h5PiwgV2Vi
UGFnZVByb3h5OjpVbmRvT3JSZWRvKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJB
bGxFZGl0Q29tbWFuZHMoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgY2FuVW5kb1JlZG8o
V2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZXhl
Y3V0ZVVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGFjY2Vzc2liaWxpdHlXZWJQcm9jZXNzVG9rZW5SZWNlaXZlZChjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaW50ZXJwcmV0S2V5
RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIFZlY3RvcjxXZWJDb3JlOjpLZXlw
cmVzc0NvbW1hbmQ+JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGV4ZWN1dGVTYXZlZENv
bW1hbmRCeVNlbGVjdG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0b3IpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBzZXREcmFnSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBv
c2l0aW9uLCBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gZHJhZ0ltYWdlLCBib29sIGlzTGlu
a0RyYWcpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTZWN1cmVJbnB1dFN0YXRl
KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlc2V0U2VjdXJlSW5wdXRTdGF0ZSgpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRl
ZENvbXBvc2l0aW9uKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG1ha2VGaXJzdFJlc3Bv
bmRlcigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGNvbnZlcnRU
b0RldmljZVNwYWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGNvbnZlcnRUb1VzZXJTcGFjZShjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IHNj
cmVlblRvV2luZG93KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBXZWJDb3JlOjpJbnRSZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZG9uZVdpdGhLZXlFdmVudChjb25zdCBO
YXRpdmVXZWJLZXlib2FyZEV2ZW50JiwgYm9vbCB3YXNFdmVudEhhbmRsZWQpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IGNyZWF0ZURyYXdp
bmdBcmVhUHJveHkoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Vmlld05lZWRzRGlz
cGxheShjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IGRpc3BsYXlWaWV3KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGNhblNjcm9sbFZpZXco
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsVmlldyhjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxPZmZzZXQp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50U2l6ZSB2aWV3U2l6ZSgpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1ZpZXdXaW5kb3dBY3RpdmUoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNWaWV3Rm9jdXNlZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9v
bCBpc1ZpZXdWaXNpYmxlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzVmlld0luV2lu
ZG93KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDcmFzaCgpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWxhdW5jaFByb2Nlc3MoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcGFnZUNsb3NlZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBw
cmVmZXJlbmNlc0RpZENoYW5nZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB0b29sVGlw
Q2hhbmdlZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJG
cmFtZVByb3h5JiwgV2ViU2VjdXJpdHlPcmlnaW4mLCBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0UHJveHkmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0TG9hZEZvck1h
aW5GcmFtZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VDb250ZW50U2l6
ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNl
dEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmll
d3BvcnRBdHRyaWJ1dGVzJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRWRp
dENvbW1hbmQoUGFzc1JlZlB0cjxXZWJFZGl0Q29tbWFuZFByb3h5PiwgV2ViUGFnZVByb3h5OjpV
bmRvT3JSZWRvKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJBbGxFZGl0Q29tbWFu
ZHMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuVW5kb1JlZG8oV2ViUGFnZVByb3h5
OjpVbmRvT3JSZWRvKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZXhlY3V0ZVVuZG9SZWRv
KFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFj
Y2Vzc2liaWxpdHlXZWJQcm9jZXNzVG9rZW5SZWNlaXZlZChjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaW50ZXJwcmV0S2V5RXZlbnQoY29uc3Qg
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGV4ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVj
dG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0b3IpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBz
ZXREcmFnSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBQYXNz
UmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gZHJhZ0ltYWdlLCBib29sIGlzTGlua0RyYWcpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHJlc2V0U2VjdXJlSW5wdXRTdGF0ZSgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9u
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG1ha2VGaXJzdFJlc3BvbmRlcigpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGNvbnZlcnRUb0RldmljZVNwYWNl
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29y
ZTo6RmxvYXRSZWN0IGNvbnZlcnRUb1VzZXJTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvV2luZG93
KGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJDb3Jl
OjpJbnRSZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgZG9uZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXli
b2FyZEV2ZW50JiwgYm9vbCB3YXNFdmVudEhhbmRsZWQpIG92ZXJyaWRlOwogI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpCi0gICAgdmlydHVhbCB2b2lkIGRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBO
YXRpdmVXZWJUb3VjaEV2ZW50JiwgYm9vbCB3YXNFdmVudEhhbmRsZWQpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBkb25lV2l0aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVu
dCYsIGJvb2wgd2FzRXZlbnRIYW5kbGVkKSBvdmVycmlkZTsKICNlbmRpZgotICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gY3JlYXRlUG9wdXBNZW51UHJveHkoV2ViUGFn
ZVByb3h5KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvbnRleHRNZW51
UHJveHk+IGNyZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVByb3h5KikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIHNldEZpbmRJbmRpY2F0b3IoUGFzc1JlZlB0cjxGaW5kSW5kaWNhdG9y
PiwgYm9vbCBmYWRlT3V0LCBib29sIGFuaW1hdGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gY3JlYXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVBy
b3h5Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvbnRleHRNZW51UHJv
eHk+IGNyZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVByb3h5Kikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHNldEZpbmRJbmRpY2F0b3IoUGFzc1JlZlB0cjxGaW5kSW5kaWNhdG9yPiwg
Ym9vbCBmYWRlT3V0LCBib29sIGFuaW1hdGUpIG92ZXJyaWRlOwogI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKLSAgICB2aXJ0dWFsIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVD
b250ZXh0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdSb290TGF5ZXIoQ0FMYXllciAqcm9vdExheWVyKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250
ZXh0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoQ0FMYXllciAqcm9v
dExheWVyKSBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgdmlydHVhbCB2b2lkIG1haW5Eb2N1bWVu
dERpZFJlY2VpdmVNb2JpbGVEb2NUeXBlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1h
aW5Eb2N1bWVudERpZFJlY2VpdmVNb2JpbGVEb2NUeXBlKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkR2V0VGFwSGlnaGxpZ2h0R2VvbWV0cmllcyh1aW50NjRfdCByZXF1ZXN0SUQs
IGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvciwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0
UXVhZD4mIGhpZ2hsaWdodGVkUXVhZHMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvcExlZnRS
YWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvcFJpZ2h0UmFkaXVzLCBjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBib3R0b21MZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBi
b3R0b21SaWdodFJhZGl1cykgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZEdldFRhcEhp
Z2hsaWdodEdlb21ldHJpZXModWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpDb2xv
ciYgY29sb3IsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpGbG9hdFF1YWQ+JiBoaWdobGlnaHRlZFF1
YWRzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB0b3BMZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJiB0b3BSaWdodFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYm90dG9t
TGVmdFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYm90dG9tUmlnaHRSYWRpdXMpIG92
ZXJyaWRlOwogCi0gICAgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydEFyZ3VtZW50cyhjb25zdCBXZWJD
b3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYgdmlld3BvcnRBcmd1bWVudHMpIE9WRVJSSURFOworICAg
IHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRBcmd1bWVudHMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRB
cmd1bWVudHMmIHZpZXdwb3J0QXJndW1lbnRzKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9p
ZCBzdGFydEFzc2lzdGluZ05vZGUoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wgaGFzTmV4
dEZvY3VzYWJsZSwgYm9vbCBoYXNQcmV2aW91c0ZvY3VzYWJsZSkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHN0b3BBc3Npc3RpbmdOb2RlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IHNlbGVjdGlvbkRpZENoYW5nZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpbnRlcnBy
ZXRLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiwgYm9vbCBpc0NoYXJFdmVu
dCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0QXNzaXN0aW5nTm9kZShjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCBoYXNOZXh0Rm9jdXNhYmxlLCBib29sIGhhc1ByZXZpb3Vz
Rm9jdXNhYmxlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcEFzc2lzdGluZ05vZGUo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0aW9uRGlkQ2hhbmdlKCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBib29sIGludGVycHJldEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktl
eWJvYXJkRXZlbnQmLCBib29sIGlzQ2hhckV2ZW50KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgcG9zaXRpb25JbmZvcm1hdGlvbkRpZENoYW5nZShjb25zdCBJbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbiYpOwogCiAgICAgLy8gQXV4aWxpYXJ5IENsaWVudCBDcmVhdGlvbgogI2lm
IEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICB2aXJ1YWwgV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eUNsaWVudCYgZnVsbFNjcmVlbk1hbmFnZXJQcm94eUNsaWVudCgpIE9WRVJSSURFOworICAg
IHZpcnVhbCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Q2xpZW50JiBmdWxsU2NyZWVuTWFuYWdl
clByb3h5Q2xpZW50KCkgb3ZlcnJpZGU7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKICAgICAvLyBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Q2xpZW50Ci0gICAgdmlydHVh
bCB2b2lkIGNsb3NlRnVsbFNjcmVlbk1hbmFnZXIoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJv
b2wgaXNGdWxsU2NyZWVuKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbFNj
cmVlbigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbigpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBiZWdhbkVudGVyRnVsbFNjcmVlbihjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiBpbml0aWFsRnJhbWUsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGZpbmFsRnJh
bWUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBiZWdhbkV4aXRGdWxsU2NyZWVuKGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIGluaXRpYWxGcmFtZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
ZmluYWxGcmFtZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNsb3NlRnVsbFNjcmVlbk1h
bmFnZXIoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNGdWxsU2NyZWVuKCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbFNjcmVlbigpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBi
ZWdhbkVudGVyRnVsbFNjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbml0aWFsRnJhbWUs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGZpbmFsRnJhbWUpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBiZWdhbkV4aXRGdWxsU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluaXRp
YWxGcmFtZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZmluYWxGcmFtZSkgb3ZlcnJpZGU7CiAj
ZW5kaWYKIAogICAgIFdLQ29udGVudFZpZXcgKm1fdmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IGY1ZTUyOWQuLmU4M2Ew
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGll
bnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVu
dEltcGwuaApAQCAtNjYsMTYgKzY2LDE2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlz
Vmlld1Zpc2libGUoKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNWaWV3SW5XaW5kb3coKTsKICAgICB2
aXJ0dWFsIGJvb2wgaXNWaXN1YWxseUlkbGUoKTsKLSAgICB2aXJ0dWFsIExheWVySG9zdGluZ01v
ZGUgdmlld0xheWVySG9zdGluZ01vZGUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIENvbG9yU3Bh
Y2VEYXRhIGNvbG9yU3BhY2UoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihDQUxheWVyICopIE9WRVJSSURFOworICAgIHZpcnR1
YWwgTGF5ZXJIb3N0aW5nTW9kZSB2aWV3TGF5ZXJIb3N0aW5nTW9kZSgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgQ29sb3JTcGFjZURhdGEgY29sb3JTcGFjZSgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKENBTGF5ZXIgKikgb3Zl
cnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENyYXNoKCk7CiAgICAgdmlydHVh
bCB2b2lkIHBhZ2VDbG9zZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVsYXVuY2hQcm9jZXNz
KCk7Ci0gICAgdmlydHVhbCB2b2lkIHByZWZlcmVuY2VzRGlkQ2hhbmdlKCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHByZWZlcmVuY2VzRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIHRvb2xUaXBDaGFuZ2VkKGNvbnN0IFN0cmluZyYgb2xkVG9vbFRpcCwgY29uc3Qg
U3RyaW5nJiBuZXdUb29sVGlwKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0TG9hZEZvck1h
aW5GcmFtZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRMb2FkRm9yTWFp
bkZyYW1lKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJD
b3JlOjpDdXJzb3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3Vz
ZU1vdmVzKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRp
ZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJik7CkBAIC04OSw5ICs4OSw5IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldERyYWdJbWFnZShjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgY2xpZW50UG9zaXRpb24sIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBkcmFn
SW1hZ2UsIGJvb2wgaXNMaW5rRHJhZyk7CiAgICAgdmlydHVhbCB2b2lkIHNldFByb21pc2VkRGF0
YShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJl
ZEJ1ZmZlcj4gaW1hZ2VCdWZmZXIsIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmlu
ZyYgZXh0ZW5zaW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdmlzaWJsZVVybCwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGFyY2hpdmVCdWZmZXIpOwotICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHJlc2V0U2VjdXJlSW5wdXRTdGF0ZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9uKCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNlY3VyZUlucHV0U3RhdGUoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVzZXRTZWN1cmVJbnB1dFN0YXRlKCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIG5vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRpb24oKSBv
dmVycmlkZTsKIAogICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGNvbnZlcnRUb0Rldmlj
ZVNwYWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6
RmxvYXRSZWN0IGNvbnZlcnRUb1VzZXJTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsK
QEAgLTEzMSw3ICsxMzEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCByZWNvbW1lbmRl
ZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKGludDMyX3QgbmV3U3R5bGUpOwogCiAgICAgdmlydHVh
bCBXS1ZpZXcqIHdrVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fd2tWaWV3OyB9Ci0gICAgdmlydHVh
bCB2b2lkIGludHJpbnNpY0NvbnRlbnRTaXplRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIGludHJpbnNpY0NvbnRlbnRTaXplKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaW50
cmluc2ljQ29udGVudFNpemVEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW50cmlu
c2ljQ29udGVudFNpemUpIG92ZXJyaWRlOwogCiAjaWYgVVNFKERJQ1RBVElPTl9BTFRFUk5BVElW
RVMpCiAgICAgdmlydHVhbCB1aW50NjRfdCBhZGREaWN0YXRpb25BbHRlcm5hdGl2ZXMoY29uc3Qg
UmV0YWluUHRyPE5TVGV4dEFsdGVybmF0aXZlcz4mKTsKQEAgLTE0MiwxNyArMTQyLDE3IEBAIHBy
aXZhdGU6CiAKICAgICAvLyBBdXhpbGlhcnkgQ2xpZW50IENyZWF0aW9uCiAjaWYgRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQotICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQmIGZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHlDbGllbnQoKSBPVkVSUklERTsKKyAgICBXZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5Q2xpZW50JiBmdWxsU2NyZWVuTWFuYWdlclByb3h5Q2xpZW50KCkgb3ZlcnJpZGU7
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICAvLyBXZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5Q2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIGNsb3NlRnVsbFNjcmVlbk1h
bmFnZXIoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNGdWxsU2NyZWVuKCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbFNjcmVlbigpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBi
ZWdhbkVudGVyRnVsbFNjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbml0aWFsRnJhbWUs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGZpbmFsRnJhbWUpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBiZWdhbkV4aXRGdWxsU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluaXRp
YWxGcmFtZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZmluYWxGcmFtZSkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIGNsb3NlRnVsbFNjcmVlbk1hbmFnZXIoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNGdWxsU2NyZWVuKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGVu
dGVyRnVsbFNjcmVlbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVl
bigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBiZWdhbkVudGVyRnVsbFNjcmVlbihjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBpbml0aWFsRnJhbWUsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IGZpbmFsRnJhbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBiZWdhbkV4aXRGdWxsU2Ny
ZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluaXRpYWxGcmFtZSwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgZmluYWxGcmFtZSkgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIFdLVmlldyogbV93
a1ZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0UHJv
eHkuaAppbmRleCAyMDhiMjY0Li41YzhjYzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3RQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdFByb3h5LmgKQEAgLTUwLDkgKzUwLDkgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0VmlzaWJsZUNvbnRlbnRzUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFqZWN0b3J5VmVjdG9yKTsKICAgICBXZWJD
b3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUqIGNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc2NlbmUuZ2V0KCk7IH0KIAotICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVWaWV3cG9ydCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZW5kZXJOZXh0RnJhbWUo
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcHVyZ2VCYWNraW5nU3RvcmVzKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVZpZXdwb3J0KCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHJlbmRlck5leHRGcmFtZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBw
dXJnZUJhY2tpbmdTdG9yZXMoKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBjb21taXRT
Y3JvbGxPZmZzZXQodWludDMyX3QgbGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgb2Zm
c2V0KTsKIApAQCAtNjAsNyArNjAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBkaXNwYXRjaFVw
ZGF0ZShjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jik7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNl
aXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24q
LCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVy
cmlkZTsKIAogICAgIENvb3JkaW5hdGVkRHJhd2luZ0FyZWFQcm94eSogbV9kcmF3aW5nQXJlYVBy
b3h5OwogICAgIFJlZlB0cjxXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU+IG1fc2Nl
bmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFw
aGljcy9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFw
aGljcy9XZWJWaWV3LmgKaW5kZXggNzM5MWRhNS4uNDkxYWJmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViVmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL1dlYlZpZXcuaApAQCAt
MTI2LDgyICsxMjYsODIgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgdXBkYXRlVmlld3BvcnRTaXpl
KCk7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIGRpcFNpemUoKSBjb25zdDsKICAgICAvLyBQYWdl
Q2xpZW50Ci0gICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gY3Jl
YXRlRHJhd2luZ0FyZWFQcm94eSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVf
cHRyPERyYXdpbmdBcmVhUHJveHk+IGNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKSBvdmVycmlkZTsK
IAotICAgIHZpcnR1YWwgdm9pZCBzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Vmlld05lZWRzRGlzcGxheShj
b25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlz
cGxheVZpZXcoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGxheVZpZXcoKSBvdmVy
cmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBjYW5TY3JvbGxWaWV3KCkgT1ZFUlJJREUgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsVmlldyhjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
Ym9vbCBjYW5TY3JvbGxWaWV3KCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgc2Nyb2xsVmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpJbnRTaXplIHZp
ZXdTaXplKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRTaXplIHZpZXdTaXpl
KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNWaWV3V2luZG93QWN0aXZlKCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzVmlld0ZvY3VzZWQoKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGJvb2wgaXNWaWV3VmlzaWJsZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBp
c1ZpZXdJbldpbmRvdygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc1ZpZXdXaW5kb3dB
Y3RpdmUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNWaWV3Rm9jdXNlZCgpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1ZpZXdWaXNpYmxlKCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIGlzVmlld0luV2luZG93KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
cHJvY2Vzc0RpZENyYXNoKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlbGF1bmNo
UHJvY2VzcygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBwYWdlQ2xvc2VkKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDcmFzaCgpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWxhdW5jaFByb2Nlc3MoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgcGFnZUNsb3NlZCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHByZWZlcmVuY2Vz
RGlkQ2hhbmdlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHByZWZlcmVuY2VzRGlkQ2hh
bmdlKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgdG9vbFRpcENoYW5nZWQoY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHRvb2xU
aXBDaGFuZ2VkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogCi0gICAg
dmlydHVhbCB2b2lkIGRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZSgpIG92ZXJyaWRlOwogCi0gICAg
dmlydHVhbCB2b2lkIHBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlbmRlckZyYW1lKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY292ZXJl
ZFJlY3QpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBwYWdlVHJhbnNpdGlvblZpZXdwb3J0
UmVhZHkoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFnZURpZFJlcXVlc3RTY3JvbGwo
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVuZGVyRnJhbWUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgY29udGVudHNTaXplLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiBjb3ZlcmVkUmVjdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHBhZ2VUcmFuc2l0aW9uVmlld3BvcnRSZWFkeSgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2
b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29s
KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRp
ZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3
cG9ydEF0dHJpYnV0ZXMmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckVk
aXRDb21tYW5kKFBhc3NSZWZQdHI8V2ViRWRpdENvbW1hbmRQcm94eT4sIFdlYlBhZ2VQcm94eTo6
VW5kb09yUmVkbykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyQWxsRWRpdENvbW1h
bmRzKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNhblVuZG9SZWRvKFdlYlBhZ2VQcm94
eTo6VW5kb09yUmVkbykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGV4ZWN1dGVVbmRvUmVk
byhXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBy
ZWdpc3RlckVkaXRDb21tYW5kKFBhc3NSZWZQdHI8V2ViRWRpdENvbW1hbmRQcm94eT4sIFdlYlBh
Z2VQcm94eTo6VW5kb09yUmVkbykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyQWxs
RWRpdENvbW1hbmRzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGNhblVuZG9SZWRvKFdl
YlBhZ2VQcm94eTo6VW5kb09yUmVkbykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGV4ZWN1
dGVVbmRvUmVkbyhXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pIG92ZXJyaWRlOwogCi0gICAgdmly
dHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgY29udmVydFRvRGV2aWNlU3BhY2UoY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3Qg
Y29udmVydFRvVXNlclNwYWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qgd2lu
ZG93VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGNvbnZlcnRUb0RldmljZVNwYWNlKGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGNv
bnZlcnRUb1VzZXJTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvV2luZG93KGNvbnN0IFdlYkNvcmU6
OkludFBvaW50Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHdpbmRv
d1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVUZXh0SW5wdXRTdGF0ZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVUZXh0SW5wdXRTdGF0ZSgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGhh
bmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5KikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5Kikgb3ZlcnJpZGU7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgZG9uZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50JiwgYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRvbmVXaXRoS2V5RXZl
bnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIGJvb2wpIG92ZXJyaWRlOwogI2lmIEVO
QUJMRShUT1VDSF9FVkVOVFMpCi0gICAgdmlydHVhbCB2b2lkIGRvbmVXaXRoVG91Y2hFdmVudChj
b25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiwgYm9vbCB3YXNFdmVudEhhbmRsZWQpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBkb25lV2l0aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91
Y2hFdmVudCYsIGJvb2wgd2FzRXZlbnRIYW5kbGVkKSBvdmVycmlkZTsKICNlbmRpZgogCi0gICAg
dmlydHVhbCBQYXNzUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBjcmVhdGVQb3B1cE1lbnVQcm94
eShXZWJQYWdlUHJveHkqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29u
dGV4dE1lbnVQcm94eT4gY3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkqKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IGNyZWF0ZVBv
cHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxXZWJDb250ZXh0TWVudVByb3h5PiBjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQ
cm94eSopIG92ZXJyaWRlOwogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlcj4gY3JlYXRlQ29sb3JQaWNrZXIoV2ViUGFnZVBy
b3h5KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tl
cj4gY3JlYXRlQ29sb3JQaWNrZXIoV2ViUGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6Q29sb3Im
IGluaXRpYWxDb2xvciwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOwogI2VuZGlm
CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RmluZEluZGljYXRvcihQYXNzUmVmUHRyPEZpbmRJbmRp
Y2F0b3I+LCBib29sLCBib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RmluZElu
ZGljYXRvcihQYXNzUmVmUHRyPEZpbmRJbmRpY2F0b3I+LCBib29sLCBib29sKSBvdmVycmlkZTsK
IAotICAgIHZpcnR1YWwgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0
IExheWVyVHJlZUNvbnRleHQmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZXhpdEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShj
b25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGV4aXRB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikg
b3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eUNsaWVudCYgZnVsbFNjcmVlbk1hbmFnZXJQcm94eUNsaWVudCgpIE9WRVJS
SURFOworICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQmIGZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHlDbGllbnQoKSBvdmVycmlkZTsKIAogICAgIC8vIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHlDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgY2xvc2VGdWxsU2NyZWVuTWFuYWdlcigpIE9W
RVJSSURFIHsgfQotICAgIHZpcnR1YWwgYm9vbCBpc0Z1bGxTY3JlZW4oKSBPVkVSUklERSB7IHJl
dHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxTY3JlZW4oKSBPVkVSUklE
RSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW4oKSBPVkVSUklERSB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgYmVnYW5FbnRlckZ1bGxTY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgYmVnYW5FeGl0RnVsbFNjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjbG9zZUZ1bGxT
Y3JlZW5NYW5hZ2VyKCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCBib29sIGlzRnVsbFNjcmVl
bigpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIGVudGVyRnVs
bFNjcmVlbigpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbigp
IG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBiZWdhbkVudGVyRnVsbFNjcmVlbihjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBiZWdhbkV4aXRGdWxsU2NyZWVuKGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGUgeyB9CiAjZW5kaWYKIAog
ICAgIFdlYlZpZXdDbGllbnQgbV9jbGllbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvRGF0YWJhc2VzL0RhdGFiYXNlUHJvY2Vzc1Byb3h5LmgKaW5kZXggZjQ4ZGMw
Yy4uYmQ3NTU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RhdGFiYXNl
cy9EYXRhYmFzZVByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9E
YXRhYmFzZXMvRGF0YWJhc2VQcm9jZXNzUHJveHkuaApAQCAtNDgsMjAgKzQ4LDIwIEBAIHByaXZh
dGU6CiAgICAgRGF0YWJhc2VQcm9jZXNzUHJveHkoV2ViQ29udGV4dCopOwogCiAgICAgLy8gQ2hp
bGRQcm9jZXNzUHJveHkKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNz
TGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29u
bmVjdGlvbldpbGxPcGVuKElQQzo6Q29ubmVjdGlvbiopIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBjb25uZWN0aW9uV2lsbENsb3NlKElQQzo6Q29ubmVjdGlvbiopIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0
aW9ucyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0aW9uV2lsbE9wZW4oSVBD
OjpDb25uZWN0aW9uKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvbm5lY3Rpb25XaWxs
Q2xvc2UoSVBDOjpDb25uZWN0aW9uKikgb3ZlcnJpZGU7CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rp
b246OkNsaWVudAotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpTdHJpbmdSZWZl
cmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5h
bWUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpTdHJpbmdS
ZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2Fn
ZU5hbWUpIG92ZXJyaWRlOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycwogICAgIHZvaWQgZGlk
Q3JlYXRlRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVu
dCYpOwogCiAgICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciosIElQQzo6Q29ubmVjdGlvbjo6SWRl
bnRpZmllcikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExhdW5jaGluZyhQ
cm9jZXNzTGF1bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpIG92ZXJyaWRlOwog
CiAgICAgdm9pZCBwbGF0Zm9ybUdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVu
Y2hPcHRpb25zJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Eb3du
bG9hZHMvRG93bmxvYWRQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZFByb3h5LmgKaW5kZXggY2E5NTQ0My4uNmY4NTM2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKQEAgLTcwLDgg
KzcwLDggQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBEb3dubG9hZFByb3h5KERvd25sb2FkUHJv
eHlNYXAmLCBXZWJDb250ZXh0Jik7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1l
c3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5j
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlx
dWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXIm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpN
ZXNzYWdlRW5jb2Rlcj4mKSBvdmVycmlkZTsKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCiAg
ICAgdm9pZCBkaWRTdGFydChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IGQzNWMwYzcuLjU5
N2Q2M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaApA
QCAtOTAsNyArOTAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3Njcm9s
bE9mZnNldDsKIAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXIm
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBzaXplRGlkQ2hhbmdlKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFu
YWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90
b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkuaAppbmRleCBiYjMyZGFmLi44NjU3ZDFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90
b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJv
eHkuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgLy8gSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNv
ZGVyJikgb3ZlcnJpZGU7CiAKICAgICBDaGlsZFByb2Nlc3NQcm94eSogbV9jaGlsZFByb2Nlc3NQ
cm94eTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IGFkYzIyOTguLmFkMTNjNzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgK
QEAgLTY1LDE4ICs2NSwxOCBAQCBwcml2YXRlOgogICAgIE5ldHdvcmtQcm9jZXNzUHJveHkoV2Vi
Q29udGV4dCYpOwogCiAgICAgLy8gQ2hpbGRQcm9jZXNzUHJveHkKLSAgICB2aXJ0dWFsIHZvaWQg
Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdGlvbldpbGxPcGVuKElQQzo6Q29ubmVjdGlvbiop
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0aW9uV2lsbENsb3NlKElQQzo6Q29u
bmVjdGlvbiopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBnZXRMYXVuY2hPcHRpb25zKFBy
b2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBjb25uZWN0aW9uV2lsbE9wZW4oSVBDOjpDb25uZWN0aW9uKikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGNvbm5lY3Rpb25XaWxsQ2xvc2UoSVBDOjpDb25uZWN0aW9uKikgb3ZlcnJpZGU7
CiAKICAgICB2b2lkIHBsYXRmb3JtR2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6Okxh
dW5jaE9wdGlvbnMmKTsKICAgICB2b2lkIG5ldHdvcmtQcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9M
YXVuY2goKTsKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29k
ZXImKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBD
OjpNZXNzYWdlRW5jb2Rlcj4mKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2Uo
SVBDOjpDb25uZWN0aW9uKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJ
bnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbios
IElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImLCBz
dGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uKikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6OlN0
cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBt
ZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzCiAgICAgdm9p
ZCBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwg
SVBDOjpNZXNzYWdlRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkuaAppbmRleCBhMTgxY2NiLi41OTFkZjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHkuaApAQCAtNzgsOSArNzgsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJO
b3RpZmljYXRpb25zKFdlYlBhZ2VQcm94eSosIGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mIHBhZ2VO
b3RpZmljYXRpb25JRHMsIE5vdGlmaWNhdGlvbkZpbHRlckZ1bmN0aW9uKTsKIAogICAgIC8vIFdl
YkNvbnRleHRTdXBwbGVtZW50Ci0gICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKSBvdmVycmlkZTsKIAogICAgIFdl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyIG1fcHJvdmlkZXI7CiAgICAgLy8gUGFpciBjb21wcmlzZWQg
b2Ygd2ViIHBhZ2UgSUQgYW5kIHRoZSB3ZWIgcHJvY2VzcydzIG5vdGlmaWNhdGlvbiBJRApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1By
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJv
eHkuaAppbmRleCA2MTg4MWQ4Li4yN2NhODQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaApAQCAtMTAwLDE3ICsxMDAs
MTcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBQbHVnaW5Qcm9jZXNzUHJveHkoUGx1Z2luUHJv
Y2Vzc01hbmFnZXIqLCBjb25zdCBQbHVnaW5Qcm9jZXNzQXR0cmlidXRlcyYsIHVpbnQ2NF90IHBs
dWdpblByb2Nlc3NUb2tlbik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0TGF1bmNoT3B0aW9ucyhQ
cm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKSBvdmVy
cmlkZTsKICAgICB2b2lkIHBsYXRmb3JtR2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6
OkxhdW5jaE9wdGlvbnMmLCBjb25zdCBQbHVnaW5Qcm9jZXNzQXR0cmlidXRlcyYpOwogCiAgICAg
dm9pZCBwbHVnaW5Qcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVuY2goKTsKIAogICAgIC8vIElQ
Qzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6
TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2Rl
ciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIG92ZXJyaWRlOwogCi0g
ICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiopIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwg
SVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZl
cmVuY2UgbWVzc2FnZU5hbWUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShJ
UEM6OkNvbm5lY3Rpb24qKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUlu
dmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3Nh
Z2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlk
ZTsKIAogICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9S
ZW1vdGVTY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5n
L1JlbW90ZVNjcm9sbGluZ1RyZWUuaAppbmRleCBkZjAzZWM3Li5kNTE2Mzc1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGlu
Z1RyZWUuaApAQCAtNDEsOCArNDEsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxSZW1v
dGVTY3JvbGxpbmdUcmVlPiBjcmVhdGUoUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSYp
OwogICAgIHZpcnR1YWwgflJlbW90ZVNjcm9sbGluZ1RyZWUoKTsKIAotICAgIHZpcnR1YWwgYm9v
bCBpc1JlbW90ZVNjcm9sbGluZ1RyZWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9
Ci0gICAgdmlydHVhbCBFdmVudFJlc3VsdCB0cnlUb0hhbmRsZVdoZWVsRXZlbnQoY29uc3QgV2Vi
Q29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlz
UmVtb3RlU2Nyb2xsaW5nVHJlZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAg
ICB2aXJ0dWFsIEV2ZW50UmVzdWx0IHRyeVRvSGFuZGxlV2hlZWxFdmVudChjb25zdCBXZWJDb3Jl
OjpQbGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZTsKIAogICAgIGNvbnN0IFJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHkmIHNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKSBjb25zdCB7
IHJldHVybiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7IH0KIApAQCAtNTAsOSArNTAsOSBA
QCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFJlbW90ZVNjcm9sbGluZ1RyZWUoUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eSYpOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVXaGVlbEV2ZW50UGhhc2UoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50UGhh
c2UpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50UGhhc2UoV2Vi
Q29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgdmly
dHVhbCB2b2lkIHVwZGF0ZU1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgV2ViQ29yZTo6U2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQ
b3NpdGlvbiA9IFdlYkNvcmU6OlN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBXZWJDb3JlOjpTZXRPclN5bmNTY3JvbGxp
bmdMYXllclBvc2l0aW9uID0gV2ViQ29yZTo6U3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24pIG92
ZXJyaWRlOwogCiAgICAgdmlydHVhbCBQYXNzT3duUHRyPFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVO
b2RlPiBjcmVhdGVOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVUeXBlLCBXZWJDb3JlOjpTY3Jv
bGxpbmdOb2RlSUQpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdG9y
YWdlL1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggMGY5MWU1NS4uOTNiYjY2YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTWFuYWdlci5oCkBAIC02OSw4
ICs2OSw4IEBAIHByaXZhdGU6CiAgICAgU3RvcmFnZU1hbmFnZXIoKTsKIAogICAgIC8vIElQQzo6
Q29ubmVjdGlvbjo6V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyLgotICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVz
c2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVz
c2FnZUVuY29kZXI+JiByZXBseUVuY29kZXIpIG92ZXJyaWRlOwogCiAgICAgLy8gTWVzc2FnZSBo
YW5kbGVycy4KICAgICB2b2lkIGNyZWF0ZUxvY2FsU3RvcmFnZU1hcChJUEM6OkNvbm5lY3Rpb24q
LCB1aW50NjRfdCBzdG9yYWdlTWFwSUQsIHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3BhY2VJRCwgY29u
c3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaAppbmRleCBiZjk0NDMw
Li44MjRjMjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmgKQEAgLTY1LDE0ICs2NSwxNCBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGlkR2V0QXBwbGljYXRpb25DYWNoZU9yaWdpbnMoY29uc3QgVmVjdG9y
PFNlY3VyaXR5T3JpZ2luRGF0YT4mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKIAogICAgIC8vIFdl
YkNvbnRleHRTdXBwbGVtZW50Ci0gICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFdlYlByb2Nlc3NQcm94
eSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vz
c1Byb3h5KikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlZldlYkNvbnRleHRT
dXBwbGVtZW50KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRlcmVmV2ViQ29udGV4dFN1
cHBsZW1lbnQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQ2xvc2UoV2ViUHJvY2Vzc1By
b3h5Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHNob3VsZFRlcm1pbmF0ZShXZWJQcm9j
ZXNzUHJveHkqKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVmV2ViQ29udGV4
dFN1cHBsZW1lbnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWZXZWJDb250ZXh0
U3VwcGxlbWVudCgpIG92ZXJyaWRlOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpN
ZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CiAK
ICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8QXJyYXlDYWxsYmFjaz4+IG1fYXJyYXlDYWxs
YmFja3M7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRl
cnlNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFu
YWdlclByb3h5LmgKaW5kZXggMmFiMTdlNy4uYjcxODcyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oCkBAIC01OCwxMyArNTgsMTMg
QEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5KFdlYkNvbnRl
eHQqKTsKIAogICAgIC8vIFdlYkNvbnRleHRTdXBwbGVtZW50Ci0gICAgdmlydHVhbCB2b2lkIGNv
bnRleHREZXN0cm95ZWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENs
b3NlKFdlYlByb2Nlc3NQcm94eSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZWZXZWJD
b250ZXh0U3VwcGxlbWVudCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkZXJlZldlYkNv
bnRleHRTdXBwbGVtZW50KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0
cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFdlYlBy
b2Nlc3NQcm94eSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZWZXZWJDb250ZXh0U3Vw
cGxlbWVudCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkZXJlZldlYkNvbnRleHRTdXBw
bGVtZW50KCkgb3ZlcnJpZGU7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKIAogICAg
IHZvaWQgc3RhcnRVcGRhdGluZygpOwogICAgIHZvaWQgc3RvcFVwZGF0aW5nKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApp
bmRleCAwN2FkNzcwLi5hMTNjNTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTQ0LDEzICs0NCwxMyBAQCBwcml2
YXRlOgogICAgIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5Kik7CiAK
ICAgICAvLyBXZWJDb25uZWN0aW9uCi0gICAgdmlydHVhbCB2b2lkIGVuY29kZU1lc3NhZ2VCb2R5
KElQQzo6QXJndW1lbnRFbmNvZGVyJiwgQVBJOjpPYmplY3QqKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgZGVjb2RlTWVzc2FnZUJvZHkoSVBDOjpBcmd1bWVudERlY29kZXImLCBSZWZQdHI8
QVBJOjpPYmplY3Q+JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGhhc1ZhbGlkQ29ubmVj
dGlvbigpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBlbmNvZGVNZXNzYWdlQm9k
eShJUEM6OkFyZ3VtZW50RW5jb2RlciYsIEFQSTo6T2JqZWN0Kikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIGRlY29kZU1lc3NhZ2VCb2R5KElQQzo6QXJndW1lbnREZWNvZGVyJiwgUmVmUHRy
PEFQSTo6T2JqZWN0PiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBoYXNWYWxpZENvbm5l
Y3Rpb24oKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgotICAg
IHZpcnR1YWwgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5l
Y3Rpb24oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0
aW5hdGlvbklEKCkgb3ZlcnJpZGU7CiAKICAgICBXZWJQcm9jZXNzUHJveHkqIG1fcHJvY2VzczsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAppbmRleCA2OTYwY2RkLi5iOThj
NDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKQEAgLTE4Niw4ICsxODYs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRWaXNpdGVkTGlua0hhc2goV2ViQ29yZTo6TGlua0hh
c2gpOwogCiAgICAgLy8gTWVzc2FnZVJlY2VpdmVyLgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVu
Y29kZXI+JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVz
c2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBvdmVy
cmlkZTsKIAogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsKTsKICAgICBDYWNoZU1v
ZGVsIGNhY2hlTW9kZWwoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlTW9kZWw7IH0KQEAgLTQwMyw3
ICs0MDMsNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAg
ICAgLy8gUGx1Z2luSW5mb1N0b3JlQ2xpZW50OgotICAgIHZpcnR1YWwgdm9pZCBwbHVnaW5JbmZv
U3RvcmVEaWRMb2FkUGx1Z2lucyhQbHVnaW5JbmZvU3RvcmUqKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgcGx1Z2luSW5mb1N0b3JlRGlkTG9hZFBsdWdpbnMoUGx1Z2luSW5mb1N0b3JlKikg
b3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIElQQzo6TWVzc2FnZVJlY2VpdmVyTWFwIG1fbWVzc2Fn
ZVJlY2VpdmVyTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNv
b2tpZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvb2tpZU1h
bmFnZXJQcm94eS5oCmluZGV4IGM0ZTc4MWUuLmNjMTVmN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmgKQEAgLTg3LDE1ICs4NywxNSBA
QCBwcml2YXRlOgogICAgIHZvaWQgY29va2llc0RpZENoYW5nZSgpOwogCiAgICAgLy8gV2ViQ29u
dGV4dFN1cHBsZW1lbnQKLSAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQ2xvc2UoV2ViUHJvY2Vzc1Byb3h5Kikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShOZXR3b3JrUHJvY2Vz
c1Byb3h5KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZFRlcm1pbmF0ZShXZWJQ
cm9jZXNzUHJveHkqKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVmV2ViQ29u
dGV4dFN1cHBsZW1lbnQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVyZWZXZWJDb250
ZXh0U3VwcGxlbWVudCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJv
eWVkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShXZWJQcm9j
ZXNzUHJveHkqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKE5l
dHdvcmtQcm9jZXNzUHJveHkqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVy
bWluYXRlKFdlYlByb2Nlc3NQcm94eSopIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCByZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBk
ZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgb3ZlcnJpZGU7CiAKICAgICAvLyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXIm
KSBvdmVycmlkZTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIHBlcnNpc3RIVFRQQ29v
a2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuaAppbmRleCA0MGNlYTlm
Li41ODdhODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJh
c2VNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRGF0YWJh
c2VNYW5hZ2VyUHJveHkuaApAQCAtNzgsMTQgKzc4LDE0IEBAIHByaXZhdGU6CiAgICAgZXhwbGlj
aXQgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkoV2ViQ29udGV4dCopOwogCiAgICAgLy8gV2ViQ29u
dGV4dFN1cHBsZW1lbnQKLSAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlkQ2xvc2UoV2ViUHJvY2Vzc1Byb3h5Kikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZFRlcm1pbmF0ZShXZWJQcm9jZXNzUHJv
eHkqKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVmV2ViQ29udGV4dFN1cHBs
ZW1lbnQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVyZWZXZWJDb250ZXh0U3VwcGxl
bWVudCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShXZWJQcm9jZXNzUHJveHkq
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKFdlYlByb2Nlc3NQ
cm94eSopIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZWZXZWJDb250ZXh0U3Vw
cGxlbWVudCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkZXJlZldlYkNvbnRleHRTdXBw
bGVtZW50KCkgb3ZlcnJpZGU7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKIAogICAg
IC8vIE1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCBkaWRHZXREYXRhYmFzZXNCeU9yaWdpbihj
b25zdCBWZWN0b3I8T3JpZ2luQW5kRGF0YWJhc2VzPiYgb3JpZ2luQW5kRGF0YWJhc2VzLCB1aW50
NjRfdCBjYWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
RnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oCmluZGV4IDkxMDJjYWIuLjc0MzQyZWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHku
aApAQCAtODEsOCArODEsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgYmVnYW5FbnRlckZ1bGxTY3Jl
ZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5pdGlhbEZyYW1lLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiBmaW5hbEZyYW1lKTsKICAgICB2b2lkIGJlZ2FuRXhpdEZ1bGxTY3JlZW4oY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgaW5pdGlhbEZyYW1lLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBm
aW5hbEZyYW1lKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+JikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQ
Qzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6
OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBvdmVycmlkZTsKIAogICAgIFdlYlBh
Z2VQcm94eSogbV9wYWdlOwogICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQqIG1f
Y2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRp
b25NYW5hZ2VyUHJveHkuaAppbmRleCA5ZGNiYzQ0Li41NjY4ZjkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuaApAQCAt
NjAsMTMgKzYwLDEzIEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHkoV2ViQ29udGV4dCopOwogCiAgICAgLy8gV2ViQ29udGV4dFN1cHBsZW1lbnQKLSAg
ICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBwcm9jZXNzRGlkQ2xvc2UoV2ViUHJvY2Vzc1Byb3h5KikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgY29udGV4dERlc3Ryb3llZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwcm9j
ZXNzRGlkQ2xvc2UoV2ViUHJvY2Vzc1Byb3h5Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRl
cmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKSBvdmVycmlkZTsKIAogICAgIC8vIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYp
IG92ZXJyaWRlOwogCiAgICAgYm9vbCBpc1VwZGF0aW5nKCkgY29uc3QgeyByZXR1cm4gIW1fdXBk
YXRlUmVxdWVzdGVycy5pc0VtcHR5KCk7IH0KICAgICBib29sIGlzSGlnaEFjY3VyYWN5RW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuICFtX2hpZ2hBY2N1cmFjeVJlcXVlc3RlcnMuaXNFbXB0eSgpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmgKaW5kZXggNjFkODM2
NS4uODE2YjIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25E
YXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2Uu
aApAQCAtMTAwLDggKzEwMCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlz
aFVSTEltcG9ydCgpOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVj
b2RlciYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJ
UEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVu
Y29kZXI+Jikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIG5vdGlmeUljb25EYXRhUmVhZHlGb3JQYWdl
VVJMKGNvbnN0IFN0cmluZyYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViSW5zcGVjdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNw
ZWN0b3JQcm94eS5oCmluZGV4IDY1NTJiZTQuLjA0NTdjNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCkBAIC0xNTAsOCArMTUwLDggQEAgcHJpdmF0
ZToKICAgICBleHBsaWNpdCBXZWJJbnNwZWN0b3JQcm94eShXZWJQYWdlUHJveHkqKTsKIAogICAg
IC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQ
Qzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4m
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVj
b2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIG92ZXJyaWRlOwog
CiAgICAgV2ViUGFnZVByb3h5KiBwbGF0Zm9ybUNyZWF0ZUluc3BlY3RvclBhZ2UoKTsKICAgICB2
b2lkIHBsYXRmb3JtT3BlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggYTVmNTI3MC4uM2UxNWY5YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdl
ci5oCkBAIC01Niw4ICs1Niw4IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViS2V5VmFsdWVT
dG9yYWdlTWFuYWdlcihXZWJDb250ZXh0Kik7CiAKICAgICAvLyBXZWJDb250ZXh0U3VwcGxlbWVu
dAotICAgIHZpcnR1YWwgdm9pZCByZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKSBvdmVycmlkZTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmgKaW5kZXggZjFjZjY1ZS4uNDRmNTgzYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTWVkaWFDYWNoZU1hbmFnZXJQ
cm94eS5oCkBAIC02MSwxNCArNjEsMTQgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEdldEhvc3Ru
YW1lc1dpdGhNZWRpYUNhY2hlKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgdWludDY0X3QgY2FsbGJh
Y2tJRCk7CiAKICAgICAvLyBXZWJDb250ZXh0U3VwcGxlbWVudAotICAgIHZpcnR1YWwgdm9pZCBj
b250ZXh0RGVzdHJveWVkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRD
bG9zZShXZWJQcm9jZXNzUHJveHkqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
VGVybWluYXRlKFdlYlByb2Nlc3NQcm94eSopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCByZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGNvbnRleHREZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0Rp
ZENsb3NlKFdlYlByb2Nlc3NQcm94eSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGRlcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKSBvdmVycmlkZTsKIAogICAgIC8vIElQQzo6
TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVj
b2RlciYpIG92ZXJyaWRlOwogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEFycmF5Q2Fs
bGJhY2s+PiBtX2FycmF5Q2FsbGJhY2tzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJOZXR3b3JrSW5mb01hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5LmgKaW5kZXggMGRhMWRhMC4uZDhl
ZDE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJbmZv
TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk5ldHdvcmtJ
bmZvTWFuYWdlclByb3h5LmgKQEAgLTU3LDE0ICs1NywxNCBAQCBwcml2YXRlOgogICAgIGV4cGxp
Y2l0IFdlYk5ldHdvcmtJbmZvTWFuYWdlclByb3h5KFdlYkNvbnRleHQqKTsKIAogICAgIC8vIFdl
YkNvbnRleHRTdXBwbGVtZW50Ci0gICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFdlYlByb2Nlc3NQcm94
eSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZWZXZWJDb250ZXh0U3VwcGxlbWVudCgp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFdlYlByb2Nlc3NQcm94eSopIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCByZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgb3ZlcnJpZGU7
CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVu
Y29kZXI+JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVz
c2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBvdmVy
cmlkZTsKIAogICAgIHZvaWQgc3RhcnRVcGRhdGluZygpOwogICAgIHZvaWQgc3RvcFVwZGF0aW5n
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1h
bmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYk9yaWdpbkRhdGFNYW5h
Z2VyUHJveHkuaAppbmRleCBkODVlMzUyLi5jNTcwOWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViT3JpZ2luRGF0YU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJPcmlnaW5EYXRhTWFuYWdlclByb3h5LmgKQEAgLTcyLDE0ICs3
MiwxNCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkQ2hhbmdlKCk7CiAKICAgICAvLyBXZWJDb250
ZXh0U3VwcGxlbWVudAotICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShXZWJQcm9jZXNzUHJveHkqKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKFdlYlByb2Nlc3NQcm94
eSopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZWZXZWJDb250ZXh0U3VwcGxl
bWVudCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkZXJlZldlYkNvbnRleHRTdXBwbGVt
ZW50KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENsb3NlKFdlYlByb2Nlc3NQcm94eSop
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1By
b3h5KikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlZldlYkNvbnRleHRTdXBw
bGVtZW50KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRlcmVmV2ViQ29udGV4dFN1cHBs
ZW1lbnQoKSBvdmVycmlkZTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2Fn
ZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAg
SGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEFycmF5Q2FsbGJhY2s+PiBtX2FycmF5Q2FsbGJhY2tz
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMGZjMWE2My4u
MTZkMWMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtODY2
LDEzICs4NjYsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFVzZXJBZ2VudChjb25zdCBTdHJp
bmcmKTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNz
YWdlRW5jb2Rlcj4mKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBD
OjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYp
IG92ZXJyaWRlOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCi0gICAgdmlydHVhbCBib29s
IHNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiwgdW5zaWdu
ZWQgbWVzc2FnZVNlbmRGbGFncykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBJUEM6OkNvbm5lY3Rp
b24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB1aW50
NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
Ym9vbCBzZW5kTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4sIHVu
c2lnbmVkIG1lc3NhZ2VTZW5kRmxhZ3MpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgSVBDOjpDb25u
ZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBvdmVycmlkZTsKIAogICAgIC8v
IFdlYlBvcHVwTWVudVByb3h5OjpDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgdmFsdWVDaGFuZ2Vk
Rm9yUG9wdXBNZW51KFdlYlBvcHVwTWVudVByb3h5KiwgaW50MzJfdCBuZXdTZWxlY3RlZEluZGV4
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCAwZjRh
NGUyLi5hM2M5MjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5oCkBAIC0xMzAsMTAgKzEzMCwxMCBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYlByb2Nl
c3NQcm94eShXZWJDb250ZXh0Jik7CiAKICAgICAvLyBGcm9tIENoaWxkUHJvY2Vzc1Byb3h5Ci0g
ICAgdmlydHVhbCB2b2lkIGdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hP
cHRpb25zJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGdldExhdW5jaE9wdGlvbnMoUHJv
Y2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwbGF0Zm9y
bUdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJik7Ci0gICAg
dmlydHVhbCB2b2lkIGNvbm5lY3Rpb25XaWxsT3BlbihJUEM6OkNvbm5lY3Rpb24qKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdGlvbldpbGxDbG9zZShJUEM6OkNvbm5lY3Rpb24q
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdGlvbldpbGxPcGVuKElQQzo6Q29u
bmVjdGlvbiopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjb25uZWN0aW9uV2lsbENsb3Nl
KElQQzo6Q29ubmVjdGlvbiopIG92ZXJyaWRlOwogCiAgICAgLy8gQ2FsbGVkIHdoZW4gdGhlIHdl
YiBwcm9jZXNzIGhhcyBjcmFzaGVkIG9yIHdlIGtub3cgdGhhdCBpdCB3aWxsIHRlcm1pbmF0ZSBz
b29uLgogICAgIC8vIFdpbGwgcG90ZW50aWFsbHkgY2F1c2UgdGhlIFdlYlByb2Nlc3NQcm94eSBv
YmplY3QgdG8gYmUgZnJlZWQuCkBAIC0xNjEsMTggKzE2MSwxOCBAQCBwcml2YXRlOgogCiAgICAg
Ly8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAgICBmcmllbmQgY2xhc3MgV2ViQ29ubmVjdGlv
blRvV2ViUHJvY2VzczsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdl
RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24qKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biosIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6U3RyaW5n
UmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VF
bmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5l
Y3Rpb24qKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZl
ck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKIAogICAg
IC8vIFJlc3BvbnNpdmVuZXNzVGltZXI6OkNsaWVudAotICAgIHZvaWQgZGlkQmVjb21lVW5yZXNw
b25zaXZlKFJlc3BvbnNpdmVuZXNzVGltZXIqKSBPVkVSUklERTsKLSAgICB2b2lkIGludGVyYWN0
aW9uT2NjdXJyZWRXaGlsZVVucmVzcG9uc2l2ZShSZXNwb25zaXZlbmVzc1RpbWVyKikgT1ZFUlJJ
REU7Ci0gICAgdm9pZCBkaWRCZWNvbWVSZXNwb25zaXZlKFJlc3BvbnNpdmVuZXNzVGltZXIqKSBP
VkVSUklERTsKKyAgICB2b2lkIGRpZEJlY29tZVVucmVzcG9uc2l2ZShSZXNwb25zaXZlbmVzc1Rp
bWVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCBpbnRlcmFjdGlvbk9jY3VycmVkV2hpbGVVbnJlc3Bv
bnNpdmUoUmVzcG9uc2l2ZW5lc3NUaW1lciopIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQmVjb21l
UmVzcG9uc2l2ZShSZXNwb25zaXZlbmVzc1RpbWVyKikgb3ZlcnJpZGU7CiAKICAgICAvLyBQcm9j
ZXNzTGF1bmNoZXI6OkNsaWVudAotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmco
UHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciosIElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcikgb3ZlcnJpZGU7CiAKICAgICAvLyBIaXN0b3J5IGNs
aWVudAogICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEodWludDY0X3QgcGFn
ZUlELCBjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgdWludDY0X3QgZnJhbWVJRCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHkuaAppbmRleCAwMzhkZmU0Li5lM2Y1MjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmgKQEAgLTYy
LDE0ICs2MiwxNCBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHkoV2ViQ29udGV4dCopOwogCiAgICAgLy8gV2ViQ29udGV4dFN1cHBsZW1lbnQKLSAg
ICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBwcm9jZXNzRGlkQ2xvc2UoV2ViUHJvY2Vzc1Byb3h5KikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBib29sIHNob3VsZFRlcm1pbmF0ZShXZWJQcm9jZXNzUHJveHkqKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHByb2Nlc3NEaWRDbG9zZShXZWJQcm9jZXNzUHJveHkqKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKFdlYlByb2Nlc3NQcm94eSopIGNvbnN0IG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCByZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkgb3ZlcnJpZGU7
CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbios
IElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxl
cnMuCiAgICAgdm9pZCBkaWRHZXRDYWNoZU9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3Jp
Z2luRGF0YT4mIG9yaWdpbklkZW50aWZpZXJzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJWaWJyYXRpb25Qcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5LmgKaW5kZXggYTNhYjk1Ny4u
NWY2NWJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlv
blByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlZpYnJhdGlvblByb3h5
LmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJWaWJyYXRpb25Q
cm94eShXZWJQYWdlUHJveHkqKTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVz
c2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwogCiAg
ICAgdm9pZCB2aWJyYXRlKHVpbnQzMl90IHZpYnJhdGlvblRpbWUpOwogICAgIHZvaWQgY2FuY2Vs
VmlicmF0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1Bh
Z2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9lZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5oCmluZGV4IDNhNDcxMzYuLjJh
MjgxZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVZpZXdw
b3J0Q29udHJvbGxlckNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvUGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudEVmbC5oCkBAIC0zOSwxNCArMzksMTQgQEAg
cHVibGljOgogICAgIGV4cGxpY2l0IFBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwoRXdr
VmlldyopOwogICAgIHZpcnR1YWwgflBhZ2VWaWV3cG9ydENvbnRyb2xsZXJDbGllbnRFZmwoKSB7
IH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXRWaWV3cG9ydFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6
OkZsb2F0UG9pbnQmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UGFnZVNjYWxlRmFj
dG9yKGZsb2F0KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Vmlld3BvcnRQb3NpdGlv
bihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHNldFBhZ2VTY2FsZUZhY3RvcihmbG9hdCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ2hhbmdlQ29udGVudHNTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlzaWJsZUNvbnRlbnRzKCkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0QXR0cmlidXRlcygpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaXNpYmxlQ29udGVu
dHMoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRBdHRyaWJ1
dGVzKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxlcihQYWdlVmll
d3BvcnRDb250cm9sbGVyKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRyb2xs
ZXIoUGFnZVZpZXdwb3J0Q29udHJvbGxlciopIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIEV3
a1ZpZXcqIG1fdmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwv
V2ViVmlld0VmbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJWaWV3RWZsLmgK
aW5kZXggMDc1ZjUwNy4uNGYzYWQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9XZWJWaWV3RWZsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9X
ZWJWaWV3RWZsLmgKQEAgLTU1LDIzICs1NSwyMyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdl
YlZpZXdFZmwoV2ViQ29udGV4dCosIFdlYlBhZ2VHcm91cCopOwogCi0gICAgdm9pZCBzZXRDdXJz
b3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJikgT1ZFUlJJREU7Ci0gICAgUGFzc1JlZlB0cjxXZWJQ
b3B1cE1lbnVQcm94eT4gY3JlYXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVByb3h5KikgT1ZFUlJJ
REU7Ci0gICAgdm9pZCB1cGRhdGVUZXh0SW5wdXRTdGF0ZSgpIE9WRVJSSURFOwotICAgIHZvaWQg
aGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqKSBPVkVSUklERTsKKyAgICB2b2lk
IHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBvdmVycmlkZTsKKyAgICBQYXNzUmVm
UHRyPFdlYlBvcHVwTWVudVByb3h5PiBjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkq
KSBvdmVycmlkZTsKKyAgICB2b2lkIHVwZGF0ZVRleHRJbnB1dFN0YXRlKCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBoYW5kbGVEb3dubG9hZFJlcXVlc3QoRG93bmxvYWRQcm94eSopIG92ZXJyaWRlOwog
CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0gICAgUGFzc1JlZlB0cjxXZWJDb250ZXh0TWVu
dVByb3h5PiBjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSopIE9WRVJSSURFOwor
ICAgIFBhc3NSZWZQdHI8V2ViQ29udGV4dE1lbnVQcm94eT4gY3JlYXRlQ29udGV4dE1lbnVQcm94
eShXZWJQYWdlUHJveHkqKSBvdmVycmlkZTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQogICAgIC8vIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQKLSAgICB2aXJ0
dWFsIHZvaWQgY2xvc2VGdWxsU2NyZWVuTWFuYWdlcigpIE9WRVJSSURFIEZJTkFMIHsgfQotICAg
IHZpcnR1YWwgYm9vbCBpc0Z1bGxTY3JlZW4oKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFs
IHZvaWQgZW50ZXJGdWxsU2NyZWVuKCkgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lk
IGV4aXRGdWxsU2NyZWVuKCkgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIGJlZ2Fu
RW50ZXJGdWxsU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JikgT1ZFUlJJREUgRklOQUwgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGJlZ2FuRXhpdEZ1
bGxTY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KSBPVkVSUklERSBGSU5BTCB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2VGdWxsU2NyZWVuTWFu
YWdlcigpIG92ZXJyaWRlIEZJTkFMIHsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0Z1bGxTY3JlZW4o
KSBvdmVycmlkZSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsU2NyZWVuKCkgb3Zl
cnJpZGUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsU2NyZWVuKCkgb3ZlcnJpZGUg
RklOQUw7CisgICAgdmlydHVhbCB2b2lkIGJlZ2FuRW50ZXJGdWxsU2NyZWVuKGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGUgRklOQUwgeyB9
CisgICAgdmlydHVhbCB2b2lkIGJlZ2FuRXhpdEZ1bGxTY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlkZSBGSU5BTCB7IH0KICNlbmRp
ZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaAppbmRleCBjMDRmOGE1Li5m
ZTZlNDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaApAQCAtNDQsMTIgKzQ0LDEyIEBA
IHB1YmxpYzoKICAgICBjb25zdCBSZW1vdGVMYXllclRyZWVIb3N0JiByZW1vdGVMYXllclRyZWVI
b3N0KCkgY29uc3QgeyByZXR1cm4gbV9yZW1vdGVMYXllclRyZWVIb3N0OyB9CiAgICAgCiBwcml2
YXRlOgotICAgIHZpcnR1YWwgdm9pZCBzaXplRGlkQ2hhbmdlKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGRpZFVwZGF0ZUdlb21ldHJ5KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHNpemVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlU2NhbGVG
YWN0b3JEaWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlR2Vv
bWV0cnkoKSBvdmVycmlkZTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2Fn
ZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAg
Ly8gTWVzc2FnZSBoYW5kbGVycwogICAgIHZvaWQgY29tbWl0TGF5ZXJUcmVlKGNvbnN0IFJlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiwgY29uc3QgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JU
cmFuc2FjdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9T
ZWNJdGVtU2hpbVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1T
aGltUHJveHkuaAppbmRleCA0NTJkYWUxLi5jNGI5Zjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkuaApAQCAtNDUsNyArNDUsNyBAQCBwcml2
YXRlOgogICAgIFNlY0l0ZW1TaGltUHJveHkoKTsKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6
V29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpN
ZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzZWNJdGVtUmVxdWVzdChJUEM6
OkNvbm5lY3Rpb24qLCB1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFNlY0l0ZW1SZXF1ZXN0RGF0
YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1RpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IDJhZWQzYjQuLjIx
OTJhZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oCkBAIC0zOSwyMiArMzks
MjIgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIERyYXdpbmdBcmVhUHJveHkKLSAgICB2
aXJ0dWFsIHZvaWQgZGV2aWNlU2NhbGVGYWN0b3JEaWRDaGFuZ2UoKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgc2l6ZURpZENoYW5nZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3
YWl0Rm9yUG9zc2libGVHZW9tZXRyeVVwZGF0ZShzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRp
bWVvdXQgPSBkaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZVRpbWVvdXQoKSkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGNvbG9yU3BhY2VEaWRDaGFuZ2UoKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgbWluaW11bUxheW91dFNpemVEaWRDaGFuZ2UoKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGV2aWNlU2NhbGVGYWN0b3JEaWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2l6ZURpZENoYW5nZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3YWl0
Rm9yUG9zc2libGVHZW9tZXRyeVVwZGF0ZShzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVv
dXQgPSBkaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZVRpbWVvdXQoKSkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGNvbG9yU3BhY2VEaWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgbWluaW11bUxheW91dFNpemVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1
YWwgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdT
dG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdT
dG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3Jl
U3RhdGVJRCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9y
ZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9y
ZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3Rh
dGVJRCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2
b2lkIGFkanVzdFRyYW5zaWVudFpvb20oZG91YmxlIHNjYWxlLCBXZWJDb3JlOjpGbG9hdFBvaW50
IG9yaWdpbikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyYW5zaWVudFpvb20o
ZG91YmxlIHNjYWxlLCBXZWJDb3JlOjpGbG9hdFBvaW50IG9yaWdpbikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIGFkanVzdFRyYW5zaWVudFpvb20oZG91YmxlIHNjYWxlLCBXZWJDb3JlOjpG
bG9hdFBvaW50IG9yaWdpbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyYW5z
aWVudFpvb20oZG91YmxlIHNjYWxlLCBXZWJDb3JlOjpGbG9hdFBvaW50IG9yaWdpbikgb3ZlcnJp
ZGU7CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgotICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRh
dGVHZW9tZXRyeSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBpbnRyaW5zaWNDb250ZW50
U2l6ZURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBuZXdJbnRyaW5zaWNDb250ZW50
U2l6ZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZUdlb21ldHJ5KCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGludHJpbnNpY0NvbnRlbnRTaXplRGlkQ2hhbmdlKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIG5ld0ludHJpbnNpY0NvbnRlbnRTaXplKSBvdmVycmlkZTsK
IAogICAgIHZvaWQgc2VuZFVwZGF0ZUdlb21ldHJ5KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oCmluZGV4IDBiODM5MTQu
LjJiYmMyZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dl
c3R1cmVDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3
R2VzdHVyZUNvbnRyb2xsZXIuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6
CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwg
SVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVy
cy4KICAgICB2b2lkIGRpZENvbGxlY3RHZW9tZXRyeUZvck1hZ25pZmljYXRpb25HZXN0dXJlKFdl
YkNvcmU6OkZsb2F0UmVjdCB2aXNpYmxlQ29udGVudEJvdW5kcywgYm9vbCBmcmFtZUhhbmRsZXNN
YWduaWZpY2F0aW9uR2VzdHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1dlYkNvbG9yUGlja2VyTWFjLmgKaW5kZXggMzkzNmJlOS4uNDBjOWUyYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaApAQCAtNjMsOSAr
NjMsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ29sb3JQaWNrZXJNYWM+
IGNyZWF0ZShXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgV0tWaWV3Kik7CiAgICAgfldlYkNvbG9yUGlja2VyTWFj
KCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZW5kUGlja2VyKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHNldFNlbGVjdGVkQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbG9yUGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGVuZFBpY2tlcigpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBzZXRTZWxlY3RlZENvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHNob3dDb2xvclBpY2tlcihjb25zdCBXZWJDb3JlOjpDb2xv
ciYpIG92ZXJyaWRlOwogICAgIAogICAgIHZvaWQgZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29y
ZTo6Q29sb3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAv
V2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9z
b3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmgKaW5kZXggZmZlYWZmMy4uMGQ5NmE0MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RN
YW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3Vw
UmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC02MSwxMyArNjEsMTMgQEAgcHJpdmF0ZToKICAgICBX
ZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eShXZWJDb250ZXh0Kik7CiAKICAgICAvLyBXZWJDb250
ZXh0U3VwcGxlbWVudAotICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShXZWJQcm9jZXNzUHJveHkqKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDbG9zZShXZWJQcm9jZXNzUHJveHkqKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVmV2ViQ29udGV4dFN1cHBsZW1lbnQoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGVyZWZXZWJDb250ZXh0U3VwcGxlbWVudCgpIG92ZXJyaWRlOwogCiAg
ICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6
Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRpZEZhaWxUb0xvYWRVUklS
ZXF1ZXN0KHVpbnQ2NF90IHJlcXVlc3RJRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyLmgKaW5kZXggYTk1MzkzYi4uZmQ5NjI5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNh
Y2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW5E
YXRhJik7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKIAogICAgIENoaWxkUHJvY2Vz
cyogbV9jaGlsZFByb2Nlc3M7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuaAppbmRleCA1MTBhOWUwLi5kMzE2YjI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVy
eU1hbmFnZXIuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgLy8g
SVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVy
cmlkZTsKIAogICAgIFdlYlByb2Nlc3MqIG1fcHJvY2VzczsKICAgICBIYXNoU2V0PFdlYlBhZ2Uq
PiBtX3BhZ2VTZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tp
ZXMvV2ViQ29va2llTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Db29raWVz
L1dlYkNvb2tpZU1hbmFnZXIuaAppbmRleCBiODM0YWVhLi5lYzA5MjY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmgKQEAg
LTU2LDcgKzU2LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIElQQzo6TWVzc2FnZVJl
Y2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biosIElQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92
ZXJyaWRlOwogCiAgICAgdm9pZCBnZXRIb3N0bmFtZXNXaXRoQ29va2llcyh1aW50NjRfdCBjYWxs
YmFja0lEKTsKICAgICB2b2lkIGRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZShjb25zdCBTdHJpbmcm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4
ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNrZW5kLmgKaW5kZXggYWI0YWNjMS4u
Nzc0YzYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMv
SW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNrZW5kLmgKQEAgLTM5
LDExICszOSwxMSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5XZWJJREJGYWN0b3J5QmFja2Vu
ZCgpOwogCi0gICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxXZWJD
b3JlOjpJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiwg
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCB1aW50
NjRfdCB2ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrcz4s
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPFdl
YkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGly
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRy
PFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRh
RGlyKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUs
IHVpbnQ2NF90IHZlcnNpb24sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJh
Y2tzPiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4pIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbj4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRh
dGFEaXIpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHJlbW92ZUlEQkRhdGFiYXNlQmFj
a2VuZChjb25zdCBTdHJpbmcmIHVuaXF1ZUlkZW50aWZpZXIpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVJREJEYXRhYmFzZUJhY2tlbmQoY29uc3QgU3RyaW5nJiB1bmlxdWVJZGVu
dGlmaWVyKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJJREJGYWN0b3J5
QmFja2VuZChjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5SWRlbnRpZmllcik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2Vi
SURCU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFz
ZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24uaAppbmRleCAzNWI2Nzc0Li44NTUx
ZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRl
eGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXJDb25uZWN0aW9uLmgKQEAgLTQz
LDU1ICs0Myw1NSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5XZWJJREJTZXJ2ZXJDb25uZWN0
aW9uKCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNDbG9zZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIGJvb2wgaXNDbG9zZWQoKSBvdmVycmlkZTsKIAogICAgIHR5cGVkZWYgc3RkOjpmdW5jdGlv
bjx2b2lkIChib29sIHN1Y2Nlc3MpPiBCb29sQ2FsbGJhY2tGdW5jdGlvbjsKIAogICAgIC8vIEZh
Y3RvcnktbGV2ZWwgb3BlcmF0aW9ucwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShj
b25zdCBTdHJpbmcmIG5hbWUsIEJvb2xDYWxsYmFja0Z1bmN0aW9uIHN1Y2Nlc3NDYWxsYmFjaykg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYg
bmFtZSwgQm9vbENhbGxiYWNrRnVuY3Rpb24gc3VjY2Vzc0NhbGxiYWNrKSBvdmVycmlkZTsKIAog
ICAgIC8vIERhdGFiYXNlLWxldmVsIG9wZXJhdGlvbnMKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0T3JF
c3RhYmxpc2hJREJEYXRhYmFzZU1ldGFkYXRhKEdldElEQkRhdGFiYXNlTWV0YWRhdGFGdW5jdGlv
bikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNsb3NlKCkgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGdldE9yRXN0YWJsaXNoSURCRGF0YWJhc2VNZXRhZGF0YShHZXRJREJEYXRhYmFz
ZU1ldGFkYXRhRnVuY3Rpb24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjbG9zZSgpIG92
ZXJyaWRlOwogCiAgICAgLy8gVHJhbnNhY3Rpb24tbGV2ZWwgb3BlcmF0aW9ucwotICAgIHZpcnR1
YWwgdm9pZCBvcGVuVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklELCBjb25zdCBIYXNo
U2V0PGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgV2ViQ29yZTo6SW5kZXhlZERCOjpUcmFuc2Fj
dGlvbk1vZGUsIEJvb2xDYWxsYmFja0Z1bmN0aW9uIHN1Y2Nlc3NDYWxsYmFjaykgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIGJlZ2luVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklE
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlvbkNhbGxiYWNrKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgY29tbWl0VHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklELCBC
b29sQ2FsbGJhY2tGdW5jdGlvbiBzdWNjZXNzQ2FsbGJhY2spIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCByZXNldFRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JRCwgc3RkOjpmdW5j
dGlvbjx2b2lkKCk+IGNvbXBsZXRpb25DYWxsYmFjaykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHJvbGxiYWNrVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklELCBzdGQ6OmZ1bmN0
aW9uPHZvaWQoKT4gY29tcGxldGlvbkNhbGxiYWNrKSBPVkVSUklERTsKLQotICAgIHZpcnR1YWwg
dm9pZCBzZXRJbmRleEtleXMoaW50NjRfdCB0cmFuc2FjdGlvbklELCBpbnQ2NF90IGRhdGFiYXNl
SUQsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgY29uc3QgV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVN
ZXRhZGF0YSYsIFdlYkNvcmU6OklEQktleSYgcHJpbWFyeUtleSwgY29uc3QgVmVjdG9yPGludDY0
X3Q+JiBpbmRleElEcywgY29uc3QgVmVjdG9yPFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6SURCS2V5
Pj4+JiBpbmRleEtleXMsIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPFdlYkNvcmU6OklE
QkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSBPVkVSUklERTsKLQotICAgIHZp
cnR1YWwgdm9pZCBjcmVhdGVPYmplY3RTdG9yZShXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tl
bmQmLCBjb25zdCBXZWJDb3JlOjpDcmVhdGVPYmplY3RTdG9yZU9wZXJhdGlvbiYsIHN0ZDo6ZnVu
Y3Rpb248dm9pZChQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxl
dGlvbkNhbGxiYWNrKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlSW5kZXgoV2Vi
Q29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kJiwgY29uc3QgV2ViQ29yZTo6Q3JlYXRlSW5kZXhP
cGVyYXRpb24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRh
YmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIGRlbGV0ZUluZGV4KFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IFdl
YkNvcmU6OkRlbGV0ZUluZGV4T3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQ
dHI8V2ViQ29yZTo6SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBnZXQoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5k
JiwgY29uc3QgV2ViQ29yZTo6R2V0T3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NS
ZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBwdXQoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNr
ZW5kJiwgY29uc3QgV2ViQ29yZTo6UHV0T3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBh
c3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2sp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKFdlYkNvcmU6OklEQlRyYW5z
YWN0aW9uQmFja2VuZCYsIGNvbnN0IFdlYkNvcmU6Ok9wZW5DdXJzb3JPcGVyYXRpb24mLCBzdGQ6
OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUVycm9yPik+IGNv
bXBsZXRpb25DYWxsYmFjaykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvdW50KFdlYkNv
cmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IFdlYkNvcmU6OkNvdW50T3BlcmF0aW9u
Jiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VFcnJv
cj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkZWxl
dGVSYW5nZShXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBXZWJDb3JlOjpE
ZWxldGVSYW5nZU9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPFdlYkNv
cmU6OklEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXJPYmplY3RTdG9yZShXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJh
Y2tlbmQmLCBjb25zdCBXZWJDb3JlOjpDbGVhck9iamVjdFN0b3JlT3BlcmF0aW9uJiwgc3RkOjpm
dW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VFcnJvcj4pPiBjb21w
bGV0aW9uQ2FsbGJhY2spIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RT
dG9yZShXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBXZWJDb3JlOjpEZWxl
dGVPYmplY3RTdG9yZU9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPFdl
YkNvcmU6OklEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgY2hhbmdlRGF0YWJhc2VWZXJzaW9uKFdlYkNvcmU6OklEQlRyYW5z
YWN0aW9uQmFja2VuZCYsIGNvbnN0IFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZDo6VmVyc2lv
bkNoYW5nZU9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPFdlYkNvcmU6
OklEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgb3BlblRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JRCwgY29uc3Qg
SGFzaFNldDxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIFdlYkNvcmU6OkluZGV4ZWREQjo6VHJh
bnNhY3Rpb25Nb2RlLCBCb29sQ2FsbGJhY2tGdW5jdGlvbiBzdWNjZXNzQ2FsbGJhY2spIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBiZWdpblRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rp
b25JRCwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25DYWxsYmFjaykgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25J
RCwgQm9vbENhbGxiYWNrRnVuY3Rpb24gc3VjY2Vzc0NhbGxiYWNrKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVzZXRUcmFuc2FjdGlvbihpbnQ2NF90IHRyYW5zYWN0aW9uSUQsIHN0ZDo6
ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCByb2xsYmFja1RyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JRCwgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25DYWxsYmFjaykgb3ZlcnJpZGU7CisKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0SW5kZXhLZXlzKGludDY0X3QgdHJhbnNhY3Rpb25JRCwgaW50NjRfdCBkYXRh
YmFzZUlELCBpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGNvbnN0IFdlYkNvcmU6OklEQk9iamVjdFN0
b3JlTWV0YWRhdGEmLCBXZWJDb3JlOjpJREJLZXkmIHByaW1hcnlLZXksIGNvbnN0IFZlY3Rvcjxp
bnQ2NF90PiYgaW5kZXhJRHMsIGNvbnN0IFZlY3RvcjxWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OklE
QktleT4+PiYgaW5kZXhLZXlzLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxXZWJDb3Jl
OjpJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykgb3ZlcnJpZGU7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25C
YWNrZW5kJiwgY29uc3QgV2ViQ29yZTo6Q3JlYXRlT2JqZWN0U3RvcmVPcGVyYXRpb24mLCBzdGQ6
OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUVycm9yPik+IGNv
bXBsZXRpb25DYWxsYmFjaykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUluZGV4
KFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZCYsIGNvbnN0IFdlYkNvcmU6OkNyZWF0ZUlu
ZGV4T3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURC
RGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBkZWxldGVJbmRleChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25z
dCBXZWJDb3JlOjpEZWxldGVJbmRleE9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNz
UmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0KFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFj
a2VuZCYsIGNvbnN0IFdlYkNvcmU6OkdldE9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChQ
YXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNr
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcHV0KFdlYkNvcmU6OklEQlRyYW5zYWN0aW9u
QmFja2VuZCYsIGNvbnN0IFdlYkNvcmU6OlB1dE9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9p
ZChQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxldGlvbkNhbGxi
YWNrKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgb3BlbkN1cnNvcihXZWJDb3JlOjpJREJU
cmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBXZWJDb3JlOjpPcGVuQ3Vyc29yT3BlcmF0aW9uJiwg
c3RkOjpmdW5jdGlvbjx2b2lkKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VFcnJvcj4p
PiBjb21wbGV0aW9uQ2FsbGJhY2spIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjb3VudChX
ZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBXZWJDb3JlOjpDb3VudE9wZXJh
dGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNl
RXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGVsZXRlUmFuZ2UoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kJiwgY29uc3QgV2ViQ29y
ZTo6RGVsZXRlUmFuZ2VPcGVyYXRpb24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxX
ZWJDb3JlOjpJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGNsZWFyT2JqZWN0U3RvcmUoV2ViQ29yZTo6SURCVHJhbnNhY3Rp
b25CYWNrZW5kJiwgY29uc3QgV2ViQ29yZTo6Q2xlYXJPYmplY3RTdG9yZU9wZXJhdGlvbiYsIHN0
ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlRXJyb3I+KT4g
Y29tcGxldGlvbkNhbGxiYWNrKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2Jq
ZWN0U3RvcmUoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kJiwgY29uc3QgV2ViQ29yZTo6
RGVsZXRlT2JqZWN0U3RvcmVPcGVyYXRpb24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0
cjxXZWJDb3JlOjpJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGNoYW5nZURhdGFiYXNlVmVyc2lvbihXZWJDb3JlOjpJREJU
cmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmQ6OlZl
cnNpb25DaGFuZ2VPcGVyYXRpb24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxXZWJD
b3JlOjpJREJEYXRhYmFzZUVycm9yPik+IGNvbXBsZXRpb25DYWxsYmFjaykgb3ZlcnJpZGU7CiAK
ICAgICAvLyBDdXJzb3ItbGV2ZWwgb3BlcmF0aW9ucwotICAgIHZpcnR1YWwgdm9pZCBjdXJzb3JB
ZHZhbmNlKFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmQmLCBjb25zdCBXZWJDb3JlOjpDdXJzb3JB
ZHZhbmNlT3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25DYWxsYmFj
aykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGN1cnNvckl0ZXJhdGUoV2ViQ29yZTo6SURC
Q3Vyc29yQmFja2VuZCYsIGNvbnN0IFdlYkNvcmU6OkN1cnNvckl0ZXJhdGlvbk9wZXJhdGlvbiYs
IHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9uQ2FsbGJhY2spIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBjdXJzb3JQcmVmZXRjaEl0ZXJhdGlvbihXZWJDb3JlOjpJREJDdXJzb3JC
YWNrZW5kJiwgY29uc3QgV2ViQ29yZTo6Q3Vyc29yUHJlZmV0Y2hJdGVyYXRpb25PcGVyYXRpb24m
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlvbkNhbGxiYWNrKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgY3Vyc29yUHJlZmV0Y2hSZXNldChXZWJDb3JlOjpJREJDdXJzb3JCYWNr
ZW5kJiwgaW50IHVzZWRQcmVmZXRjaGVzKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY3Vy
c29yQWR2YW5jZShXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kJiwgY29uc3QgV2ViQ29yZTo6Q3Vy
c29yQWR2YW5jZU9wZXJhdGlvbiYsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9uQ2Fs
bGJhY2spIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjdXJzb3JJdGVyYXRlKFdlYkNvcmU6
OklEQkN1cnNvckJhY2tlbmQmLCBjb25zdCBXZWJDb3JlOjpDdXJzb3JJdGVyYXRpb25PcGVyYXRp
b24mLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlvbkNhbGxiYWNrKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgY3Vyc29yUHJlZmV0Y2hJdGVyYXRpb24oV2ViQ29yZTo6SURCQ3Vy
c29yQmFja2VuZCYsIGNvbnN0IFdlYkNvcmU6OkN1cnNvclByZWZldGNoSXRlcmF0aW9uT3BlcmF0
aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25DYWxsYmFjaykgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGN1cnNvclByZWZldGNoUmVzZXQoV2ViQ29yZTo6SURCQ3Vyc29y
QmFja2VuZCYsIGludCB1c2VkUHJlZmV0Y2hlcykgb3ZlcnJpZGU7CiAKICAgICAvLyBNZXNzYWdl
IGhhbmRsZXJzLgogICAgIHZvaWQgZGlkUmVjZWl2ZVdlYklEQlNlcnZlckNvbm5lY3Rpb25NZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKTsKIAogICAgIC8vIElQ
Qzo6TWVzc2FnZVNlbmRlcgotICAgIHZpcnR1YWwgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3Rp
bmF0aW9uSUQoKSBPVkVSUklERSB7IHJldHVybiBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
OyB9CisgICAgdmlydHVhbCB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92
ZXJyaWRlIHsgcmV0dXJuIG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXI7IH0KIAogcHJpdmF0
ZToKICAgICBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1l
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbik7CiAKICAgICAvLyBJUEM6Ok1l
c3NhZ2VTZW5kZXIKLSAgICB2aXJ0dWFsIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNv
bm5lY3Rpb24oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIElQQzo6Q29ubmVjdGlvbiogbWVzc2Fn
ZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZGlkR2V0T3JFc3RhYmxp
c2hJREJEYXRhYmFzZU1ldGFkYXRhKHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBzdWNjZXNzLCBj
b25zdCBXZWJDb3JlOjpJREJEYXRhYmFzZU1ldGFkYXRhJik7CiAgICAgdm9pZCBkaWRPcGVuVHJh
bnNhY3Rpb24odWludDY0X3QgcmVxdWVzdElELCBib29sIHN1Y2Nlc3MpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3ND
b25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0Rh
dGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCBhYWExNTBlLi4wYjY5ZmI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJv
Y2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNl
cy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNTUsMTMgKzU1LDEzIEBAIHBy
aXZhdGU6CiAgICAgV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlv
bjo6SWRlbnRpZmllcik7CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKElQQzo6Q29u
bmVjdGlvbiopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2Vp
dmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1l
c3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKElQQzo6
Q29ubmVjdGlvbiopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxp
ZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJl
Y2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOwog
CiAgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCi0gICAgdmlydHVhbCBJUEM6OkNvbm5lY3Rpb24q
IG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgT1ZFUlJJREUgeyByZXR1cm4gbV9jb25uZWN0aW9u
LmdldCgpOyB9Ci0gICAgdmlydHVhbCB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25J
RCgpIE9WRVJSSURFIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIElQQzo6Q29ubmVjdGlvbiog
bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBvdmVycmlkZSB7IHJldHVybiBtX2Nvbm5lY3Rpb24u
Z2V0KCk7IH0KKyAgICB2aXJ0dWFsIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklE
KCkgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQogCiAgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4g
bV9jb25uZWN0aW9uOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Vu
dHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2ViQ29udGVudFByb2Nlc3NNYWluLm1tIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL1dlYkNv
bnRlbnRQcm9jZXNzTWFpbi5tbQppbmRleCA1OGVkMTQ0Li5kMjRhNDI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvV2Vi
Q29udGVudFByb2Nlc3NNYWluLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRW50
cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9XZWJDb250ZW50UHJvY2Vzc01haW4ubW0KQEAgLTE3
NSw3ICsxNzUsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAg
IHZpcnR1YWwgdm9pZCBzdGFydFJ1bkxvb3AoKSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBz
dGFydFJ1bkxvb3AoKSBvdmVycmlkZQogICAgIHsKICNpZiBVU0UoQVBQS0lUKQogICAgICAgICBB
U1NFUlQoTlNBcHApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GaWxl
QVBJL0Jsb2JSZWdpc3RyeVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ZpbGVB
UEkvQmxvYlJlZ2lzdHJ5UHJveHkuaAppbmRleCBhYTNhOGM1Li5jMzIyZTFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHku
aApAQCAtMzQsOSArMzQsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgQmxvYlJlZ2lz
dHJ5UHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5IHsKIHB1YmxpYzoKLSAgICB2
aXJ0dWFsIHZvaWQgcmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFdlYkNvcmU6OlVSTCYsIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpCbG9iRGF0YT4pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBy
ZWdpc3RlckJsb2JVUkwoY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBz
cmNVUkwpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25z
dCBXZWJDb3JlOjpVUkwmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJCbG9i
VVJMKGNvbnN0IFdlYkNvcmU6OlVSTCYsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpCbG9iRGF0
YT4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckJsb2JVUkwoY29uc3QgV2Vi
Q29yZTo6VVJMJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBzcmNVUkwpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCB1bnJlZ2lzdGVyQmxvYlVSTChjb25zdCBXZWJDb3JlOjpVUkwmKSBvdmVycmlk
ZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9j
YXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCmluZGV4IDE5MTJiODAuLjk1OTA4
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9s
b2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2Rl
ciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CiAKICAgICBib29sIGlz
VXBkYXRpbmcoKSBjb25zdCB7IHJldHVybiAhbV9wYWdlU2V0LmlzRW1wdHkoKTsgfQogICAgIGJv
b2wgaXNIaWdoQWNjdXJhY3lFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gIW1faGlnaEFjY3VyYWN5
UGFnZVNldC5pc0VtcHR5KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSWNvbkRhdGFiYXNlL1dlYkljb25EYXRhYmFzZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0ljb25EYXRhYmFzZS9XZWJJY29uRGF0YWJhc2VQcm94eS5oCmluZGV4IGVlNTdk
NDIuLmI1YTEzY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSWNvbkRh
dGFiYXNlL1dlYkljb25EYXRhYmFzZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JY29uRGF0YWJhc2UvV2ViSWNvbkRhdGFiYXNlUHJveHkuaApAQCAtNjQsNyArNjQsNyBA
QCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29k
ZXImKSBPVkVSUklERTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biosIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKICAgICAKICAgICAvLyBDYWxsYmFj
a3MgZnJvbSB0aGUgVUlQcm9jZXNzCiAgICAgdm9pZCB1cmxJbXBvcnRGaW5pc2hlZCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9t
YWMvV0tCdW5kbGVQYWdlQmFubmVyTWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9tYWMvV0tCdW5kbGVQYWdlQmFubmVyTWFjLm1tCmluZGV4IDIz
MDAyNzQuLjdhYjlmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvbWFjL1dLQnVuZGxlUGFnZUJhbm5lck1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL21hYy9XS0J1bmRsZVBh
Z2VCYW5uZXJNYWMubW0KQEAgLTU0LDEyICs1NCwxMiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAg
ICAgLy8gUGFnZUJhbm5lcjo6Q2xpZW50LgotICAgIHZpcnR1YWwgdm9pZCBwYWdlQmFubmVyRGVz
dHJveWVkKFBhZ2VCYW5uZXIqKSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBwYWdlQmFubmVy
RGVzdHJveWVkKFBhZ2VCYW5uZXIqKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgZGVsZXRlIHRo
aXM7CiAgICAgfQogICAgIAotICAgIHZpcnR1YWwgYm9vbCBtb3VzZUV2ZW50KFBhZ2VCYW5uZXIq
IHBhZ2VCYW5uZXIsIFdlYkV2ZW50OjpUeXBlIHR5cGUsIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBi
dXR0b24sIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbikgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIGJv
b2wgbW91c2VFdmVudChQYWdlQmFubmVyKiBwYWdlQmFubmVyLCBXZWJFdmVudDo6VHlwZSB0eXBl
LCBXZWJNb3VzZUV2ZW50OjpCdXR0b24gYnV0dG9uLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24p
IG92ZXJyaWRlCiAgICAgewogICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgY2FzZSBX
ZWJFdmVudDo6TW91c2VEb3duOiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFDYWNoZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hlTWFuYWdlci5oCmluZGV4IDhlNGNhODgu
LmM2MjUxMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVkaWFDYWNo
ZS9XZWJNZWRpYUNhY2hlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hlTWFuYWdlci5oCkBAIC00NCw3ICs0NCw3IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKIAogcHJpdmF0ZToK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBD
OjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7
CiAKICAgICB2b2lkIGdldEhvc3RuYW1lc1dpdGhNZWRpYUNhY2hlKHVpbnQ2NF90IGNhbGxiYWNr
SUQpOwogICAgIHZvaWQgY2xlYXJDYWNoZUZvckhvc3RuYW1lKGNvbnN0IFN0cmluZyYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDE0MjBmNmIuLjg0MmY2ZWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uLmgKQEAgLTYzLDEwICs2MywxMCBAQCBwcml2YXRlOgogICAgIE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogCiAgICAgLy8gSVBD
OjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpN
ZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiYpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24qKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiosIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIElQQzo6
U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1l
c3NhZ2VFbmNvZGVyPiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZShJUEM6
OkNvbm5lY3Rpb24qKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFs
aWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VS
ZWNlaXZlck5hbWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsK
IAogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVy
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRTY2hlZHVsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAppbmRleCAyNmMyZDgxLi43MmMxOTlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2No
ZWR1bGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291
cmNlTG9hZFNjaGVkdWxlci5oCkBAIC00NSwxOCArNDUsMTggQEAgcHVibGljOgogICAgIFdlYlJl
c291cmNlTG9hZFNjaGVkdWxlcigpOwogICAgIHZpcnR1YWwgfldlYlJlc291cmNlTG9hZFNjaGVk
dWxlcigpOwogICAgIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTdWJyZXNvdXJj
ZUxvYWRlcj4gc2NoZWR1bGVTdWJyZXNvdXJjZUxvYWQoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZSosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNv
cmU6OlJlc291cmNlTG9hZFByaW9yaXR5LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRlck9w
dGlvbnMmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6TmV0c2Nh
cGVQbHVnSW5TdHJlYW1Mb2FkZXI+IHNjaGVkdWxlUGx1Z2luU3RyZWFtTG9hZChXZWJDb3JlOjpG
cmFtZSosIFdlYkNvcmU6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyQ2xpZW50KiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzUmVm
UHRyPFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyPiBzY2hlZHVsZVN1YnJlc291cmNlTG9hZChX
ZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkNhY2hlZFJlc291cmNlKiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHksIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlTG9hZGVyT3B0aW9ucyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcj4gc2NoZWR1bGVQbHVn
aW5TdHJlYW1Mb2FkKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6TmV0c2NhcGVQbHVnSW5TdHJl
YW1Mb2FkZXJDbGllbnQqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlk
ZTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlKFdlYkNvcmU6OlJlc291cmNlTG9hZGVy
KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNyb3NzT3JpZ2luUmVkaXJlY3RSZWNlaXZl
ZChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciosIGNvbnN0IFdlYkNvcmU6OlVSTCYgcmVkaXJlY3RV
UkwpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY3Jvc3NPcmlnaW5SZWRpcmVjdFJl
Y2VpdmVkKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6VVJMJiByZWRp
cmVjdFVSTCkgb3ZlcnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHNlcnZlUGVuZGluZ1Jl
cXVlc3RzKFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5IG1pbmltdW1Qcmlvcml0eSA9IFdl
YkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5VmVyeUxvdykgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHNlcnZlUGVuZGluZ1JlcXVlc3RzKFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5
IG1pbmltdW1Qcmlvcml0eSA9IFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5VmVyeUxvdykg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZFBlbmRpbmdSZXF1ZXN0cygpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXN1bWVQZW5kaW5nUmVxdWVzdHMoKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZFBlbmRpbmdSZXF1ZXN0cygpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCByZXN1bWVQZW5kaW5nUmVxdWVzdHMoKSBvdmVycmlkZTsKIAotICAg
IHZpcnR1YWwgdm9pZCBzZXRTZXJpYWxMb2FkaW5nRW5hYmxlZChib29sKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2VyaWFsTG9hZGluZ0VuYWJsZWQoYm9vbCkgb3ZlcnJpZGU7CiAK
ICAgICBXZWJSZXNvdXJjZUxvYWRlciogd2ViUmVzb3VyY2VMb2FkZXJGb3JJZGVudGlmaWVyKFJl
c291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllcikgY29uc3QgeyByZXR1cm4gbV93ZWJSZXNv
dXJjZUxvYWRlcnMuZ2V0KGlkZW50aWZpZXIpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKaW5kZXggOTNkYjYyZi4u
OWM4YWU0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlJlc291cmNlTG9hZGVyLmgKQEAgLTY5LDggKzY5LDggQEAgcHJpdmF0ZToKICAgICBXZWJS
ZXNvdXJjZUxvYWRlcihQYXNzUmVmUHRyPFdlYkNvcmU6OlJlc291cmNlTG9hZGVyPik7CiAKICAg
ICAvLyBJUEM6Ok1lc3NhZ2VTZW5kZXIKLSAgICB2aXJ0dWFsIElQQzo6Q29ubmVjdGlvbiogbWVz
c2FnZVNlbmRlckNvbm5lY3Rpb24oKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHVpbnQ2NF90IG1l
c3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBJUEM6OkNv
bm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRlOwogCiAgICAg
dm9pZCBjYW5jZWxSZXNvdXJjZUxvYWRlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJbmZvTWFuYWdlci5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJOZXR3b3JrSW5mb01hbmFnZXIuaApp
bmRleCA3ZWUwODNlLi5hNjFlODc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJbmZvTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0d29ya0luZm9NYW5hZ2VyLmgKQEAgLTU2
LDcgKzU2LDcgQEAgcHVibGljOgogICAgIGJvb2wgbWV0ZXJlZChXZWJQYWdlKikgY29uc3Q7CiBw
cml2YXRlOgogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJREU7
CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3Nh
Z2VEZWNvZGVyJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRpZENoYW5nZU5ldHdvcmtJbmZvcm1h
dGlvbihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgV2ViTmV0d29ya0luZm86
OkRhdGEmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgKaW5kZXggZjkwMjk3Mi4u
M2I3MDcxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oCkBAIC02OSwxMSArNjks
MTEgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIFdlYlByb2Nlc3NTdXBwbGVtZW50Ci0g
ICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplKGNvbnN0IFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKSBvdmVycmlkZTsKIAogICAgIC8vIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBD
OjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwogICAgIAogICAgIHZvaWQgZGlkU2hvd05vdGlm
aWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CiAgICAgdm9pZCBkaWRDbGlja05vdGlm
aWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL09yaWdpbkRhdGEvV2ViT3JpZ2luRGF0YU1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5oCmlu
ZGV4IDRlOGIwZDMuLmNiMWRiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvT3JpZ2luRGF0YS9XZWJPcmlnaW5EYXRhTWFuYWdlci5oCkBAIC01Myw3ICs1
Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdG9wT2JzZXJ2aW5nQ2hhbmdlcyhXS09yaWdpbkRh
dGFUeXBlcyk7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVy
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKIAogICAgIENoaWxkUHJv
Y2VzcyogbV9jaGlsZFByb2Nlc3M7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaAppbmRleCAyOTE1
N2YyLi40NDdkZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaApAQCAtMTg0LDcgKzE4NCw3IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbHVnaW5MYXllcigpOwogI2Vu
ZGlmCiAgICAgdmlydHVhbCBib29sIGlzVHJhbnNwYXJlbnQoKTsKLSAgICB2aXJ0dWFsIGJvb2wg
d2FudHNXaGVlbEV2ZW50cygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCB3YW50c1doZWVs
RXZlbnRzKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGdlb21ldHJ5RGlkQ2hhbmdlKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIHBsdWdpblNpemUsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IGNsaXBSZWN0LCBjb25zdCBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mIHBsdWdpblRvUm9vdFZp
ZXdUcmFuc2Zvcm0pOwogICAgIHZpcnR1YWwgdm9pZCB2aXNpYmlsaXR5RGlkQ2hhbmdlKCk7CiAg
ICAgdmlydHVhbCB2b2lkIGZyYW1lRGlkRmluaXNoTG9hZGluZyh1aW50NjRfdCByZXF1ZXN0SUQp
OwpAQCAtMjA5LDE4ICsyMDksMTggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxl
S2V5Ym9hcmRFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50Jik7CiAgICAgdmlydHVhbCB2b2lk
IHNldEZvY3VzKGJvb2wpOwogCi0gICAgdmlydHVhbCBib29sIGhhbmRsZUVkaXRpbmdDb21tYW5k
KGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUsIGNvbnN0IFN0cmluZyYgYXJndW1lbnQpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBpc0VkaXRpbmdDb21tYW5kRW5hYmxlZChjb25zdCBTdHJp
bmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRWRpdGluZ0NvbW1hbmQoY29u
c3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgY29uc3QgU3RyaW5nJiBhcmd1bWVudCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIGlzRWRpdGluZ0NvbW1hbmRFbmFibGVkKGNvbnN0IFN0cmluZyYp
IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIHNob3VsZEFsbG93U2NyaXB0aW5nKCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZEFsbG93TmF2aWdhdGlvbkZyb21EcmFncygp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBbGxvd1NjcmlwdGluZygpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBbGxvd05hdmlnYXRpb25Gcm9tRHJhZ3MoKSBv
dmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlc1BhZ2VTY2FsZUZhY3Rvcigp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVzUGFnZVNjYWxlRmFjdG9yKCkgb3Zl
cnJpZGU7CiAKICAgICB2aXJ0dWFsIE5QT2JqZWN0KiBwbHVnaW5TY3JpcHRhYmxlTlBPYmplY3Qo
KTsKICAgICAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGNvdW50RmluZE1hdGNoZXMoY29uc3QgU3Ry
aW5nJiwgV2ViQ29yZTo6RmluZE9wdGlvbnMsIHVuc2lnbmVkIG1heE1hdGNoQ291bnQpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBmaW5kU3RyaW5nKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6
OkZpbmRPcHRpb25zLCB1bnNpZ25lZCBtYXhNYXRjaENvdW50KSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHVuc2lnbmVkIGNvdW50RmluZE1hdGNoZXMoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6Rmlu
ZE9wdGlvbnMsIHVuc2lnbmVkIG1heE1hdGNoQ291bnQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
Ym9vbCBmaW5kU3RyaW5nKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OkZpbmRPcHRpb25zLCB1bnNp
Z25lZCBtYXhNYXRjaENvdW50KSBvdmVycmlkZTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2
aXJ0dWFsIHZvaWQgd2luZG93Rm9jdXNDaGFuZ2VkKGJvb2wpOwpAQCAtMjI5LDcgKzIyOSw3IEBA
IHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJ
ZGVudGlmaWVyKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNlbmRDb21wbGV4VGV4dElucHV0
KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJIb3N0
aW5nTW9kZShMYXllckhvc3RpbmdNb2RlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
TGF5ZXJIb3N0aW5nTW9kZShMYXllckhvc3RpbmdNb2RlKSBvdmVycmlkZTsKIAogICAgIHZvaWQg
cGx1Z2luRm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdlZCgpOwogICAgIHZvaWQgc2V0Q29tcGxleFRl
eHRJbnB1dEVuYWJsZWQoYm9vbCk7CkBAIC0yNDgsMTcgKzI0OCwxNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c1NuYXBzaG90dGluZygpIGNvbnN0OwogCiAgICAgLy8gQ29u
dmVydCB0aGUgZ2l2ZW4gcG9pbnQgZnJvbSBwbHVnLWluIGNvb3JkaW5hdGVzIHRvIHJvb3Qgdmll
dyBjb29yZGluYXRlcy4KLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IGNvbnZlcnRUb1Jv
b3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBXZWJDb3JlOjpJbnRQb2ludCBjb252ZXJ0VG9Sb290Vmlldyhjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gQ29udmVydCB0aGUgZ2l2ZW4gcG9p
bnQgZnJvbSByb290IHZpZXcgY29vcmRpbmF0ZXMgdG8gcGx1Zy1pbiBjb29yZGluYXRlcy4gUmV0
dXJucyBmYWxzZSBpZiB0aGUgcG9pbnQgY2FuJ3QgYmUKICAgICAvLyBjb252ZXJ0ZWQgKGlmIHRo
ZSB0cmFuc2Zvcm1hdGlvbiBtYXRyaXggaXNuJ3QgaW52ZXJ0aWJsZSkuCiAgICAgYm9vbCBjb252
ZXJ0RnJvbVJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludEluUm9vdFZpZXdD
b29yZGluYXRlcywgV2ViQ29yZTo6SW50UG9pbnQmIHBvaW50SW5QbHVnaW5Db29yZGluYXRlcyk7
CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBsaXZlUmVz
b3VyY2VEYXRhKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlcj4gbGl2ZVJlc291cmNlRGF0YSgpIGNvbnN0IG92ZXJyaWRlOwogCi0g
ICAgdmlydHVhbCBib29sIHBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwQXRMb2NhdGlvbihjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JikgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgcGVyZm9ybURpY3Rpb25hcnlMb29rdXBBdExvY2F0aW9uKGNvbnN0IFdlYkNvcmU6
OkZsb2F0UG9pbnQmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCBT
dHJpbmcgZ2V0U2VsZWN0aW9uU3RyaW5nKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gU3RyaW5n
KCk7IH0KKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRTZWxlY3Rpb25TdHJpbmcoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBTdHJpbmcoKTsgfQogCiAgICAgdm9pZCB1cGRhdGVOUE5Qcml2YXRlTW9k
ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1BERlBsdWdpbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQ
bHVnaW4uaAppbmRleCA5MmY5NmZmLi4yYmMyYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgKQEAgLTEwOCw5NyArMTA4LDk3IEBA
IHByaXZhdGU6CiAKICAgICAvLyBQbHVnaW4gZnVuY3Rpb25zLgogICAgIHZpcnR1YWwgYm9vbCBp
bml0aWFsaXplKGNvbnN0IFBhcmFtZXRlcnMmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBwYWludChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBkaXJ0eVJlY3RJbldpbmRvd0Nvb3JkaW5hdGVz
KSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29udHJvbFRpbnRzKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0
c1NuYXBzaG90dGluZygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBzbmFwc2hvdCgpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGx1Z2luTGF5ZXIoKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgaXNUcmFuc3BhcmVudCgpIE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAg
dmlydHVhbCBib29sIHdhbnRzV2hlZWxFdmVudHMoKSBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9
Ci0gICAgdmlydHVhbCB2b2lkIGdlb21ldHJ5RGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIHBsdWdpblNpemUsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0LCBjb25zdCBX
ZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0mIHBsdWdpblRvUm9vdFZpZXdUcmFuc2Zvcm0pIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NjYWxlRmFjdG9yQ2hhbmdlZChmbG9hdCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHZpc2liaWxpdHlEaWRDaGFuZ2UoKSBPVkVSUklE
RSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZnJhbWVEaWRGaW5pc2hMb2FkaW5nKHVpbnQ2NF90IHJl
cXVlc3RJRCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGZyYW1lRGlkRmFpbCh1aW50NjRf
dCByZXF1ZXN0SUQsIGJvb2wgd2FzQ2FuY2VsbGVkKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkRXZhbHVhdGVKYXZhU2NyaXB0KHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5n
JiByZXN1bHQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzdHJlYW1EaWRSZWNlaXZlUmVz
cG9uc2UodWludDY0X3Qgc3RyZWFtSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgcmVzcG9uc2VVUkws
IHVpbnQzMl90IHN0cmVhbUxlbmd0aCwgdWludDMyX3QgbGFzdE1vZGlmaWVkVGltZSwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBoZWFkZXJzLCBjb25zdCBTdHJpbmcmIHN1
Z2dlc3RlZEZpbGVOYW1lKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RyZWFtRGlkUmVj
ZWl2ZURhdGEodWludDY0X3Qgc3RyZWFtSUQsIGNvbnN0IGNoYXIqIGJ5dGVzLCBpbnQgbGVuZ3Ro
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RyZWFtRGlkRmluaXNoTG9hZGluZyh1aW50
NjRfdCBzdHJlYW1JRCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHN0cmVhbURpZEZhaWwo
dWludDY0X3Qgc3RyZWFtSUQsIGJvb2wgd2FzQ2FuY2VsbGVkKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgbWFudWFsU3RyZWFtRGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlVS
TCYgcmVzcG9uc2VVUkwsIHVpbnQzMl90IHN0cmVhbUxlbmd0aCwgdWludDMyX3QgbGFzdE1vZGlm
aWVkVGltZSwgY29uc3QgV1RGOjpTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBXVEY6OlN0cmluZyYg
aGVhZGVycywgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlTmFtZSkgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIG1hbnVhbFN0cmVhbURpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGJ5dGVz
LCBpbnQgbGVuZ3RoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbWFudWFsU3RyZWFtRGlk
RmluaXNoTG9hZGluZygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBtYW51YWxTdHJlYW1E
aWRGYWlsKGJvb2wgd2FzQ2FuY2VsbGVkKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaGFu
ZGxlTW91c2VFdmVudChjb25zdCBXZWJNb3VzZUV2ZW50JikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBib29sIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgV2ViV2hlZWxFdmVudCYpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVNb3VzZUVudGVyRXZlbnQoY29uc3QgV2ViTW91c2VFdmVu
dCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVNb3VzZUxlYXZlRXZlbnQoY29u
c3QgV2ViTW91c2VFdmVudCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVDb250
ZXh0TWVudUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IGJvb2wgaGFuZGxlS2V5Ym9hcmRFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50JikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBib29sIGhhbmRsZUVkaXRpbmdDb21tYW5kKGNvbnN0IFN0cmluZyYg
Y29tbWFuZE5hbWUsIGNvbnN0IFN0cmluZyYgYXJndW1lbnQpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgYm9vbCBpc0VkaXRpbmdDb21tYW5kRW5hYmxlZChjb25zdCBTdHJpbmcmKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlc1BhZ2VTY2FsZUZhY3RvcigpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBzZXRGb2N1cyhib29sKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIE5Q
T2JqZWN0KiBwbHVnaW5TY3JpcHRhYmxlTlBPYmplY3QoKSBPVkVSUklERSB7IHJldHVybiAwOyB9
Ci0gICAgdmlydHVhbCB2b2lkIHdpbmRvd0ZvY3VzQ2hhbmdlZChib29sKSBPVkVSUklERSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgd2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKSBPVkVSUklERSB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgd2luZG93VmlzaWJpbGl0eUNoYW5nZWQoYm9vbCkgT1ZFUlJJREUgeyB9
Ci0gICAgdmlydHVhbCB1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcigp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2VuZENvbXBs
ZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpIE9WRVJSSURFIHsgfQotICAgIHZp
cnR1YWwgdm9pZCBzZXRMYXllckhvc3RpbmdNb2RlKExheWVySG9zdGluZ01vZGUpIE9WRVJSSURF
IHsgfQotICAgIHZpcnR1YWwgV2ViQ29yZTo6U2Nyb2xsYmFyKiBob3Jpem9udGFsU2Nyb2xsYmFy
KCkgT1ZFUlJJREUgeyByZXR1cm4gbV9ob3Jpem9udGFsU2Nyb2xsYmFyLmdldCgpOyB9Ci0gICAg
dmlydHVhbCBXZWJDb3JlOjpTY3JvbGxiYXIqIHZlcnRpY2FsU2Nyb2xsYmFyKCkgT1ZFUlJJREUg
eyByZXR1cm4gbV92ZXJ0aWNhbFNjcm9sbGJhci5nZXQoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBz
dG9yYWdlQmxvY2tpbmdTdGF0ZUNoYW5nZWQoYm9vbCkgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIHByaXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZChib29sKSBPVkVSUklERSB7IH0KLSAg
ICB2aXJ0dWFsIGJvb2wgZ2V0Rm9ybVZhbHVlKFN0cmluZyYgZm9ybVZhbHVlKSBPVkVSUklERSB7
IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVTY3JvbGwoV2ViQ29yZTo6
U2Nyb2xsRGlyZWN0aW9uLCBXZWJDb3JlOjpTY3JvbGxHcmFudWxhcml0eSkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gbGl2ZVJlc291cmNl
RGF0YSgpIGNvbnN0IE9WRVJSSURFOwotCi0gICAgdmlydHVhbCBib29sIGlzQmVpbmdBc3luY2hy
b25vdXNseUluaXRpYWxpemVkKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KLQot
ICAgIHZpcnR1YWwgUmV0YWluUHRyPFBERkRvY3VtZW50PiBwZGZEb2N1bWVudEZvclByaW50aW5n
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9wZGZEb2N1bWVudDsgfQotICAgIHZpcnR1YWwg
TlNPYmplY3QgKmFjY2Vzc2liaWxpdHlPYmplY3QoKSBjb25zdCBPVkVSUklERTsKLQotICAgIHZp
cnR1YWwgdW5zaWduZWQgY291bnRGaW5kTWF0Y2hlcyhjb25zdCBTdHJpbmcmIHRhcmdldCwgV2Vi
Q29yZTo6RmluZE9wdGlvbnMsIHVuc2lnbmVkIG1heE1hdGNoQ291bnQpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgYm9vbCBmaW5kU3RyaW5nKGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBXZWJDb3JlOjpG
aW5kT3B0aW9ucywgdW5zaWduZWQgbWF4TWF0Y2hDb3VudCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGRlc3Ryb3koKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZGlydHlSZWN0SW5X
aW5kb3dDb29yZGluYXRlcykgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNv
bnRyb2xUaW50cyhXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydHNTbmFwc2hvdHRpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gc25hcHNob3Qo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsdWdpbkxheWVyKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzVHJhbnNwYXJlbnQoKSBvdmVycmlkZSB7IHJldHVy
biBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCB3YW50c1doZWVsRXZlbnRzKCkgb3ZlcnJpZGUg
eyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBnZW9tZXRyeURpZENoYW5nZShjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBwbHVnaW5TaXplLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBj
bGlwUmVjdCwgY29uc3QgV2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtJiBwbHVnaW5Ub1Jvb3RWaWV3
VHJhbnNmb3JtKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNTY2FsZUZhY3Rv
ckNoYW5nZWQoZmxvYXQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB2aXNpYmlsaXR5RGlk
Q2hhbmdlKCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGZyYW1lRGlkRmluaXNoTG9h
ZGluZyh1aW50NjRfdCByZXF1ZXN0SUQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBmcmFt
ZURpZEZhaWwodWludDY0X3QgcmVxdWVzdElELCBib29sIHdhc0NhbmNlbGxlZCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGRpZEV2YWx1YXRlSmF2YVNjcmlwdCh1aW50NjRfdCByZXF1ZXN0
SUQsIGNvbnN0IFN0cmluZyYgcmVzdWx0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc3Ry
ZWFtRGlkUmVjZWl2ZVJlc3BvbnNlKHVpbnQ2NF90IHN0cmVhbUlELCBjb25zdCBXZWJDb3JlOjpV
UkwmIHJlc3BvbnNlVVJMLCB1aW50MzJfdCBzdHJlYW1MZW5ndGgsIHVpbnQzMl90IGxhc3RNb2Rp
ZmllZFRpbWUsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgaGVhZGVycywg
Y29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlTmFtZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHN0cmVhbURpZFJlY2VpdmVEYXRhKHVpbnQ2NF90IHN0cmVhbUlELCBjb25zdCBjaGFyKiBi
eXRlcywgaW50IGxlbmd0aCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHN0cmVhbURpZEZp
bmlzaExvYWRpbmcodWludDY0X3Qgc3RyZWFtSUQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzdHJlYW1EaWRGYWlsKHVpbnQ2NF90IHN0cmVhbUlELCBib29sIHdhc0NhbmNlbGxlZCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG1hbnVhbFN0cmVhbURpZFJlY2VpdmVSZXNwb25zZShj
b25zdCBXZWJDb3JlOjpVUkwmIHJlc3BvbnNlVVJMLCB1aW50MzJfdCBzdHJlYW1MZW5ndGgsIHVp
bnQzMl90IGxhc3RNb2RpZmllZFRpbWUsIGNvbnN0IFdURjo6U3RyaW5nJiBtaW1lVHlwZSwgY29u
c3QgV1RGOjpTdHJpbmcmIGhlYWRlcnMsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZU5hbWUp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBtYW51YWxTdHJlYW1EaWRSZWNlaXZlRGF0YShj
b25zdCBjaGFyKiBieXRlcywgaW50IGxlbmd0aCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IG1hbnVhbFN0cmVhbURpZEZpbmlzaExvYWRpbmcoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgbWFudWFsU3RyZWFtRGlkRmFpbChib29sIHdhc0NhbmNlbGxlZCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBib29sIGhhbmRsZU1vdXNlRXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFdlYldoZWVsRXZl
bnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlTW91c2VFbnRlckV2ZW50KGNv
bnN0IFdlYk1vdXNlRXZlbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlTW91
c2VMZWF2ZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IGJvb2wgaGFuZGxlQ29udGV4dE1lbnVFdmVudChjb25zdCBXZWJNb3VzZUV2ZW50Jikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBib29sIGhhbmRsZUtleWJvYXJkRXZlbnQoY29uc3QgV2ViS2V5Ym9h
cmRFdmVudCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFZGl0aW5nQ29tbWFu
ZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lLCBjb25zdCBTdHJpbmcmIGFyZ3VtZW50KSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNFZGl0aW5nQ29tbWFuZEVuYWJsZWQoY29uc3QgU3Ry
aW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGhhbmRsZXNQYWdlU2NhbGVGYWN0b3Io
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9jdXMoYm9vbCkgb3ZlcnJpZGUgeyB9
CisgICAgdmlydHVhbCBOUE9iamVjdCogcGx1Z2luU2NyaXB0YWJsZU5QT2JqZWN0KCkgb3ZlcnJp
ZGUgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dGb2N1c0NoYW5nZWQoYm9v
bCkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIHdpbmRvd0FuZFZpZXdGcmFtZXNDaGFu
Z2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRl
cywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcykg
b3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIHdpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkKGJv
b2wpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJ
bnB1dElkZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CisgICAgdmlydHVh
bCB2b2lkIHNlbmRDb21wbGV4VGV4dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KSBvdmVy
cmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJIb3N0aW5nTW9kZShMYXllckhvc3Rp
bmdNb2RlKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlNjcm9sbGJhciogaG9y
aXpvbnRhbFNjcm9sbGJhcigpIG92ZXJyaWRlIHsgcmV0dXJuIG1faG9yaXpvbnRhbFNjcm9sbGJh
ci5nZXQoKTsgfQorICAgIHZpcnR1YWwgV2ViQ29yZTo6U2Nyb2xsYmFyKiB2ZXJ0aWNhbFNjcm9s
bGJhcigpIG92ZXJyaWRlIHsgcmV0dXJuIG1fdmVydGljYWxTY3JvbGxiYXIuZ2V0KCk7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgc3RvcmFnZUJsb2NraW5nU3RhdGVDaGFuZ2VkKGJvb2wpIG92ZXJyaWRl
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBwcml2YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWQoYm9vbCkg
b3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCBib29sIGdldEZvcm1WYWx1ZShTdHJpbmcmIGZvcm1W
YWx1ZSkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxl
U2Nyb2xsKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbiwgV2ViQ29yZTo6U2Nyb2xsR3JhbnVsYXJp
dHkpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZm
ZXI+IGxpdmVSZXNvdXJjZURhdGEoKSBjb25zdCBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgYm9v
bCBpc0JlaW5nQXN5bmNocm9ub3VzbHlJbml0aWFsaXplZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIGZhbHNlOyB9CisKKyAgICB2aXJ0dWFsIFJldGFpblB0cjxQREZEb2N1bWVudD4gcGRmRG9j
dW1lbnRGb3JQcmludGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcGRmRG9jdW1lbnQ7
IH0KKyAgICB2aXJ0dWFsIE5TT2JqZWN0ICphY2Nlc3NpYmlsaXR5T2JqZWN0KCkgY29uc3Qgb3Zl
cnJpZGU7CisKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGNvdW50RmluZE1hdGNoZXMoY29uc3QgU3Ry
aW5nJiB0YXJnZXQsIFdlYkNvcmU6OkZpbmRPcHRpb25zLCB1bnNpZ25lZCBtYXhNYXRjaENvdW50
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZmluZFN0cmluZyhjb25zdCBTdHJpbmcmIHRh
cmdldCwgV2ViQ29yZTo6RmluZE9wdGlvbnMsIHVuc2lnbmVkIG1heE1hdGNoQ291bnQpIG92ZXJy
aWRlOwogCiAgICAgUERGU2VsZWN0aW9uICpuZXh0TWF0Y2hGb3JTdHJpbmcoY29uc3QgU3RyaW5n
JiB0YXJnZXQsIEJPT0wgc2VhcmNoRm9yd2FyZCwgQk9PTCBjYXNlU2Vuc2l0aXZlLCBCT09MIHdy
YXBTZWFyY2gsIFBERlNlbGVjdGlvbiAqaW5pdGlhbFNlbGVjdGlvbiwgQk9PTCBzdGFydEluU2Vs
ZWN0aW9uKTsKIAotICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtRGljdGlvbmFyeUxvb2t1cEF0TG9j
YXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
U3RyaW5nIGdldFNlbGVjdGlvblN0cmluZygpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwg
Ym9vbCBwZXJmb3JtRGljdGlvbmFyeUxvb2t1cEF0TG9jYXRpb24oY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIGdldFNlbGVjdGlvblN0cmlu
ZygpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIHNob3VsZEFsbG93U2NyaXB0
aW5nKCkgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
QWxsb3dOYXZpZ2F0aW9uRnJvbURyYWdzKCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQotICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRBbHdheXNBdXRvU3RhcnQoKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHNob3VsZEFsbG93U2NyaXB0aW5nKCkgb3Zl
cnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQWxsb3dOYXZp
Z2F0aW9uRnJvbURyYWdzKCkgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRBbHdheXNBdXRvU3RhcnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVl
OyB9CiAKICAgICAvLyBTY3JvbGxhYmxlQXJlYSBmdW5jdGlvbnMuCi0gICAgdmlydHVhbCBXZWJD
b3JlOjpJbnRSZWN0IHNjcm9sbENvcm5lclJlY3QoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhKiBlbmNsb3NpbmdTY3JvbGxhYmxlQXJlYSgpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCBzY3JvbGxhYmxlQXJl
YUJvdW5kaW5nQm94KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNjcm9s
bE9mZnNldChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChXZWJDb3JlOjpTY3JvbGxiYXIqLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVT
Y3JvbGxDb3JuZXJSZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IGxhc3RLbm93bk1vdXNlUG9zaXRpb24oKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBtX2xhc3RNb3VzZVBvc2l0aW9uSW5QbHVnaW5Db29yZGluYXRlczsg
fQotICAgIHZpcnR1YWwgaW50IHNjcm9sbFNpemUoV2ViQ29yZTo6U2Nyb2xsYmFyT3JpZW50YXRp
b24pIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc1Njcm9sbENvcm5lclZpc2libGUoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgaW50IHNjcm9sbFBvc2l0aW9u
KFdlYkNvcmU6OlNjcm9sbGJhciopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29y
ZTo6SW50UG9pbnQgc2Nyb2xsUG9zaXRpb24oKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IFdlYkNvcmU6OkludFBvaW50IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UG9pbnQgbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBpbnQgdmlzaWJsZUhlaWdodCgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIG1fc2l6ZS5oZWlnaHQoKTsgfQotICAgIHZpcnR1YWwgaW50IHZpc2li
bGVXaWR0aCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fc2l6ZS53aWR0aCgpOyB9Ci0gICAg
dmlydHVhbCBXZWJDb3JlOjpJbnRTaXplIGNvbnRlbnRzU2l6ZSgpIGNvbnN0IE9WRVJSSURFIHsg
cmV0dXJuIG1fcGRmRG9jdW1lbnRTaXplOyB9Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpTY3JvbGxi
YXIqIGhvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2hvcml6
b250YWxTY3JvbGxiYXIuZ2V0KCk7IH0KLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlNjcm9sbGJhciog
dmVydGljYWxTY3JvbGxiYXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3ZlcnRpY2FsU2Ny
b2xsYmFyLmdldCgpOyB9Ci0gICAgdmlydHVhbCBib29sIHNob3VsZFN1c3BlbmRTY3JvbGxBbmlt
YXRpb25zKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0gLy8gSWYgd2UgcmV0dXJu
IHRydWUsIFNjcm9sbEFuaW1hdG9yTWFjIHdpbGwga2VlcCBjeWNsaW5nIGEgdGltZXIgZm9yZXZl
ciwgd2FpdGluZyBmb3IgYSBnb29kIHRpbWUgdG8gYW5pbWF0ZS4KLSAgICB2aXJ0dWFsIHZvaWQg
c2Nyb2xsYmFyU3R5bGVDaGFuZ2VkKGludCBuZXdTdHlsZSwgYm9vbCBmb3JjZVVwZGF0ZSkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IGNvbnZlcnRGcm9tU2Nyb2xsYmFy
VG9Db250YWluaW5nVmlldyhjb25zdCBXZWJDb3JlOjpTY3JvbGxiYXIqLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiBzY3JvbGxiYXJSZWN0KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdl
YkNvcmU6OkludFJlY3QgY29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0
IFdlYkNvcmU6OlNjcm9sbGJhciosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHBhcmVudFJlY3Qp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UG9pbnQgY29udmVydEZy
b21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFdlYkNvcmU6OlNjcm9sbGJhciosIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxiYXJQb2ludCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBXZWJDb3JlOjpJbnRQb2ludCBjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9T
Y3JvbGxiYXIoY29uc3QgV2ViQ29yZTo6U2Nyb2xsYmFyKiwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIHBhcmVudFBvaW50KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgdXBkYXRl
c1Njcm9sbExheWVyUG9zaXRpb25Pbk1haW5UaHJlYWQoKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biB0cnVlOyB9CisgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHNjcm9sbENvcm5lclJlY3Qo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhKiBl
bmNsb3NpbmdTY3JvbGxhYmxlQXJlYSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2Vi
Q29yZTo6SW50UmVjdCBzY3JvbGxhYmxlQXJlYUJvdW5kaW5nQm94KCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbE9mZnNldChjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChX
ZWJDb3JlOjpTY3JvbGxiYXIqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IGxhc3RL
bm93bk1vdXNlUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2xhc3RNb3VzZVBv
c2l0aW9uSW5QbHVnaW5Db29yZGluYXRlczsgfQorICAgIHZpcnR1YWwgaW50IHNjcm9sbFNpemUo
V2ViQ29yZTo6U2Nyb2xsYmFyT3JpZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1
YWwgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1Nj
cm9sbENvcm5lclZpc2libGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorICAg
IHZpcnR1YWwgaW50IHNjcm9sbFBvc2l0aW9uKFdlYkNvcmU6OlNjcm9sbGJhciopIGNvbnN0IG92
ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UG9pbnQgc2Nyb2xsUG9zaXRpb24oKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IG1pbmltdW1TY3Jv
bGxQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UG9p
bnQgbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBp
bnQgdmlzaWJsZUhlaWdodCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2l6ZS5oZWlnaHQo
KTsgfQorICAgIHZpcnR1YWwgaW50IHZpc2libGVXaWR0aCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG1fc2l6ZS53aWR0aCgpOyB9CisgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRTaXplIGNvbnRl
bnRzU2l6ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcGRmRG9jdW1lbnRTaXplOyB9Cisg
ICAgdmlydHVhbCBXZWJDb3JlOjpTY3JvbGxiYXIqIGhvcml6b250YWxTY3JvbGxiYXIoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX2hvcml6b250YWxTY3JvbGxiYXIuZ2V0KCk7IH0KKyAgICB2
aXJ0dWFsIFdlYkNvcmU6OlNjcm9sbGJhciogdmVydGljYWxTY3JvbGxiYXIoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX3ZlcnRpY2FsU2Nyb2xsYmFyLmdldCgpOyB9CisgICAgdmlydHVhbCBi
b29sIHNob3VsZFN1c3BlbmRTY3JvbGxBbmltYXRpb25zKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gZmFsc2U7IH0gLy8gSWYgd2UgcmV0dXJuIHRydWUsIFNjcm9sbEFuaW1hdG9yTWFjIHdpbGwg
a2VlcCBjeWNsaW5nIGEgdGltZXIgZm9yZXZlciwgd2FpdGluZyBmb3IgYSBnb29kIHRpbWUgdG8g
YW5pbWF0ZS4KKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyU3R5bGVDaGFuZ2VkKGludCBuZXdT
dHlsZSwgYm9vbCBmb3JjZVVwZGF0ZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpJ
bnRSZWN0IGNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBXZWJDb3Jl
OjpTY3JvbGxiYXIqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxiYXJSZWN0KSBjb25z
dCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3QgY29udmVydEZyb21Db250
YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGJhciosIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHBhcmVudFJlY3QpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
V2ViQ29yZTo6SW50UG9pbnQgY29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNv
bnN0IFdlYkNvcmU6OlNjcm9sbGJhciosIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxi
YXJQb2ludCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRQb2ludCBj
b252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3JvbGxiYXIoY29uc3QgV2ViQ29yZTo6U2Nyb2xs
YmFyKiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBhcmVudFBvaW50KSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlc1Njcm9sbExheWVyUG9zaXRpb25Pbk1haW5UaHJl
YWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICAvLyBQREZQbHVnaW4g
ZnVuY3Rpb25zLgogICAgIHZvaWQgdXBkYXRlU2Nyb2xsYmFycygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5Bbm5vdGF0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRp
b24uaAppbmRleCAxM2NiZTNmLi4wZjI3ZGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkFubm90YXRpb24uaApAQCAt
ODQsNyArODQsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQ
REZQbHVnaW5Bbm5vdGF0aW9uRXZlbnRMaXN0ZW5lcihhbm5vdGF0aW9uKSk7CiAgICAgICAgIH0K
IAotICAgICAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBFdmVudExpc3RlbmVyJiBs
aXN0ZW5lcikgT1ZFUlJJREUgeyByZXR1cm4gdGhpcyA9PSAmbGlzdGVuZXI7IH0KKyAgICAgICAg
dmlydHVhbCBib29sIG9wZXJhdG9yPT0oY29uc3QgRXZlbnRMaXN0ZW5lciYgbGlzdGVuZXIpIG92
ZXJyaWRlIHsgcmV0dXJuIHRoaXMgPT0gJmxpc3RlbmVyOyB9CiAKICAgICAgICAgdm9pZCBzZXRB
bm5vdGF0aW9uKFBERlBsdWdpbkFubm90YXRpb24qIGFubm90YXRpb24pIHsgbV9hbm5vdGF0aW9u
ID0gYW5ub3RhdGlvbjsgfQogCkBAIC05Niw3ICs5Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIHsK
ICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV2ViQ29yZTo6RXZlbnQqKSBPVkVSUklERTsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBXZWJDb3JlOjpFdmVudCopIG92ZXJyaWRlOwogCiAgICAgICAgIFBERlBsdWdpbkFubm90
YXRpb24qIG1fYW5ub3RhdGlvbjsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRp
b24uaAppbmRleCBlYTBlODMwLi5lZWE0MWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90YXRpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbkNob2ljZUFubm90
YXRpb24uaApAQCAtNDIsOCArNDIsOCBAQCBjbGFzcyBQREZQbHVnaW5DaG9pY2VBbm5vdGF0aW9u
IDogcHVibGljIFBERlBsdWdpbkFubm90YXRpb24gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFBERlBsdWdpbkNob2ljZUFubm90YXRpb24+IGNyZWF0ZShQREZBbm5vdGF0aW9uICos
IFBERkxheWVyQ29udHJvbGxlciAqLCBQREZQbHVnaW4qKTsKIAotICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVHZW9tZXRyeSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjb21taXQoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2VvbWV0cnkoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgY29tbWl0KCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgUERGUGx1Z2lu
Q2hvaWNlQW5ub3RhdGlvbihQREZBbm5vdGF0aW9uICphbm5vdGF0aW9uLCBQREZMYXllckNvbnRy
b2xsZXIgKnBkZkxheWVyQ29udHJvbGxlciwgUERGUGx1Z2luKiBwbHVnaW4pCkBAIC01MSw3ICs1
MSw3IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpFbGVtZW50PiBjcmVhdGVBbm5vdGF0aW9uRWxlbWVudCgpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiBjcmVhdGVBbm5vdGF0aW9uRWxl
bWVudCgpIG92ZXJyaWRlOwogCiAgICAgUERGQW5ub3RhdGlvbkNob2ljZVdpZGdldCAqY2hvaWNl
QW5ub3RhdGlvbigpIHsgcmV0dXJuIHN0YXRpY19jYXN0PFBERkFubm90YXRpb25DaG9pY2VXaWRn
ZXQgKj4oYW5ub3RhdGlvbigpKTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luUGFzc3dvcmRGaWVsZC5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5QYXNzd29yZEZpZWxkLmgKaW5k
ZXggYjhiNDdmYy4uZWQ4MTczOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9QREZQbHVnaW5QYXNzd29yZEZpZWxkLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5QYXNzd29yZEZpZWxkLmgKQEAgLTM3
LDcgKzM3LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBERlBsdWdpblBhc3N3
b3JkRmllbGQ+IGNyZWF0ZShQREZMYXllckNvbnRyb2xsZXIgKiwgUERGUGx1Z2luKik7CiAgICAg
dmlydHVhbCB+UERGUGx1Z2luUGFzc3dvcmRGaWVsZCgpOwogCi0gICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZUdlb21ldHJ5KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdlb21ldHJ5
KCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgUERGUGx1Z2luUGFzc3dvcmRGaWVsZChQREZM
YXllckNvbnRyb2xsZXIgKnBkZkxheWVyQ29udHJvbGxlciwgUERGUGx1Z2luKiBwbHVnaW4pCkBA
IC00NSw5ICs0NSw5IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiBjcmVhdGVBbm5vdGF0aW9uRWxlbWVudCgpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiBjcmVhdGVBbm5v
dGF0aW9uRWxlbWVudCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50
KFdlYkNvcmU6OkV2ZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50
KFdlYkNvcmU6OkV2ZW50Kikgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1
Z2luVGV4dEFubm90YXRpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luVGV4dEFubm90YXRpb24uaAppbmRleCAxZjRhMDM1Li4yZTQ1N2Q3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW5U
ZXh0QW5ub3RhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luVGV4dEFubm90YXRpb24uaApAQCAtNDUsOCArNDUsOCBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8UERGUGx1Z2luVGV4dEFubm90YXRpb24+IGNyZWF0ZShQREZB
bm5vdGF0aW9uICosIFBERkxheWVyQ29udHJvbGxlciAqLCBQREZQbHVnaW4qKTsKICAgICB2aXJ0
dWFsIH5QREZQbHVnaW5UZXh0QW5ub3RhdGlvbigpOwogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUdlb21ldHJ5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbW1pdCgpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHZW9tZXRyeSgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBjb21taXQoKSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIFBERlBsdWdpblRl
eHRBbm5vdGF0aW9uKFBERkFubm90YXRpb24gKmFubm90YXRpb24sIFBERkxheWVyQ29udHJvbGxl
ciAqcGRmTGF5ZXJDb250cm9sbGVyLCBQREZQbHVnaW4qIHBsdWdpbikKQEAgLTU0LDExICs1NCwx
MSBAQCBwcm90ZWN0ZWQ6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpFbGVtZW50PiBjcmVhdGVBbm5vdGF0aW9uRWxlbWVudCgpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiBjcmVhdGVBbm5vdGF0aW9uRWxl
bWVudCgpIG92ZXJyaWRlOwogICAgIFN0cmluZyB2YWx1ZSgpIGNvbnN0OwogCiBwcml2YXRlOgot
ICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChXZWJDb3JlOjpFdmVudCopIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChXZWJDb3JlOjpFdmVudCopIG92ZXJyaWRlOwog
CiAgICAgUERGQW5ub3RhdGlvblRleHRXaWRnZXQgKnRleHRBbm5vdGF0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8UERGQW5ub3RhdGlvblRleHRXaWRnZXQgKj4oYW5ub3RhdGlvbigp
KTsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggYTlhMmY5NS4uODQxZWMzNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3ND
b25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTYzLDEwICs2MywxMCBAQCBwcml2YXRlOgogICAgIFBs
dWdpblByb2Nlc3NDb25uZWN0aW9uKFBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlciosIHVp
bnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNv
bm5lY3Rpb25JZGVudGlmaWVyLCBib29sIHN1cHBvcnRzQXN5bmNocm9ub3VzSW5pdGlhbGl6YXRp
b24pOwogCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1l
c3NhZ2VFbmNvZGVyPiYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+
Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiop
OwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uKiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJp
bmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpTdHJpbmdSZWZlcmVu
Y2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUp
IG92ZXJyaWRlOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KICAgICB2b2lkIGRpZFJlY2Vp
dmVTeW5jUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQ
Qzo6TWVzc2FnZURlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4m
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaAppbmRleCAyYThkNzQ1Li5mYTJh
YmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oCkBAIC01OCw3ICs1OCw3
IEBAIHByaXZhdGU6CiAgICAgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyKCk7CiAKICAg
ICAvLyBJUEM6OkNvbm5lY3Rpb246OldvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlci4KLSAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdl
RGVjb2RlciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CiAKICAgICB2
b2lkIHBsdWdpblByb2Nlc3NDcmFzaGVkKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94
eS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmgKaW5k
ZXggOGQ1Yjc2OC4uOTgzMTI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb3h5LmgKQEAgLTgyLDcgKzgyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIFBsYXRmb3JtTGF5ZXIqIHBsdWdpbkxheWVyKCk7CiAjZW5kaWYKICAgICB2aXJ0dWFsIGJv
b2wgaXNUcmFuc3BhcmVudCgpOwotICAgIHZpcnR1YWwgYm9vbCB3YW50c1doZWVsRXZlbnRzKCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHdhbnRzV2hlZWxFdmVudHMoKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgZ2VvbWV0cnlEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgcGx1Z2luU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QsIGNvbnN0IFdl
YkNvcmU6OkFmZmluZVRyYW5zZm9ybSYgcGx1Z2luVG9Sb290Vmlld1RyYW5zZm9ybSk7CiAgICAg
dmlydHVhbCB2b2lkIHZpc2liaWxpdHlEaWRDaGFuZ2UoKTsKICAgICB2aXJ0dWFsIHZvaWQgZnJh
bWVEaWRGaW5pc2hMb2FkaW5nKHVpbnQ2NF90IHJlcXVlc3RJRCk7CkBAIC0xMDQsMTAgKzEwNCwx
MCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVDb250ZXh0TWVudUV2ZW50KGNv
bnN0IFdlYk1vdXNlRXZlbnQmKTsKICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlS2V5Ym9hcmRFdmVu
dChjb25zdCBXZWJLZXlib2FyZEV2ZW50Jik7CiAgICAgdmlydHVhbCB2b2lkIHNldEZvY3VzKGJv
b2wpOwotICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFZGl0aW5nQ29tbWFuZChjb25zdCBTdHJpbmcm
IGNvbW1hbmROYW1lLCBjb25zdCBTdHJpbmcmIGFyZ3VtZW50KSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgaXNFZGl0aW5nQ29tbWFuZEVuYWJsZWQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFt
ZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZEFsbG93U2NyaXB0aW5nKCkgT1ZF
UlJJREUgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBbGxvd05hdmln
YXRpb25Gcm9tRHJhZ3MoKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBoYW5kbGVFZGl0aW5nQ29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lLCBjb25z
dCBTdHJpbmcmIGFyZ3VtZW50KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNFZGl0aW5n
Q29tbWFuZEVuYWJsZWQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBib29sIHNob3VsZEFsbG93U2NyaXB0aW5nKCkgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBbGxvd05hdmlnYXRpb25Gcm9tRHJhZ3MoKSBv
dmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIAogICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVz
UGFnZVNjYWxlRmFjdG9yKCk7CiAgICAgCkBAIC0xMTgsNyArMTE4LDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgd2luZG93VmlzaWJpbGl0eUNoYW5nZWQoYm9vbCk7CiAgICAgdmlydHVh
bCB1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcigpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCBzZW5kQ29tcGxleFRleHRJbnB1dChjb25zdCBTdHJpbmcmIHRleHRJbnB1
dCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldExheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9k
ZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldExheWVySG9zdGluZ01vZGUoTGF5ZXJI
b3N0aW5nTW9kZSkgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50
c1NjYWxlRmFjdG9yQ2hhbmdlZChmbG9hdCk7CkBAIC0xMjksMTUgKzEyOSwxNSBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgV2ViQ29yZTo6U2Nyb2xsYmFyKiBob3Jpem9udGFsU2Nyb2xsYmFyKCk7
CiAgICAgdmlydHVhbCBXZWJDb3JlOjpTY3JvbGxiYXIqIHZlcnRpY2FsU2Nyb2xsYmFyKCk7CiAK
LSAgICB2aXJ0dWFsIHVuc2lnbmVkIGNvdW50RmluZE1hdGNoZXMoY29uc3QgU3RyaW5nJiwgV2Vi
Q29yZTo6RmluZE9wdGlvbnMsIHVuc2lnbmVkKSBPVkVSUklERSAgeyByZXR1cm4gMDsgfQotICAg
IHZpcnR1YWwgYm9vbCBmaW5kU3RyaW5nKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OkZpbmRPcHRp
b25zLCB1bnNpZ25lZCkgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHVu
c2lnbmVkIGNvdW50RmluZE1hdGNoZXMoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6RmluZE9wdGlv
bnMsIHVuc2lnbmVkKSBvdmVycmlkZSAgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgYm9vbCBm
aW5kU3RyaW5nKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OkZpbmRPcHRpb25zLCB1bnNpZ25lZCkg
b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UG9p
bnQgY29udmVydFRvUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IGNvbnZlcnRUb1Jvb3RWaWV3KGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBsaXZlUmVzb3VyY2VEYXRhKCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwQXRMb2Nh
dGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JikgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBsaXZlUmVz
b3VyY2VEYXRhKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHBlcmZvcm1EaWN0
aW9uYXJ5TG9va3VwQXRMb2NhdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jikgb3ZlcnJp
ZGUgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgU3RyaW5nIGdldFNlbGVjdGlvblN0
cmluZygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFN0cmluZygpOyB9CisgICAgdmlydHVhbCBT
dHJpbmcgZ2V0U2VsZWN0aW9uU3RyaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gU3RyaW5n
KCk7IH0KIAogICAgIGZsb2F0IGNvbnRlbnRzU2NhbGVGYWN0b3IoKTsKICAgICBib29sIG5lZWRz
QmFja2luZ1N0b3JlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuaAppbmRleCA2YmJmZmQ2Li41YjE0NmU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTE1MywxMCArMTUzLDEw
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpTY3JvbGxiYXIqIGhvcml6b250YWxT
Y3JvbGxiYXIoKTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlNjcm9sbGJhciogdmVydGljYWxTY3Jv
bGxiYXIoKTsKICAgICB2aXJ0dWFsIGJvb2wgd2FudHNXaGVlbEV2ZW50cygpOwotICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRBbHdheXNBdXRvU3RhcnQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgYmVnaW5TbmFwc2hvdHRpbmdSdW5uaW5nUGx1Z2luKCkgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIHNob3VsZEFsbG93TmF2aWdhdGlvbkZyb21EcmFncygpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGROb3RBZGRMYXllcigpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBbHdheXNBdXRvU3RhcnQoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgYmVnaW5TbmFwc2hvdHRpbmdSdW5uaW5nUGx1Z2luKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBib29sIHNob3VsZEFsbG93TmF2aWdhdGlvbkZyb21EcmFncygp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGROb3RBZGRMYXllcigpIGNv
bnN0IG92ZXJyaWRlOwogCiAgICAgLy8gV2ViQ29yZTo6V2lkZ2V0CiAgICAgdmlydHVhbCB2b2lk
IHNldEZyYW1lUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CkBAIC0xNzAsNyArMTcwLDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2hvdygpOwogICAgIHZpcnR1YWwgdm9pZCBo
aWRlKCk7CiAgICAgdmlydHVhbCBib29sIHRyYW5zZm9ybXNBZmZlY3RGcmFtZVJlY3QoKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgY2xpcFJlY3RDaGFuZ2VkKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGNsaXBSZWN0Q2hhbmdlZCgpIG92ZXJyaWRlOwogCiAgICAgLy8gV2ViQ29yZTo6TWVkaWFD
YW5TdGFydExpc3RlbmVyCiAgICAgdmlydHVhbCB2b2lkIG1lZGlhQ2FuU3RhcnQoKTsKQEAgLTE5
Niw3ICsxOTYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwbHVnaW5Gb2N1c09yV2lu
ZG93Rm9jdXNDaGFuZ2VkKGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cyk7CiAg
ICAgdmlydHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRTdGF0ZShQbHVnaW5Db21wbGV4VGV4
dElucHV0U3RhdGUpOwogICAgIHZpcnR1YWwgbWFjaF9wb3J0X3QgY29tcG9zaXRpbmdSZW5kZXJT
ZXJ2ZXJQb3J0KCk7Ci0gICAgdmlydHVhbCB2b2lkIG9wZW5QbHVnaW5QcmVmZXJlbmNlUGFuZSgp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBvcGVuUGx1Z2luUHJlZmVyZW5jZVBhbmUoKSBv
dmVycmlkZTsKICNlbmRpZgogICAgIHZpcnR1YWwgZmxvYXQgY29udGVudHNTY2FsZUZhY3Rvcigp
OwogICAgIHZpcnR1YWwgU3RyaW5nIHByb3hpZXNGb3JVUkwoY29uc3QgU3RyaW5nJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUvV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNo
ZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5oCmluZGV4IGZhZTk2NzkuLmY2M2FjNDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VD
YWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICAvLyBJbXBsZW1lbnRl
ZCBpbiBnZW5lcmF0ZWQgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQ
Qzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRl
OwogCiAgICAgdm9pZCBnZXRDYWNoZU9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkgY29uc3Q7
CiAgICAgdm9pZCByZXR1cm5DYWNoZU9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3Qg
V2ViQ29yZTo6TWVtb3J5Q2FjaGU6OlNlY3VyaXR5T3JpZ2luU2V0JikgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCA5ZDc2OWU2Li5jYTFiMjI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTU4LDE3ICs1OCwxNyBAQCBwcml2YXRlOgogICAg
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFdlYlBhZ2UqKTsKICAgICB2aXJ0dWFsIH5SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvcigpOwogCi0gICAgdmlydHVhbCBib29sIGlzUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3IoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAg
dmlydHVhbCBib29sIGlzUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CiAgICAgCiAgICAgLy8gU2Nyb2xsaW5nQ29vcmRpbmF0b3IKLSAg
ICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVUcmVlU3RhdGVDb21taXQoKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2NoZWR1bGVUcmVlU3RhdGVDb21taXQoKSBvdmVycmlkZTsKIAotICAgIHZp
cnR1YWwgUGFzc093blB0cjxXZWJDb3JlOjpTY3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xs
aW5nVHJlZU5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZVR5cGUsIFdlYkNvcmU6OlNjcm9sbGlu
Z05vZGVJRCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzUnViYmVyQmFuZEluUHJvZ3Jl
c3MoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUGlubmluZ0Jl
aGF2aW9yKFdlYkNvcmU6OlNjcm9sbFBpbm5pbmdCZWhhdmlvcikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBQYXNzT3duUHRyPFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxp
bmdUcmVlTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlVHlwZSwgV2ViQ29yZTo6U2Nyb2xsaW5n
Tm9kZUlEKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNSdWJiZXJCYW5kSW5Qcm9ncmVz
cygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxQaW5uaW5nQmVo
YXZpb3IoV2ViQ29yZTo6U2Nyb2xsUGlubmluZ0JlaGF2aW9yKSBvdmVycmlkZTsKIAogICAgIC8v
IElQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNz
YWdlRGVjb2RlciYpIG92ZXJyaWRlOwogICAgIAogICAgIC8vIFJlc3BvbmQgdG8gVUkgcHJvY2Vz
cyBjaGFuZ2VzLgogICAgIHZvaWQgc2Nyb2xsUG9zaXRpb25DaGFuZ2VkRm9yTm9kZShXZWJDb3Jl
OjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9y
YWdlQXJlYUltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdl
QXJlYUltcGwuaAppbmRleCAzZmQ1MzY3Li45NzRiNjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oCkBAIC00NiwxOSArNDYs
MTkgQEAgcHJpdmF0ZToKICAgICBTdG9yYWdlQXJlYUltcGwoUGFzc1JlZlB0cjxTdG9yYWdlQXJl
YU1hcD4pOwogCiAgICAgLy8gV2ViQ29yZTo6U3RvcmFnZUFyZWEuCi0gICAgdmlydHVhbCB1bnNp
Z25lZCBsZW5ndGgoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBrZXkodW5zaWduZWQg
aW5kZXgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW0oY29uc3QgU3RyaW5nJiBr
ZXkpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtKFdlYkNvcmU6OkZyYW1lKiBz
b3VyY2VGcmFtZSwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wm
IHF1b3RhRXhjZXB0aW9uKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSXRlbShX
ZWJDb3JlOjpGcmFtZSogc291cmNlRnJhbWUsIGNvbnN0IFN0cmluZyYga2V5KSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoV2ViQ29yZTo6RnJhbWUqIHNvdXJjZUZyYW1lKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnMoY29uc3QgU3RyaW5nJiBrZXkpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBjYW5BY2Nlc3NTdG9yYWdlKFdlYkNvcmU6OkZyYW1lKikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSgp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgc2l6ZV90IG1lbW9yeUJ5dGVzVXNlZEJ5Q2Fj
aGUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgaW5jcmVtZW50QWNjZXNzQ291bnQoKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVjcmVtZW50QWNjZXNzQ291bnQoKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgY2xvc2VEYXRhYmFzZUlmSWRsZSgpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcg
a2V5KHVuc2lnbmVkIGluZGV4KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBpdGVtKGNv
bnN0IFN0cmluZyYga2V5KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbShXZWJD
b3JlOjpGcmFtZSogc291cmNlRnJhbWUsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcm
IHZhbHVlLCBib29sJiBxdW90YUV4Y2VwdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHJlbW92ZUl0ZW0oV2ViQ29yZTo6RnJhbWUqIHNvdXJjZUZyYW1lLCBjb25zdCBTdHJpbmcmIGtl
eSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyKFdlYkNvcmU6OkZyYW1lKiBzb3Vy
Y2VGcmFtZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGNvbnRhaW5zKGNvbnN0IFN0cmlu
ZyYga2V5KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuQWNjZXNzU3RvcmFnZShXZWJD
b3JlOjpGcmFtZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6U3RvcmFnZVR5cGUg
c3RvcmFnZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHNpemVfdCBtZW1vcnlC
eXRlc1VzZWRCeUNhY2hlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGluY3JlbWVudEFj
Y2Vzc0NvdW50KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRlY3JlbWVudEFjY2Vzc0Nv
dW50KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNsb3NlRGF0YWJhc2VJZklkbGUoKSBv
dmVycmlkZTsKIAogICAgIHVpbnQ2NF90IG1fc3RvcmFnZUFyZWFJRDsKICAgICBSZWZQdHI8U3Rv
cmFnZUFyZWFNYXA+IG1fc3RvcmFnZUFyZWFNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5oCmluZGV4IDAzMjU2OGUuLjBkNmM1MDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlQXJl
YU1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlQXJl
YU1hcC5oCkBAIC02Myw3ICs2Myw3IEBAIHByaXZhdGU6CiAgICAgU3RvcmFnZUFyZWFNYXAoU3Rv
cmFnZU5hbWVzcGFjZUltcGwqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPik7
CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbios
IElQQzo6TWVzc2FnZURlY29kZXImKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZGlkR2V0VmFsdWVz
KHVpbnQ2NF90IHN0b3JhZ2VNYXBTZWVkKTsKICAgICB2b2lkIGRpZFNldEl0ZW0odWludDY0X3Qg
c3RvcmFnZU1hcFNlZWQsIGNvbnN0IFN0cmluZyYga2V5LCBib29sIHF1b3RhRXJyb3IpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VOYW1lc3Bh
Y2VJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU5hbWVz
cGFjZUltcGwuaAppbmRleCBiMTRlOWRhLi4wNWVkODVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuaApAQCAt
NDksMTMgKzQ5LDEzIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgU3RvcmFnZU5h
bWVzcGFjZUltcGwoV2ViQ29yZTo6U3RvcmFnZVR5cGUsIHVpbnQ2NF90IHN0b3JhZ2VOYW1lc3Bh
Y2VJRCwgdW5zaWduZWQgcXVvdGFJbkJ5dGVzKTsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpTdG9yYWdlQXJlYT4gc3RvcmFnZUFyZWEoUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpT
dG9yYWdlTmFtZXNwYWNlPiBjb3B5KFdlYkNvcmU6OlBhZ2UqKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgY2xvc2UoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJPcmlnaW5G
b3JEZWxldGlvbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiopIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBjbGVhckFsbE9yaWdpbnNGb3JEZWxldGlvbigpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBzeW5jKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNsb3NlSWRsZUxvY2Fs
U3RvcmFnZURhdGFiYXNlcygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpTdG9yYWdlQXJlYT4gc3RvcmFnZUFyZWEoUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbj4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTdG9y
YWdlTmFtZXNwYWNlPiBjb3B5KFdlYkNvcmU6OlBhZ2UqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgY2xvc2UoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJPcmlnaW5Gb3JE
ZWxldGlvbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiopIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBjbGVhckFsbE9yaWdpbnNGb3JEZWxldGlvbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzeW5jKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNsb3NlSWRsZUxvY2FsU3Rv
cmFnZURhdGFiYXNlcygpIG92ZXJyaWRlOwogCiAgICAgV2ViQ29yZTo6U3RvcmFnZVR5cGUgbV9z
dG9yYWdlVHlwZTsKICAgICB1aW50NjRfdCBtX3N0b3JhZ2VOYW1lc3BhY2VJRDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oCmlu
ZGV4IGE1OWMwNzcuLjBiYzg3ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaApAQCAtNDIsMTMgKzQyLDEzIEBAIHByaXZh
dGU6CiAgICAgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzKFdlYlByb2Nlc3MqKTsKIAogICAgIC8v
IFdlYkNvbm5lY3Rpb24KLSAgICB2aXJ0dWFsIHZvaWQgZW5jb2RlTWVzc2FnZUJvZHkoSVBDOjpB
cmd1bWVudEVuY29kZXImLCBBUEk6Ok9iamVjdCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9v
bCBkZWNvZGVNZXNzYWdlQm9keShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFJlZlB0cjxBUEk6Ok9i
amVjdD4mKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaGFzVmFsaWRDb25uZWN0aW9uKCkg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGVuY29kZU1lc3NhZ2VCb2R5KElQQzo6
QXJndW1lbnRFbmNvZGVyJiwgQVBJOjpPYmplY3QqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJv
b2wgZGVjb2RlTWVzc2FnZUJvZHkoSVBDOjpBcmd1bWVudERlY29kZXImLCBSZWZQdHI8QVBJOjpP
YmplY3Q+Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGhhc1ZhbGlkQ29ubmVjdGlvbigp
IGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCi0gICAgdmlydHVh
bCBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9u
SUQoKSBvdmVycmlkZTsKIAogICAgIFdlYlByb2Nlc3MqIG1fcHJvY2VzczsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0
aXZlVGV4dENsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaAppbmRleCAzMzcxYmI5Li4zMDc5NDZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVy
bmF0aXZlVGV4dENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmgKQEAgLTM3LDE3ICszNywxNyBAQCBj
bGFzcyBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6QWx0ZXJuYXRp
dmVUZXh0Q2xpZW50IHsKIHB1YmxpYzoKICAgICBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQoV2Vi
UGFnZSAqKTsKICAgICB2aXJ0dWFsIH5XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQoKTsKLSAgICB2
aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBw
YWdlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAjaWYgVVNFKEFVVE9DT1JSRUNUSU9OX1BBTkVMKQot
ICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlvbkFsdGVybmF0aXZlKFdlYkNvcmU6OkFsdGVy
bmF0aXZlVGV4dFR5cGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJl
cGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcm
IHJlcGxhY2VtZW50U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRpdmVSZXBs
YWNlbWVudFN0cmluZ3MpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQWx0ZXJu
YXRpdmUoV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBTdHJpbmcgZGlzbWlzc0FsdGVybmF0aXZlU29vbihXZWJDb3JlOjpS
ZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0KSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgcmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZShXZWJDb3JlOjpBdXRvY29ycmVjdGlv
blJlc3BvbnNlVHlwZSwgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5n
JiByZXBsYWNlbWVudFN0cmluZykgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNob3dDb3Jy
ZWN0aW9uQWx0ZXJuYXRpdmUoV2ViQ29yZTo6QWx0ZXJuYXRpdmVUZXh0VHlwZSwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncykgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGRpc21pc3NBbHRlcm5hdGl2ZShXZWJDb3JlOjpSZWFzb25Gb3JE
aXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBk
aXNtaXNzQWx0ZXJuYXRpdmVTb29uKFdlYkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5h
dGl2ZVRleHQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZWNvcmRBdXRvY29ycmVjdGlv
blJlc3BvbnNlKFdlYkNvcmU6OkF1dG9jb3JyZWN0aW9uUmVzcG9uc2VUeXBlLCBjb25zdCBTdHJp
bmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nKSBvdmVy
cmlkZTsKICNlbmRpZgogI2lmIFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVTKQotICAgIHZpcnR1
YWwgdm9pZCBzaG93RGljdGF0aW9uQWx0ZXJuYXRpdmVVSShjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIGJvdW5kaW5nQm94T2ZEaWN0YXRlZFRleHQsIHVpbnQ2NF90IGRpY3RhdGlvbkNvbnRleHQp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVEaWN0YXRpb25BbHRlcm5hdGl2ZXMo
dWludDY0X3QgZGljdGF0aW9uQ29udGV4dCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBWZWN0b3I8
U3RyaW5nPiBkaWN0YXRpb25BbHRlcm5hdGl2ZXModWludDY0X3QgZGljdGF0aW9uQ29udGV4dCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNob3dEaWN0YXRpb25BbHRlcm5hdGl2ZVVJKGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZkRpY3RhdGVkVGV4dCwgdWludDY0
X3QgZGljdGF0aW9uQ29udGV4dCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZURp
Y3RhdGlvbkFsdGVybmF0aXZlcyh1aW50NjRfdCBkaWN0YXRpb25Db250ZXh0KSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IGRpY3RhdGlvbkFsdGVybmF0aXZlcyh1aW50NjRf
dCBkaWN0YXRpb25Db250ZXh0KSBvdmVycmlkZTsKICNlbmRpZgogcHJpdmF0ZToKICNpZiBQTEFU
Rk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkJhdHRlcnlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQmF0dGVyeUNsaWVudC5oCmluZGV4IGIyNjBjNjIuLmNiOTRkYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQmF0
dGVyeUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQmF0dGVyeUNsaWVudC5oCkBAIC00NCw5ICs0NCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5XZWJCYXR0ZXJ5Q2xpZW50KCkgeyB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lk
IHN0YXJ0VXBkYXRpbmcoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5n
KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGJhdHRlcnlDb250cm9sbGVyRGVzdHJveWVk
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGJhdHRlcnlDb250cm9sbGVyRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAKICAgICBXZWJQYWdl
KiBtX3BhZ2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggYmY4MWQ0ZC4uNDE3MjY4YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC01MCwxNjYgKzUwLDE2NiBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkKiB3ZWJWaWV3KCkgY29uc3QgeyByZXR1cm4gMDsgfQogCiBwcml2YXRlOgot
ICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgY2hyb21lRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lk
IHNldFdpbmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93UmVjdCgpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd1JlY3QoKSBvdmVycmlk
ZTsKICAgICAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHBhZ2VSZWN0KCkgb3ZlcnJpZGU7
CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIGZvY3VzKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHVuZm9jdXMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpIG92ZXJyaWRlOwogICAgIAotICAgIHZpcnR1
YWwgYm9vbCBjYW5UYWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCB0YWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pIE9WRVJS
SURFOworICAgIHZpcnR1YWwgYm9vbCBjYW5UYWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rp
b24pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB0YWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNE
aXJlY3Rpb24pIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGZvY3VzZWRFbGVtZW50Q2hh
bmdlZChXZWJDb3JlOjpFbGVtZW50KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGZvY3Vz
ZWRGcmFtZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgZm9jdXNlZEVsZW1lbnRDaGFuZ2VkKFdlYkNvcmU6OkVsZW1lbnQqKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZm9jdXNlZEZyYW1lQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSopIG92ZXJy
aWRlOwogCiAgICAgLy8gVGhlIEZyYW1lIHBvaW50ZXIgcHJvdmlkZXMgdGhlIENocm9tZUNsaWVu
dCB3aXRoIGNvbnRleHQgYWJvdXQgd2hpY2gKICAgICAvLyBGcmFtZSB3YW50cyB0byBjcmVhdGUg
dGhlIG5ldyBQYWdlLiAgQWxzbywgdGhlIG5ld2x5IGNyZWF0ZWQgd2luZG93CiAgICAgLy8gc2hv
dWxkIG5vdCBiZSBzaG93biB0byB0aGUgdXNlciB1bnRpbCB0aGUgQ2hyb21lQ2xpZW50IG9mIHRo
ZSBuZXdseQogICAgIC8vIGNyZWF0ZWQgUGFnZSBoYXMgaXRzIHNob3cgbWV0aG9kIGNhbGxlZC4K
LSAgICB2aXJ0dWFsIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZSos
IGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpXaW5kb3dG
ZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2hvdygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6UGFn
ZSogY3JlYXRlV2luZG93KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6RnJhbWVMb2Fk
UmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViQ29yZTo6
TmF2aWdhdGlvbkFjdGlvbiYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzaG93KCkgb3Zl
cnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCBib29sIGNhblJ1bk1vZGFsKCkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIHJ1bk1vZGFsKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGNh
blJ1bk1vZGFsKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJ1bk1vZGFsKCkgb3ZlcnJp
ZGU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHNldFRvb2xiYXJzVmlzaWJsZShib29sKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGJvb2wgdG9vbGJhcnNWaXNpYmxlKCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHNldFRvb2xiYXJzVmlzaWJsZShib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgdG9vbGJhcnNWaXNpYmxlKCkgb3ZlcnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCB2
b2lkIHNldFN0YXR1c2JhclZpc2libGUoYm9vbCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29s
IHN0YXR1c2JhclZpc2libGUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVz
YmFyVmlzaWJsZShib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc3RhdHVzYmFyVmlz
aWJsZSgpIG92ZXJyaWRlOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxiYXJzVmlz
aWJsZShib29sKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsYmFyc1Zpc2libGUo
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsYmFyc1Zpc2libGUoYm9vbCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHNjcm9sbGJhcnNWaXNpYmxlKCkgb3ZlcnJpZGU7
CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHNldE1lbnViYXJWaXNpYmxlKGJvb2wpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgYm9vbCBtZW51YmFyVmlzaWJsZSgpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBzZXRNZW51YmFyVmlzaWJsZShib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJv
b2wgbWVudWJhclZpc2libGUoKSBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
UmVzaXphYmxlKGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRSZXNpemFibGUo
Ym9vbCkgb3ZlcnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNv
bGUoV2ViQ29yZTo6TWVzc2FnZVNvdXJjZSwgV2ViQ29yZTo6TWVzc2FnZUxldmVsLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJl
ciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGFk
ZE1lc3NhZ2VUb0NvbnNvbGUoV2ViQ29yZTo6TWVzc2FnZVNvdXJjZSwgV2ViQ29yZTo6TWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2ln
bmVkIGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkgb3ZlcnJpZGU7CiAgICAg
Ci0gICAgdmlydHVhbCBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBXZWJDb3JlOjpGcmFtZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwg
Ym9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgV2ViQ29yZTo6RnJhbWUqKSBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgY2xv
c2VXaW5kb3dTb29uKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNsb3NlV2luZG93U29v
bigpIG92ZXJyaWRlOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQo
V2ViQ29yZTo6RnJhbWUqLCBjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJv
b2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBTdHJpbmcmKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpG
cmFtZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUs
IFN0cmluZyYgcmVzdWx0KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFy
VGV4dChjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW50
ZXJydXB0SmF2YVNjcmlwdCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBydW5KYXZhU2Ny
aXB0QWxlcnQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBT
dHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChX
ZWJDb3JlOjpGcmFtZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZh
dWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBXZWJD
b3JlOjpLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgV2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKSBvdmVycmlkZTsKIAot
ICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCB3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCB3aW5kb3dSZXNpemVyUmVjdCgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIAogICAgIC8vIEhvc3RXaW5kb3cgbWVtYmVyIGZ1bmN0aW9u
IG92ZXJyaWRlcy4KLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmLCBib29sKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxp
ZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xs
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVj
dCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGludmFs
aWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9s
bChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJl
Y3QpIG92ZXJyaWRlOwogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotICAgIHZpcnR1YWwg
dm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNj
cm9sbE9mZnNldCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRlbGVnYXRlZFNjcm9sbFJl
cXVlc3RlZChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsT2Zmc2V0KSBvdmVycmlkZTsK
ICNlbmRpZgotICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuVG9Sb290Vmlldyhj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2Vi
Q29yZTo6SW50UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBh
Z2VDbGllbnQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNTaXpl
Q2hhbmdlZChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmKSBjb25zdCBPVkVSUklERTsgLy8gQ3VycmVudGx5IG9ubHkgTWFjIGhhcyBh
IG5vbiBlbXB0eSBpbXBsZW1lbnRhdGlvbi4KKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50
IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qgcm9vdFZpZXdUb1NjcmVlbihjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQbGF0Zm9ybVBh
Z2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbFJlY3RJ
bnRvVmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3Qgb3ZlcnJpZGU7IC8vIEN1cnJl
bnRseSBvbmx5IE1hYyBoYXMgYSBub24gZW1wdHkgaW1wbGVtZW50YXRpb24uCiAKLSAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oV2ViQ29yZTo6
UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2Vk
KFdlYkNvcmU6OkVsZW1lbnQqLCBXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2lu
VW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihXZWJDb3JlOjpSZW5kZXJFbWJl
ZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29yZTo6
RWxlbWVudCosIFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJp
bGl0eVJlYXNvbikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFy
c01vZGVEaWRDaGFuZ2UoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVk
IG1vZGlmaWVyRmxhZ3MpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9k
ZURpZENoYW5nZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1v
dmVPdmVyRWxlbWVudChjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9k
aWZpZXJGbGFncykgb3ZlcnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHNldFRvb2xUaXAo
Y29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlv
bikgb3ZlcnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1l
KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lKikgb3Zl
cnJpZGU7CiAgICAgCiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAgICB2aXJ0dWFsIHZvaWQg
ZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgU3RyaW5nJiBkYXRh
YmFzZU5hbWUsIFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscykgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFN0cmlu
ZyYgZGF0YWJhc2VOYW1lLCBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMpIG92ZXJyaWRlOwogI2Vu
ZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNw
YWNlTmVlZGVkKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9u
Q2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGludDY0X3Qgc3BhY2VO
ZWVkZWQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXpl
KGludDY0X3Qgc3BhY2VOZWVkZWQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZWFjaGVk
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgaW50
NjRfdCBzcGFjZU5lZWRlZCkgb3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBP
UlQpCi0gICAgdmlydHVhbCB2b2lkIGFubm90YXRlZFJlZ2lvbnNDaGFuZ2VkKCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGFubm90YXRlZFJlZ2lvbnNDaGFuZ2VkKCkgb3ZlcnJpZGU7CiAj
ZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBwb3B1bGF0ZVZpc2l0ZWRMaW5rcygpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBwb3B1bGF0ZVZpc2l0ZWRMaW5rcygpIG92ZXJyaWRlOwogICAg
IAotICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGN1c3RvbUhpZ2hsaWdodFJlY3QoV2Vi
Q29yZTo6Tm9kZSosIGNvbnN0IFdURjo6QXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIGxpbmVSZWN0KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkZs
b2F0UmVjdCBjdXN0b21IaWdobGlnaHRSZWN0KFdlYkNvcmU6Ok5vZGUqLCBjb25zdCBXVEY6OkF0
b21pY1N0cmluZyYgdHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBsaW5lUmVjdCkgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q3VzdG9tSGlnaGxpZ2h0KFdlYkNvcmU6Ok5v
ZGUqLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
Ym94UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBsaW5lUmVjdCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBiZWhpbmRUZXh0LCBib29sIGVudGlyZUxp
bmUpIE9WRVJSSURFOworICAgICAgICBib29sIGJlaGluZFRleHQsIGJvb2wgZW50aXJlTGluZSkg
b3ZlcnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCBib29sIHNob3VsZFJlcGxhY2VXaXRoR2VuZXJh
dGVkRmlsZUZvclVwbG9hZChjb25zdCBTdHJpbmcmIHBhdGgsIFN0cmluZyYgZ2VuZXJhdGVkRmls
ZW5hbWUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIGdlbmVyYXRlUmVwbGFjZW1lbnRG
aWxlKGNvbnN0IFN0cmluZyYgcGF0aCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNob3Vs
ZFJlcGxhY2VXaXRoR2VuZXJhdGVkRmlsZUZvclVwbG9hZChjb25zdCBTdHJpbmcmIHBhdGgsIFN0
cmluZyYgZ2VuZXJhdGVkRmlsZW5hbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIGdl
bmVyYXRlUmVwbGFjZW1lbnRGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCkgb3ZlcnJpZGU7CiAgICAg
CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgdmlydHVhbCBQYXNzT3duUHRyPFdl
YkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKFdlYkNvcmU6OkNvbG9yQ2hv
b3NlckNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBQYXNzT3duUHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKFdl
YkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgb3ZlcnJp
ZGU7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQotICAgIHZpcnR1YWwg
dm9pZCBkaWRQcmV2ZW50RGVmYXVsdEZvckV2ZW50KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGRpZFByZXZlbnREZWZhdWx0Rm9yRXZlbnQoKSBvdmVycmlkZTsKICNlbmRpZgogCiAjaWYg
UExBVEZPUk0oSU9TKQotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTW9iaWxlRG9jVHlwZSgp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMo
V2ViQ29yZTo6RnJhbWUqLCBib29sKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgb2JzZXJ2
ZWRDb250ZW50Q2hhbmdlKFdlYkNvcmU6OkZyYW1lKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIGNsZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhXZWJDb3JlOjpGcmFtZSopIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJh
bWUoV2ViQ29yZTo6RnJhbWUqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNTdG9wcGlu
ZygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTW9iaWxlRG9jVHlwZSgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMo
V2ViQ29yZTo6RnJhbWUqLCBib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgb2JzZXJ2
ZWRDb250ZW50Q2hhbmdlKFdlYkNvcmU6OkZyYW1lKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGNsZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhXZWJDb3JlOjpGcmFtZSopIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJh
bWUoV2ViQ29yZTo6RnJhbWUqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTdG9wcGlu
ZygpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGRpZExheW91dChMYXlvdXRUeXBlID0g
Tm9ybWFsTGF5b3V0KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRPdmVyZmxv
d1Njcm9sbCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRPdmVyZmxvd1Njcm9s
bCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRMYXlvdXQoTGF5b3V0VHlwZSA9IE5v
cm1hbExheW91dCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0T3ZlcmZsb3dT
Y3JvbGwoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRW5kT3ZlcmZsb3dTY3JvbGwo
KSBvdmVycmlkZTsKIAogICAgIC8vIEZJWE1FOiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU5NzU1NTk+
Ci0gICAgdmlydHVhbCB2b2lkIHN1cHByZXNzRm9ybU5vdGlmaWNhdGlvbnMoKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Ob3RpZmljYXRpb25zKCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHN1cHByZXNzRm9ybU5vdGlmaWNhdGlvbnMoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Ob3RpZmljYXRpb25zKCkgb3ZlcnJpZGU7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgYWRkT3JVcGRhdGVTY3JvbGxpbmdMYXllcihXZWJDb3JlOjpOb2RlKiwg
UGxhdGZvcm1MYXllciogc2Nyb2xsaW5nTGF5ZXIsIFBsYXRmb3JtTGF5ZXIqIGNvbnRlbnRzTGF5
ZXIsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbFNpemUsIGJvb2wgYWxsb3dIb3Jpem9u
dGFsU2Nyb2xsYmFyLCBib29sIGFsbG93VmVydGljYWxTY3JvbGxiYXIpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVTY3JvbGxpbmdMYXllcihXZWJDb3JlOjpOb2RlKiwgUGxhdGZv
cm1MYXllciogc2Nyb2xsaW5nTGF5ZXIsIFBsYXRmb3JtTGF5ZXIqIGNvbnRlbnRzTGF5ZXIpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhZGRPclVwZGF0ZVNjcm9sbGluZ0xheWVyKFdlYkNv
cmU6Ok5vZGUqLCBQbGF0Zm9ybUxheWVyKiBzY3JvbGxpbmdMYXllciwgUGxhdGZvcm1MYXllciog
Y29udGVudHNMYXllciwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsU2l6ZSwgYm9vbCBh
bGxvd0hvcml6b250YWxTY3JvbGxiYXIsIGJvb2wgYWxsb3dWZXJ0aWNhbFNjcm9sbGJhcikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZVNjcm9sbGluZ0xheWVyKFdlYkNvcmU6Ok5v
ZGUqLCBQbGF0Zm9ybUxheWVyKiBzY3JvbGxpbmdMYXllciwgUGxhdGZvcm1MYXllciogY29udGVu
dHNMYXllcikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgd2ViQXBwT3JpZW50YXRpb25z
VXBkYXRlZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB3ZWJBcHBPcmllbnRhdGlvbnNV
cGRhdGVkKCkgb3ZlcnJpZGU7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFu
ZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0
cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciopIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZp
bGVDaG9vc2VyPikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciopIG92ZXJyaWRl
OwogCiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0
IFdlYkNvcmU6OkN1cnNvciYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JI
aWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNl
dEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpIG92ZXJyaWRlOwogI2VuZGlm
CiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAmJiAhVVNFKFJFUVVFU1RfQU5J
TUFUSU9OX0ZSQU1FX1RJTUVSKQotICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFuaW1hdGlvbigp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFuaW1hdGlvbigpIG92ZXJyaWRl
OwogI2VuZGlmCiAKICAgICAvLyBOb3RpZmljYXRpb24gdGhhdCB0aGUgZ2l2ZW4gZm9ybSBlbGVt
ZW50IGhhcyBjaGFuZ2VkLiBUaGlzIGZ1bmN0aW9uCiAgICAgLy8gd2lsbCBiZSBjYWxsZWQgZnJl
cXVlbnRseSwgc28gaGFuZGxpbmcgc2hvdWxkIGJlIHZlcnkgZmFzdC4KLSAgICB2aXJ0dWFsIHZv
aWQgZm9ybVN0YXRlRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoY29u
c3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50Pj4mKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcygpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJD
b3JlOjpFbGVtZW50Pj4mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTm90aWZ5
T25Gb3JtQ2hhbmdlcygpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNl
bGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2Vi
Q29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQYXNz
UmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdl
YkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9v
bCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9u
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRl
UG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0IG92ZXJyaWRlOworICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJj
aFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBvdmVycmlkZTsKIAog
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICB2aXJ0dWFsIFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFt
ZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgV2ViQ29yZTo6R3JhcGhpY3NMYXllckZhY3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0
b3J5KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGF0dGFjaFJvb3RHcmFwaGlj
c0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9u
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZs
dXNoKCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIENvbXBvc2l0aW5nVHJpZ2dlckZsYWdzIGFs
bG93ZWRDb21wb3NpdGluZ1RyaWdnZXJzKCkgY29uc3QKICAgICB7CkBAIC0yMjQsNTggKzIyNCw1
OCBAQCBwcml2YXRlOgogICAgICAgICAgICAgQW5pbWF0aW9uVHJpZ2dlcik7CiAgICAgfQogCi0g
ICAgdmlydHVhbCBib29sIGxheWVyVHJlZVN0YXRlSXNGcm96ZW4oKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIGJvb2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IG92ZXJyaWRl
OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQotICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcj4gY3JlYXRlU2Nyb2xsaW5nQ29v
cmRpbmF0b3IoV2ViQ29yZTo6UGFnZSopIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcj4gY3JlYXRlU2Nyb2xsaW5nQ29v
cmRpbmF0b3IoV2ViQ29yZTo6UGFnZSopIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKICNpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIHZpcnR1YWwgdm9pZCBuZWVkVG91Y2hFdmVudHMoYm9v
bCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG5lZWRUb3VjaEV2ZW50cyhib29sKSBvdmVy
cmlkZTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIHZpcnR1YWwgdm9pZCBlbGVt
ZW50RGlkRm9jdXMoY29uc3QgV2ViQ29yZTo6Tm9kZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBlbGVtZW50RGlkQmx1cihjb25zdCBXZWJDb3JlOjpOb2RlKikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBXZWJDb3JlOjpOb2RlKikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IFdlYkNvcmU6Ok5vZGUq
KSBvdmVycmlkZTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVs
ZW1lbnQqLCBib29sIHdpdGhLZXlib2FyZCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGVu
dGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCop
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50
KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqLCBib29sIHdpdGhLZXlib2FyZCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVu
dCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQo
V2ViQ29yZTo6RWxlbWVudCopIG92ZXJyaWRlOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMp
Ci0gICAgdmlydHVhbCB2b2lkIG1ha2VGaXJzdFJlc3BvbmRlcigpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBtYWtlRmlyc3RSZXNwb25kZXIoKSBvdmVycmlkZTsKICNlbmRpZgogCi0gICAg
dmlydHVhbCB2b2lkIGVuYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBlbmFibGVTdWRkZW5UZXJtaW5hdGlvbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKSBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UoY29uc3QgV2ViQ29y
ZTo6Vmlld3BvcnRBcmd1bWVudHMmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6Vmlld3Bv
cnRBcmd1bWVudHMmKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlT
Y3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5n
ZShpbnQzMl90IG5ld1N0eWxlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U2Ny
b2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2Uo
aW50MzJfdCBuZXdTdHlsZSkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkNvbG9y
IHVuZGVybGF5Q29sb3IoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkNv
bG9yIHVuZGVybGF5Q29sb3IoKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIHZv
aWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiBzdWNj
ZXNzKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2UoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBjb25zdCBTdHJp
bmcmIHN1Y2Nlc3MpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBTdHJpbmcgcGx1Z0luU3RhcnRM
YWJlbFRpdGxlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgU3RyaW5nIHBsdWdJblN0YXJ0TGFiZWxTdWJ0aXRsZShjb25zdCBTdHJpbmcmIG1pbWVU
eXBlKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBwbHVnSW5FeHRyYVN0eWxl
U2hlZXQoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBwbHVnSW5FeHRyYVNj
cmlwdCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIHBsdWdJblN0YXJ0TGFi
ZWxUaXRsZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIFN0cmluZyBwbHVnSW5TdGFydExhYmVsU3VidGl0bGUoY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgcGx1Z0luRXh0cmFTdHlsZVNo
ZWV0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgcGx1Z0luRXh0cmFTY3Jp
cHQoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRIZWFkZXJMYXll
cihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZEFkZEZvb3RlckxheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkQWRkSGVhZGVyTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRGb290ZXJMYXllcihXZWJDb3JlOjpHcmFw
aGljc0xheWVyKikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlVGlsZWRC
YWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IFdlYkNvcmU6OkZyYW1lVmlldyopIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXco
Y29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3KikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgaW5jcmVtZW50QWN0aXZlUGFnZUNvdW50KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIGRlY3JlbWVudEFjdGl2ZVBhZ2VDb3VudCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBpbmNyZW1lbnRBY3RpdmVQYWdlQ291bnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGVjcmVtZW50QWN0aXZlUGFnZUNvdW50KCkgb3ZlcnJpZGU7CiAKICAgICBTdHJpbmcgbV9jYWNo
ZWRUb29sVGlwOwogICAgIG11dGFibGUgUmVmUHRyPFdlYkZyYW1lPiBtX2NhY2hlZEZyYW1lU2V0
TGFyZ2VzdEZyYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDb2xvckNob29zZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ29sb3JDaG9vc2VyLmgKaW5kZXggZTVhNzE0Zi4uMDM5NGNjOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
b2xvckNob29zZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNvbG9yQ2hvb3Nlci5oCkBAIC00OCw5ICs0OCw5IEBAIHB1YmxpYzoKICAgICB2b2lk
IGRpZEVuZENob29zZXIoKTsKICAgICB2b2lkIGRpc2Nvbm5lY3RGcm9tUGFnZSgpOwogCi0gICAg
dmlydHVhbCB2b2lkIHJlYXR0YWNoQ29sb3JDaG9vc2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29sb3IoY29uc3QgV2ViQ29y
ZTo6Q29sb3ImKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZW5kQ2hvb3NlcigpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCByZWF0dGFjaENvbG9yQ2hvb3Nlcihjb25zdCBXZWJDb3Jl
OjpDb2xvciYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENvbG9yKGNv
bnN0IFdlYkNvcmU6OkNvbG9yJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGVuZENob29z
ZXIoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBXZWJDb3JlOjpDb2xvckNob29zZXJDbGll
bnQqIG1fY29sb3JDaG9vc2VyQ2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5oCmlu
ZGV4IGJkNDNlY2IuLmE0YWQ2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmgKQEAg
LTQ1LDI1ICs0NSwyNSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0TWVudURl
c3Ryb3llZCgpOwogICAgIAogI2lmIFVTRShDUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTKQot
ICAgIHZpcnR1YWwgUGFzc093blB0cjxXZWJDb3JlOjpDb250ZXh0TWVudT4gY3VzdG9taXplTWVu
dShQYXNzT3duUHRyPFdlYkNvcmU6OkNvbnRleHRNZW51PikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBQYXNzT3duUHRyPFdlYkNvcmU6OkNvbnRleHRNZW51PiBjdXN0b21pemVNZW51KFBhc3NPd25Q
dHI8V2ViQ29yZTo6Q29udGV4dE1lbnU+KSBvdmVycmlkZTsKICNlbHNlCi0gICAgdmlydHVhbCBX
ZWJDb3JlOjpQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJ
dGVtcyhXZWJDb3JlOjpDb250ZXh0TWVudSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29y
ZTo6UGxhdGZvcm1NZW51RGVzY3JpcHRpb24gZ2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRlbXMo
V2ViQ29yZTo6Q29udGV4dE1lbnUqKSBvdmVycmlkZTsKICNlbmRpZgotICAgIHZpcnR1YWwgdm9p
ZCBjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0qLCBjb25z
dCBXZWJDb3JlOjpDb250ZXh0TWVudSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb250
ZXh0TWVudUl0ZW1TZWxlY3RlZChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0qLCBjb25zdCBXZWJD
b3JlOjpDb250ZXh0TWVudSopIG92ZXJyaWRlOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBkb3du
bG9hZFVSTChjb25zdCBXZWJDb3JlOjpVUkwmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
c2VhcmNoV2l0aEdvb2dsZShjb25zdCBXZWJDb3JlOjpGcmFtZSopIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBsb29rVXBJbkRpY3Rpb25hcnkoV2ViQ29yZTo6RnJhbWUqKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgaXNTcGVha2luZygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBzcGVhayhjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcFNw
ZWFraW5nKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRvd25sb2FkVVJMKGNvbnN0IFdl
YkNvcmU6OlVSTCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZWFyY2hXaXRoR29vZ2xl
KGNvbnN0IFdlYkNvcmU6OkZyYW1lKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGxvb2tV
cEluRGljdGlvbmFyeShXZWJDb3JlOjpGcmFtZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9v
bCBpc1NwZWFraW5nKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNwZWFrKGNvbnN0IFN0
cmluZyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdG9wU3BlYWtpbmcoKSBvdmVycmlk
ZTsKICAgICAKICNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCB2b2lkIHNlYXJjaFdpdGhT
cG90bGlnaHQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2VhcmNoV2l0aFNwb3RsaWdo
dCgpIG92ZXJyaWRlOwogI2VuZGlmCiAKICNpZiBVU0UoQUNDRVNTSUJJTElUWV9DT05URVhUX01F
TlVTKQotICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KCkgT1ZFUlJJREU7CisgICAgdm9pZCBzaG93
Q29udGV4dE1lbnUoKSBvdmVycmlkZTsKICNlbmRpZgogCiAgICAgV2ViUGFnZSogbV9wYWdlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJE
YXRhYmFzZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRGF0YWJhc2VNYW5hZ2VyLmgKaW5kZXggYjdhMGFkZC4uOTIxZjM2MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRhYmFzZU1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkRhdGFiYXNlTWFuYWdlci5oCkBAIC01MCwxMCArNTAsMTAgQEAgcHVibGljOgogCiBwcml2YXRl
OgogICAgIC8vIFdlYlByb2Nlc3NTdXBwbGVtZW50Ci0gICAgdmlydHVhbCB2b2lkIGluaXRpYWxp
emUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBpbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
KSBvdmVycmlkZTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29k
ZXImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBn
ZXREYXRhYmFzZXNCeU9yaWdpbih1aW50NjRfdCBjYWxsYmFja0lEKSBjb25zdDsKICAgICB2b2lk
IGdldERhdGFiYXNlT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKSBjb25zdDsKQEAgLTYxLDEz
ICs2MSwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2luKGNv
bnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcikgY29uc3Q7CiAKICAgICAvLyBXZWJDb3JlOjpE
YXRhYmFzZU1hbmFnZXJDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRNb2RpZnlP
cmlnaW4oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hEaWRNb2RpZnlEYXRhYmFzZShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGNv
bnN0IFN0cmluZyYgZGF0YWJhc2VJZGVudGlmaWVyKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hEaWRNb2RpZnlPcmlnaW4oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRNb2RpZnlEYXRhYmFzZShXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiosIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJZGVudGlmaWVyKSBvdmVy
cmlkZTsKIAogI2lmIFBMQVRGT1JNKElPUykKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRB
ZGROZXdPcmlnaW4oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEaWREZWxldGVEYXRhYmFzZSgpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaERpZERlbGV0ZURhdGFiYXNlT3JpZ2luKCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQWRkTmV3T3JpZ2luKFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRGVsZXRlRGF0YWJh
c2UoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWREZWxldGVEYXRhYmFz
ZU9yaWdpbigpIG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICBXZWJQcm9jZXNzKiBtX3Byb2Nlc3M7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkRldmljZVByb3hpbWl0eUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJEZXZpY2VQcm94aW1pdHlDbGllbnQuaAppbmRleCBhMTlmNWUwLi5hMjg5
N2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkRldmljZVByb3hpbWl0eUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlUHJveGltaXR5Q2xpZW50LmgKQEAgLTQyLDEwICs0
MiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydFVwZGF0aW5nKCk7CiAgICAgdm9pZCBzdG9w
VXBkYXRpbmcoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBoYXNMYXN0RGF0YSgpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgZG91YmxlIHZhbHVlKCkgT1ZFUlJJREUgeyByZXR1cm4gbV92YWx1ZTsgfQot
ICAgIHZpcnR1YWwgZG91YmxlIG1pbigpIE9WRVJSSURFIHsgcmV0dXJuIG1fbWluOyB9Ci0gICAg
dmlydHVhbCBkb3VibGUgbWF4KCkgT1ZFUlJJREUgeyByZXR1cm4gbV9tYXg7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgaGFzTGFzdERhdGEoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGRvdWJsZSB2YWx1
ZSgpIG92ZXJyaWRlIHsgcmV0dXJuIG1fdmFsdWU7IH0KKyAgICB2aXJ0dWFsIGRvdWJsZSBtaW4o
KSBvdmVycmlkZSB7IHJldHVybiBtX21pbjsgfQorICAgIHZpcnR1YWwgZG91YmxlIG1heCgpIG92
ZXJyaWRlIHsgcmV0dXJuIG1fbWF4OyB9CiAKIHByaXZhdGU6CiAgICAgV2ViUGFnZSogbV9wYWdl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJEcmFnQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkRyYWdDbGllbnQuaAppbmRleCBiYWNhYWU1Li4xMTE3ZDc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQu
aApAQCAtNDIsMTggKzQyLDE4IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdmly
dHVhbCB2b2lkIHdpbGxQZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKFdlYkNvcmU6OkRyYWdE
ZXN0aW5hdGlvbkFjdGlvbiwgV2ViQ29yZTo6RHJhZ0RhdGEmKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgd2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKFdlYkNvcmU6OkRyYWdTb3VyY2VB
Y3Rpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgV2ViQ29yZTo6Q2xpcGJvYXJkJikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpEcmFnRGVzdGluYXRpb25BY3Rpb24gYWN0aW9u
TWFza0ZvckRyYWcoV2ViQ29yZTo6RHJhZ0RhdGEmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdl
YkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24gZHJhZ1NvdXJjZUFjdGlvbk1hc2tGb3JQb2ludChjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgd2luZG93UG9pbnQpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCB3aWxsUGVyZm9ybURyYWdEZXN0aW5hdGlvbkFjdGlvbihXZWJDb3JlOjpEcmFnRGVzdGlu
YXRpb25BY3Rpb24sIFdlYkNvcmU6OkRyYWdEYXRhJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHdpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9u
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNvcmU6OkNsaXBib2FyZCYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgV2ViQ29yZTo6RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIGFjdGlvbk1hc2tG
b3JEcmFnKFdlYkNvcmU6OkRyYWdEYXRhJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJDb3Jl
OjpEcmFnU291cmNlQWN0aW9uIGRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIHdpbmRvd1BvaW50KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9p
ZCBzdGFydERyYWcoV2ViQ29yZTo6RHJhZ0ltYWdlUmVmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgZHJhZ0ltYWdlT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZXZlbnRQb3MsIFdl
YkNvcmU6OkNsaXBib2FyZCYsIFdlYkNvcmU6OkZyYW1lJiwgYm9vbCBsaW5rRHJhZyA9IGZhbHNl
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnKFdlYkNvcmU6OkRyYWdJbWFn
ZVJlZiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRyYWdJbWFnZU9yaWdpbiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGV2ZW50UG9zLCBXZWJDb3JlOjpDbGlwYm9hcmQmLCBXZWJDb3JlOjpG
cmFtZSYsIGJvb2wgbGlua0RyYWcgPSBmYWxzZSkgb3ZlcnJpZGU7CiAKICNpZiBQTEFURk9STShN
QUMpCi0gICAgdmlydHVhbCB2b2lkIGRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShjb25zdCBTdHJp
bmcmIHBhc3RlYm9hcmROYW1lLCBXZWJDb3JlOjpFbGVtZW50JiwgY29uc3QgV2ViQ29yZTo6VVJM
JiwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6RnJhbWUqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5h
bWUsIFdlYkNvcmU6OkVsZW1lbnQmLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcm
LCBXZWJDb3JlOjpGcmFtZSopIG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQg
ZHJhZ0NvbnRyb2xsZXJEZXN0cm95ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZHJh
Z0NvbnRyb2xsZXJEZXN0cm95ZWQoKSBvdmVycmlkZTsKIAogICAgIFdlYlBhZ2UqIG1fcGFnZTsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCBiMWIyOGQ3Li5lODE2ZGZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmgKQEAgLTQxLDg3ICs0MSw4NyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRl
OgotICAgIHZpcnR1YWwgdm9pZCBwYWdlRGVzdHJveWVkKCkgT1ZFUlJJREU7Ci0KLSAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkRGVsZXRlUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgc21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQoKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlR3JhbW1hckNoZWNraW5nKCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBpbnQgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpIG92ZXJyaWRlOworCisgICAgdmlydHVh
bCBib29sIHNob3VsZERlbGV0ZVJhbmdlKFdlYkNvcmU6OlJhbmdlKikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBib29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGJvb2wgaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUdyYW1tYXJDaGVja2luZygpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgaW50IHNwZWxsQ2hlY2tlckRvY3VtZW50VGFnKCkgb3ZlcnJpZGU7CiAg
ICAgCi0gICAgdmlydHVhbCBib29sIHNob3VsZEJlZ2luRWRpdGluZyhXZWJDb3JlOjpSYW5nZSop
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRFbmRFZGl0aW5nKFdlYkNvcmU6OlJh
bmdlKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZEluc2VydE5vZGUoV2ViQ29y
ZTo6Tm9kZSosIFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6RWRpdG9ySW5zZXJ0QWN0aW9uKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0VGV4dChjb25zdCBTdHJpbmcm
LCBXZWJDb3JlOjpSYW5nZSosIFdlYkNvcmU6OkVkaXRvckluc2VydEFjdGlvbikgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBib29sIHNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UoV2ViQ29yZTo6UmFu
Z2UqIGZyb21SYW5nZSwgV2ViQ29yZTo6UmFuZ2UqIHRvUmFuZ2UsIFdlYkNvcmU6OkVBZmZpbml0
eSwgYm9vbCBzdGlsbFNlbGVjdGluZykgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNob3Vs
ZEJlZ2luRWRpdGluZyhXZWJDb3JlOjpSYW5nZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRFbmRFZGl0aW5nKFdlYkNvcmU6OlJhbmdlKikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBib29sIHNob3VsZEluc2VydE5vZGUoV2ViQ29yZTo6Tm9kZSosIFdlYkNvcmU6OlJhbmdlKiwg
V2ViQ29yZTo6RWRpdG9ySW5zZXJ0QWN0aW9uKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkSW5zZXJ0VGV4dChjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpSYW5nZSosIFdlYkNvcmU6
OkVkaXRvckluc2VydEFjdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIHNob3VsZENo
YW5nZVNlbGVjdGVkUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqIGZyb21SYW5nZSwgV2ViQ29yZTo6UmFu
Z2UqIHRvUmFuZ2UsIFdlYkNvcmU6OkVBZmZpbml0eSwgYm9vbCBzdGlsbFNlbGVjdGluZykgb3Zl
cnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUoV2ViQ29yZTo6
U3R5bGVQcm9wZXJ0aWVzKiwgV2ViQ29yZTo6UmFuZ2UqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkTW92ZVJhbmdlQWZ0ZXJEZWxldGUoV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3Jl
OjpSYW5nZSopIE9WRVJSSURFOwotCi0gICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRWRpdGluZygp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXNwb25kVG9DaGFuZ2VkQ29udGVudHMoKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbihXZWJD
b3JlOjpGcmFtZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRFZGl0aW5nKCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxXcml0ZVNlbGVjdGlvblRvUGFzdGVib2Fy
ZChXZWJDb3JlOjpSYW5nZSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRXcml0ZVNl
bGVjdGlvblRvUGFzdGVib2FyZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBnZXRDbGll
bnRQYXN0ZWJvYXJkRGF0YUZvclJhbmdlKFdlYkNvcmU6OlJhbmdlKiwgVmVjdG9yPFN0cmluZz4m
IHBhc3RlYm9hcmRUeXBlcywgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+PiYg
cGFzdGVib2FyZERhdGEpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBseVN0
eWxlKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllcyosIFdlYkNvcmU6OlJhbmdlKikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIHNob3VsZE1vdmVSYW5nZUFmdGVyRGVsZXRlKFdlYkNvcmU6OlJh
bmdlKiwgV2ViQ29yZTo6UmFuZ2UqKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRC
ZWdpbkVkaXRpbmcoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uZFRvQ2hhbmdl
ZENvbnRlbnRzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlc3BvbmRUb0NoYW5nZWRT
ZWxlY3Rpb24oV2ViQ29yZTo6RnJhbWUqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
RW5kRWRpdGluZygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsV3JpdGVTZWxlY3Rp
b25Ub1Bhc3RlYm9hcmQoV2ViQ29yZTo6UmFuZ2UqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgZ2V0Q2xpZW50UGFzdGVib2FyZERhdGFGb3JSYW5nZShXZWJDb3JlOjpSYW5nZSosIFZl
Y3RvcjxTdHJpbmc+JiBwYXN0ZWJvYXJkVHlwZXMsIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6U2hh
cmVkQnVmZmVyPj4mIHBhc3RlYm9hcmREYXRhKSBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFs
IHZvaWQgcmVnaXN0ZXJVbmRvU3RlcChQYXNzUmVmUHRyPFdlYkNvcmU6OlVuZG9TdGVwPikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoUGFzc1JlZlB0cjxXZWJD
b3JlOjpVbmRvU3RlcD4pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjbGVhclVuZG9SZWRv
T3BlcmF0aW9ucygpIE9WRVJSSURFOwotCi0gICAgdmlydHVhbCBib29sIGNhbkNvcHlDdXQoV2Vi
Q29yZTo6RnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBib29sIGNhblBhc3RlKFdlYkNvcmU6OkZyYW1lKiwgYm9vbCBkZWZhdWx0VmFsdWUpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBjYW5VbmRvKCkgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBib29sIGNhblJlZG8oKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgcmVnaXN0ZXJVbmRvU3RlcChQYXNzUmVmUHRyPFdlYkNvcmU6OlVuZG9TdGVwPikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoUGFzc1JlZlB0cjxXZWJD
b3JlOjpVbmRvU3RlcD4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjbGVhclVuZG9SZWRv
T3BlcmF0aW9ucygpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBib29sIGNhbkNvcHlDdXQoV2Vi
Q29yZTo6RnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBib29sIGNhblBhc3RlKFdlYkNvcmU6OkZyYW1lKiwgYm9vbCBkZWZhdWx0VmFsdWUpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjYW5VbmRvKCkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIGNhblJlZG8oKSBjb25zdCBvdmVycmlkZTsKICAgICAKLSAgICB2
aXJ0dWFsIHZvaWQgdW5kbygpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZWRvKCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVuZG8oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVkbygpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWJvYXJkRXZl
bnQoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBo
YW5kbGVJbnB1dE1ldGhvZEtleWRvd24oV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCopIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVLZXlib2FyZEV2ZW50KFdlYkNvcmU6OktleWJvYXJk
RXZlbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlSW5wdXRNZXRob2RLZXlk
b3duKFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKSBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFs
IHZvaWQgdGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKFdlYkNvcmU6OkVsZW1lbnQqKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgdGV4dEZpZWxkRGlkRW5kRWRpdGluZyhXZWJDb3JlOjpFbGVt
ZW50KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHRleHREaWRDaGFuZ2VJblRleHRGaWVs
ZChXZWJDb3JlOjpFbGVtZW50KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGRvVGV4dEZp
ZWxkQ29tbWFuZEZyb21FdmVudChXZWJDb3JlOjpFbGVtZW50KiwgV2ViQ29yZTo6S2V5Ym9hcmRF
dmVudCopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB0ZXh0V2lsbEJlRGVsZXRlZEluVGV4
dEZpZWxkKFdlYkNvcmU6OkVsZW1lbnQqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdGV4
dERpZENoYW5nZUluVGV4dEFyZWEoV2ViQ29yZTo6RWxlbWVudCopIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCB0ZXh0RmllbGREaWRCZWdpbkVkaXRpbmcoV2ViQ29yZTo6RWxlbWVudCopIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB0ZXh0RmllbGREaWRFbmRFZGl0aW5nKFdlYkNvcmU6
OkVsZW1lbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dERpZENoYW5nZUluVGV4
dEZpZWxkKFdlYkNvcmU6OkVsZW1lbnQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZG9U
ZXh0RmllbGRDb21tYW5kRnJvbUV2ZW50KFdlYkNvcmU6OkVsZW1lbnQqLCBXZWJDb3JlOjpLZXli
b2FyZEV2ZW50Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHRleHRXaWxsQmVEZWxldGVk
SW5UZXh0RmllbGQoV2ViQ29yZTo6RWxlbWVudCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCB0ZXh0RGlkQ2hhbmdlSW5UZXh0QXJlYShXZWJDb3JlOjpFbGVtZW50Kikgb3ZlcnJpZGU7CiAK
ICNpZiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCBOU1N0cmluZyAqdXNlclZpc2libGVTdHJp
bmcoTlNVUkwgKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpEb2N1bWVudEZyYWdt
ZW50KiBkb2N1bWVudEZyYWdtZW50RnJvbUF0dHJpYnV0ZWRTdHJpbmcoTlNBdHRyaWJ1dGVkU3Ry
aW5nICosIFZlY3RvcjwgUmVmUHRyPFdlYkNvcmU6OkFyY2hpdmVSZXNvdXJjZT4+JikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIHNldEluc2VydGlvblBhc3RlYm9hcmQoY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkTmFtZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBOU1VSTCogY2Fub25pY2Fs
aXplVVJMKE5TVVJMKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBOU1VSTCogY2Fub25pY2FsaXpl
VVJMU3RyaW5nKE5TU3RyaW5nKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBOU1N0cmluZyAqdXNl
clZpc2libGVTdHJpbmcoTlNVUkwgKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpE
b2N1bWVudEZyYWdtZW50KiBkb2N1bWVudEZyYWdtZW50RnJvbUF0dHJpYnV0ZWRTdHJpbmcoTlNB
dHRyaWJ1dGVkU3RyaW5nICosIFZlY3RvcjwgUmVmUHRyPFdlYkNvcmU6OkFyY2hpdmVSZXNvdXJj
ZT4+Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEluc2VydGlvblBhc3RlYm9hcmQo
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBOU1VS
TCogY2Fub25pY2FsaXplVVJMKE5TVVJMKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBOU1VSTCog
Y2Fub25pY2FsaXplVVJMU3RyaW5nKE5TU3RyaW5nKikgb3ZlcnJpZGU7CiAjZW5kaWYKIAogI2lm
IFVTRShBUFBLSVQpCi0gICAgdmlydHVhbCB2b2lkIHVwcGVyY2FzZVdvcmQoKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgbG93ZXJjYXNlV29yZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBjYXBpdGFsaXplV29yZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1cHBlcmNh
c2VXb3JkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGxvd2VyY2FzZVdvcmQoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FwaXRhbGl6ZVdvcmQoKSBvdmVycmlkZTsKICNlbmRp
ZgogI2lmIFVTRShBVVRPTUFUSUNfVEVYVF9SRVBMQUNFTUVOVCkKLSAgICB2aXJ0dWFsIHZvaWQg
c2hvd1N1YnN0aXR1dGlvbnNQYW5lbChib29sIHNob3cpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
Ym9vbCBzdWJzdGl0dXRpb25zUGFuZWxJc1Nob3dpbmcoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgdG9nZ2xlU21hcnRJbnNlcnREZWxldGUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJv
b2wgaXNBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQoKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgdG9nZ2xlQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb24oKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIGJvb2wgaXNBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCgpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uKCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJs
ZWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQXV0b21hdGljRGFzaFN1YnN0
aXR1dGlvbigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc0F1dG9tYXRpY1RleHRSZXBs
YWNlbWVudEVuYWJsZWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQXV0b21h
dGljVGV4dFJlcGxhY2VtZW50KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzQXV0b21h
dGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCB0b2dnbGVBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb24oKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2hvd1N1YnN0aXR1dGlvbnNQYW5lbChib29sIHNob3cpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBzdWJzdGl0dXRpb25zUGFuZWxJc1Nob3dpbmcoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgdG9nZ2xlU21hcnRJbnNlcnREZWxldGUoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQoKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb24oKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxl
ZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVBdXRvbWF0aWNMaW5rRGV0ZWN0
aW9uKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzQXV0b21hdGljRGFzaFN1YnN0aXR1
dGlvbkVuYWJsZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQXV0b21hdGlj
RGFzaFN1YnN0aXR1dGlvbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc0F1dG9tYXRp
Y1RleHRSZXBsYWNlbWVudEVuYWJsZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdG9n
Z2xlQXV0b21hdGljVGV4dFJlcGxhY2VtZW50KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IGlzQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCgpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCB0b2dnbGVBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb24oKSBvdmVycmlkZTsK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKERFTEVUSU9OX1VJKQotICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRTaG93RGVsZXRlSW50ZXJmYWNlKFdlYkNvcmU6OkhUTUxFbGVtZW50KikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBib29sIHNob3VsZFNob3dEZWxldGVJbnRlcmZhY2UoV2ViQ29yZTo6SFRNTEVs
ZW1lbnQqKSBvdmVycmlkZTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKQpAQCAtMTMwLDQ0
ICsxMzAsNDQgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUdsb2JhbFNlbGVjdGlvbihXZWJD
b3JlOjpGcmFtZSopOwogI2VuZGlmCiAKLSAgICBUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNr
ZXIoKSAgT1ZFUlJJREUgeyByZXR1cm4gdGhpczsgfQorICAgIFRleHRDaGVja2VyQ2xpZW50KiB0
ZXh0Q2hlY2tlcigpICBvdmVycmlkZSB7IHJldHVybiB0aGlzOyB9CiAKLSAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkRXJhc2VNYXJrZXJzQWZ0ZXJDaGFuZ2VTZWxlY3Rpb24oV2ViQ29yZTo6VGV4dENo
ZWNraW5nVHlwZSkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGlnbm9yZVdvcmRJ
blNwZWxsRG9jdW1lbnQoY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGxlYXJuV29yZChjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2hl
Y2tTcGVsbGluZ09mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgaW50KiBtaXNzcGVs
bGluZ0xvY2F0aW9uLCBpbnQqIG1pc3NwZWxsaW5nTGVuZ3RoKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIFN0cmluZyBnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChjb25z
dCBTdHJpbmcmIG1pc3NwZWxsZWRXb3JkKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2hl
Y2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBWZWN0b3I8V2ViQ29y
ZTo6R3JhbW1hckRldGFpbD4mLCBpbnQqIGJhZEdyYW1tYXJMb2NhdGlvbiwgaW50KiBiYWRHcmFt
bWFyTGVuZ3RoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRXJhc2VNYXJrZXJz
QWZ0ZXJDaGFuZ2VTZWxlY3Rpb24oV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZSkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGlnbm9yZVdvcmRJblNwZWxsRG9jdW1lbnQoY29uc3Qg
U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGxlYXJuV29yZChjb25zdCBTdHJp
bmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2hlY2tTcGVsbGluZ09mU3RyaW5nKGNv
bnN0IFVDaGFyKiwgaW50IGxlbmd0aCwgaW50KiBtaXNzcGVsbGluZ0xvY2F0aW9uLCBpbnQqIG1p
c3NwZWxsaW5nTGVuZ3RoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRBdXRvQ29y
cmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChjb25zdCBTdHJpbmcmIG1pc3NwZWxsZWRX
b3JkKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29u
c3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBWZWN0b3I8V2ViQ29yZTo6R3JhbW1hckRldGFpbD4mLCBp
bnQqIGJhZEdyYW1tYXJMb2NhdGlvbiwgaW50KiBiYWRHcmFtbWFyTGVuZ3RoKSBvdmVycmlkZTsK
ICNpZiBVU0UoVU5JRklFRF9URVhUX0NIRUNLSU5HKQotICAgIHZpcnR1YWwgVmVjdG9yPFdlYkNv
cmU6OlRleHRDaGVja2luZ1Jlc3VsdD4gY2hlY2tUZXh0T2ZQYXJhZ3JhcGgoU3RyaW5nVmlldywg
V2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2sgY2hlY2tpbmdUeXBlcykgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBWZWN0b3I8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0PiBjaGVja1RleHRP
ZlBhcmFncmFwaChTdHJpbmdWaWV3LCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlTWFzayBjaGVj
a2luZ1R5cGVzKSBvdmVycmlkZTsKICNlbmRpZgotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTcGVs
bGluZ1VJV2l0aEdyYW1tYXJTdHJpbmcoY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6R3Jh
bW1hckRldGFpbCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTcGVsbGluZ1VJ
V2l0aE1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBzaG93U3BlbGxpbmdVSShib29sIHNob3cpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9v
bCBzcGVsbGluZ1VJSXNTaG93aW5nKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGdldEd1
ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBW
ZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxT
ZXRJbnB1dE1ldGhvZFN0YXRlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldElucHV0
TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdENoZWNraW5nT2ZTdHJpbmcoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlRleHRDaGVja2lu
Z1JlcXVlc3Q+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdp
dGhHcmFtbWFyU3RyaW5nKGNvbnN0IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkdyYW1tYXJEZXRh
aWwmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNz
cGVsbGVkV29yZChjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hv
d1NwZWxsaW5nVUkoYm9vbCBzaG93KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgc3BlbGxp
bmdVSUlzU2hvd2luZygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9y
V29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0
cmluZz4mIGd1ZXNzZXMpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRN
ZXRob2RTdGF0ZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0
YXRlKGJvb2wgZW5hYmxlZCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0
Pikgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oR1RLKQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRT
aG93VW5pY29kZU1lbnUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2hvd1Vu
aWNvZGVNZW51KCkgb3ZlcnJpZGU7CiAjZW5kaWYKICNpZiBQTEFURk9STShJT1MpCi0gICAgdmly
dHVhbCB2b2lkIHN1cHByZXNzU2VsZWN0aW9uTm90aWZpY2F0aW9ucygpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCByZXN0b3JlU2VsZWN0aW9uTm90aWZpY2F0aW9ucygpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBzdGFydERlbGF5aW5nQW5kQ29hbGVzY2luZ0NvbnRlbnRDaGFuZ2VO
b3RpZmljYXRpb25zKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BEZWxheWluZ0Fu
ZENvYWxlc2NpbmdDb250ZW50Q2hhbmdlTm90aWZpY2F0aW9ucygpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCB3cml0ZURhdGFUb1Bhc3RlYm9hcmQoTlNEaWN0aW9uYXJ5KikgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBOU0FycmF5ICpzdXBwb3J0ZWRQYXN0ZWJvYXJkVHlwZXNGb3JDdXJyZW50
U2VsZWN0aW9uKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBOU0FycmF5ICpyZWFkRGF0YUZyb21Q
YXN0ZWJvYXJkKE5TU3RyaW5nKiB0eXBlLCBpbnQgaW5kZXgpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgYm9vbCBoYXNSaWNobHlFZGl0YWJsZVNlbGVjdGlvbigpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgaW50IGdldFBhc3RlYm9hcmRJdGVtc0NvdW50KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBX
ZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50KiBkb2N1bWVudEZyYWdtZW50RnJvbURlbGVnYXRlKGlu
dCBpbmRleCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHBlcmZvcm1zVHdvU3RlcFBhc3Rl
KFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGludCBw
YXN0ZWJvYXJkQ2hhbmdlQ291bnQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3VwcHJl
c3NTZWxlY3Rpb25Ob3RpZmljYXRpb25zKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJl
c3RvcmVTZWxlY3Rpb25Ob3RpZmljYXRpb25zKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHN0YXJ0RGVsYXlpbmdBbmRDb2FsZXNjaW5nQ29udGVudENoYW5nZU5vdGlmaWNhdGlvbnMoKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcERlbGF5aW5nQW5kQ29hbGVzY2luZ0NvbnRl
bnRDaGFuZ2VOb3RpZmljYXRpb25zKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdyaXRl
RGF0YVRvUGFzdGVib2FyZChOU0RpY3Rpb25hcnkqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIE5T
QXJyYXkgKnN1cHBvcnRlZFBhc3RlYm9hcmRUeXBlc0ZvckN1cnJlbnRTZWxlY3Rpb24oKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIE5TQXJyYXkgKnJlYWREYXRhRnJvbVBhc3RlYm9hcmQoTlNTdHJp
bmcqIHR5cGUsIGludCBpbmRleCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGhhc1JpY2hs
eUVkaXRhYmxlU2VsZWN0aW9uKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBpbnQgZ2V0UGFzdGVi
b2FyZEl0ZW1zQ291bnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkRvY3VtZW50
RnJhZ21lbnQqIGRvY3VtZW50RnJhZ21lbnRGcm9tRGVsZWdhdGUoaW50IGluZGV4KSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgcGVyZm9ybXNUd29TdGVwUGFzdGUoV2ViQ29yZTo6RG9jdW1l
bnRGcmFnbWVudCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgaW50IHBhc3RlYm9hcmRDaGFuZ2VD
b3VudCgpIG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNHbG9i
YWxTZWxlY3Rpb24oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNHbG9iYWxT
ZWxlY3Rpb24oKSBvdmVycmlkZTsKIAogICAgIFdlYlBhZ2UqIG1fcGFnZTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZjdiM2VkNC4uYmQ3NGQzMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNDIsMTkwICs0MiwxOTAgQEAgcHVibGljOgogICAgIFdl
YkZyYW1lKiB3ZWJGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWU7IH0KIAogcHJpdmF0ZToK
LSAgICB2aXJ0dWFsIHZvaWQgZnJhbWVMb2FkZXJEZXN0cm95ZWQoKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZnJhbWVMb2FkZXJEZXN0cm95ZWQoKSBvdmVycmlkZTsKIAotICAgIHZpcnR1
YWwgYm9vbCBoYXNIVE1MVmlldygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KLSAg
ICB2aXJ0dWFsIGJvb2wgaGFzV2ViVmlldygpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwg
Ym9vbCBoYXNIVE1MVmlldygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgaGFzV2ViVmlldygpIGNvbnN0IG92ZXJyaWRlOwogICAgIAotICAgIHZpcnR1
YWwgdm9pZCBtYWtlUmVwcmVzZW50YXRpb24oV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZm9yY2VMYXlvdXQoKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgbWFrZVJlcHJlc2VudGF0aW9uKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGZvcmNlTGF5b3V0KCkgb3ZlcnJpZGU7CiAjaWYgUExB
VEZPUk0oSU9TKQotICAgIHZpcnR1YWwgdm9pZCBmb3JjZUxheW91dFdpdGhvdXRSZWNhbGN1bGF0
aW5nU3R5bGVzKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGZvcmNlTGF5b3V0V2l0aG91
dFJlY2FsY3VsYXRpbmdTdHlsZXMoKSBvdmVycmlkZTsKICNlbmRpZgotICAgIHZpcnR1YWwgdm9p
ZCBmb3JjZUxheW91dEZvck5vbkhUTUwoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZm9y
Y2VMYXlvdXRGb3JOb25IVE1MKCkgb3ZlcnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHNl
dENvcGllc09uU2Nyb2xsKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldENvcGllc09u
U2Nyb2xsKCkgb3ZlcnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIGRldGFjaGVkRnJvbVBh
cmVudDIoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoZWRGcm9tUGFyZW50Mygp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hlZEZyb21QYXJlbnQyKCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGRldGFjaGVkRnJvbVBhcmVudDMoKSBvdmVycmlkZTsKICAg
ICAKLSAgICB2aXJ0dWFsIHZvaWQgYXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3QodW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBhc3Np
Z25JZGVudGlmaWVyVG9Jbml0aWFsUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikg
b3ZlcnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0
KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiBy
ZWRpcmVjdFJlc3BvbnNlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDYW5jZWxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoV2ViQ29yZTo6RG9j
dW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9u
c2UpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFn
ZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpIG92ZXJyaWRlOwogI2lmIFVTRShQ
Uk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCi0gICAgdmlydHVhbCBib29sIGNhbkF1dGhl
bnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVj
dGlvblNwYWNlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmKSBvdmVycmlkZTsKICNlbmRpZgog
I2lmIFBMQVRGT1JNKElPUykKLSAgICB2aXJ0dWFsIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+
IGNvbm5lY3Rpb25Qcm9wZXJ0aWVzKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFJldGFpblB0cjxDRkRpY3Rp
b25hcnlSZWY+IGNvbm5lY3Rpb25Qcm9wZXJ0aWVzKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwg
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKSBvdmVycmlkZTsKICNlbmRpZgotICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpEb2N1bWVudExvYWRlcios
IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50
TGVuZ3RoKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBpbnQgZGF0YUxlbmd0aCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlk
RmluaXNoTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllcikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmFpbExvYWRp
bmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
ZGlzcGF0Y2hEaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUoV2ViQ29yZTo6RG9jdW1lbnRM
b2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiwgaW50IGxlbmd0aCkgT1ZFUlJJREU7Ci0gICAgCi0gICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoRGlkSGFuZGxlT25sb2FkRXZlbnRzKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2FuY2VsQ2xpZW50
UmVkaXJlY3QoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsUGVyZm9y
bUNsaWVudFJlZGlyZWN0KGNvbnN0IFdlYkNvcmU6OlVSTCYsIGRvdWJsZSBpbnRlcnZhbCwgZG91
YmxlIGZpcmVEYXRlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDaGFu
Z2VMb2NhdGlvbldpdGhpblBhZ2UoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hEaWRQdXNoU3RhdGVXaXRoaW5QYWdlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoRGlkUmVwbGFjZVN0YXRlV2l0aGluUGFnZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERpZFBvcFN0YXRlV2l0aGluUGFnZSgpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaFdpbGxDbG9zZSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaERpZFJlY2VpdmVJY29uKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nV2l0aERpcmVjdGlv
biYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENoYW5nZUljb25zKFdl
YkNvcmU6Okljb25UeXBlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRD
b21taXRMb2FkKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmFpbExvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpbmlzaERv
Y3VtZW50TG9hZCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpbmlz
aExvYWQoKSBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZExheW91dChX
ZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmVzKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hEaWRMYXlvdXQoKSBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgV2ViQ29yZTo6RnJhbWUq
IGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoU2hvdygpIE9WRVJSSURFOwotICAgIAot
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6
TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNv
cmU6OkZyYW1lUG9saWN5RnVuY3Rpb24pIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3QgV2ViQ29yZTo6TmF2aWdh
dGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8
V2ViQ29yZTo6Rm9ybVN0YXRlPiwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCkgT1ZFUlJJREU7Ci0gICAg
Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoVW5hYmxlVG9JbXBsZW1lbnRQb2xpY3koY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwotICAgIAotICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaFdpbGxTZW5kU3VibWl0RXZlbnQoUGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3Rh
dGU+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShQ
YXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rp
b24pIE9WRVJSSURFOwotICAgIAotICAgIHZpcnR1YWwgdm9pZCByZXZlcnRUb1Byb3Zpc2lvbmFs
U3RhdGUoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0TWFpbkRvY3VtZW50RXJyb3IoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7Ci0gICAgCi0gICAgdmlydHVhbCB2b2lk
IHNldE1haW5GcmFtZURvY3VtZW50UmVhZHkoYm9vbCkgT1ZFUlJJREU7Ci0gICAgCi0gICAgdmly
dHVhbCB2b2lkIHN0YXJ0RG93bmxvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lID0gU3RyaW5nKCkpIE9WRVJSSURFOwotICAgIAot
ICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2hhbmdlVGl0bGUoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIq
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVGl0bGUoV2ViQ29yZTo6RG9j
dW1lbnRMb2FkZXIqKSBPVkVSUklERTsKLSAgICAKLSAgICB2aXJ0dWFsIHZvaWQgY29tbWl0dGVk
TG9hZChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IGNoYXIqLCBpbnQpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hlZExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXIqKSBPVkVSUklERTsKLSAgICAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2xvYmFsSGlzdG9y
eSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHbG9iYWxIaXN0b3J5UmVkaXJl
Y3RMaW5rcygpIE9WRVJSSURFOwotICAgIAotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRHb1RvSGlz
dG9yeUl0ZW0oV2ViQ29yZTo6SGlzdG9yeUl0ZW0qKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkU3RvcExvYWRpbmdGb3JIaXN0b3J5SXRlbShXZWJDb3JlOjpIaXN0b3J5
SXRlbSopIGNvbnN0IE9WRVJSSURFOwotCi0gICAgdmlydHVhbCB2b2lkIGRpZERpc3BsYXlJbnNl
Y3VyZUNvbnRlbnQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUnVuSW5zZWN1cmVD
b250ZW50KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2ViQ29yZTo6VVJMJikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZERldGVjdFhTUyhjb25zdCBXZWJDb3JlOjpVUkwm
LCBib29sIGRpZEJsb2NrRW50aXJlUGFnZSkgT1ZFUlJJREU7Ci0KLSAgICB2aXJ0dWFsIFdlYkNv
cmU6OlJlc291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJs
b2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciBpbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIE9WRVJSSURFOwotICAgIAotICAgIHZpcnR1YWwgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHBs
dWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYp
IE9WRVJSSURFOwotICAgIAotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRGYWxsQmFjayhjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7Ci0gICAgCi0gICAgdmlydHVhbCBib29s
IGNhbkhhbmRsZVJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGNhblNob3dNSU1FVHlwZShjb25zdCBTdHJpbmcm
IE1JTUVUeXBlKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgY2FuU2hvd01JTUVU
eXBlQXNIVE1MKGNvbnN0IFN0cmluZyYgTUlNRVR5cGUpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgYm9vbCByZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZShjb25zdCBTdHJpbmcm
IFVSTFNjaGVtZSkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgZ2VuZXJhdGVk
TUlNRVR5cGVGb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJiBVUkxTY2hlbWUpIGNvbnN0IE9WRVJS
SURFOwotICAgIAotICAgIHZpcnR1YWwgdm9pZCBmcmFtZUxvYWRDb21wbGV0ZWQoKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgc2F2ZVZpZXdTdGF0ZVRvSXRlbShXZWJDb3JlOjpIaXN0b3J5
SXRlbSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlVmlld1N0YXRlKCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHByb3Zpc2lvbmFsTG9hZFN0YXJ0ZWQoKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZCgpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBwcmVwYXJlRm9yRGF0YVNvdXJjZVJlcGxhY2VtZW50KCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2
ZUNvbnRlbnRMZW5ndGgoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIGludCBkYXRhTGVuZ3RoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hEaWRGaW5pc2hMb2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRG
YWlsTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgYm9vbCBkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShXZWJDb3JlOjpE
b2N1bWVudExvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBpbnQgbGVuZ3RoKSBvdmVycmlkZTsKKyAgICAKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRIYW5kbGVPbmxvYWRFdmVudHMoKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92
aXNpb25hbExvYWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDYW5j
ZWxDbGllbnRSZWRpcmVjdCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdp
bGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgV2ViQ29yZTo6VVJMJiwgZG91YmxlIGludGVy
dmFsLCBkb3VibGUgZmlyZURhdGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaERpZFB1c2hTdGF0ZVdpdGhpblBhZ2UoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hEaWRSZXBsYWNlU3RhdGVXaXRoaW5QYWdlKCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUG9wU3RhdGVXaXRoaW5QYWdlKCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbENsb3NlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUljb24oKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVUaXRsZShjb25zdCBXZWJDb3JlOjpTdHJpbmdXaXRo
RGlyZWN0aW9uJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2hhbmdl
SWNvbnMoV2ViQ29yZTo6SWNvblR5cGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERpZENvbW1pdExvYWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hE
aWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlk
RmluaXNoRG9jdW1lbnRMb2FkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
RGlkRmluaXNoTG9hZCgpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlk
TGF5b3V0KFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZXMpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERpZExheW91dCgpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBXZWJDb3Jl
OjpGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rp
b24mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hTaG93KCkgb3ZlcnJpZGU7
CisgICAgCisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24pIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihjb25zdCBX
ZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFt
ZSwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+LCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9u
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBvdmVycmlk
ZTsKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hVbmFibGVUb0ltcGxlbWVudFBvbGlj
eShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CisgICAgCisgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoV2lsbFNlbmRTdWJtaXRFdmVudChQYXNzUmVmUHRyPFdlYkNvcmU6
OkZvcm1TdGF0ZT4pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxTdWJt
aXRGb3JtKFBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgV2ViQ29yZTo6RnJhbWVQb2xp
Y3lGdW5jdGlvbikgb3ZlcnJpZGU7CisgICAgCisgICAgdmlydHVhbCB2b2lkIHJldmVydFRvUHJv
dmlzaW9uYWxTdGF0ZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciopIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBzZXRNYWluRG9jdW1lbnRFcnJvcihXZWJDb3JlOjpEb2N1bWVudExvYWRlcios
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKKyAgICAKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0TWFpbkZyYW1lRG9jdW1lbnRSZWFkeShib29sKSBvdmVycmlkZTsKKyAgICAK
KyAgICB2aXJ0dWFsIHZvaWQgc3RhcnREb3dubG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUgPSBTdHJpbmcoKSkgb3ZlcnJpZGU7
CisgICAgCisgICAgdmlydHVhbCB2b2lkIHdpbGxDaGFuZ2VUaXRsZShXZWJDb3JlOjpEb2N1bWVu
dExvYWRlciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VUaXRsZShXZWJD
b3JlOjpEb2N1bWVudExvYWRlciopIG92ZXJyaWRlOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBj
b21taXR0ZWRMb2FkKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgY2hhciosIGludCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGZpbmlzaGVkTG9hZGluZyhXZWJDb3JlOjpEb2N1
bWVudExvYWRlciopIG92ZXJyaWRlOworICAgIAorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHbG9i
YWxIaXN0b3J5KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdsb2JhbEhpc3Rv
cnlSZWRpcmVjdExpbmtzKCkgb3ZlcnJpZGU7CisgICAgCisgICAgdmlydHVhbCBib29sIHNob3Vs
ZEdvVG9IaXN0b3J5SXRlbShXZWJDb3JlOjpIaXN0b3J5SXRlbSopIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKFdlYkNvcmU6
Okhpc3RvcnlJdGVtKikgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRGlz
cGxheUluc2VjdXJlQ29udGVudCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRSdW5J
bnNlY3VyZUNvbnRlbnQoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBjb25zdCBXZWJDb3JlOjpV
UkwmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRGV0ZWN0WFNTKGNvbnN0IFdlYkNv
cmU6OlVSTCYsIGJvb2wgZGlkQmxvY2tFbnRpcmVQYWdlKSBvdmVycmlkZTsKKworICAgIHZpcnR1
YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNl
RXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJMRXJy
b3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3Io
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jikgb3ZlcnJpZGU7CisgICAgCisgICAgdmly
dHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dNSU1FVHlwZUVycm9yKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNv
cmU6OlJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNl
RXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJikgb3ZlcnJpZGU7CisgICAgCisgICAgdmlydHVhbCBib29sIHNob3VsZEZhbGxCYWNr
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKKyAgICAKKyAgICB2aXJ0
dWFsIGJvb2wgY2FuSGFuZGxlUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuU2hvd01JTUVUeXBlKGNvbnN0
IFN0cmluZyYgTUlNRVR5cGUpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjYW5T
aG93TUlNRVR5cGVBc0hUTUwoY29uc3QgU3RyaW5nJiBNSU1FVHlwZSkgY29uc3Qgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCBib29sIHJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKGNvbnN0
IFN0cmluZyYgVVJMU2NoZW1lKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBn
ZW5lcmF0ZWRNSU1FVHlwZUZvclVSTFNjaGVtZShjb25zdCBTdHJpbmcmIFVSTFNjaGVtZSkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgCisgICAgdmlydHVhbCB2b2lkIGZyYW1lTG9hZENvbXBsZXRlZCgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzYXZlVmlld1N0YXRlVG9JdGVtKFdlYkNvcmU6
Okhpc3RvcnlJdGVtKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVWaWV3U3Rh
dGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvdmlzaW9uYWxMb2FkU3RhcnRlZCgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkKCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JEYXRhU291cmNlUmVwbGFjZW1lbnQoKSBvdmVycmlk
ZTsKICAgICAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI+
IGNyZWF0ZURvY3VtZW50TG9hZGVyKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhJik7Ci0gICAgdmlydHVhbCB2b2lkIHNldFRpdGxl
KGNvbnN0IFdlYkNvcmU6OlN0cmluZ1dpdGhEaXJlY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpVUkwm
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGl0bGUoY29uc3QgV2ViQ29yZTo6U3Ry
aW5nV2l0aERpcmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYpIG92ZXJyaWRlOwogICAgIAot
ICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBXZWJDb3JlOjpVUkwmKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQoY29uc3QgV2ViQ29yZTo6VVJMJikgb3Zl
cnJpZGU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHNhdmVQbGF0Zm9ybURhdGFUb0NhY2hlZEZy
YW1lKFdlYkNvcmU6OkNhY2hlZEZyYW1lKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHRy
YW5zaXRpb25Ub0NvbW1pdHRlZEZyb21DYWNoZWRGcmFtZShXZWJDb3JlOjpDYWNoZWRGcmFtZSop
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzYXZlUGxhdGZvcm1EYXRhVG9DYWNoZWRGcmFt
ZShXZWJDb3JlOjpDYWNoZWRGcmFtZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB0cmFu
c2l0aW9uVG9Db21taXR0ZWRGcm9tQ2FjaGVkRnJhbWUoV2ViQ29yZTo6Q2FjaGVkRnJhbWUqKSBv
dmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlc3RvcmVG
cmFtZUhpZXJhcmNoeUZvckNhY2hlZEZyYW1lKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGRpZFJlc3RvcmVGcmFtZUhpZXJhcmNoeUZvckNhY2hlZEZyYW1lKCkgb3ZlcnJpZGU7CiAjZW5k
aWYKLSAgICB2aXJ0dWFsIHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdl
KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkU2F2ZVRvUGFnZUNhY2hlKCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlc3RvcmVGcm9tUGFnZUNhY2hlKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRpZFNhdmVUb1BhZ2VDYWNoZSgpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpIG92ZXJyaWRlOwogCi0gICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkgb3ZlcnJpZGU7
CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgdm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93
bmxvYWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBib29sIGNhbkNhY2hlUGFnZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOwogICAgIAogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgV2ViQ29y
ZTo6VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJF
bGVtZW50KiBvd25lckVsZW1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBib29sIGFsbG93c1Njcm9sbGluZywgaW50
IG1hcmdpbldpZHRoLCBpbnQgbWFyZ2luSGVpZ2h0KSBPVkVSUklERTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIGJvb2wg
YWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2luV2lkdGgsIGludCBtYXJnaW5IZWlnaHQpIG92ZXJy
aWRlOwogICAgIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGNyZWF0
ZVBsdWdpbihjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1l
bnQqLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiwgYm9vbCBsb2FkTWFudWFsbHkpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCByZWNyZWF0ZVBsdWdpbihXZWJDb3JlOjpXaWRnZXQqKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVkaXJlY3REYXRhVG9QbHVnaW4oV2ViQ29yZTo6V2lk
Z2V0KiBwbHVnaW5XaWRnZXQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgV2ViQ29y
ZTo6SFRNTFBsdWdJbkVsZW1lbnQqLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiwgYm9vbCBsb2Fk
TWFudWFsbHkpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZWNyZWF0ZVBsdWdpbihXZWJD
b3JlOjpXaWRnZXQqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVkaXJlY3REYXRhVG9Q
bHVnaW4oV2ViQ29yZTo6V2lkZ2V0KiBwbHVnaW5XaWRnZXQpIG92ZXJyaWRlOwogICAgIAotICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGNyZWF0ZUphdmFBcHBsZXRXaWRn
ZXQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6OkhUTUxBcHBsZXRFbGVtZW50Kiwg
Y29uc3QgV2ViQ29yZTo6VVJMJiBiYXNlVVJMLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1O
YW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6V2lkZ2V0PiBjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0
KGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1MQXBwbGV0RWxlbWVudCosIGNv
bnN0IFdlYkNvcmU6OlVSTCYgYmFzZVVSTCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFt
ZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcykgb3ZlcnJpZGU7CiAgICAgCiAj
aWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0gICAgdmlydHVhbCBQYXNzUmVmUHRy
PFdlYkNvcmU6OldpZGdldD4gY3JlYXRlTWVkaWFQbGF5ZXJQcm94eVBsdWdpbihjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudCosIGNvbnN0IFdlYkNvcmU6
OlVSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25z
dCBTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgaGlkZU1lZGlhUGxheWVyUHJv
eHlQbHVnaW4oV2ViQ29yZTo6V2lkZ2V0KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNo
b3dNZWRpYVBsYXllclByb3h5UGx1Z2luKFdlYkNvcmU6OldpZGdldCopIE9WRVJSSURFOworICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGNyZWF0ZU1lZGlhUGxheWVyUHJv
eHlQbHVnaW4oY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQqLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IGhpZGVNZWRpYVBsYXllclByb3h5UGx1Z2luKFdlYkNvcmU6OldpZGdldCopIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBzaG93TWVkaWFQbGF5ZXJQcm94eVBsdWdpbihXZWJDb3JlOjpXaWRn
ZXQqKSBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpPYmplY3RDb250
ZW50VHlwZSBvYmplY3RDb250ZW50VHlwZShjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBib29sIHNob3VsZFByZWZlclBsdWdJbnNGb3JJbWFnZXMpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgU3RyaW5nIG92ZXJyaWRlTWVkaWFUeXBlKCkgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBXZWJDb3JlOjpPYmplY3RDb250ZW50VHlwZSBvYmplY3RDb250ZW50VHlw
ZShjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIHNob3Vs
ZFByZWZlclBsdWdJbnNGb3JJbWFnZXMpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIG92
ZXJyaWRlTWVkaWFUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hEaWRDbGVhcldpbmRvd09iamVjdEluV29ybGQoV2ViQ29yZTo6RE9NV3JhcHBlcldvcmxk
JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2xlYXJXaW5kb3dPYmpl
Y3RJbldvcmxkKFdlYkNvcmU6OkRPTVdyYXBwZXJXb3JsZCYpIG92ZXJyaWRlOwogICAgIAotICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaEdsb2JhbE9iamVjdEF2YWlsYWJsZShXZWJDb3JlOjpET01X
cmFwcGVyV29ybGQmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsRGlz
Y29ubmVjdERPTVdpbmRvd0V4dGVuc2lvbkZyb21HbG9iYWxPYmplY3QoV2ViQ29yZTo6RE9NV2lu
ZG93RXh0ZW5zaW9uKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVj
b25uZWN0RE9NV2luZG93RXh0ZW5zaW9uVG9HbG9iYWxPYmplY3QoV2ViQ29yZTo6RE9NV2luZG93
RXh0ZW5zaW9uKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbERlc3Ry
b3lHbG9iYWxPYmplY3RGb3JET01XaW5kb3dFeHRlbnNpb24oV2ViQ29yZTo6RE9NV2luZG93RXh0
ZW5zaW9uKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoR2xvYmFsT2JqZWN0
QXZhaWxhYmxlKFdlYkNvcmU6OkRPTVdyYXBwZXJXb3JsZCYpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaFdpbGxEaXNjb25uZWN0RE9NV2luZG93RXh0ZW5zaW9uRnJvbUdsb2Jh
bE9iamVjdChXZWJDb3JlOjpET01XaW5kb3dFeHRlbnNpb24qKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNvbm5lY3RET01XaW5kb3dFeHRlbnNpb25Ub0dsb2JhbE9i
amVjdChXZWJDb3JlOjpET01XaW5kb3dFeHRlbnNpb24qKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hXaWxsRGVzdHJveUdsb2JhbE9iamVjdEZvckRPTVdpbmRvd0V4dGVuc2lv
bihXZWJDb3JlOjpET01XaW5kb3dFeHRlbnNpb24qKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwg
dm9pZCBkb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0IE9WRVJSSURFOyAvLyAiTmF2aWdh
dGlvbiIgaGVyZSBtZWFucyBhIHRyYW5zaXRpb24gZnJvbSBvbmUgcGFnZSB0byBhbm90aGVyIHRo
YXQgZW5kcyB1cCBpbiB0aGUgYmFjay9mb3J3YXJkIGxpc3QuCisgICAgdmlydHVhbCB2b2lkIGRv
Y3VtZW50RWxlbWVudEF2YWlsYWJsZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRQ
ZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7IC8vICJOYXZpZ2F0aW9uIiBo
ZXJlIG1lYW5zIGEgdHJhbnNpdGlvbiBmcm9tIG9uZSBwYWdlIHRvIGFub3RoZXIgdGhhdCBlbmRz
IHVwIGluIHRoZSBiYWNrL2ZvcndhcmQgbGlzdC4KICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgcmVn
aXN0ZXJGb3JJY29uTm90aWZpY2F0aW9uKGJvb2wgbGlzdGVuID0gdHJ1ZSkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29sIGxpc3RlbiA9
IHRydWUpIG92ZXJyaWRlOwogICAgIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFJl
bW90ZUFYT2JqZWN0UmVmIGFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIFJlbW90ZUFYT2JqZWN0UmVmIGFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKSBv
dmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHdpbGxDYWNo
ZVJlc3BvbnNlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBOU0NhY2hlZFVSTFJlc3BvbnNlKikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBO
U0NhY2hlZFVSTFJlc3BvbnNlKiB3aWxsQ2FjaGVSZXNwb25zZShXZWJDb3JlOjpEb2N1bWVudExv
YWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgTlNDYWNoZWRVUkxSZXNwb25zZSopIGNv
bnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQWx3YXlzVXNl
UGx1Z2luRG9jdW1lbnQoY29uc3QgU3RyaW5nJiAvKm1pbWVUeXBlKi8pIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBT
dHJpbmcmIC8qbWltZVR5cGUqLykgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ2hhbmdlU2Nyb2xsT2Zmc2V0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZENo
YW5nZVNjcm9sbE9mZnNldCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIGFsbG93U2Ny
aXB0KGJvb2wgZW5hYmxlZFBlclNldHRpbmdzKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wg
YWxsb3dTY3JpcHQoYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MpIG92ZXJyaWRlOwogCi0gICAgdmly
dHVhbCBib29sIHNob3VsZEZvcmNlVW5pdmVyc2FsQWNjZXNzRnJvbUxvY2FsVVJMKGNvbnN0IFdl
YkNvcmU6OlVSTCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRGb3JjZVVuaXZl
cnNhbEFjY2Vzc0Zyb21Mb2NhbFVSTChjb25zdCBXZWJDb3JlOjpVUkwmKSBvdmVycmlkZTsKIAot
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBj
cmVhdGVOZXR3b3JraW5nQ29udGV4dCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4
dCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGZvcmNlUGFnZVRyYW5zaXRpb25JZk5l
ZWRlZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBmb3JjZVBhZ2VUcmFuc2l0aW9uSWZO
ZWVkZWQoKSBvdmVycmlkZTsKIAogICAgIFdlYkZyYW1lKiBtX2ZyYW1lOwogICAgIFJlZlB0cjxQ
bHVnaW5WaWV3PiBtX3BsdWdpblZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKaW5k
ZXggOWU1NzEzOS4uN2UzYWRhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaApAQCAt
NDIsMTYgKzQyLDE2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJHZW9sb2NhdGlvbkNsaWVu
dCgpOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCBnZW9sb2NhdGlvbkRlc3Ryb3llZCgp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBnZW9sb2NhdGlvbkRlc3Ryb3llZCgpIG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNl
dEVuYWJsZUhpZ2hBY2N1cmFjeShib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3Rh
cnRVcGRhdGluZygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpIG92
ZXJyaWRlOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uKiBsYXN0
UG9zaXRpb24oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9z
aXRpb24qIGxhc3RQb3NpdGlvbigpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RQZXJtaXNzaW9uKFdlYkNvcmU6Okdlb2xvY2F0aW9uKikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KFdlYkNvcmU6Okdlb2xvY2F0aW9uKikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6Okdlb2xv
Y2F0aW9uKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbFBlcm1pc3Npb25SZXF1
ZXN0KFdlYkNvcmU6Okdlb2xvY2F0aW9uKikgb3ZlcnJpZGU7CiAKIAogICAgIFdlYlBhZ2UqIG1f
cGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oCmluZGV4IDIyNmRlMjkuLmEwODZiN2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5z
cGVjdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuaApAQCAtNTEsMzAgKzUxLDMwIEBAIHB1YmxpYzoKICAg
ICB9CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIGluc3BlY3RvckRlc3Ryb3llZCgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0b3JEZXN0cm95ZWQoKSBvdmVycmlkZTsK
IAotICAgIHZpcnR1YWwgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiBvcGVuSW5zcGVjdG9yRnJv
bnRlbmQoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlciopIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBjbG9zZUluc3BlY3RvckZyb250ZW5kKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIGJyaW5nRnJvbnRlbmRUb0Zyb250KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZFJlc2l6ZU1haW5GcmFtZShXZWJDb3JlOjpGcmFtZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwg
SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiBvcGVuSW5zcGVjdG9yRnJvbnRlbmQoV2ViQ29yZTo6
SW5zcGVjdG9yQ29udHJvbGxlciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjbG9zZUlu
c3BlY3RvckZyb250ZW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGJyaW5nRnJvbnRl
bmRUb0Zyb250KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlc2l6ZU1haW5GcmFt
ZShXZWJDb3JlOjpGcmFtZSopIG92ZXJyaWRlOwogCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNU
T1IpCi0gICAgdmlydHVhbCBwaWRfdCBwYXJlbnRQcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgcGlkX3QgcGFyZW50UHJvY2Vzc0lkZW50aWZpZXIoKSBjb25z
dCBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgdmlydHVhbCB2b2lkIGhpZ2hsaWdodCgpIE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBoaWRlSGlnaGxpZ2h0KCkgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGhpZ2hsaWdodCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBoaWRlSGln
aGxpZ2h0KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2VuZE1lc3NhZ2VUb0Zyb250
ZW5kKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzZW5kTWVzc2Fn
ZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wg
c3VwcG9ydHNGcmFtZUluc3RydW1lbnRhdGlvbigpOwogCiAgICAgLy8gUGFnZU92ZXJsYXk6OkNs
aWVudAotICAgIHZpcnR1YWwgdm9pZCBwYWdlT3ZlcmxheURlc3Ryb3llZChQYWdlT3ZlcmxheSop
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsTW92ZVRvV2ViUGFnZShQYWdlT3Zlcmxh
eSosIFdlYlBhZ2UqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkTW92ZVRvV2ViUGFn
ZShQYWdlT3ZlcmxheSosIFdlYlBhZ2UqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZHJh
d1JlY3QoUGFnZU92ZXJsYXkqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIG1vdXNlRXZlbnQoUGFn
ZU92ZXJsYXkqLCBjb25zdCBXZWJNb3VzZUV2ZW50JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIHBhZ2VPdmVybGF5RGVzdHJveWVkKFBhZ2VPdmVybGF5Kikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHdpbGxNb3ZlVG9XZWJQYWdlKFBhZ2VPdmVybGF5KiwgV2ViUGFnZSopIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRNb3ZlVG9XZWJQYWdlKFBhZ2VPdmVybGF5KiwgV2Vi
UGFnZSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkcmF3UmVjdChQYWdlT3ZlcmxheSos
IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgbW91c2VFdmVudChQYWdlT3ZlcmxheSosIGNvbnN0IFdl
Yk1vdXNlRXZlbnQmKSBvdmVycmlkZTsKIAogICAgIFdlYlBhZ2UqIG1fcGFnZTsKICAgICBQYWdl
T3ZlcmxheSogbV9oaWdobGlnaHRPdmVybGF5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JGcm9u
dGVuZENsaWVudC5oCmluZGV4IGQ4YTU4ODAuLmMzNzdlZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYklu
c3BlY3RvckZyb250ZW5kQ2xpZW50LmgKQEAgLTM5LDIzICszOSwyMyBAQCBwdWJsaWM6CiAgICAg
V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQoV2ViUGFnZSogcGFnZSwgV2ViUGFnZSogaW5zcGVj
dG9yUGFnZSk7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCBTdHJpbmcgbG9jYWxpemVkU3RyaW5n
c1VSTCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplZFN0cmluZ3NVUkwo
KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBicmluZ1RvRnJvbnQoKSBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgY2xvc2VXaW5kb3coKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgYnJpbmdUb0Zyb250KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNsb3NlV2luZG93
KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuU2F2ZSgpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBzYXZlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGJvb2wgYmFz
ZTY0RW5jb2RlZCwgYm9vbCBmb3JjZVNhdmVBcykgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGFwcGVuZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIGJvb2wgY2FuU2F2ZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzYXZlKGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGJvb2wgYmFzZTY0RW5jb2RlZCwgYm9vbCBmb3JjZVNh
dmVBcykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFwcGVuZChjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hXaW5kb3co
RG9ja1NpZGUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hXaW5kb3coKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoV2luZG93KERvY2tTaWRlKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoV2luZG93KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBzZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0VG9vbGJhckhlaWdodCh1bnNpZ25lZCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFRvb2xiYXJIZWlnaHQodW5zaWduZWQpIG92ZXJyaWRl
OwogCi0gICAgdmlydHVhbCB2b2lkIGluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3Ry
aW5nJikgb3ZlcnJpZGU7CiAKICAgICBXZWJQYWdlKiBtX3BhZ2U7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOYXZpZ2F0b3JDb250
ZW50VXRpbHNDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50LmgKaW5kZXggYzgwYjU3OC4uMDQ5ZjI2
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5oCkBA
IC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJOYXZpZ2F0b3JDb250ZW50
VXRpbHNDbGllbnQoKSB7IH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbnN0IFN0cmluZyYgYmFzZVVS
TCwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUpIE9WRVJSSURFIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclByb3RvY29sSGFuZGxlcihjb25zdCBTdHJpbmcmIHNj
aGVtZSwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3Ry
aW5nJiB0aXRsZSkgb3ZlcnJpZGUgeyB9CiAKICNpZiBFTkFCTEUoQ1VTVE9NX1NDSEVNRV9IQU5E
TEVSKQogICAgIHZpcnR1YWwgQ3VzdG9tSGFuZGxlcnNTdGF0ZSBpc1Byb3RvY29sSGFuZGxlclJl
Z2lzdGVyZWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgeyBy
ZXR1cm4gQ3VzdG9tSGFuZGxlcnNEZWNsaW5lZDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOZXR3b3JrSW5mb0NsaWVudC5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOZXR3b3JrSW5mb0NsaWVu
dC5oCmluZGV4IDAxODY5ZDAuLmU5MDYzNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmV0d29ya0luZm9DbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5ldHdvcmtJbmZvQ2xpZW50
LmgKQEAgLTQ0LDEzICs0NCwxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViTmV0d29ya0lu
Zm9DbGllbnQoKTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgbmV0d29ya0luZm9Db250
cm9sbGVyRGVzdHJveWVkKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG5ldHdvcmtJbmZv
Q29udHJvbGxlckRlc3Ryb3llZCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBkb3VibGUgYmFu
ZHdpZHRoKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIG1ldGVyZWQoKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGRvdWJsZSBiYW5kd2lkdGgoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgbWV0ZXJlZCgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmly
dHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc3Rv
cFVwZGF0aW5nKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCkgb3ZlcnJpZGU7CiAKICAg
ICBXZWJQYWdlKiBtX3BhZ2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKaW5k
ZXggZGUzMGIwZS4uZGJkODA3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCkBA
IC00NiwxOSArNDYsMTkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfldlYk5vdGlmaWNhdGlvbkNs
aWVudCgpOwogCiBwcml2YXRlOgotICAgIHZpcnR1YWwgYm9vbCBzaG93KFdlYkNvcmU6Ok5vdGlm
aWNhdGlvbiopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoV2ViQ29yZTo6Tm90
aWZpY2F0aW9uKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyTm90aWZpY2F0aW9u
cyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJDb3JlOjpOb3RpZmljYXRpb24q
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ry
b3llZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzaG93KFdlYkNvcmU6Ok5vdGlmaWNh
dGlvbiopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoV2ViQ29yZTo6Tm90aWZp
Y2F0aW9uKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJDb3JlOjpOb3RpZmljYXRpb24qKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ryb3ll
ZCgpIG92ZXJyaWRlOwogI2lmIEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAgICB2aXJ0
dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFBhc3NSZWZQdHI8V2ViQ29yZTo6Vm9pZENhbGxiYWNrPikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlZvaWRDYWxsYmFjaz4pIG92ZXJyaWRlOwogI2VuZGlm
CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJt
aXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFdlYkNv
cmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4pIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+KSBv
dmVycmlkZTsKICNlbmRpZgotICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxSZXF1ZXN0c0ZvclBlcm1p
c3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIGNoZWNrUGVybWlzc2lvbihXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGNhbmNlbFJlcXVlc3RzRm9yUGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Np
b24gY2hlY2tQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBvdmVy
cmlkZTsKICAgICAKICAgICBXZWJQYWdlKiBtX3BhZ2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmgKaW5kZXggZDAwYmEzNi4uYmZiNzNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5oCkBAIC00OCw4MyArNDgsODMgQEAgcHJpdmF0ZToKICAgICBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMoKTsKICAgICAKICAgICAvLyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMK
LSAgICB2aXJ0dWFsIFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVneSogY3JlYXRlQ29va2llc1N0cmF0
ZWd5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpEYXRhYmFzZVN0cmF0ZWd5KiBj
cmVhdGVEYXRhYmFzZVN0cmF0ZWd5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpM
b2FkZXJTdHJhdGVneSogY3JlYXRlTG9hZGVyU3RyYXRlZ3koKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIFdlYkNvcmU6OlBhc3RlYm9hcmRTdHJhdGVneSogY3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5
KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneSogY3JlYXRl
UGx1Z2luU3RyYXRlZ3koKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlNoYXJlZFdv
cmtlclN0cmF0ZWd5KiBjcmVhdGVTaGFyZWRXb3JrZXJTdHJhdGVneSgpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgV2ViQ29yZTo6U3RvcmFnZVN0cmF0ZWd5KiBjcmVhdGVTdG9yYWdlU3RyYXRlZ3ko
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlZpc2l0ZWRMaW5rU3RyYXRlZ3kqIGNy
ZWF0ZVZpc2l0ZWRMaW5rU3RyYXRlZ3koKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6
OkNvb2tpZXNTdHJhdGVneSogY3JlYXRlQ29va2llc1N0cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBXZWJDb3JlOjpEYXRhYmFzZVN0cmF0ZWd5KiBjcmVhdGVEYXRhYmFzZVN0cmF0ZWd5
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpMb2FkZXJTdHJhdGVneSogY3JlYXRl
TG9hZGVyU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlBhc3RlYm9h
cmRTdHJhdGVneSogY3JlYXRlUGFzdGVib2FyZFN0cmF0ZWd5KCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneSogY3JlYXRlUGx1Z2luU3RyYXRlZ3koKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlNoYXJlZFdvcmtlclN0cmF0ZWd5KiBjcmVhdGVT
aGFyZWRXb3JrZXJTdHJhdGVneSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6U3Rv
cmFnZVN0cmF0ZWd5KiBjcmVhdGVTdG9yYWdlU3RyYXRlZ3koKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIFdlYkNvcmU6OlZpc2l0ZWRMaW5rU3RyYXRlZ3kqIGNyZWF0ZVZpc2l0ZWRMaW5rU3RyYXRl
Z3koKSBvdmVycmlkZTsKIAogICAgIC8vIFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVneQotICAgIHZp
cnR1YWwgU3RyaW5nIGNvb2tpZXNGb3JET00oY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpV
UkwmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3Qg
V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3Jl
OjpVUkwmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRWYWx1ZShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBX
ZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29y
ZTo6VVJMJiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYs
IGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgU3RyaW5nIGNvb2tpZXNGb3JET00oY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgV2Vi
Q29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpV
UkwmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRWYWx1ZShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJD
b3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6
VVJMJiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGVsZXRlQ29va2llKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNv
bnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogCiAgICAgLy8gV2Vi
Q29yZTo6RGF0YWJhc2VTdHJhdGVneQogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0gICAgdmly
dHVhbCBXZWJDb3JlOjpBYnN0cmFjdERhdGFiYXNlU2VydmVyKiBnZXREYXRhYmFzZVNlcnZlcigp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6QWJzdHJhY3REYXRhYmFzZVNlcnZlciog
Z2V0RGF0YWJhc2VTZXJ2ZXIoKSBvdmVycmlkZTsKICNlbmRpZgogI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJGYWN0b3J5QmFj
a2VuZEludGVyZmFjZT4gY3JlYXRlSURCRmFjdG9yeUJhY2tlbmQoY29uc3QgU3RyaW5nJiBkYXRh
YmFzZURpcmVjdG9yeUlkZW50aWZpZXIpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxXZWJDb3JlOjpJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZT4gY3JlYXRlSURCRmFjdG9yeUJh
Y2tlbmQoY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpcmVjdG9yeUlkZW50aWZpZXIpIG92ZXJyaWRl
OwogI2VuZGlmCiAKICAgICAvLyBXZWJDb3JlOjpMb2FkZXJTdHJhdGVneQogI2lmIEVOQUJMRShO
RVRXT1JLX1BST0NFU1MpCi0gICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIqIHJlc291cmNlTG9hZFNjaGVkdWxlcigpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBs
b2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0KiwgdW5z
aWduZWQgbG9uZyByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscywgV2ViQ29yZTo6Q2xpZW50Q3Jl
ZGVudGlhbFBvbGljeSwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmLCBWZWN0b3I8Y2hhcj4mIGRhdGEpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkU2NoZWR1bGVyKiByZXNvdXJjZUxvYWRTY2hlZHVsZXIoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShXZWJDb3Jl
OjpOZXR3b3JraW5nQ29udGV4dCosIHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VMb2FkSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVu
dGlhbHMsIFdlYkNvcmU6OkNsaWVudENyZWRlbnRpYWxQb2xpY3ksIFdlYkNvcmU6OlJlc291cmNl
RXJyb3ImLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhKSBv
dmVycmlkZTsKICNpZiBFTkFCTEUoQkxPQikKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkJsb2JSZWdp
c3RyeSogY3JlYXRlQmxvYlJlZ2lzdHJ5KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3Jl
OjpCbG9iUmVnaXN0cnkqIGNyZWF0ZUJsb2JSZWdpc3RyeSgpIG92ZXJyaWRlOwogI2VuZGlmCiAj
ZW5kaWYKIAogICAgIC8vIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5Ci0gICAgdmlydHVhbCB2b2lk
IHJlZnJlc2hQbHVnaW5zKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGdldFBsdWdpbklu
Zm8oY29uc3QgV2ViQ29yZTo6UGFnZSosIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZWZyZXNoUGx1Z2lucygpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBnZXRQbHVnaW5JbmZvKGNvbnN0IFdlYkNvcmU6OlBhZ2UqLCBWZWN0b3I8
V2ViQ29yZTo6UGx1Z2luSW5mbz4mKSBvdmVycmlkZTsKIAogICAgIC8vIFdlYkNvcmU6OlNoYXJl
ZFdvcmtlclN0cmF0ZWd5Ci0gICAgdmlydHVhbCBib29sIGlzQXZhaWxhYmxlKCkgY29uc3QgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBib29sIGlzQXZhaWxhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CiAK
ICAgICAvLyBXZWJDb3JlOjpTdG9yYWdlU3RyYXRlZ3kuCi0gICAgdmlydHVhbCBQYXNzUmVmUHRy
PFdlYkNvcmU6OlN0b3JhZ2VOYW1lc3BhY2U+IGxvY2FsU3RvcmFnZU5hbWVzcGFjZShXZWJDb3Jl
OjpQYWdlR3JvdXAqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
U3RvcmFnZU5hbWVzcGFjZT4gdHJhbnNpZW50TG9jYWxTdG9yYWdlTmFtZXNwYWNlKFdlYkNvcmU6
OlBhZ2VHcm91cCosIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlN0b3JhZ2VOYW1lc3BhY2U+IHNlc3Npb25TdG9yYWdl
TmFtZXNwYWNlKFdlYkNvcmU6OlBhZ2UqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6U3RvcmFnZU5hbWVzcGFjZT4gbG9jYWxTdG9yYWdlTmFtZXNwYWNlKFdlYkNv
cmU6OlBhZ2VHcm91cCopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpTdG9yYWdlTmFtZXNwYWNlPiB0cmFuc2llbnRMb2NhbFN0b3JhZ2VOYW1lc3BhY2UoV2ViQ29y
ZTo6UGFnZUdyb3VwKiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U3RvcmFnZU5hbWVzcGFjZT4gc2Vzc2lvblN0b3Jh
Z2VOYW1lc3BhY2UoV2ViQ29yZTo6UGFnZSopIG92ZXJyaWRlOwogCiAgICAgLy8gV2ViQ29yZTo6
VmlzaXRlZExpbmtTdHJhdGVneQotICAgIHZpcnR1YWwgYm9vbCBpc0xpbmtWaXNpdGVkKFdlYkNv
cmU6OlBhZ2UqLCBXZWJDb3JlOjpMaW5rSGFzaCwgY29uc3QgV2ViQ29yZTo6VVJMJiBiYXNlVVJM
LCBjb25zdCBXVEY6OkF0b21pY1N0cmluZyYgYXR0cmlidXRlVVJMKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgYWRkVmlzaXRlZExpbmsoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OkxpbmtI
YXNoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNMaW5rVmlzaXRlZChXZWJDb3JlOjpQ
YWdlKiwgV2ViQ29yZTo6TGlua0hhc2gsIGNvbnN0IFdlYkNvcmU6OlVSTCYgYmFzZVVSTCwgY29u
c3QgV1RGOjpBdG9taWNTdHJpbmcmIGF0dHJpYnV0ZVVSTCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGFkZFZpc2l0ZWRMaW5rKFdlYkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpMaW5rSGFzaCkg
b3ZlcnJpZGU7CiAKICAgICAvLyBXZWJDb3JlOjpQYXN0ZWJvYXJkU3RyYXRlZ3kKICNpZiBQTEFU
Rk9STShJT1MpCi0gICAgdmlydHVhbCB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFdlYkNv
cmU6OlBhc3RlYm9hcmRXZWJDb250ZW50JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHdy
aXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRJbWFnZSYpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmRUeXBlLCBjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGludCBnZXRQ
YXN0ZWJvYXJkSXRlbXNDb3VudCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIHJlYWRT
dHJpbmdGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5
cGUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZm
ZXI+IHJlYWRCdWZmZXJGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZFR5cGUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6VVJMIHJlYWRVUkxG
cm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgbG9uZyBjaGFuZ2VDb3VudCgpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2Vi
Q29udGVudCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRvUGFzdGVib2FyZChj
b25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkSW1hZ2UmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3Qg
U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBpbnQgZ2V0UGFzdGVib2FyZEl0ZW1zQ291
bnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmluZyByZWFkU3RyaW5nRnJvbVBhc3RlYm9h
cmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiByZWFkQnVmZmVyRnJv
bVBhc3RlYm9hcmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlVSTCByZWFkVVJMRnJvbVBhc3RlYm9hcmQoaW50
IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGxvbmcgY2hhbmdlQ291bnQoKSBvdmVycmlkZTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKE1B
QykKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0VHlwZXMoVmVjdG9yPFN0cmluZz4mIHR5cGVzLCBjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBidWZmZXJGb3JUeXBlKGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBnZXRQYXRobmFtZXNGb3JUeXBlKFZlY3RvcjxTdHJpbmc+JiBwYXRobmFt
ZXMsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZE5hbWUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIHN0cmluZ0ZvclR5cGUoY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBsb25nIGNoYW5nZUNvdW50KGNvbnN0IFN0cmluZyYgcGFzdGVi
b2FyZE5hbWUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIHVuaXF1ZU5hbWUoKSBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkNvbG9yIGNvbG9yKGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZE5hbWUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6VVJMIHVybChjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgbG9uZyBh
ZGRUeXBlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFzdGVib2FyZFR5cGVzLCBjb25zdCBTdHJp
bmcmIHBhc3RlYm9hcmROYW1lKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGxvbmcgc2V0VHlwZXMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHBhc3RlYm9hcmRUeXBlcywgY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkTmFtZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBsb25nIGNvcHkoY29uc3QgU3RyaW5n
JiBmcm9tUGFzdGVib2FyZCwgY29uc3QgU3RyaW5nJiB0b1Bhc3RlYm9hcmQpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgbG9uZyBzZXRCdWZmZXJGb3JUeXBlKFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hh
cmVkQnVmZmVyPiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBsb25nIHNldFBhdGhuYW1lc0Zv
clR5cGUoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBl
LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGxv
bmcgc2V0U3RyaW5nRm9yVHlwZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9h
cmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgZ2V0VHlwZXMoVmVjdG9yPFN0cmluZz4mIHR5cGVzLCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
U2hhcmVkQnVmZmVyPiBidWZmZXJGb3JUeXBlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUs
IGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBnZXRQYXRobmFtZXNGb3JUeXBlKFZlY3RvcjxTdHJpbmc+JiBwYXRobmFtZXMsIGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgU3RyaW5nIHN0cmluZ0ZvclR5cGUoY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBsb25nIGNoYW5nZUNvdW50KGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5nIHVuaXF1ZU5hbWUoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIFdlYkNvcmU6OkNvbG9yIGNvbG9yKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6VVJMIHVybChjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgbG9uZyBhZGRUeXBlcyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYgcGFzdGVib2FyZFR5cGVzLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9h
cmROYW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGxvbmcgc2V0VHlwZXMoY29uc3QgVmVjdG9y
PFN0cmluZz4mIHBhc3RlYm9hcmRUeXBlcywgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBsb25nIGNvcHkoY29uc3QgU3RyaW5nJiBmcm9tUGFzdGVi
b2FyZCwgY29uc3QgU3RyaW5nJiB0b1Bhc3RlYm9hcmQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
bG9uZyBzZXRCdWZmZXJGb3JUeXBlKFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiwg
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFt
ZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBsb25nIHNldFBhdGhuYW1lc0ZvclR5cGUoY29uc3Qg
VmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJp
bmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGxvbmcgc2V0U3RyaW5n
Rm9yVHlwZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKICNlbmRpZgogCiAjaWYgRU5BQkxF
KE5FVFNDQVBFX1BMVUdJTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuaAppbmRleCBkNGMwZjk3Li5mZmJmYzQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBvcHVwTWVudS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUG9wdXBNZW51LmgKQEAgLTUyLDEwICs1MiwxMCBAQCBwdWJsaWM6CiAgICAgV2ViQ29y
ZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3BvcHVwQ2xpZW50
OyB9CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmLCBXZWJDb3JlOjpGcmFtZVZpZXcqLCBpbnQgaW5kZXgpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBoaWRlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVt
ZW50KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgV2Vi
Q29yZTo6RnJhbWVWaWV3KiwgaW50IGluZGV4KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
aGlkZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0Q2xpZW50KCkgb3ZlcnJpZGU7CiAK
IHByaXZhdGU6CiAgICAgV2ViUG9wdXBNZW51KFdlYlBhZ2UqLCBXZWJDb3JlOjpQb3B1cE1lbnVD
bGllbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oCmluZGV4IGUzNjJi
YmQuLmI5ZWQyM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaApAQCAt
MzcsMTEgKzM3LDExIEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBXZWJQcm9ncmVzc1RyYWNrZXJD
bGllbnQoV2ViUGFnZSYpOwogICAgIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgcHJvZ3Jl
c3NUcmFja2VyRGVzdHJveWVkKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHByb2dyZXNz
VHJhY2tlckRlc3Ryb3llZCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHByb2dyZXNz
U3RhcnRlZChXZWJDb3JlOjpGcmFtZSYgb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgcHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQoV2ViQ29yZTo6RnJh
bWUmIG9yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IHByb2dyZXNzRmluaXNoZWQoV2ViQ29yZTo6RnJhbWUmIG9yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFt
ZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHByb2dyZXNzU3RhcnRlZChXZWJDb3JlOjpG
cmFtZSYgb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgcHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUmIG9yaWdpbmF0aW5nUHJv
Z3Jlc3NGcmFtZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHByb2dyZXNzRmluaXNoZWQo
V2ViQ29yZTo6RnJhbWUmIG9yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZSkgb3ZlcnJpZGU7CiAKICAg
ICBXZWJQYWdlJiBtX3dlYlBhZ2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmgKaW5kZXgg
Zjg5MTBmNy4uYmQ0M2VkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5oCkBAIC0zMCwxMCAr
MzAsMTAgQEAgY2xhc3MgV2ViU2VhcmNoUG9wdXBNZW51IDogcHVibGljIFdlYkNvcmU6OlNlYXJj
aFBvcHVwTWVudSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViU2VhcmNoUG9w
dXBNZW51PiBjcmVhdGUoV2ViUGFnZSosIFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopOwogCi0g
ICAgdmlydHVhbCBXZWJDb3JlOjpQb3B1cE1lbnUqIHBvcHVwTWVudSgpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgV1RGOjpBdG9taWNTdHJpbmcm
IG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJdGVtcykgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIGxvYWRSZWNlbnRTZWFyY2hlcyhjb25zdCBXVEY6OkF0b21pY1N0cmluZyYg
bmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaEl0ZW1zKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IGJvb2wgZW5hYmxlZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6UG9wdXBNZW51
KiBwb3B1cE1lbnUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVJlY2VudFNlYXJj
aGVzKGNvbnN0IFdURjo6QXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
c2VhcmNoSXRlbXMpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVjZW50U2VhcmNo
ZXMoY29uc3QgV1RGOjpBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxTdHJpbmc+JiBzZWFyY2hJ
dGVtcykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKSBvdmVycmlkZTsKIAog
cHJpdmF0ZToKICAgICBXZWJTZWFyY2hQb3B1cE1lbnUoV2ViUGFnZSosIFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJWaWJyYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViVmlicmF0aW9uQ2xpZW50LmgKaW5kZXggZWVjOGIzZi4uMGNk
M2I2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJWaWJyYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlZpYnJhdGlvbkNsaWVudC5oCkBAIC00NCw5ICs0NCw5IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5XZWJWaWJyYXRpb25DbGllbnQoKSB7IH0KIAogcHJpdmF0ZToKLSAg
ICB2aXJ0dWFsIHZvaWQgdmlicmF0ZShjb25zdCB1bnNpZ25lZCYgdmlicmF0aW9uVGltZSkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNhbmNlbFZpYnJhdGlvbigpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCB2aWJyYXRpb25EZXN0cm95ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgdmlicmF0ZShjb25zdCB1bnNpZ25lZCYgdmlicmF0aW9uVGltZSkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGNhbmNlbFZpYnJhdGlvbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCB2aWJyYXRpb25EZXN0cm95ZWQoKSBvdmVycmlkZTsKIAogICAgIFdlYlBhZ2UqIG1fcGFn
ZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKaW5k
ZXggMDFiOTlkMy4uOTU5NmM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaApAQCAtNTIsMTIgKzUyLDEyIEBAIHByaXZhdGU6CiAgICAgewogICAgIH0K
IAotICAgIHZpcnR1YWwgYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVs
ZWRSdW5Mb29wUGFpcnMoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFJldGFpblB0cjxD
RkRhdGFSZWY+IHNvdXJjZUFwcGxpY2F0aW9uQXVkaXREYXRhKCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYkNv
cmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc3RvcmFnZVNlc3Npb24oKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgU2NoZWR1bGVQYWlySGFzaFNldCogc2NoZWR1
bGVkUnVuTG9vcFBhaXJzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZXRhaW5QdHI8
Q0ZEYXRhUmVmPiBzb3VyY2VBcHBsaWNhdGlvbkF1ZGl0RGF0YSgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3Qgb3ZlcnJp
ZGU7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZERyYXdpbmdBcmVhLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZERyYXdpbmdBcmVhLmgKaW5kZXggM2U3ZWQwNy4uZWI1YzViMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWREcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkRHJhd2luZ0FyZWEuaApAQCAtNDUsMTAgKzQ1
LDEwIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICAvLyBEcmF3aW5nQXJlYQotICAgIHZpcnR1
YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3Jv
bGxSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSk7Ci0gICAgdmlydHVh
bCB2b2lkIHBhZ2VCYWNrZ3JvdW5kVHJhbnNwYXJlbmN5Q2hhbmdlZCgpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBwYWdlQmFja2dyb3VuZFRyYW5zcGFyZW5jeUNoYW5nZWQoKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJUcmVlU3RhdGVJc0Zyb3plbihib29sKTsKICAg
ICB2aXJ0dWFsIGJvb2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IHsgcmV0dXJuIG1f
bGF5ZXJUcmVlU3RhdGVJc0Zyb3plbjsgfQogICAgIHZpcnR1YWwgTGF5ZXJUcmVlSG9zdCogbGF5
ZXJUcmVlSG9zdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5ZXJUcmVlSG9zdC5nZXQoKTsgfQpAQCAt
NjEsMTIgKzYxLDEyIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldFBhZ2VPdmVybGF5
T3BhY2l0eShQYWdlT3ZlcmxheSosIGZsb2F0KTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRQYWlu
dGluZ0VuYWJsZWQoYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZVByZWZlcmVuY2VzKGNv
bnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpIG92ZXJyaWRlOwogCiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIHZpcnR1YWwgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllckZhY3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVy
Rmx1c2goKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0
b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRSb290Q29tcG9zaXRpbmdMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkgb3ZlcnJp
ZGU7CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdC5oCmluZGV4IGQ1ODU5NTUuLjU0NGU4MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCkBAIC01Nyw5ICs1Nyw5IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlKCk7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3BsYXkoKSBPVkVS
UklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERp
c3BsYXlJblJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIE9WRVJSSURFIHsgfQotICAgIHZp
cnR1YWwgdm9pZCBzY3JvbGxOb25Db21wb3NpdGVkQ29udGVudHMoY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXROb25Db21wb3NpdGVkQ29u
dGVudHNOZWVkRGlzcGxheSgpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXROb25D
b21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxheUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0
Jikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIHNjcm9sbE5vbkNvbXBvc2l0ZWRDb250
ZW50cyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGUgeyB9CiAgICAgdmlydHVhbCB2
b2lkIGZvcmNlUmVwYWludCgpOwogICAgIHZpcnR1YWwgYm9vbCBmb3JjZVJlcGFpbnRBc3luYyh1
aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2aXJ0dWFsIHZvaWQgc2l6ZURpZENoYW5nZShjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBuZXdTaXplKTsKQEAgLTcxLDE3ICs3MSwxNyBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIHZvaWQgcGF1c2VSZW5kZXJpbmcoKSB7IG1faXNTdXNwZW5kZWQgPSB0
cnVlOyB9CiAgICAgdmlydHVhbCB2b2lkIHJlc3VtZVJlbmRlcmluZygpIHsgbV9pc1N1c3BlbmRl
ZCA9IGZhbHNlOyBzY2hlZHVsZUxheWVyRmx1c2goKTsgfQotICAgIHZpcnR1YWwgdm9pZCBkZXZp
Y2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
cGFnZUJhY2tncm91bmRUcmFuc3BhcmVuY3lDaGFuZ2VkKCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBwYWdlQmFja2dyb3VuZFRyYW5zcGFyZW5jeUNoYW5nZWQoKSBvdmVycmlkZTsK
IAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0TWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7Ci0gICAgdmlydHVh
bCBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFw
aGljc0xheWVyRmFjdG9yeSgpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkNvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllciogbWFpbkNvbnRlbnRzTGF5ZXIoKTsKIAogI2lmIEVOQUJMRShSRVFVRVNUX0FO
SU1BVElPTl9GUkFNRSkKLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVBbmltYXRpb24oKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVBbmltYXRpb24oKSBvdmVycmlkZTsKICNl
bmRpZgotICAgIHZpcnR1YWwgdm9pZCBzZXRCYWNrZ3JvdW5kQ29sb3IoY29uc3QgV2ViQ29yZTo6
Q29sb3ImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QmFja2dyb3VuZENvbG9yKGNv
bnN0IFdlYkNvcmU6OkNvbG9yJikgb3ZlcnJpZGU7CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpDb29yZGluYXRlZFN1cmZhY2U+IGNyZWF0ZUNvb3JkaW5hdGVkU3VyZmFjZShjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6Q29vcmRpbmF0ZWRTdXJmYWNlOjpGbGFncyk7
CiAKQEAgLTEwMiwxMSArMTAyLDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBsYXllckZsdXNoVGlt
ZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxDb29yZGluYXRlZExheWVyVHJlZUhvc3Q+Kik7CiAKICAg
ICAvLyBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgZGlk
Rmx1c2hSb290TGF5ZXIoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFN5bmNMYXll
clN0YXRlKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJikgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoKSBPVkVSUklERSB7IHNjaGVk
dWxlTGF5ZXJGbHVzaCgpOyB9OwotICAgIHZpcnR1YWwgdm9pZCBjb21taXRTY2VuZVN0YXRlKGNv
bnN0IFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZSYpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBwYWludExheWVyQ29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNs
aXBSZWN0KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmx1c2hSb290TGF5ZXIoKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFN5bmNMYXllclN0YXRlKFdlYkNvcmU6OkNv
b3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IG5vdGlmeUZsdXNoUmVxdWlyZWQoKSBvdmVycmlkZSB7IHNjaGVkdWxlTGF5ZXJGbHVzaCgpOyB9
OworICAgIHZpcnR1YWwgdm9pZCBjb21taXRTY2VuZVN0YXRlKGNvbnN0IFdlYkNvcmU6OkNvb3Jk
aW5hdGVkR3JhcGhpY3NTdGF0ZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBwYWludExh
eWVyQ29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KSBvdmVycmlkZTsK
IAogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKICAgICB2b2lkIHByZXBhcmVDdXN0b21GaWx0ZXJQ
cm94aWVzRm9yQW5pbWF0aW9ucyhXZWJDb3JlOjpHcmFwaGljc0xheWVyQW5pbWF0aW9ucyYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVh
SW1wbC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1w
bC5oCmluZGV4IDMzNzc4ZGQuLmYzMjdlMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKQEAgLTQ5LDEwICs0OSwxMCBAQCBw
dWJsaWM6CiAKIHByaXZhdGU6CiAgICAgLy8gRHJhd2luZ0FyZWEKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0TmVlZHNEaXNwbGF5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlz
cGxheUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHNldE5lZWRzRGlzcGxheSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRO
ZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEpOwotICAgIHZpcnR1YWwgdm9pZCBw
YWdlQmFja2dyb3VuZFRyYW5zcGFyZW5jeUNoYW5nZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgcGFnZUJhY2tncm91bmRUcmFuc3BhcmVuY3lDaGFuZ2VkKCkgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIHNldExheWVyVHJlZVN0YXRlSXNGcm96ZW4oYm9vbCk7CiAgICAgdmlydHVh
bCBib29sIGxheWVyVHJlZVN0YXRlSXNGcm96ZW4oKSBjb25zdCB7IHJldHVybiBtX2xheWVyVHJl
ZVN0YXRlSXNGcm96ZW47IH0KICAgICB2aXJ0dWFsIExheWVyVHJlZUhvc3QqIGxheWVyVHJlZUhv
c3QoKSBjb25zdCB7IHJldHVybiBtX2xheWVyVHJlZUhvc3QuZ2V0KCk7IH0KQEAgLTY1LDEyICs2
NSwxMiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdlT3ZlcmxheU9wYWNpdHko
UGFnZU92ZXJsYXkqLCBmbG9hdCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGFpbnRpbmdFbmFi
bGVkKGJvb2wpOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQ
cmVmZXJlbmNlc1N0b3JlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVByZWZl
cmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKSBvdmVycmlkZTsKIAogI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBzZXRSb290Q29tcG9zaXRpbmdMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSogZ3Jh
cGhpY3NMYXllckZhY3RvcnkoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdENv
bXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIG92ZXJyaWRlOwogI2Vu
ZGlmCiAKICAgICAvLyBJUEMgbWVzc2FnZSBoYW5kbGVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAppbmRleCA3MTAzZjhlLi5i
OTk5OGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZl
bnREaXNwYXRjaGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2
ZW50RGlzcGF0Y2hlci5oCkBAIC01OCw3ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgRXZlbnREaXNw
YXRjaGVyKCk7CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OldvcmtRdWV1ZU1lc3NhZ2VSZWNl
aXZlci4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
KiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3Zl
cnJpZGU7CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzCiAgICAgdm9pZCB3aGVlbEV2ZW50KHVp
bnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxFdmVudCYsIGJvb2wgY2FuUnViYmVyQmFuZEF0
TGVmdCwgYm9vbCBjYW5SdWJiZXJCYW5kQXRSaWdodCwgYm9vbCBjYW5SdWJiZXJCYW5kQXRUb3As
IGJvb2wgY2FuUnViYmVyQmFuZEF0Qm90dG9tKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxlY3Rv
ci5oCmluZGV4IDBmY2MyMmUuLjMyMDk1N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9WaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0
b3IuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgLy8gSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIuCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVj
b2RlciYpIG92ZXJyaWRlOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KICAgICB2b2lkIGNv
bGxlY3RHZW9tZXRyeUZvck1hZ25pZmljYXRpb25HZXN0dXJlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94
eS5oCmluZGV4IGQ3OTFiYjYuLmU0N2VlZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oCkBAIC02
Myw5ICs2Myw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKCk7CiAKICNpZiBQ
TEFURk9STShJT1MpCi0gICAgdmlydHVhbCB1bnNpZ25lZCBjdXJyZW50KCkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIHNldEN1cnJlbnQodW5zaWduZWQgbmV3Q3VycmVudCkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBib29sIGNsZWFyQWxsUGFnZUNhY2hlcygpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdW5zaWduZWQgY3VycmVudCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRD
dXJyZW50KHVuc2lnbmVkIG5ld0N1cnJlbnQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBj
bGVhckFsbFBhZ2VDYWNoZXMoKSBvdmVycmlkZTsKICNlbmRpZgogCiAgICAgV2ViUGFnZSogbV9w
YWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
Y2JiMTQ5NS4uY2IxMjdlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC0yNDUsOCArMjQ1LDggQEAgcHVibGljOgogICAgIFdlYk9wZW5QYW5lbFJl
c3VsdExpc3RlbmVyKiBhY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcigpIGNvbnN0IHsgcmV0
dXJuIG1fYWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuZ2V0KCk7IH0KICAgICB2b2lkIHNl
dEFjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyKFBhc3NSZWZQdHI8V2ViT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXI+KTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOwotICAgIHZvaWQgZGlkUmVjZWl2
ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImLCBzdGQ6
OnVuaXF1ZV9wdHI8SVBDOjpNZXNzYWdlRW5jb2Rlcj4mKSBPVkVSUklERTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBv
dmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24q
LCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29k
ZXI+Jikgb3ZlcnJpZGU7CiAKICAgICAvLyAtLSBJbmplY3RlZEJ1bmRsZSBtZXRob2RzCiAjaWYg
RU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC02OTAsOCArNjkwLDggQEAgcHJpdmF0ZToKICAgICBX
ZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYp
OwogCiAgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCi0gICAgdmlydHVhbCBJUEM6OkNvbm5lY3Rp
b24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB1aW50
NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
SVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBvdmVycmlkZTsK
IAogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmgKaW5kZXgg
NTVmN2IwOC4uYmIzMGIwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0R3RrLmgKQEAgLTU5LDIwICs1OSwyMCBAQCBw
cm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVMYXllckZsdXNo
KCk7CiAgICAgdmlydHVhbCB2b2lkIHNldExheWVyRmx1c2hTY2hlZHVsaW5nRW5hYmxlZChib29s
IGxheWVyRmx1c2hpbmdFbmFibGVkKTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFnZUJhY2tncm91bmRU
cmFuc3BhcmVuY3lDaGFuZ2VkKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBhZ2VCYWNr
Z3JvdW5kVHJhbnNwYXJlbmN5Q2hhbmdlZCgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIC8v
IExheWVyVHJlZUhvc3QuCiAgICAgdmlydHVhbCBjb25zdCBMYXllclRyZWVDb250ZXh0JiBsYXll
clRyZWVDb250ZXh0KCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZE5vdGlmeUFmdGVyTmV4
dFNjaGVkdWxlZExheWVyRmx1c2goYm9vbCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Tm9uQ29t
cG9zaXRlZENvbnRlbnRzTmVlZERpc3BsYXkoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3BsYXlJblJlY3QoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXROb25Db21wb3NpdGVkQ29u
dGVudHNOZWVkRGlzcGxheSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXROb25Db21w
b3NpdGVkQ29udGVudHNOZWVkRGlzcGxheUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbE5vbkNvbXBvc2l0ZWRDb250ZW50cyhj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0KTsKIAotICAgIHZpcnR1YWwgdm9pZCBk
aWRJbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkVW5pbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkqKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0UGFnZU92ZXJsYXlOZWVkc0Rpc3BsYXkoUGFnZU92ZXJsYXkqLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZElu
c3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRVbmluc3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSopIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBzZXRQYWdlT3ZlcmxheU5lZWRzRGlzcGxheShQYWdlT3ZlcmxheSosIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgYm9vbCBmbHVzaFBl
bmRpbmdMYXllckNoYW5nZXMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvR3JhcGhpY3NMYXllckNBUmVtb3RlLmgKaW5kZXggYjdi
NDVhZC4uNTExY2YxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9HcmFwaGljc0xheWVyQ0FSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL0dyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oCkBAIC00NiwyMCArNDYs
MjAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkdyYXBoaWNzTGF5ZXJDQVJlbW90ZSgpOwogICAg
IAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSAgICB2aXJ0dWFsIGJvb2wgZmlsdGVyc0NhbkJl
Q29tcG9zaXRlZChjb25zdCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIGJvb2wgZmlsdGVyc0NhbkJlQ29tcG9zaXRlZChjb25zdCBXZWJD
b3JlOjpGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKSBvdmVycmlkZTsKICNlbmRpZgogCiBwcml2
YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0dyYXBoaWNzTGF5ZXJDQVJlbW90ZSgpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQbGF0Zm9y
bUNBTGF5ZXI+IGNyZWF0ZVBsYXRmb3JtQ0FMYXllcihXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6
OkxheWVyVHlwZSwgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcj4gY3Jl
YXRlUGxhdGZvcm1DQUxheWVyKFBsYXRmb3JtTGF5ZXIqLCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5
ZXJDbGllbnQqIG93bmVyKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6UGxhdGZvcm1DQUxheWVyPiBjcmVhdGVQbGF0Zm9ybUNBTGF5ZXIoV2ViQ29yZTo6UGxhdGZv
cm1DQUxheWVyOjpMYXllclR5cGUsIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckNsaWVudCogb3du
ZXIpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybUNB
TGF5ZXI+IGNyZWF0ZVBsYXRmb3JtQ0FMYXllcihQbGF0Zm9ybUxheWVyKiwgV2ViQ29yZTo6UGxh
dGZvcm1DQUxheWVyQ2xpZW50KiBvd25lcikgb3ZlcnJpZGU7CiAKICAgICAvLyBObyBhY2NlbGVy
YXRlZCBhbmltYXRpb25zIGZvciBub3cuCi0gICAgdmlydHVhbCBib29sIGFkZEFuaW1hdGlvbihj
b25zdCBXZWJDb3JlOjpLZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUm
LCBjb25zdCBXZWJDb3JlOjpBbmltYXRpb24qLCBjb25zdCBTdHJpbmcmLCBkb3VibGUpIE9WRVJS
SURFIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGFkZEFuaW1hdGlvbihjb25z
dCBXZWJDb3JlOjpLZXlmcmFtZVZhbHVlTGlzdCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBj
b25zdCBXZWJDb3JlOjpBbmltYXRpb24qLCBjb25zdCBTdHJpbmcmLCBkb3VibGUpIG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAvLyBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUgY2FuJ3Qg
Y3VycmVudGx5IHByb3h5IGRpcmVjdGx5IGNvbXBvc2l0ZWQgaW1hZ2UgY29udGVudHMsIHNvIG9w
dCBvdXQgb2YgdGhpcyBvcHRpbWl6YXRpb24uCi0gICAgdmlydHVhbCBib29sIHNob3VsZERpcmVj
dGx5Q29tcG9zaXRlSW1hZ2UoV2ViQ29yZTo6SW1hZ2UqKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGREaXJlY3RseUNvbXBvc2l0ZUltYWdl
KFdlYkNvcmU6OkltYWdlKikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAogICAg
IFJlbW90ZUxheWVyVHJlZUNvbnRleHQqIG1fY29udGV4dDsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGUuaAppbmRleCA5ZDZkN2RlLi5kYjEyNWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3Rl
LmgKQEAgLTQ0LDEwOCArNDQsMTA4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgflBsYXRmb3Jt
Q0FMYXllclJlbW90ZSgpOwogCi0gICAgdmlydHVhbCBib29sIHVzZXNUaWxlZEJhY2tpbmdMYXll
cigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGxheWVyVHlwZSgpID09IExheWVyVHlwZVBhZ2VU
aWxlZEJhY2tpbmdMYXllciB8fCBsYXllclR5cGUoKSA9PSBMYXllclR5cGVUaWxlZEJhY2tpbmdM
YXllcjsgfQorICAgIHZpcnR1YWwgYm9vbCB1c2VzVGlsZWRCYWNraW5nTGF5ZXIoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBsYXllclR5cGUoKSA9PSBMYXllclR5cGVQYWdlVGlsZWRCYWNraW5n
TGF5ZXIgfHwgbGF5ZXJUeXBlKCkgPT0gTGF5ZXJUeXBlVGlsZWRCYWNraW5nTGF5ZXI7IH0KIAot
ICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3Jt
TGF5ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CiAKICAgICB2b2lkIHJl
Y3Vyc2l2ZUJ1aWxkVHJhbnNhY3Rpb24oUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKTsKIAot
ICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
KiBkaXJ0eVJlY3QgPSAwKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNw
bGF5KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCogZGlydHlSZWN0ID0gMCkgb3ZlcnJpZGU7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNDaGFuZ2VkKCkgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHNldENvbnRlbnRzQ2hhbmdlZCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBX
ZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXIqIHN1cGVybGF5ZXIoKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRnJvbVN1cGVybGF5ZXIoKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgc2V0U3VibGF5ZXJzKGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckxpc3Qm
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQWxsU3VibGF5ZXJzKCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGFwcGVuZFN1YmxheWVyKFdlYkNvcmU6OlBsYXRmb3JtQ0FM
YXllciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRTdWJsYXllcihXZWJDb3Jl
OjpQbGF0Zm9ybUNBTGF5ZXIqLCBzaXplX3QgaW5kZXgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCByZXBsYWNlU3VibGF5ZXIoV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyKiByZWZlcmVuY2Us
IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgY29uc3Qg
V2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyTGlzdCogY3VzdG9tU3VibGF5ZXJzKCkgY29uc3QgT1ZF
UlJJREUgeyByZXR1cm4gbnVsbHB0cjsgfQotICAgIHZpcnR1YWwgdm9pZCBhZG9wdFN1YmxheWVy
cyhXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXIqIHNvdXJjZSkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXIqIHN1cGVybGF5ZXIoKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRnJvbVN1cGVybGF5ZXIoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0U3VibGF5ZXJzKGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckxp
c3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQWxsU3VibGF5ZXJzKCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFwcGVuZFN1YmxheWVyKFdlYkNvcmU6OlBsYXRmb3Jt
Q0FMYXllciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRTdWJsYXllcihXZWJD
b3JlOjpQbGF0Zm9ybUNBTGF5ZXIqLCBzaXplX3QgaW5kZXgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCByZXBsYWNlU3VibGF5ZXIoV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyKiByZWZlcmVu
Y2UsIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgY29u
c3QgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyTGlzdCogY3VzdG9tU3VibGF5ZXJzKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwgdm9pZCBhZG9wdFN1Ymxh
eWVycyhXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXIqIHNvdXJjZSkgb3ZlcnJpZGU7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgYWRkQW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBXZWJDb3Jl
OjpQbGF0Zm9ybUNBQW5pbWF0aW9uKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92
ZUFuaW1hdGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb24+IGFuaW1hdGlvbkZvcktl
eShjb25zdCBTdHJpbmcmIGtleSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGFuaW1hdGlv
blN0YXJ0ZWQoQ0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW1lKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgYWRkQW5pbWF0aW9uRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBXZWJDb3JlOjpQbGF0
Zm9ybUNBQW5pbWF0aW9uKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFuaW1h
dGlvbkZvcktleShjb25zdCBTdHJpbmcmIGtleSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQYXNz
UmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtQ0FBbmltYXRpb24+IGFuaW1hdGlvbkZvcktleShjb25z
dCBTdHJpbmcmIGtleSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGFuaW1hdGlvblN0YXJ0
ZWQoQ0ZUaW1lSW50ZXJ2YWwgYmVnaW5UaW1lKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9p
ZCBzZXRNYXNrKFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllciopIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBzZXRNYXNrKFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllciopIG92ZXJyaWRlOwogCi0g
ICAgdmlydHVhbCBib29sIGlzT3BhcXVlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHNldE9wYXF1ZShib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNPcGFxdWUo
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0T3BhcXVlKGJvb2wpIG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRzKCkgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldEJvdW5kcyhjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZHMoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Qm91bmRzKGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFBvaW50
M0QgcG9zaXRpb24oKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UG9zaXRp
b24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludDNEJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBX
ZWJDb3JlOjpGbG9hdFBvaW50M0QgcG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludDNEJikgb3ZlcnJp
ZGU7CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UG9pbnQzRCBhbmNob3JQb2ludCgpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRBbmNob3JQb2ludChjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50M0QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0
UG9pbnQzRCBhbmNob3JQb2ludCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRBbmNob3JQb2ludChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50M0QmKSBvdmVycmlkZTsKIAot
ICAgIHZpcnR1YWwgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtKCkgY29u
c3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFRyYW5zZm9ybShjb25zdCBXZWJDb3Jl
OjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6
VHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHNldFRyYW5zZm9ybShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBzdWJsYXllclRyYW5zZm9ybSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBz
ZXRTdWJsYXllclRyYW5zZm9ybShjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXggc3Vi
bGF5ZXJUcmFuc2Zvcm0oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U3Vi
bGF5ZXJUcmFuc2Zvcm0oY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmKSBvdmVy
cmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRIaWRkZW4oYm9vbCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHNldEhpZGRlbihib29sKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9p
ZCBzZXRHZW9tZXRyeUZsaXBwZWQoYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNl
dEdlb21ldHJ5RmxpcHBlZChib29sKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc0Rv
dWJsZVNpZGVkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldERvdWJsZVNp
ZGVkKGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc0RvdWJsZVNpZGVkKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldERvdWJsZVNpZGVkKGJvb2wpIG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCBib29sIG1hc2tzVG9Cb3VuZHMoKSBjb25zdCBPVkVSUklERTsK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0TWFza3NUb0JvdW5kcyhib29sKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGJvb2wgbWFza3NUb0JvdW5kcygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzZXRNYXNrc1RvQm91bmRzKGJvb2wpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29s
IGFjY2VsZXJhdGVzRHJhd2luZygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBz
ZXRBY2NlbGVyYXRlc0RyYXdpbmcoYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGFj
Y2VsZXJhdGVzRHJhd2luZygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRB
Y2NlbGVyYXRlc0RyYXdpbmcoYm9vbCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIENGVHlwZVJl
ZiBjb250ZW50cygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50
cyhDRlR5cGVSZWYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgQ0ZUeXBlUmVmIGNvbnRlbnRzKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzKENGVHlwZVJlZikg
b3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNSZWN0KGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1Jl
Y3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0TWluaWZpY2F0aW9uRmlsdGVyKFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6RmlsdGVy
VHlwZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldE1hZ25pZmljYXRpb25GaWx0ZXIo
V2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpGaWx0ZXJUeXBlKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0TWluaWZpY2F0aW9uRmlsdGVyKFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6
RmlsdGVyVHlwZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldE1hZ25pZmljYXRpb25G
aWx0ZXIoV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpGaWx0ZXJUeXBlKSBvdmVycmlkZTsKIAot
ICAgIHZpcnR1YWwgV2ViQ29yZTo6Q29sb3IgYmFja2dyb3VuZENvbG9yKCkgY29uc3QgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIHNldEJhY2tncm91bmRDb2xvcihjb25zdCBXZWJDb3JlOjpD
b2xvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6Q29sb3IgYmFja2dyb3VuZENv
bG9yKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEJhY2tncm91bmRDb2xv
cihjb25zdCBXZWJDb3JlOjpDb2xvciYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHNl
dEJvcmRlcldpZHRoKGZsb2F0KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Qm9yZGVy
Q29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0Qm9yZGVyV2lkdGgoZmxvYXQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRCb3Jk
ZXJDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBm
bG9hdCBvcGFjaXR5KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldE9wYWNp
dHkoZmxvYXQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgZmxvYXQgb3BhY2l0eSgpIGNvbnN0IG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRPcGFjaXR5KGZsb2F0KSBvdmVycmlkZTsKIAog
I2lmIEVOQUJMRShDU1NfRklMVEVSUykKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RmlsdGVycyhjb25z
dCBXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb25zJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHNldEZpbHRlcnMoY29uc3QgV2ViQ29yZTo6RmlsdGVyT3BlcmF0aW9ucyYpIG92ZXJyaWRlOwog
ICAgIHN0YXRpYyBib29sIGZpbHRlcnNDYW5CZUNvbXBvc2l0ZWQoY29uc3QgV2ViQ29yZTo6Rmls
dGVyT3BlcmF0aW9ucyYpOwotICAgIHZpcnR1YWwgdm9pZCBjb3B5RmlsdGVyc0Zyb20oY29uc3Qg
V2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNv
cHlGaWx0ZXJzRnJvbShjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXIqKSBvdmVycmlkZTsK
ICNlbmRpZgogCi0gICAgdmlydHVhbCB2b2lkIHNldE5hbWUoY29uc3QgU3RyaW5nJikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHNldE5hbWUoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0U3BlZWQoZmxvYXQpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBzZXRTcGVlZChmbG9hdCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VGlt
ZU9mZnNldChDRlRpbWVJbnRlcnZhbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFRp
bWVPZmZzZXQoQ0ZUaW1lSW50ZXJ2YWwpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBmbG9hdCBj
b250ZW50c1NjYWxlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbnRl
bnRzU2NhbGUoZmxvYXQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgZmxvYXQgY29udGVudHNTY2Fs
ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1NjYWxlKGZs
b2F0KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRFZGdlQW50aWFsaWFzaW5nTWFz
ayh1bnNpZ25lZCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEVkZ2VBbnRpYWxpYXNp
bmdNYXNrKHVuc2lnbmVkKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllcjo6Q3VzdG9tQXBwZWFyYW5jZSBjdXN0b21BcHBlYXJhbmNlKCkgY29uc3QgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUN1c3RvbUFwcGVhcmFuY2UoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllcjo6Q3VzdG9tQXBwZWFyYW5jZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlIGN1c3RvbUFwcGVhcmFuY2UoKSBj
b25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ3VzdG9tQXBwZWFyYW5jZShX
ZWJDb3JlOjpHcmFwaGljc0xheWVyOjpDdXN0b21BcHBlYXJhbmNlKSBvdmVycmlkZTsKIAotICAg
IHZpcnR1YWwgV2ViQ29yZTo6VGlsZWRCYWNraW5nKiB0aWxlZEJhY2tpbmcoKSBPVkVSUklERSB7
IHJldHVybiBudWxscHRyOyB9CisgICAgdmlydHVhbCBXZWJDb3JlOjpUaWxlZEJhY2tpbmcqIHRp
bGVkQmFja2luZygpIG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KIAotICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI+IGNsb25lKFdlYkNvcmU6OlBsYXRm
b3JtQ0FMYXllckNsaWVudCogb3duZXIpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI+IGNsb25lKFdlYkNvcmU6OlBsYXRmb3Jt
Q0FMYXllckNsaWVudCogb3duZXIpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBQYXNz
UmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gY3JlYXRlQ29tcGF0aWJsZUxheWVyKFdlYkNvcmU6OlBs
YXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlLCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQq
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVy
PiBjcmVhdGVDb21wYXRpYmxlTGF5ZXIoV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpMYXllclR5
cGUsIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckNsaWVudCopIGNvbnN0IG92ZXJyaWRlOwogCi0g
ICAgdmlydHVhbCB2b2lkIGVudW1lcmF0ZVJlY3RzQmVpbmdEcmF3bihDR0NvbnRleHRSZWYsIHZv
aWQgKF5ibG9jaykoQ0dSZWN0KSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGVudW1lcmF0
ZVJlY3RzQmVpbmdEcmF3bihDR0NvbnRleHRSZWYsIHZvaWQgKF5ibG9jaykoQ0dSZWN0KSkgb3Zl
cnJpZGU7CiAKICAgICB2aXJ0dWFsIHVpbnQzMl90IGhvc3RpbmdDb250ZXh0SUQoKTsKIApAQCAt
MTUzLDcgKzE1Myw3IEBAIHByb3RlY3RlZDoKICAgICBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUoV2Vi
Q29yZTo6UGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGUsIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXll
ckNsaWVudCogb3duZXIsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQqIGNvbnRleHQpOwogCiBwcml2
YXRlOgotICAgIHZpcnR1YWwgYm9vbCBpc1BsYXRmb3JtQ0FMYXllclJlbW90ZSgpIGNvbnN0IE9W
RVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBlbnN1
cmVCYWNraW5nU3RvcmUoKTsKICAgICB2b2lkIHJlbW92ZVN1YmxheWVyKFBsYXRmb3JtQ0FMYXll
clJlbW90ZSopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaAppbmRleCBm
NjRhYTIxLi5jNDA4YTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLmgK
QEAgLTM5LDkgKzM5LDkgQEAgY2xhc3MgUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tIEZJTkFM
IDogcHVibGljIFBsYXRmb3JtQ0FMYXllclJlbW90ZSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+
UGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tKCk7CiAKLSAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5
ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3BsYXRmb3JtTGF5
ZXIuZ2V0KCk7IH0KKyAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBtX3BsYXRmb3JtTGF5ZXIuZ2V0KCk7IH0KIAotICAgIHZp
cnR1YWwgdWludDMyX3QgaG9zdGluZ0NvbnRleHRJRCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dWludDMyX3QgaG9zdGluZ0NvbnRleHRJRCgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIFBs
YXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbShQbGF0Zm9ybUxheWVyKiwgV2ViQ29yZTo6UGxhdGZv
cm1DQUxheWVyQ2xpZW50KiBvd25lciwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5
ZXJSZW1vdGVUaWxlZEJhY2tpbmcuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmgKaW5kZXggNjFjN2RiMy4u
OWI0YmIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2lu
Zy5oCkBAIC00MCwyMCArNDAsMjAgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcoV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyOjpMYXllclR5
cGUsIFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIsIFJlbW90ZUxheWVyVHJl
ZUNvbnRleHQqKTsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6VGlsZWRCYWNraW5nKiB0aWxlZEJh
Y2tpbmcoKSBPVkVSUklERSB7IHJldHVybiBtX3RpbGVDb250cm9sbGVyLmdldCgpOyB9CisgICAg
dmlydHVhbCBXZWJDb3JlOjpUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZygpIG92ZXJyaWRlIHsg
cmV0dXJuIG1fdGlsZUNvbnRyb2xsZXIuZ2V0KCk7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXRO
ZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0KiBkaXJ0eVJlY3QgPSAwKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCogZGlydHlSZWN0ID0gMCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGNvbnN0IFdl
YkNvcmU6OlBsYXRmb3JtQ0FMYXllckxpc3QqIGN1c3RvbVN1YmxheWVycygpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyTGlzdCogY3Vz
dG9tU3VibGF5ZXJzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Qm91
bmRzKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9v
bCBpc09wYXF1ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRPcGFxdWUo
Ym9vbCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGFjY2VsZXJhdGVzRHJhd2luZygpIGNv
bnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlc0RyYXdpbmcoYm9v
bCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzU2NhbGUoZmxvYXQpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRCb3JkZXJXaWR0aChmbG9hdCkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIHNldEJvcmRlckNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEJvdW5kcyhjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNPcGFxdWUoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0T3BhcXVlKGJvb2wpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgYm9vbCBhY2NlbGVyYXRlc0RyYXdpbmcoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0QWNjZWxlcmF0ZXNEcmF3aW5nKGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBzZXRDb250ZW50c1NjYWxlKGZsb2F0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0Qm9yZGVyV2lkdGgoZmxvYXQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRC
b3JkZXJDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpIG92ZXJyaWRlOwogCiAgICAgT3duUHRy
PFdlYkNvcmU6OlRpbGVDb250cm9sbGVyPiBtX3RpbGVDb250cm9sbGVyOwogICAgIE93blB0cjxX
ZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJMaXN0PiBtX2N1c3RvbVN1YmxheWVyczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVl
Q29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVM
YXllclRyZWVDb250ZXh0LmgKaW5kZXggNjZiNGFjNi4uYWEwMTBlNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXll
clRyZWVDb250ZXh0LmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAg
IC8vIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5Ci0gICAgdmlydHVhbCBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gY3JlYXRlR3JhcGhpY3NMYXllcihXZWJDb3Jl
OjpHcmFwaGljc0xheWVyQ2xpZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gY3JlYXRlR3JhcGhpY3NMYXllcihXZWJDb3Jl
OjpHcmFwaGljc0xheWVyQ2xpZW50Kikgb3ZlcnJpZGU7CiAKICAgICBXZWJQYWdlKiBtX3dlYlBh
Z2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAppbmRleCBlMGEyMWE2Li5h
YWJhYjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCkBAIC00Nyw0MSAr
NDcsNDEgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIERyYXdpbmdBcmVhCi0gICAgdmly
dHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBz
ZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVj
dCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVHZW9tZXRyeShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB2aWV3U2l6
ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgbGF5ZXJQb3NpdGlvbikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xs
UmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVHZW9tZXRyeShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB2aWV3
U2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgbGF5ZXJQb3NpdGlvbikgb3ZlcnJpZGU7CiAK
LSAgICB2aXJ0dWFsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVy
RmFjdG9yeSgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRSb290Q29tcG9zaXRpbmdM
YXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6
R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBv
c2l0aW5nTGF5ZXJGbHVzaCgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCBib29sIHNob3VsZFVz
ZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBXZWJDb3JlOjpGcmFtZVZpZXcqKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3
KGNvbnN0IFdlYkNvcmU6OkZyYW1lVmlldyopIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lk
IHVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNT
dG9yZSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGRpZEluc3RhbGxQYWdlT3Zlcmxh
eShQYWdlT3ZlcmxheSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRVbmluc3RhbGxQ
YWdlT3ZlcmxheShQYWdlT3ZlcmxheSopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRQ
YWdlT3ZlcmxheU5lZWRzRGlzcGxheShQYWdlT3ZlcmxheSosIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UGFnZU92ZXJsYXlPcGFjaXR5KFBh
Z2VPdmVybGF5KiwgZmxvYXQpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Fz
eW5jU2Nyb2xsaW5nKCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9p
ZCBkaWRJbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkqKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkVW5pbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkqKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0UGFnZU92ZXJsYXlOZWVkc0Rpc3BsYXkoUGFnZU92ZXJsYXkq
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNl
dFBhZ2VPdmVybGF5T3BhY2l0eShQYWdlT3ZlcmxheSosIGZsb2F0KSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIGJvb2wgc3VwcG9ydHNBc3luY1Njcm9sbGluZygpIG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKGJvb2wp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKGJv
b2wpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGZvcmNlUmVwYWludCgpIE9WRVJSSURF
OwotICAgIHZpcnR1YWwgYm9vbCBmb3JjZVJlcGFpbnRBc3luYyh1aW50NjRfdCkgT1ZFUlJJREUg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZm9yY2VSZXBhaW50KCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBib29sIGZvcmNlUmVwYWludEFzeW5jKHVpbnQ2NF90KSBvdmVycmlk
ZSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHNldEV4cG9zZWRSZWN0KGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6
RmxvYXRSZWN0IGV4cG9zZWRSZWN0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9zY3JvbGxl
ZEV4cG9zZWRSZWN0OyB9CisgICAgdmlydHVhbCB2b2lkIHNldEV4cG9zZWRSZWN0KGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRS
ZWN0IGV4cG9zZWRSZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zY3JvbGxlZEV4cG9z
ZWRSZWN0OyB9CiAKICAgICAvLyBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50Ci0gICAgdmly
dHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciosIGRvdWJsZSB0aW1lKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5
Rmx1c2hSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgT1ZFUlJJREUgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQ
YWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIoY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciopIGNvbnN0IE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9pZCBub3Rp
ZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUg
dGltZSkgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQo
Y29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
ZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkQ29tbWl0Q2hhbmdlc0ZvckxheWVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KSBjb25zdCBvdmVycmlkZSB7IH0KICNpZiBQTEFURk9STShJT1MpCi0gICAgdmlydHVhbCB2b2lk
IHNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpIG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICB2b2lk
IHVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWEuaAppbmRleCAwOWE2MjNmLi44MTU5OGNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCkBAIC01NSw1OSArNTUsNTkgQEAgcHVibGljOgogICAg
IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhKFdlYlBhZ2UqLCBjb25zdCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzJik7CiAgICAgdmlydHVhbCB+VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWEoKTsKIAotICAgIHZpcnR1YWwgdm9pZCB2aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6
Vmlld1N0YXRlOjpGbGFncyBjaGFuZ2VkKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdmll
d1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6RmxhZ3MgY2hhbmdlZCkgb3ZlcnJp
ZGU7CiAKIHByaXZhdGU6CiAgICAgLy8gRHJhd2luZ0FyZWEKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
TmVlZHNEaXNwbGF5KCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxh
eUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNl
dE5lZWRzRGlzcGxheSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3Bs
YXlJblJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lk
IGZvcmNlUmVwYWludCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBmb3JjZVJlcGFpbnRB
c3luYyh1aW50NjRfdCBjYWxsYmFja0lEKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
TGF5ZXJUcmVlU3RhdGVJc0Zyb3plbihib29sKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
bGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBzZXRSb290Q29tcG9zaXRpbmdMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGZvcmNlUmVwYWludCgpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgYm9vbCBmb3JjZVJlcGFpbnRBc3luYyh1aW50NjRfdCBjYWxsYmFja0lEKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJUcmVlU3RhdGVJc0Zyb3plbihib29sKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRSb290Q29tcG9zaXRpbmdMYXllcihXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29t
cG9zaXRpbmdMYXllckZsdXNoKCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkSW5z
dGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5KikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGRpZFVuaW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5KikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHNldFBhZ2VPdmVybGF5TmVlZHNEaXNwbGF5KFBhZ2VPdmVybGF5KiwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdlT3Zl
cmxheU9wYWNpdHkoUGFnZU92ZXJsYXkqLCBmbG9hdCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2
b2lkIHVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgbWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKGNvbnN0IFdl
YkNvcmU6OkludFNpemUmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkSW5zdGFsbFBh
Z2VPdmVybGF5KFBhZ2VPdmVybGF5Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFVu
aW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5Kikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHNldFBhZ2VPdmVybGF5TmVlZHNEaXNwbGF5KFBhZ2VPdmVybGF5KiwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdlT3ZlcmxheU9w
YWNpdHkoUGFnZU92ZXJsYXkqLCBmbG9hdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgbWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6
OkludFNpemUmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRFeHBvc2VkUmVjdChj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6
OkZsb2F0UmVjdCBleHBvc2VkUmVjdCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fc2Nyb2xs
ZWRFeHBvc2VkUmVjdDsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRFeHBvc2VkUmVjdChjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0
UmVjdCBleHBvc2VkUmVjdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc2Nyb2xsZWRFeHBv
c2VkUmVjdDsgfQogCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzQXN5bmNTY3JvbGxpbmcoKSBP
VkVSUklERSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQXN5bmNT
Y3JvbGxpbmcoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ2hhbmdlU2Nyb2xsT2Zmc2V0Rm9yQW55RnJhbWUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkQ2hhbmdlU2Nyb2xsT2Zmc2V0Rm9yQW55RnJhbWUoKSBvdmVycmlkZTsKIAotICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdVcGRhdGVkU2Nyb2xsUG9zaXRpb24o
Y29uc3QgRnVuY3Rpb248dm9pZCAoKT4mKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hBZnRlckVuc3VyaW5nVXBkYXRlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZ1bmN0aW9uPHZv
aWQoKT4mKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tp
bmdGb3JGcmFtZVZpZXcoY29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3KikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBib29sIHNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBXZWJD
b3JlOjpGcmFtZVZpZXcqKSBvdmVycmlkZTsKIAogICAgIC8vIFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXJDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Qg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdENoYW5nZXNGb3JMYXllcihjb25z
dCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllcios
IGRvdWJsZSB0aW1lKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Rmx1c2hSZXF1
aXJlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNl
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBkaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciopIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gV2ViQ29yZTo6TGF5ZXJGbHVzaFNjaGVkdWxl
ckNsaWVudAotICAgIHZpcnR1YWwgYm9vbCBmbHVzaExheWVycygpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgYm9vbCBmbHVzaExheWVycygpIG92ZXJyaWRlOwogCiAgICAgLy8gTWVzc2FnZSBoYW5k
bGVycy4KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2VvbWV0cnkoY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgdmlld1NpemUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGxheWVyUG9zaXRpb24pIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdlb21ldHJ5KGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIHZpZXdTaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBsYXllclBvc2l0aW9uKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpIG92
ZXJyaWRlOwogICAgIHZvaWQgc3VzcGVuZFBhaW50aW5nKCk7CiAgICAgdm9pZCByZXN1bWVQYWlu
dGluZygpOwotICAgIHZvaWQgc2V0TGF5ZXJIb3N0aW5nTW9kZShMYXllckhvc3RpbmdNb2RlKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29sb3JTcGFjZShjb25zdCBDb2xvclNwYWNl
RGF0YSYpIE9WRVJSSURFOworICAgIHZvaWQgc2V0TGF5ZXJIb3N0aW5nTW9kZShMYXllckhvc3Rp
bmdNb2RlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29sb3JTcGFjZShjb25zdCBD
b2xvclNwYWNlRGF0YSYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGFkanVzdFRyYW5z
aWVudFpvb20oZG91YmxlIHNjYWxlLCBXZWJDb3JlOjpGbG9hdFBvaW50IG9yaWdpbikgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyYW5zaWVudFpvb20oZG91YmxlIHNjYWxlLCBX
ZWJDb3JlOjpGbG9hdFBvaW50IG9yaWdpbikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGFk
anVzdFRyYW5zaWVudFpvb20oZG91YmxlIHNjYWxlLCBXZWJDb3JlOjpGbG9hdFBvaW50IG9yaWdp
bikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyYW5zaWVudFpvb20oZG91Ymxl
IHNjYWxlLCBXZWJDb3JlOjpGbG9hdFBvaW50IG9yaWdpbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBh
cHBseVRyYW5zaWVudFpvb21Ub1BhZ2UoZG91YmxlIHNjYWxlLCBXZWJDb3JlOjpGbG9hdFBvaW50
IG9yaWdpbik7CiAKICAgICB2b2lkIHVwZGF0ZUxheWVySG9zdGluZ0NvbnRleHQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZmQxZTJhYS4uY2Q5OWJhMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTE4OSwxMCArMTg5LDEwIEBA
IHByaXZhdGU6CiAgICAgV2ViUHJvY2VzcygpOwogCiAgICAgLy8gRG93bmxvYWRNYW5hZ2VyOjpD
bGllbnQuCi0gICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZURvd25sb2FkKCkgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGRpZERlc3Ryb3lEb3dubG9hZCgpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgSVBDOjpDb25uZWN0aW9uKiBkb3dubG9hZFByb3h5Q29ubmVjdGlvbigpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgQXV0aGVudGljYXRpb25NYW5hZ2VyJiBkb3dubG9hZHNBdXRoZW50aWNhdGlv
bk1hbmFnZXIoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRG93bmxvYWQo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRGVzdHJveURvd25sb2FkKCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBJUEM6OkNvbm5lY3Rpb24qIGRvd25sb2FkUHJveHlDb25uZWN0aW9u
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBBdXRoZW50aWNhdGlvbk1hbmFnZXImIGRvd25sb2Fk
c0F1dGhlbnRpY2F0aW9uTWFuYWdlcigpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBpbml0aWFsaXpl
V2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiwgSVBDOjpNZXNz
YWdlRGVjb2RlciYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25z
dCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwpA
QCAtMjQ2LDE1ICsyNDYsMTUgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBvc3RJbmplY3RlZEJ1bmRs
ZU1lc3NhZ2UoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlRGF0YSk7CiAKICAgICAv
LyBDaGlsZFByb2Nlc3MKLSAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZVByb2Nlc3MoY29uc3Qg
Q2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFs
aXphdGlvblBhcmFtZXRlcnMmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6
ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2Fu
ZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBpbml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWluYXRlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IHRlcm1pbmF0ZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplUHJvY2Vz
cyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vz
c0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBp
bml0aWFsaXplU2FuZGJveChjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMmLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiopIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRUZXJtaW5hdGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgdGVybWluYXRlKCkgb3ZlcnJpZGU7CiAKICNpZiBQTEFURk9STShNQUMpICYmICFQ
TEFURk9STShJT1MpCi0gICAgdmlydHVhbCB2b2lkIHN0b3BSdW5Mb29wKCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHN0b3BSdW5Mb29wKCkgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIHZv
aWQgcGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXph
dGlvblBhcmFtZXRlcnMmKTsKQEAgLTI2NCw3ICsyNjQsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVz
c2FnZUVuY29kZXI+Jik7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlv
biopOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uKiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpTdHJpbmdSZWZl
cmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5h
bWUpIG92ZXJyaWRlOwogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYlByb2Nl
c3NNZXNzYWdlUmVjZWl2ZXIuY3BwCiAgICAgdm9pZCBkaWRSZWNlaXZlV2ViUHJvY2Vzc01lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlci5oCmlu
ZGV4IGZlNDczZDcuLmJkMTBiZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVi
bGljOgogCiBwcml2YXRlOgogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikg
T1ZFUlJJREU7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRpZEhhbmRsZVVSSVJl
cXVlc3QoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgdWludDY0X3QgY29udGVudExlbmd0aCwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgdWludDY0X3QgcmVxdWVzdElEKTsKICAgICB2b2lkIGRp
ZFJlY2VpdmVVUklSZXF1ZXN0RGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCB1aW50NjRf
dCByZXF1ZXN0SUQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDgxMWVlYTAuLjI1YmUzYmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNC0wMS0xNiAgUGV0ZXIg
TW9sbmFyICA8cG1vbG5hci51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgorCisgICAgICAg
IFJlbW92ZSB3b3JrYXJvdW5kIGZvciBjb21waWxlcnMgbm90IHN1cHBvcnRpbmcgZXhwbGljaXQg
b3ZlcnJpZGUgY29udHJvbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI3MTExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm93IGFsbCBjb21waWxlcnMgc3VwcG9ydCBleHBsaWNpdCBvdmVycmlkZSBjb250
cm9sLCB0aGlzIHdvcmthcm91bmQgY2FuIGJlIHJlbW92ZWQuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9ndGsvZm9udHMvZm9udHMuY29uZjoKKyAgICAgICAgKiBTY3JpcHRzL2RvLXdlYmNv
cmUtcmVuYW1lOgorICAgICAgICBSZW1vdmVkIHRoaXMgcmVuYW1lIG9wZXJhdGlvbiBmcm9tIHRo
ZSBsaXN0IG9mIGNvbnRlbXBsYXRlZCBmdXR1cmUgcmVuYW1lcy4KKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDIvRGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzX0J1bmRsZS5jcHA6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0luamVjdGVkQnVuZGxlRnJh
bWVIaXRUZXN0X0J1bmRsZS5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL1dpbGxMb2FkX0J1bmRsZS5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyT2JqQy9DdXN0b21Qcm90b2NvbHNJbnZhbGlkU2NoZW1lX0J1bmRsZS5jcHA6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5k
b3dDaGFuZ2VzLm1tOgorCiAyMDE0LTAxLTE1ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBw
bGUuY29tPgogCiAgICAgICAgIER1bXBSZW5kZXJUcmVlIGRvZXNuJ3QgZGlzYWJsZSB3ZWIgcHJl
ZmVyZW5jZXMgYXV0b3NhdmUKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9m
b250cy9mb250cy5jb25mIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL2ZvbnRzL2ZvbnRzLmNv
bmYKaW5kZXggM2M1NWU4Ny4uNTFlYTZjNiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZ3RrL2ZvbnRzL2ZvbnRzLmNvbmYKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL2Zv
bnRzL2ZvbnRzLmNvbmYKQEAgLTM5Myw4ICszOTMsOCBAQAogICAgICAgICAgICAgPGludD4weDIw
MkE8L2ludD4gICAgPCEtLSBMRUZULVRPLVJJR0hUIEVNQkVERElORyAtLT4KICAgICAgICAgICAg
IDxpbnQ+MHgyMDJCPC9pbnQ+ICAgIDwhLS0gUklHSFQtVE8tTEVGVCBFTUJFRERJTkcgLS0+CiAg
ICAgICAgICAgICA8aW50PjB4MjAyQzwvaW50PiAgICA8IS0tIFBPUCBESVJFQ1RJT05BTCBGT1JN
QVRUSU5HIC0tPgotICAgICAgICAgICAgPGludD4weDIwMkQ8L2ludD4gICAgPCEtLSBMRUZULVRP
LVJJR0hUIE9WRVJSSURFIC0tPgotICAgICAgICAgICAgPGludD4weDIwMkU8L2ludD4gICAgPCEt
LSBSSUdIVC1UTy1MRUZUIE9WRVJSSURFIC0tPgorICAgICAgICAgICAgPGludD4weDIwMkQ8L2lu
dD4gICAgPCEtLSBMRUZULVRPLVJJR0hUIG92ZXJyaWRlIC0tPgorICAgICAgICAgICAgPGludD4w
eDIwMkU8L2ludD4gICAgPCEtLSBSSUdIVC1UTy1MRUZUIG92ZXJyaWRlIC0tPgogICAgICAgICAg
ICAgPGludD4weDIwMkY8L2ludD4gICAgPCEtLSBOQVJST1cgTk8tQlJFQUsgU1BBQ0UgLS0+CiAg
ICAgICAgICAgICA8aW50PjB4MjA1RjwvaW50PiAgICA8IS0tIE1FRElVTSBNQVRIRU1BVElDQUwg
U1BBQ0UgLS0+CiAgICAgICAgICAgICA8aW50PjB4MjA2MDwvaW50PiAgICA8IS0tIFdPUkQgSk9J
TkVSIC0tPgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9kby13ZWJjb3JlLXJlbmFtZSBiL1Rv
b2xzL1NjcmlwdHMvZG8td2ViY29yZS1yZW5hbWUKaW5kZXggZTdkMzA3Yi4uMWI1MGU2OCAxMDA3
NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9kby13ZWJjb3JlLXJlbmFtZQorKysgYi9Ub29scy9TY3Jp
cHRzL2RvLXdlYmNvcmUtcmVuYW1lCkBAIC0xNDAsOCArMTQwLDYgQEAgbXkgJXJlbmFtZXNDb250
ZW1wbGF0ZWRGb3JUaGVGdXR1cmUgPSAoCiAgICAgIm5hdGl2ZUZ1bmN0aW9uVGh1bmsiID0+ICJo
b3N0RnVuY3Rpb25UaHVuayIsCiAgICAgIm5hdGl2ZUZ1bmN0aW9uIiA9PiAiaG9zdEZ1bmN0aW9u
IiwKICAgICAiTmF0aXZlRnVuY3Rpb24iID0+ICJIb3N0RnVuY3Rpb24iLAotCi0gICAgIk9WRVJS
SURFIiA9PiAib3ZlcnJpZGUiLAogKTsKIAogIyBTb3J0IHRoZSBrZXlzIG9mIHRoZSByZW5hbWVz
IGhhc2ggaW4gb3JkZXIgb2YgZGVjcmVhc2luZyBsZW5ndGguIFRoaXMKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9EaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNf
QnVuZGxlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9EaWRBc3NvY2lh
dGVGb3JtQ29udHJvbHNfQnVuZGxlLmNwcAppbmRleCA4ODAxYWVjLi5mZDM3M2QyIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvRGlkQXNzb2NpYXRlRm9ybUNv
bnRyb2xzX0J1bmRsZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
L0RpZEFzc29jaWF0ZUZvcm1Db250cm9sc19CdW5kbGUuY3BwCkBAIC0zNiw3ICszNiw3IEBAIGNs
YXNzIERpZEFzc29jaWF0ZUZvcm1Db250cm9sc1Rlc3QgOiBwdWJsaWMgSW5qZWN0ZWRCdW5kbGVU
ZXN0IHsKIHB1YmxpYzoKICAgICBEaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNUZXN0KGNvbnN0IHN0
ZDo6c3RyaW5nJiBpZGVudGlmaWVyKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVQYWdl
KFdLQnVuZGxlUmVmLCBXS0J1bmRsZVBhZ2VSZWYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRDcmVhdGVQYWdlKFdLQnVuZGxlUmVmLCBXS0J1bmRsZVBhZ2VSZWYpIG92ZXJyaWRlOwog
fTsKIAogc3RhdGljIEluamVjdGVkQnVuZGxlVGVzdDo6UmVnaXN0ZXI8RGlkQXNzb2NpYXRlRm9y
bUNvbnRyb2xzVGVzdD4gcmVnaXN0cmFyKCJEaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNUZXN0Iik7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvSW5qZWN0ZWRC
dW5kbGVGcmFtZUhpdFRlc3RfQnVuZGxlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9JbmplY3RlZEJ1bmRsZUZyYW1lSGl0VGVzdF9CdW5kbGUuY3BwCmluZGV4IGUxNWQ1
MjUuLjZhZTAxODcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9JbmplY3RlZEJ1bmRsZUZyYW1lSGl0VGVzdF9CdW5kbGUuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9JbmplY3RlZEJ1bmRsZUZyYW1lSGl0VGVzdF9CdW5kbGUu
Y3BwCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdmlydHVh
bCB2b2lkIGRpZENyZWF0ZVBhZ2UoV0tCdW5kbGVSZWYsIFdLQnVuZGxlUGFnZVJlZikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZVBhZ2UoV0tCdW5kbGVSZWYsIFdLQnVuZGxl
UGFnZVJlZikgb3ZlcnJpZGU7CiAgICAgdm9pZCBmcmFtZUxvYWRGaW5pc2hlZChXS0J1bmRsZUZy
YW1lUmVmKTsKIAogICAgIFdLQnVuZGxlUmVmIG1fYnVuZGxlOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dpbGxMb2FkX0J1bmRsZS5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2lsbExvYWRfQnVuZGxlLmNwcAppbmRleCA0N2Zh
MGEyLi43ODNhZWJlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDIvV2lsbExvYWRfQnVuZGxlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvV2lsbExvYWRfQnVuZGxlLmNwcApAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgogCiAg
ICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZVBhZ2UoV0tCdW5kbGVSZWYsIFdLQnVu
ZGxlUGFnZVJlZiBidW5kbGVQYWdlKSBPVkVSUklERQorICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVh
dGVQYWdlKFdLQnVuZGxlUmVmLCBXS0J1bmRsZVBhZ2VSZWYgYnVuZGxlUGFnZSkgb3ZlcnJpZGUK
ICAgICB7CiAgICAgICAgIFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFY2IHBhZ2VMb2FkZXJDbGll
bnQ7CiAgICAgICAgIG1lbXNldCgmcGFnZUxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKHBhZ2VMb2Fk
ZXJDbGllbnQpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mk9iakMvQ3VzdG9tUHJvdG9jb2xzSW52YWxpZFNjaGVtZV9CdW5kbGUuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyT2JqQy9DdXN0b21Qcm90b2NvbHNJbnZhbGlkU2NoZW1l
X0J1bmRsZS5jcHAKaW5kZXggN2ZlMjk5OS4uNjkwOGNmOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyT2JqQy9DdXN0b21Qcm90b2NvbHNJbnZhbGlkU2NoZW1l
X0J1bmRsZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyT2JqQy9D
dXN0b21Qcm90b2NvbHNJbnZhbGlkU2NoZW1lX0J1bmRsZS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAg
cHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlUGFn
ZShXS0J1bmRsZVJlZiwgV0tCdW5kbGVQYWdlUmVmIGJ1bmRsZVBhZ2UpIE9WRVJSSURFCisgICAg
dmlydHVhbCB2b2lkIGRpZENyZWF0ZVBhZ2UoV0tCdW5kbGVSZWYsIFdLQnVuZGxlUGFnZVJlZiBi
dW5kbGVQYWdlKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgV0tCdW5kbGVQYWdlUG9saWN5Q2xp
ZW50VjAgcG9saWN5Q2xpZW50OwogICAgICAgICBtZW1zZXQoJnBvbGljeUNsaWVudCwgMCwgc2l6
ZW9mKHBvbGljeUNsaWVudCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2VzLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvUGFnZVZpc2liaWxpdHlTdGF0ZVdpdGhXaW5kb3dDaGFuZ2Vz
Lm1tCmluZGV4IDgwMzA0NzYuLmNlMTQxY2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL1BhZ2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9QYWdlVmlzaWJpbGl0eVN0YXRlV2l0aFdp
bmRvd0NoYW5nZXMubW0KQEAgLTY4LDE1ICs2OCwxNSBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGUg
PHR5cGVuYW1lIFZpZXc+IHZvaWQgcnVuVGVzdChWaWV3KTsKIAogICAgIC8vIFdlYktpdEFnbm9z
dGljVGVzdAotICAgIHZpcnR1YWwgTlNVUkwgKnVybCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJQYWdlVmlzaWJpbGl0eVN0
YXRlV2l0aFdpbmRvd0NoYW5nZXMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6
QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZExvYWRV
UkwoV2ViVmlldyAqd2ViVmlldykgT1ZFUlJJREUgeyBydW5UZXN0KHdlYlZpZXcpOyB9Ci0gICAg
dmlydHVhbCB2b2lkIGRpZExvYWRVUkwoV0tWaWV3ICp3a1ZpZXcpIE9WRVJSSURFIHsgcnVuVGVz
dCh3a1ZpZXcpOyB9CisgICAgdmlydHVhbCBOU1VSTCAqdXJsKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIlBhZ2VWaXNpYmls
aXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlk
TG9hZFVSTChXZWJWaWV3ICp3ZWJWaWV3KSBvdmVycmlkZSB7IHJ1blRlc3Qod2ViVmlldyk7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgZGlkTG9hZFVSTChXS1ZpZXcgKndrVmlldykgb3ZlcnJpZGUgeyBy
dW5UZXN0KHdrVmlldyk7IH0KIAogICAgIC8vIFNldHVwIGFuZCB0ZWFyZG93biB0aGUgVUlEZWxl
Z2F0ZSB3aGljaCBnZXRzIGFsZXJ0KCkgc2lnbmFscyBmcm9tIHRoZSBwYWdlLgotICAgIHZpcnR1
YWwgdm9pZCBpbml0aWFsaXplVmlldyhXZWJWaWV3ICopIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBpbml0aWFsaXplVmlldyhXS1ZpZXcgKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IHRlYXJkb3duVmlldyhXZWJWaWV3ICopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCB0ZWFy
ZG93blZpZXcoV0tWaWV3ICopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXpl
VmlldyhXZWJWaWV3ICopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplVmll
dyhXS1ZpZXcgKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHRlYXJkb3duVmlldyhXZWJW
aWV3ICopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB0ZWFyZG93blZpZXcoV0tWaWV3ICop
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQcmVyZW5kZXIoV2ViVmlldyAqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0UHJlcmVuZGVyKFdLVmlldyAqKTsKIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>