<?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>112050</bug_id>
          
          <creation_ts>2013-03-11 12:35:15 -0700</creation_ts>
          <short_desc>REGRESSION(r145375): Does not compile (Requested by jamesr on #webkit).</short_desc>
          <delta_ts>2013-03-11 13:07:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>
          
          <blocked>111138</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>alecflett</cc>
    
    <cc>jamesr</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>852582</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-11 12:35:15 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/145375 broke the build:
Does not compile (Requested by jamesr on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852584</commentid>
    <comment_count>1</comment_count>
      <attachid>192530</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-11 12:35:44 -0700</bug_when>
    <thetext>Created attachment 192530
ROLLOUT of r145375

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852590</commentid>
    <comment_count>2</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-03-11 12:41:14 -0700</bug_when>
    <thetext>Example failure:

FAILED: ../../Source/WebKit/chromium/third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/source/webcore/modules/indexeddb/webcore_remaining.idbleveldbcoding.o.d -DUSE_SKIA -DCHROMIUM_BUILD -DUSE_LIBJPEG_TURBO=1 -DENABLE_ONE_CLICK_SIGNIN -DENABLE_REMOTING=1 -DENABLE_WEBRTC=1 -DENABLE_PEPPER_THREADING -DENABLE_CONFIGURATION_POLICY -DENABLE_INPUT_SPEECH -DENABLE_NOTIFICATIONS -DENABLE_HIDPI=1 -DENABLE_GPU=1 -DENABLE_EGLIMAGE=1 -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PLUGIN_INSTALLATION=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_BACKGROUND=1 -DENABLE_AUTOMATION=1 -DENABLE_GOOGLE_NOW=1 -DENABLE_LANGUAGE_DETECTION=1 -DENABLE_PRINTING=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_MANAGED_USERS=1 &apos;-DWEBCORE_NAVIGATOR_VENDOR=&quot;Google Inc.&quot;&apos; -DWEBKIT_IMPLEMENTATION=1 &apos;-DWEBCORE_NAVIGATOR_PLATFORM=&quot;MacIntel&quot;&apos; -DWebCascadeList=ChromiumWebCoreObjCWebCascadeList -DWebCoreFlippedView=ChromiumWebCoreObjCWebCoreFlippedView -DWebCoreTextFieldCell=ChromiumWebCoreObjCWebCoreTextFieldCell -DWebScrollbarPrefsObserver=ChromiumWebCoreObjCWebScrollbarPrefsObserver -DWebCoreRenderThemeNotificationObserver=ChromiumWebCoreObjCWebCoreRenderThemeNotificationObserver -DWebFontCache=ChromiumWebCoreObjCWebFontCache -DWebScrollAnimationHelperDelegate=ChromiumWebCoreObjCWebScrollAnimationHelperDelegate -DWebScrollbarPainterControllerDelegate=ChromiumWebCoreObjCWebScrollbarPainterControllerDelegate -DWebScrollbarPainterDelegate=ChromiumWebCoreObjCWebScrollbarPainterDelegate -DWebScrollbarPartAnimation=ChromiumWebCoreObjCWebScrollbarPartAnimation -DENABLE_3D_PLUGIN=1 -DENABLE_BATTERY_STATUS=0 -DENABLE_BLOB=1 -DENABLE_BLOB_SLICE=1 -DENABLE_CANVAS_PATH=1 -DENABLE_CANVAS_PROXY=1 -DENABLE_CHANNEL_MESSAGING=1 -DENABLE_CSP_NEXT=1 -DENABLE_CSS3_CONDITIONAL_RULES=0 -DENABLE_CSS3_TEXT=0 -DENABLE_CSS3_TEXT_LINE_BREAK=0 -DENABLE_CSS_BOX_DECORATION_BREAK=1 -DENABLE_CSS_COMPOSITING=0 -DENABLE_CSS_DEVICE_ADAPTATION=0 -DENABLE_CSS_EXCLUSIONS=1 -DENABLE_CSS_FILTERS=1 -DENABLE_CSS_IMAGE_SET=1 -DENABLE_CSS_IMAGE_RESOLUTION=0 -DENABLE_CSS_REGIONS=1 -DENABLE_CSS_SHADERS=1 -DENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED=0 -DENABLE_CSS_VARIABLES=1 -DENABLE_CSS_STICKY_POSITION=1 -DENABLE_CUSTOM_ELEMENTS=1 -DENABLE_CUSTOM_SCHEME_HANDLER=0 -DENABLE_DASHBOARD_SUPPORT=0 -DENABLE_DATA_TRANSFER_ITEMS=1 -DENABLE_DETAILS_ELEMENT=1 -DENABLE_DEVICE_ORIENTATION=1 -DENABLE_DIALOG_ELEMENT=1 -DENABLE_DIRECTORY_UPLOAD=1 -DENABLE_DOM4_EVENTS_CONSTRUCTOR=1 -DENABLE_DOWNLOAD_ATTRIBUTE=1 -DENABLE_DRAGGABLE_REGION=1 -DENABLE_ENCRYPTED_MEDIA=1 -DENABLE_FILE_SYSTEM=1 -DENABLE_FILTERS=1 -DENABLE_FONT_LOAD_EVENTS=1 -DENABLE_FULLSCREEN_API=1 -DENABLE_GAMEPAD=1 -DENABLE_GEOLOCATION=1 -DENABLE_GESTURE_EVENTS=1 -DENABLE_ICONDATABASE=0 -DENABLE_IFRAME_SEAMLESS=1 -DENABLE_INDEXED_DATABASE=1 -DENABLE_INPUT_TYPE_DATE=1 -DENABLE_INPUT_TYPE_DATETIMELOCAL=1 -DENABLE_INPUT_TYPE_MONTH=1 -DENABLE_INPUT_TYPE_TIME=1 -DENABLE_JAVASCRIPT_DEBUGGER=1 -DENABLE_JAVASCRIPT_I18N_API=1 -DENABLE_LEGACY_CSS_VENDOR_PREFIXES=0 -DENABLE_LEGACY_VIEWPORT_ADAPTION=1 -DENABLE_LEGACY_VENDOR_PREFIXES=0 -DENABLE_LEGACY_WEB_AUDIO=1 -DENABLE_LINK_PREFETCH=1 -DENABLE_LINK_PRERENDER=1 -DENABLE_MATHML=0 -DENABLE_MEDIA_SOURCE=1 -DENABLE_MEDIA_STATISTICS=1 -DENABLE_MEDIA_STREAM=1 -DENABLE_METER_ELEMENT=1 -DENABLE_MHTML=1 -DENABLE_MICRODATA=0 -DENABLE_MOUSE_CURSOR_SCALE=1 -DENABLE_NOSNIFF=1 -DENABLE_PAGE_VISIBILITY_API=1 -DENABLE_PERFORMANCE_TIMELINE=1 -DENABLE_POINTER_LOCK=1 -DENABLE_PROGRESS_ELEMENT=1 -DENABLE_PROXIMITY_EVENTS=0 -DENABLE_QUOTA=1 -DENABLE_REQUEST_ANIMATION_FRAME=1 -DENABLE_REQUEST_AUTOCOMPLETE=1 -DENABLE_RESOLUTION_MEDIA_QUERY=0 -DENABLE_RESOURCE_TIMING=1 -DENABLE_RUBY=1 -DENABLE_SANDBOX=1 -DENABLE_SCRIPTED_SPEECH=1 -DENABLE_SHADOW_DOM=1 -DENABLE_SMOOTH_SCROLLING=1 -DENABLE_SPEECH_SYNTHESIS=0 -DENABLE_SQL_DATABASE=1 -DENABLE_STYLE_SCOPED=1 -DENABLE_SUBPIXEL_LAYOUT=1 -DENABLE_SVG=1 -DENABLE_SVG_FONTS=1 -DENABLE_TEMPLATE_ELEMENT=1 -DENABLE_TEXT_AUTOSIZING=1 -DENABLE_THREADED_HTML_PARSER=1 -DENABLE_TOUCH_ADJUSTMENT=1 -DENABLE_TOUCH_EVENTS=1 -DENABLE_TOUCH_EVENT_TRACKING=1 -DENABLE_TOUCH_ICON_LOADING=0 -DENABLE_TOUCH_SLIDER=1 -DENABLE_USER_TIMING=1 -DENABLE_V8_SCRIPT_DEBUG_SERVER=1 -DENABLE_VIDEO=1 -DENABLE_VIDEO_TRACK=1 -DENABLE_VIEWPORT=1 -DENABLE_VIEW_MODE_CSS_MEDIA=1 -DENABLE_WEBGL=1 -DENABLE_WEB_SOCKETS=1 -DENABLE_WEB_TIMING=1 -DENABLE_WORKERS=1 -DENABLE_XHR_TIMEOUT=0 -DENABLE_XSLT=1 -DWTF_USE_LEVELDB=1 -DWTF_USE_BUILTIN_UTF8_CODEC=1 -DWTF_USE_OPENTYPE_SANITIZER=1 -DWTF_USE_RTL_SCROLLBAR=1 -DWTF_USE_SKIA_TEXT=1 -DWTF_USE_WEBP=1 -DWTF_USE_WEBKIT_IMAGE_DECODERS=1 -DENABLE_CALENDAR_PICKER=1 -DENABLE_DATALIST_ELEMENT=1 -DENABLE_INPUT_SPEECH=1 -DENABLE_INPUT_TYPE_COLOR=1 -DENABLE_INPUT_TYPE_WEEK=1 -DENABLE_INPUT_MULTIPLE_FIELDS_UI=1 -DENABLE_LEGACY_NOTIFICATIONS=1 -DENABLE_MEDIA_CAPTURE=0 -DENABLE_NAVIGATOR_CONTENT_UTILS=1 -DENABLE_NOTIFICATIONS=1 -DENABLE_ORIENTATION_EVENTS=0 -DENABLE_PAGE_POPUP=1 -DENABLE_SHARED_WORKERS=1 -DENABLE_WEB_AUDIO=1 -DENABLE_8BIT_TEXTRUN=1 -DENABLE_BINDING_INTEGRITY=1 -DENABLE_3D_RENDERING=1 -DENABLE_ACCELERATED_2D_CANVAS=1 -DWTF_USE_ACCELERATED_COMPOSITING=1 -DENABLE_RUBBER_BANDING=1 -DWTF_USE_SKIA_ON_MAC_CHROMIUM=1 -DBUILDING_CHROMIUM__=1 -DWTF_USE_NEW_THEME=1 -DU_USING_ICU_NAMESPACE=0 -DU_STATIC_IMPLEMENTATION -DSK_BUILD_NO_IMAGE_ENCODE -DSK_DEFERRED_CANVAS_USES_GPIPE=1 &apos;-DGR_GL_CUSTOM_SETUP_HEADER=&quot;GrGLConfig_chrome.h&quot;&apos; -DGR_AGGRESSIVE_SHADER_OPTS=1 -DSK_ENABLE_INST_COUNT=0 -DSK_USE_POSIX_THREADS -DCHROME_PNG_WRITE_SUPPORT -DPNG_USER_CONFIG -DLIBXML_STATIC -DLIBXSLT_STATIC -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_FORTIFY_SOURCE=2 -I../../Source/WebKit/chromium/third_party/icu/public/common -I../../Source/WebKit/chromium/third_party/icu/public/i18n -I../../Source/WebKit/chromium/third_party/khronos -I../../Source/WebKit/chromium/gpu -I../../Source/WebKit/chromium -I../../Source/WebKit/chromium/third_party -I../../Source/Platform/chromium -Iobj/Source/WebCore/WebCore.gyp/webcore_remaining.gen -I../../Source/WebCore -I../../Source -I../../Source/WebCore/Modules/battery -I../../Source/WebCore/Modules/filesystem -I../../Source/WebCore/Modules/filesystem/chromium -I../../Source/WebCore/Modules/gamepad -I../../Source/WebCore/Modules/geolocation -I../../Source/WebCore/Modules/indexeddb -I../../Source/WebCore/Modules/indexeddb/chromium -I../../Source/WebCore/Modules/mediasource -I../../Source/WebCore/Modules/mediastream -I../../Source/WebCore/Modules/navigatorcontentutils -I../../Source/WebCore/Modules/notifications -I../../Source/WebCore/Modules/proximity -I../../Source/WebCore/Modules/quota -I../../Source/WebCore/Modules/speech -I../../Source/WebCore/Modules/webaudio -I../../Source/WebCore/Modules/webdatabase -I../../Source/WebCore/Modules/webdatabase/chromium -I../../Source/WebCore/Modules/websockets -I../../Source/WebCore/accessibility -I../../Source/WebCore/accessibility/chromium -I../../Source/WebCore/bindings -I../../Source/WebCore/bindings/generic -I../../Source/WebCore/bindings/v8 -I../../Source/WebCore/bindings/v8/custom -I../../Source/WebCore/bridge -I../../Source/WebCore/bridge/jni -I../../Source/WebCore/bridge/jni/v8 -I../../Source/WebCore/css -I../../Source/WebCore/dom -I../../Source/WebCore/dom/default -I../../Source/WebCore/dom/default/chromium -I../../Source/WebCore/editing -I../../Source/WebCore/fileapi -I../../Source/WebCore/history -I../../Source/WebCore/html -I../../Source/WebCore/html/canvas -I../../Source/WebCore/html/parser -I../../Source/WebCore/html/shadow -I../../Source/WebCore/html/track -I../../Source/WebCore/inspector -I../../Source/WebCore/loader -I../../Source/WebCore/loader/appcache -I../../Source/WebCore/loader/archive -I../../Source/WebCore/loader/archive/cf -I../../Source/WebCore/loader/archive/mhtml -I../../Source/WebCore/loader/cache -I../../Source/WebCore/loader/icon -I../../Source/WebCore/mathml -I../../Source/WebCore/page -I../../Source/WebCore/page/animation -I../../Source/WebCore/page/chromium -I../../Source/WebCore/page/scrolling -I../../Source/WebCore/page/scrolling/chromium -I../../Source/WebCore/platform -I../../Source/WebCore/platform/animation -I../../Source/WebCore/platform/audio -I../../Source/WebCore/platform/audio/chromium -I../../Source/WebCore/platform/chromium -I../../Source/WebCore/platform/chromium/support -I../../Source/WebCore/platform/graphics -I../../Source/WebCore/platform/graphics/chromium -I../../Source/WebCore/platform/graphics/chromium/cc -I../../Source/WebCore/platform/graphics/cpu/arm -I../../Source/WebCore/platform/graphics/cpu/arm/filters -I../../Source/WebCore/platform/graphics/filters -I../../Source/WebCore/platform/graphics/filters/skia -I../../Source/WebCore/platform/graphics/gpu -I../../Source/WebCore/platform/graphics/opentype -I../../Source/WebCore/platform/graphics/skia -I../../Source/WebCore/platform/graphics/transforms -I../../Source/WebCore/platform/image-decoders -I../../Source/WebCore/platform/image-decoders/bmp -I../../Source/WebCore/platform/image-decoders/gif -I../../Source/WebCore/platform/image-decoders/ico -I../../Source/WebCore/platform/image-decoders/jpeg -I../../Source/WebCore/platform/image-decoders/png -I../../Source/WebCore/platform/image-decoders/skia -I../../Source/WebCore/platform/image-decoders/webp -I../../Source/WebCore/platform/image-encoders/skia -I../../Source/WebCore/platform/leveldb -I../../Source/WebCore/platform/mediastream -I../../Source/WebCore/platform/mediastream/chromium -I../../Source/WebCore/platform/mock -I../../Source/WebCore/platform/network -I../../Source/WebCore/platform/network/chromium -I../../Source/WebCore/platform/sql -I../../Source/WebCore/platform/text -I../../Source/WebCore/platform/text/transcoder -I../../Source/WebCore/plugins -I../../Source/WebCore/plugins/chromium -I../../Source/WebCore/rendering -I../../Source/WebCore/rendering/mathml -I../../Source/WebCore/rendering/style -I../../Source/WebCore/rendering/svg -I../../Source/WebCore/storage -I../../Source/WebCore/svg -I../../Source/WebCore/svg/animation -I../../Source/WebCore/svg/graphics -I../../Source/WebCore/svg/graphics/filters -I../../Source/WebCore/svg/properties -I../../Source/ThirdParty/glu -I../../Source/WebCore/workers -I../../Source/WebCore/workers/chromium -I../../Source/WebCore/xml -I../../Source/WebCore/xml/parser -I../../Source/WebCore -I../../Source/WebCore/platform/audio/mac -I../../Source/WebCore/platform/cocoa -I../../Source/WebCore/platform/graphics/cg -I../../Source/WebCore/platform/graphics/cocoa -I../../Source/WebCore/platform/graphics/mac -I../../Source/WebCore/platform/mac -I../../Source/WebCore/platform/text/mac -I../../Source/WebCore/platform/graphics/harfbuzz -I../../Source/WebCore/platform/graphics/harfbuzz/ng -I../../Source/WebKit/chromium/third_party/angle/include/GLSLANG -Igen/webkit -Igen/webkit/bindings -I../../Source/WebKit/chromium/third_party/apple_webkit -I../../Source/WTF -I../../Source/JavaScriptCore -I../../Source/WebKit/chromium/skia/config -I../../Source/WebKit/chromium/third_party/skia/src/core -I../../Source/WebKit/chromium/third_party/skia/include/config -I../../Source/WebKit/chromium/third_party/skia/include/core -I../../Source/WebKit/chromium/third_party/skia/include/effects -I../../Source/WebKit/chromium/third_party/skia/include/pdf -I../../Source/WebKit/chromium/third_party/skia/include/gpu -I../../Source/WebKit/chromium/third_party/skia/include/gpu/gl -I../../Source/WebKit/chromium/third_party/skia/include/pipe -I../../Source/WebKit/chromium/third_party/skia/include/ports -I../../Source/WebKit/chromium/third_party/skia/include/utils -I../../Source/WebKit/chromium/skia/ext -I../../Source/WebKit/chromium/third_party/skia/include/utils/mac -I../../Source/WebKit/chromium/third_party/iccjpeg -I../../Source/WebKit/chromium/third_party/libwebp -I../../Source/WebKit/chromium/third_party/libpng -I../../Source/WebKit/chromium/third_party/libxml/mac/include -I../../Source/WebKit/chromium/third_party/libxml/src/include -I../../Source/WebKit/chromium/third_party/libxslt -I../../Source/WebKit/chromium/third_party/npapi -I../../Source/WebKit/chromium/third_party/npapi/bindings -I../../Source/WebKit/chromium/third_party/ots/include -I../../Source/WebKit/chromium/third_party/qcms/src -I../../Source/WebKit/chromium/third_party/sqlite -I../../Source/WebKit/chromium/third_party/zlib -I../../Source/WebKit/chromium/v8/include -I../../Source/WebKit/chromium/third_party/libjpeg_turbo -I../../Source/WebKit/chromium/third_party/leveldatabase/src/include -I../../Source/WebKit/chromium/third_party/leveldatabase/src -I../../Source/WebKit/chromium/third_party/leveldatabase -isysroot /Developer/SDKs/MacOSX10.6.sdk -O3 -gdwarf-2 -fvisibility=hidden -Werror -Wnewline-eof -mmacosx-version-min=10.6 -arch i386 -Wglobal-constructors -Wunused-parameter -Wall -Wendif-labels -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wheader-hygiene -Wno-c++11-narrowing -Wno-reserved-user-defined-literal -Wno-char-subscripts -Wno-unused-function -Wno-covered-switch-default -Wstring-conversion -Wexit-time-destructors -fno-rtti -fno-exceptions -fvisibility-inlines-hidden -fno-threadsafe-statics -fcolor-diagnostics -fno-strict-aliasing -std=gnu++11 -include ../../Source/WebCore/WebCorePrefix.h -c ../../Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.cpp -o obj/source/webcore/modules/indexeddb/webcore_remaining.idbleveldbcoding.o
In file included from ../../Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.cpp:27:
../../Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.h:116:48: error: shift count &gt;= width of type [-Werror,-Wshift-count-overflow]
    static const int64_t kMaxDatabaseId = (1UL &lt;&lt; kMaxDatabaseIdBits) - 1; // max signed int64_t
                                               ^  ~~~~~~~~~~~~~~~~~~
../../Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.h:117:51: error: shift count &gt;= width of type [-Werror,-Wshift-count-overflow]
    static const int64_t kMaxObjectStoreId = (1UL &lt;&lt; kMaxObjectStoreIdBits) - 1; // max signed int64_t
                                                  ^  ~~~~~~~~~~~~~~~~~~~~~
2 errors generated.
FAILED: ../../Source/WebKit/chromium/third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/source/webcore/modules/indexeddb/webcore_remaining.idbbackingstore.o.d -DUSE_SKIA -DCHROMIUM_BUILD -DUSE_LIBJPEG_TURBO=1 -DENABLE_ONE_CLICK_SIGNIN -DENABLE_REMOTING=1 -DENABLE_WEBRTC=1 -DENABLE_PEPPER_THREADING -DENABLE_CONFIGURATION_POLICY -DENABLE_INPUT_SPEECH -DENABLE_NOTIFICATIONS -DENABLE_HIDPI=1 -DENABLE_GPU=1 -DENABLE_EGLIMAGE=1 -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PLUGIN_INSTALLATION=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_BACKGROUND=1 -DENABLE_AUTOMATION=1 -DENABLE_GOOGLE_NOW=1 -DENABLE_LANGUAGE_DETECTION=1 -DENABLE_PRINTING=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_MANAGED_USERS=1 &apos;-DWEBCORE_NAVIGATOR_VENDOR=&quot;Google Inc.&quot;&apos; -DWEBKIT_IMPLEMENTATION=1 &apos;-DWEBCORE_NAVIGATOR_PLATFORM=&quot;MacIntel&quot;&apos; -DWebCascadeList=ChromiumWebCoreObjCWebCascadeList -DWebCoreFlippedView=ChromiumWebCoreObjCWebCoreFlippedView -DWebCoreTextFieldCell=ChromiumWebCoreObjCWebCoreTextFieldCell -DWebScrollbarPrefsObserver=ChromiumWebCoreObjCWebScrollbarPrefsObserver -DWebCoreRenderThemeNotificationObserver=ChromiumWebCoreObjCWebCoreRenderThemeNotificationObserver -DWebFontCache=ChromiumWebCoreObjCWebFontCache -DWebScrollAnimationHelperDelegate=ChromiumWebCoreObjCWebScrollAnimationHelperDelegate -DWebScrollbarPainterControllerDelegate=ChromiumWebCoreObjCWebScrollbarPainterControllerDelegate -DWebScrollbarPainterDelegate=ChromiumWebCoreObjCWebScrollbarPainterDelegate -DWebScrollbarPartAnimation=ChromiumWebCoreObjCWebScrollbarPartAnimation -DENABLE_3D_PLUGIN=1 -DENABLE_BATTERY_STATUS=0 -DENABLE_BLOB=1 -DENABLE_BLOB_SLICE=1 -DENABLE_CANVAS_PATH=1 -DENABLE_CANVAS_PROXY=1 -DENABLE_CHANNEL_MESSAGING=1 -DENABLE_CSP_NEXT=1 -DENABLE_CSS3_CONDITIONAL_RULES=0 -DENABLE_CSS3_TEXT=0 -DENABLE_CSS3_TEXT_LINE_BREAK=0 -DENABLE_CSS_BOX_DECORATION_BREAK=1 -DENABLE_CSS_COMPOSITING=0 -DENABLE_CSS_DEVICE_ADAPTATION=0 -DENABLE_CSS_EXCLUSIONS=1 -DENABLE_CSS_FILTERS=1 -DENABLE_CSS_IMAGE_SET=1 -DENABLE_CSS_IMAGE_RESOLUTION=0 -DENABLE_CSS_REGIONS=1 -DENABLE_CSS_SHADERS=1 -DENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED=0 -DENABLE_CSS_VARIABLES=1 -DENABLE_CSS_STICKY_POSITION=1 -DENABLE_CUSTOM_ELEMENTS=1 -DENABLE_CUSTOM_SCHEME_HANDLER=0 -DENABLE_DASHBOARD_SUPPORT=0 -DENABLE_DATA_TRANSFER_ITEMS=1 -DENABLE_DETAILS_ELEMENT=1 -DENABLE_DEVICE_ORIENTATION=1 -DENABLE_DIALOG_ELEMENT=1 -DENABLE_DIRECTORY_UPLOAD=1 -DENABLE_DOM4_EVENTS_CONSTRUCTOR=1 -DENABLE_DOWNLOAD_ATTRIBUTE=1 -DENABLE_DRAGGABLE_REGION=1 -DENABLE_ENCRYPTED_MEDIA=1 -DENABLE_FILE_SYSTEM=1 -DENABLE_FILTERS=1 -DENABLE_FONT_LOAD_EVENTS=1 -DENABLE_FULLSCREEN_API=1 -DENABLE_GAMEPAD=1 -DENABLE_GEOLOCATION=1 -DENABLE_GESTURE_EVENTS=1 -DENABLE_ICONDATABASE=0 -DENABLE_IFRAME_SEAMLESS=1 -DENABLE_INDEXED_DATABASE=1 -DENABLE_INPUT_TYPE_DATE=1 -DENABLE_INPUT_TYPE_DATETIMELOCAL=1 -DENABLE_INPUT_TYPE_MONTH=1 -DENABLE_INPUT_TYPE_TIME=1 -DENABLE_JAVASCRIPT_DEBUGGER=1 -DENABLE_JAVASCRIPT_I18N_API=1 -DENABLE_LEGACY_CSS_VENDOR_PREFIXES=0 -DENABLE_LEGACY_VIEWPORT_ADAPTION=1 -DENABLE_LEGACY_VENDOR_PREFIXES=0 -DENABLE_LEGACY_WEB_AUDIO=1 -DENABLE_LINK_PREFETCH=1 -DENABLE_LINK_PRERENDER=1 -DENABLE_MATHML=0 -DENABLE_MEDIA_SOURCE=1 -DENABLE_MEDIA_STATISTICS=1 -DENABLE_MEDIA_STREAM=1 -DENABLE_METER_ELEMENT=1 -DENABLE_MHTML=1 -DENABLE_MICRODATA=0 -DENABLE_MOUSE_CURSOR_SCALE=1 -DENABLE_NOSNIFF=1 -DENABLE_PAGE_VISIBILITY_API=1 -DENABLE_PERFORMANCE_TIMELINE=1 -DENABLE_POINTER_LOCK=1 -DENABLE_PROGRESS_ELEMENT=1 -DENABLE_PROXIMITY_EVENTS=0 -DENABLE_QUOTA=1 -DENABLE_REQUEST_ANIMATION_FRAME=1 -DENABLE_REQUEST_AUTOCOMPLETE=1 -DENABLE_RESOLUTION_MEDIA_QUERY=0 -DENABLE_RESOURCE_TIMING=1 -DENABLE_RUBY=1 -DENABLE_SANDBOX=1 -DENABLE_SCRIPTED_SPEECH=1 -DENABLE_SHADOW_DOM=1 -DENABLE_SMOOTH_SCROLLING=1 -DENABLE_SPEECH_SYNTHESIS=0 -DENABLE_SQL_DATABASE=1 -DENABLE_STYLE_SCOPED=1 -DENABLE_SUBPIXEL_LAYOUT=1 -DENABLE_SVG=1 -DENABLE_SVG_FONTS=1 -DENABLE_TEMPLATE_ELEMENT=1 -DENABLE_TEXT_AUTOSIZING=1 -DENABLE_THREADED_HTML_PARSER=1 -DENABLE_TOUCH_ADJUSTMENT=1 -DENABLE_TOUCH_EVENTS=1 -DENABLE_TOUCH_EVENT_TRACKING=1 -DENABLE_TOUCH_ICON_LOADING=0 -DENABLE_TOUCH_SLIDER=1 -DENABLE_USER_TIMING=1 -DENABLE_V8_SCRIPT_DEBUG_SERVER=1 -DENABLE_VIDEO=1 -DENABLE_VIDEO_TRACK=1 -DENABLE_VIEWPORT=1 -DENABLE_VIEW_MODE_CSS_MEDIA=1 -DENABLE_WEBGL=1 -DENABLE_WEB_SOCKETS=1 -DENABLE_WEB_TIMING=1 -DENABLE_WORKERS=1 -DENABLE_XHR_TIMEOUT=0 -DENABLE_XSLT=1 -DWTF_USE_LEVELDB=1 -DWTF_USE_BUILTIN_UTF8_CODEC=1 -DWTF_USE_OPENTYPE_SANITIZER=1 -DWTF_USE_RTL_SCROLLBAR=1 -DWTF_USE_SKIA_TEXT=1 -DWTF_USE_WEBP=1 -DWTF_USE_WEBKIT_IMAGE_DECODERS=1 -DENABLE_CALENDAR_PICKER=1 -DENABLE_DATALIST_ELEMENT=1 -DENABLE_INPUT_SPEECH=1 -DENABLE_INPUT_TYPE_COLOR=1 -DENABLE_INPUT_TYPE_WEEK=1 -DENABLE_INPUT_MULTIPLE_FIELDS_UI=1 -DENABLE_LEGACY_NOTIFICATIONS=1 -DENABLE_MEDIA_CAPTURE=0 -DENABLE_NAVIGATOR_CONTENT_UTILS=1 -DENABLE_NOTIFICATIONS=1 -DENABLE_ORIENTATION_EVENTS=0 -DENABLE_PAGE_POPUP=1 -DENABLE_SHARED_WORKERS=1 -DENABLE_WEB_AUDIO=1 -DENABLE_8BIT_TEXTRUN=1 -DENABLE_BINDING_INTEGRITY=1 -DENABLE_3D_RENDERING=1 -DENABLE_ACCELERATED_2D_CANVAS=1 -DWTF_USE_ACCELERATED_COMPOSITING=1 -DENABLE_RUBBER_BANDING=1 -DWTF_USE_SKIA_ON_MAC_CHROMIUM=1 -DBUILDING_CHROMIUM__=1 -DWTF_USE_NEW_THEME=1 -DU_USING_ICU_NAMESPACE=0 -DU_STATIC_IMPLEMENTATION -DSK_BUILD_NO_IMAGE_ENCODE -DSK_DEFERRED_CANVAS_USES_GPIPE=1 &apos;-DGR_GL_CUSTOM_SETUP_HEADER=&quot;GrGLConfig_chrome.h&quot;&apos; -DGR_AGGRESSIVE_SHADER_OPTS=1 -DSK_ENABLE_INST_COUNT=0 -DSK_USE_POSIX_THREADS -DCHROME_PNG_WRITE_SUPPORT -DPNG_USER_CONFIG -DLIBXML_STATIC -DLIBXSLT_STATIC -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_FORTIFY_SOURCE=2 -I../../Source/WebKit/chromium/third_party/icu/public/common -I../../Source/WebKit/chromium/third_party/icu/public/i18n -I../../Source/WebKit/chromium/third_party/khronos -I../../Source/WebKit/chromium/gpu -I../../Source/WebKit/chromium -I../../Source/WebKit/chromium/third_party -I../../Source/Platform/chromium -Iobj/Source/WebCore/WebCore.gyp/webcore_remaining.gen -I../../Source/WebCore -I../../Source -I../../Source/WebCore/Modules/battery -I../../Source/WebCore/Modules/filesystem -I../../Source/WebCore/Modules/filesystem/chromium -I../../Source/WebCore/Modules/gamepad -I../../Source/WebCore/Modules/geolocation -I../../Source/WebCore/Modules/indexeddb -I../../Source/WebCore/Modules/indexeddb/chromium -I../../Source/WebCore/Modules/mediasource -I../../Source/WebCore/Modules/mediastream -I../../Source/WebCore/Modules/navigatorcontentutils -I../../Source/WebCore/Modules/notifications -I../../Source/WebCore/Modules/proximity -I../../Source/WebCore/Modules/quota -I../../Source/WebCore/Modules/speech -I../../Source/WebCore/Modules/webaudio -I../../Source/WebCore/Modules/webdatabase -I../../Source/WebCore/Modules/webdatabase/chromium -I../../Source/WebCore/Modules/websockets -I../../Source/WebCore/accessibility -I../../Source/WebCore/accessibility/chromium -I../../Source/WebCore/bindings -I../../Source/WebCore/bindings/generic -I../../Source/WebCore/bindings/v8 -I../../Source/WebCore/bindings/v8/custom -I../../Source/WebCore/bridge -I../../Source/WebCore/bridge/jni -I../../Source/WebCore/bridge/jni/v8 -I../../Source/WebCore/css -I../../Source/WebCore/dom -I../../Source/WebCore/dom/default -I../../Source/WebCore/dom/default/chromium -I../../Source/WebCore/editing -I../../Source/WebCore/fileapi -I../../Source/WebCore/history -I../../Source/WebCore/html -I../../Source/WebCore/html/canvas -I../../Source/WebCore/html/parser -I../../Source/WebCore/html/shadow -I../../Source/WebCore/html/track -I../../Source/WebCore/inspector -I../../Source/WebCore/loader -I../../Source/WebCore/loader/appcache -I../../Source/WebCore/loader/archive -I../../Source/WebCore/loader/archive/cf -I../../Source/WebCore/loader/archive/mhtml -I../../Source/WebCore/loader/cache -I../../Source/WebCore/loader/icon -I../../Source/WebCore/mathml -I../../Source/WebCore/page -I../../Source/WebCore/page/animation -I../../Source/WebCore/page/chromium -I../../Source/WebCore/page/scrolling -I../../Source/WebCore/page/scrolling/chromium -I../../Source/WebCore/platform -I../../Source/WebCore/platform/animation -I../../Source/WebCore/platform/audio -I../../Source/WebCore/platform/audio/chromium -I../../Source/WebCore/platform/chromium -I../../Source/WebCore/platform/chromium/support -I../../Source/WebCore/platform/graphics -I../../Source/WebCore/platform/graphics/chromium -I../../Source/WebCore/platform/graphics/chromium/cc -I../../Source/WebCore/platform/graphics/cpu/arm -I../../Source/WebCore/platform/graphics/cpu/arm/filters -I../../Source/WebCore/platform/graphics/filters -I../../Source/WebCore/platform/graphics/filters/skia -I../../Source/WebCore/platform/graphics/gpu -I../../Source/WebCore/platform/graphics/opentype -I../../Source/WebCore/platform/graphics/skia -I../../Source/WebCore/platform/graphics/transforms -I../../Source/WebCore/platform/image-decoders -I../../Source/WebCore/platform/image-decoders/bmp -I../../Source/WebCore/platform/image-decoders/gif -I../../Source/WebCore/platform/image-decoders/ico -I../../Source/WebCore/platform/image-decoders/jpeg -I../../Source/WebCore/platform/image-decoders/png -I../../Source/WebCore/platform/image-decoders/skia -I../../Source/WebCore/platform/image-decoders/webp -I../../Source/WebCore/platform/image-encoders/skia -I../../Source/WebCore/platform/leveldb -I../../Source/WebCore/platform/mediastream -I../../Source/WebCore/platform/mediastream/chromium -I../../Source/WebCore/platform/mock -I../../Source/WebCore/platform/network -I../../Source/WebCore/platform/network/chromium -I../../Source/WebCore/platform/sql -I../../Source/WebCore/platform/text -I../../Source/WebCore/platform/text/transcoder -I../../Source/WebCore/plugins -I../../Source/WebCore/plugins/chromium -I../../Source/WebCore/rendering -I../../Source/WebCore/rendering/mathml -I../../Source/WebCore/rendering/style -I../../Source/WebCore/rendering/svg -I../../Source/WebCore/storage -I../../Source/WebCore/svg -I../../Source/WebCore/svg/animation -I../../Source/WebCore/svg/graphics -I../../Source/WebCore/svg/graphics/filters -I../../Source/WebCore/svg/properties -I../../Source/ThirdParty/glu -I../../Source/WebCore/workers -I../../Source/WebCore/workers/chromium -I../../Source/WebCore/xml -I../../Source/WebCore/xml/parser -I../../Source/WebCore -I../../Source/WebCore/platform/audio/mac -I../../Source/WebCore/platform/cocoa -I../../Source/WebCore/platform/graphics/cg -I../../Source/WebCore/platform/graphics/cocoa -I../../Source/WebCore/platform/graphics/mac -I../../Source/WebCore/platform/mac -I../../Source/WebCore/platform/text/mac -I../../Source/WebCore/platform/graphics/harfbuzz -I../../Source/WebCore/platform/graphics/harfbuzz/ng -I../../Source/WebKit/chromium/third_party/angle/include/GLSLANG -Igen/webkit -Igen/webkit/bindings -I../../Source/WebKit/chromium/third_party/apple_webkit -I../../Source/WTF -I../../Source/JavaScriptCore -I../../Source/WebKit/chromium/skia/config -I../../Source/WebKit/chromium/third_party/skia/src/core -I../../Source/WebKit/chromium/third_party/skia/include/config -I../../Source/WebKit/chromium/third_party/skia/include/core -I../../Source/WebKit/chromium/third_party/skia/include/effects -I../../Source/WebKit/chromium/third_party/skia/include/pdf -I../../Source/WebKit/chromium/third_party/skia/include/gpu -I../../Source/WebKit/chromium/third_party/skia/include/gpu/gl -I../../Source/WebKit/chromium/third_party/skia/include/pipe -I../../Source/WebKit/chromium/third_party/skia/include/ports -I../../Source/WebKit/chromium/third_party/skia/include/utils -I../../Source/WebKit/chromium/skia/ext -I../../Source/WebKit/chromium/third_party/skia/include/utils/mac -I../../Source/WebKit/chromium/third_party/iccjpeg -I../../Source/WebKit/chromium/third_party/libwebp -I../../Source/WebKit/chromium/third_party/libpng -I../../Source/WebKit/chromium/third_party/libxml/mac/include -I../../Source/WebKit/chromium/third_party/libxml/src/include -I../../Source/WebKit/chromium/third_party/libxslt -I../../Source/WebKit/chromium/third_party/npapi -I../../Source/WebKit/chromium/third_party/npapi/bindings -I../../Source/WebKit/chromium/third_party/ots/include -I../../Source/WebKit/chromium/third_party/qcms/src -I../../Source/WebKit/chromium/third_party/sqlite -I../../Source/WebKit/chromium/third_party/zlib -I../../Source/WebKit/chromium/v8/include -I../../Source/WebKit/chromium/third_party/libjpeg_turbo -I../../Source/WebKit/chromium/third_party/leveldatabase/src/include -I../../Source/WebKit/chromium/third_party/leveldatabase/src -I../../Source/WebKit/chromium/third_party/leveldatabase -isysroot /Developer/SDKs/MacOSX10.6.sdk -O3 -gdwarf-2 -fvisibility=hidden -Werror -Wnewline-eof -mmacosx-version-min=10.6 -arch i386 -Wglobal-constructors -Wunused-parameter -Wall -Wendif-labels -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wheader-hygiene -Wno-c++11-narrowing -Wno-reserved-user-defined-literal -Wno-char-subscripts -Wno-unused-function -Wno-covered-switch-default -Wstring-conversion -Wexit-time-destructors -fno-rtti -fno-exceptions -fvisibility-inlines-hidden -fno-threadsafe-statics -fcolor-diagnostics -fno-strict-aliasing -std=gnu++11 -include ../../Source/WebCore/WebCorePrefix.h -c ../../Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp -o obj/source/webcore/modules/indexeddb/webcore_remaining.idbbackingstore.o
In file included from ../../Source/WebCore/Modules/indexeddb/IDBBackingStore.cpp:36:
../../Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.h:116:48: error: shift count &gt;= width of type [-Werror,-Wshift-count-overflow]
    static const int64_t kMaxDatabaseId = (1UL &lt;&lt; kMaxDatabaseIdBits) - 1; // max signed int64_t
                                               ^  ~~~~~~~~~~~~~~~~~~
../../Source/WebCore/Modules/indexeddb/IDBLevelDBCoding.h:117:51: error: shift count &gt;= width of type [-Werror,-Wshift-count-overflow]
    static const int64_t kMaxObjectStoreId = (1UL &lt;&lt; kMaxObjectStoreIdBits) - 1; // max signed int64_t
                                                  ^  ~~~~~~~~~~~~~~~~~~~~~
2 errors generated.
ninja: build stopped: subcommand failed.

from http://build.webkit.org/builders/Chromium%20Mac%20Release/builds/57528/steps/compile-webkit/logs/stdio, but I don&apos;t think this compiles anywhere.

1UL is a 32 bit type, I believe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852593</commentid>
    <comment_count>3</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-03-11 12:42:38 -0700</bug_when>
    <thetext>I can&apos;t access the original bug. Make sure you add the right CC to let EWS run on your security patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852595</commentid>
    <comment_count>4</comment_count>
      <attachid>192530</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-11 12:44:16 -0700</bug_when>
    <thetext>Comment on attachment 192530
ROLLOUT of r145375

Clearing flags on attachment: 192530

Committed r145385: &lt;http://trac.webkit.org/changeset/145385&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852596</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-11 12:44:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852631</commentid>
    <comment_count>6</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-03-11 13:06:38 -0700</bug_when>
    <thetext>erg, sorry. It was compiling but this collided with another patch and I merged the wrong way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852633</commentid>
    <comment_count>7</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-03-11 13:07:00 -0700</bug_when>
    <thetext>This patch also broke IDBLevelDBCodingTest.ComparisonTest:

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=@ToT - chromium.org&amp;testType=webkit_unit_tests&amp;tests=IDBLevelDBCodingTest.ComparisonTest

Failure:

Received signal 11 SEGV_MAPERR 0000bbadbeef
 [0x7fba14b3f52c] base::debug::StackTrace::StackTrace()
 [0x7fba14b3edd6] base::debug::(anonymous namespace)::StackDumpSignalHandler()
 [0x7fba0a0008f0] &lt;unknown&gt;
 [0x7fba11773d06] WebCore::IDBLevelDBCoding::KeyPrefix::KeyPrefix()
 [0x7fba1177752b] WebCore::IDBLevelDBCoding::IndexDataKey::encode()
 [0x7fba1177772d] WebCore::IDBLevelDBCoding::IndexDataKey::encodeMaxKey()
 [0x7fba10982f8f] (anonymous namespace)::IDBLevelDBCodingTest_ComparisonTest_Test::TestBody()
 [0x7fba10bfaf0c] testing::internal::HandleSehExceptionsInMethodIfSupported&lt;&gt;()
 [0x7fba10bf7f84] testing::internal::HandleExceptionsInMethodIfSupported&lt;&gt;()
 [0x7fba10beca4a] testing::Test::Run()
 [0x7fba10bed26e] testing::TestInfo::Run()
 [0x7fba10bed99c] testing::TestCase::Run()
 [0x7fba10bf2947] testing::internal::UnitTestImpl::RunAllTests()
 [0x7fba10bfc10d] testing::internal::HandleSehExceptionsInMethodIfSupported&lt;&gt;()
 [0x7fba10bf899f] testing::internal::HandleExceptionsInMethodIfSupported&lt;&gt;()
 [0x7fba10bf1416] testing::UnitTest::Run()
 [0x7fba1111345e] base::TestSuite::Run()
 [0x7fba10b2c5dc] WebKit::RunAllUnitTests()
 [0x00000045cfae] main
 [0x7fba09c8cc4d] __libc_start_main
 [0x00000045cec9] &lt;unknown&gt;
  r8: 00007fba02a6b7e0  r9: 00007fba1289b87e r10: 00000000004002d0 r11: 0000000000000000
 r12: 00007fff3e5791d0 r13: 00007fff3e57a230 r14: 0000000000000000 r15: 0000000000000000
  di: 0000000000000000  si: 00000000efcdab90  bp: 00007fff3e579060  bx: 00007fff3e5791d0
  dx: 00007fba09fece00  ax: 00000000bbadbeef  cx: 00007fba09d46acd  sp: 00007fff3e579040
  ip: 00007fba11773d06 efl: 0000000000010246 cgf: 0000000000000033 erf: 0000000000000006
 trp: 000000000000000e msk: 0000000000000000 cr2: 00000000bbadbeef</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192530</attachid>
            <date>2013-03-11 12:35:44 -0700</date>
            <delta_ts>2013-03-11 12:44:16 -0700</delta_ts>
            <desc>ROLLOUT of r145375</desc>
            <filename>bug-112050-20130311193143.patch</filename>
            <type>text/plain</type>
            <size>52915</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzY2OWZjODA0YWU5NTYz
ZGE5ZDY2ZjA1YWE0NWUzNDc1OTE5Y2QzYy4uNTk3ZTQxMmJhMGY5ZDE5ZjhmOWY3MDc2Y2IxNDJm
NWNiZmViYWJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEzLTAzLTExICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTQ1Mzc1LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xNDUzNzUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMjA1MAorCisgICAgICAgIERvZXMgbm90IGNvbXBpbGUgKFJlcXVlc3RlZCBi
eSBqYW1lc3Igb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJC
YWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlOjpnZXRP
YmplY3RTdG9yZXMpOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlOjpjcmVhdGVP
YmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmU6OmRlbGV0ZU9i
amVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZTo6Z2V0UmVjb3Jk
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZTo6cHV0UmVjb3JkKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZTo6Y2xlYXJPYmplY3RTdG9yZSk6CisgICAgICAg
IChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmU6OmRlbGV0ZVJlY29yZCk6CisgICAgICAgIChXZWJD
b3JlOjpJREJCYWNraW5nU3RvcmU6OmdldEtleUdlbmVyYXRvckN1cnJlbnROdW1iZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlOjptYXliZVVwZGF0ZUtleUdlbmVyYXRvckN1
cnJlbnROdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlOjprZXlFeGlz
dHNJbk9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZTo6Z2V0
SW5kZXhlcyk6CisgICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmU6OmNyZWF0ZUluZGV4
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlSW5kZXgpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlOjpwdXRJbmRleERhdGFGb3JSZWNvcmQpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlOjpmaW5kS2V5SW5JbmRleCk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmU6OmdldFByaW1hcnlLZXlWaWFJbmRleCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmU6OmtleUV4aXN0c0luSW5kZXgpOgorICAg
ICAgICAoV2ViQ29yZTo6aW5kZXhDdXJzb3JPcHRpb25zKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKElEQkJhY2tpbmdTdG9yZSk6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEZWxldGVJbmRleE9wZXJhdGlvbjo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRlbGV0ZUluZGV4T3BlcmF0aW9uOjpEZWxldGVJbmRleE9wZXJhdGlvbik6Cisg
ICAgICAgIChEZWxldGVJbmRleE9wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRh
YmFzZUJhY2tlbmRJbXBsOjpvcGVuSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0
YWJhc2VCYWNrZW5kSW1wbDo6ZGVsZXRlSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRl
SW5kZXhPcGVyYXRpb246OnBlcmZvcm0pOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlUmFuZ2VP
cGVyYXRpb246OnBlcmZvcm0pOgorICAgICAgICAoV2ViQ29yZTo6Q2xlYXJPcGVyYXRpb246OnBl
cmZvcm0pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SURCTGV2ZWxEQkNvZGluZzo6S2V5UHJlZml4OjpLZXlQcmVm
aXgpOgorICAgICAgICAoV2ViQ29yZTo6SURCTGV2ZWxEQkNvZGluZzo6S2V5UHJlZml4OjplbmNv
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCTGV2ZWxEQkNvZGluZzo6U2NoZW1hVmVyc2lvbktl
eTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkxldmVsREJDb2Rpbmc6Ok1heERhdGFi
YXNlSWRLZXk6OmVuY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJMZXZlbERCQ29kaW5nOjpE
YXRhVmVyc2lvbktleTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkxldmVsREJDb2Rp
bmc6OkRhdGFiYXNlRnJlZUxpc3RLZXk6OmVuY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJM
ZXZlbERCQ29kaW5nOjpEYXRhYmFzZU5hbWVLZXk6OmVuY29kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJMZXZlbERCQ29kaW5nOjpEYXRhYmFzZU1ldGFEYXRhS2V5OjplbmNvZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCTGV2ZWxEQkNvZGluZzo6T2JqZWN0U3RvcmVNZXRhRGF0YUtleTo6ZW5j
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkxldmVsREJDb2Rpbmc6OkluZGV4TWV0YURhdGFL
ZXk6OmVuY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJMZXZlbERCQ29kaW5nOjpPYmplY3RT
dG9yZUZyZWVMaXN0S2V5OjplbmNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCTGV2ZWxEQkNv
ZGluZzo6SW5kZXhGcmVlTGlzdEtleTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkxl
dmVsREJDb2Rpbmc6Ok9iamVjdFN0b3JlTmFtZXNLZXk6OmVuY29kZSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJMZXZlbERCQ29kaW5nOjpJbmRleE5hbWVzS2V5OjplbmNvZGUpOgorICAgICAgICAo
V2ViQ29yZTo6SURCTGV2ZWxEQkNvZGluZzo6T2JqZWN0U3RvcmVEYXRhS2V5OjplbmNvZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCTGV2ZWxEQkNvZGluZzo6RXhpc3RzRW50cnlLZXk6OmVuY29k
ZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxEQkNvZGluZy5oOgorICAg
ICAgICAoSURCTGV2ZWxEQkNvZGluZyk6CisgICAgICAgIChLZXlQcmVmaXgpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6SW5kZXhXcml0ZXI6OndyaXRl
SW5kZXhLZXlzKToKKwogMjAxMy0wMy0xMSAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBNdXRhdGlvbkNhbGxiYWNrIHNob3VsZCBiZSBhIFdlYklETCAnY2FsbGJh
Y2snLCBub3QgYSBbQ2FsbGJhY2tdIGludGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpp
bmRleCA1NTViZWYyMTg0M2FjYzBhYjYzNTM5YjZkZmRkN2U0NzlmMzQ2YzQ5Li43YmE2NDFlMmQz
Y2ZlYjYwOTc5NDhhMjBhYmNlZDQ2MTJhMGYwM2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTAzLTExICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZp
ZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTQ1
Mzc1LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xNDUzNzUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjA1MAorCisg
ICAgICAgIERvZXMgbm90IGNvbXBpbGUgKFJlcXVlc3RlZCBieSBqYW1lc3Igb24gI3dlYmtpdCku
CisKKyAgICAgICAgKiB0ZXN0cy9JREJCYWNraW5nU3RvcmVUZXN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OklEQkJhY2tpbmdTdG9yZVRlc3Q6OlNldFVwKToKKyAgICAgICAgKElEQkJhY2tpbmdT
dG9yZVRlc3QpOgorICAgICAgICAoV2ViQ29yZTo6VEVTVF9GKToKKyAgICAgICAgKiB0ZXN0cy9J
REJGYWtlQmFja2luZ1N0b3JlLmg6CisKIDIwMTMtMDMtMTEgIEFsZWMgRmxldHQgIDxhbGVjZmxl
dHRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEluZGV4ZWREQjogUHJvdGVjdCBhZ2FpbnN0IGtl
eSBwcmVmaXggb3ZlcmZsb3dzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCQmFja2luZ1N0b3JlLmNwcAppbmRleCAxY2FlMDQ3NDFmYTA5ZWYzNjlkZDU0YmU3
YTAwM2U1NzEwNDk1MTZlLi4wYWJjZmVkODZjNzRhNzE1ZmY2NjU2MzBlODIzZWY3ZDRiNzc0ZWQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5n
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tp
bmdTdG9yZS5jcHAKQEAgLTYzNiwxMSArNjM2LDkgQEAgc3RhdGljIGJvb2wgY2hlY2tPYmplY3RT
dG9yZUFuZE1ldGFEYXRhVHlwZShjb25zdCBMZXZlbERCSXRlcmF0b3IqIGl0LCBjb25zdCBWZWMK
IH0KIAogLy8gRklYTUU6IFRoaXMgc2hvdWxkIGRvIHNvbWUgZXJyb3IgaGFuZGxpbmcgcmF0aGVy
IHRoYW4gcGxvd2luZyBhaGVhZCB3aGVuIGJhZCBkYXRhIGlzIGVuY291bnRlcmVkLgotYm9vbCBJ
REJCYWNraW5nU3RvcmU6OmdldE9iamVjdFN0b3JlcyhpbnQ2NF90IGRhdGFiYXNlSWQsIElEQkRh
dGFiYXNlTWV0YWRhdGE6Ok9iamVjdFN0b3JlTWFwKiBvYmplY3RTdG9yZXMpCit2b2lkIElEQkJh
Y2tpbmdTdG9yZTo6Z2V0T2JqZWN0U3RvcmVzKGludDY0X3QgZGF0YWJhc2VJZCwgSURCRGF0YWJh
c2VNZXRhZGF0YTo6T2JqZWN0U3RvcmVNYXAqIG9iamVjdFN0b3JlcykKIHsKICAgICBJREJfVFJB
Q0UoIklEQkJhY2tpbmdTdG9yZTo6Z2V0T2JqZWN0U3RvcmVzIik7Ci0gICAgaWYgKCFLZXlQcmVm
aXg6OmlzVmFsaWREYXRhYmFzZUlkKGRhdGFiYXNlSWQpKQotICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgY29uc3QgVmVjdG9yPGNoYXI+IHN0YXJ0S2V5ID0gT2JqZWN0U3RvcmVNZXRhRGF0YUtl
eTo6ZW5jb2RlKGRhdGFiYXNlSWQsIDEsIDApOwogICAgIGNvbnN0IFZlY3RvcjxjaGFyPiBzdG9w
S2V5ID0gT2JqZWN0U3RvcmVNZXRhRGF0YUtleTo6ZW5jb2RlTWF4S2V5KGRhdGFiYXNlSWQpOwog
CkBAIC03MjYsMTEgKzcyNCw5IEBAIGJvb2wgSURCQmFja2luZ1N0b3JlOjpnZXRPYmplY3RTdG9y
ZXMoaW50NjRfdCBkYXRhYmFzZUlkLCBJREJEYXRhYmFzZU1ldGFkYXRhOjpPCiAgICAgICAgIH0K
IAogICAgICAgICBJREJPYmplY3RTdG9yZU1ldGFkYXRhIG1ldGFkYXRhKG9iamVjdFN0b3JlTmFt
ZSwgb2JqZWN0U3RvcmVJZCwga2V5UGF0aCwgYXV0b0luY3JlbWVudCwgbWF4SW5kZXhJZCk7Ci0g
ICAgICAgIGlmICghZ2V0SW5kZXhlcyhkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCAmbWV0YWRh
dGEuaW5kZXhlcykpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGdldEluZGV4
ZXMoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgJm1ldGFkYXRhLmluZGV4ZXMpOwogICAgICAg
ICBvYmplY3RTdG9yZXMtPnNldChvYmplY3RTdG9yZUlkLCBtZXRhZGF0YSk7CiAgICAgfQotICAg
IHJldHVybiB0cnVlOwogfQogCiBXQVJOX1VOVVNFRF9SRVRVUk4gc3RhdGljIGJvb2wgc2V0TWF4
T2JqZWN0U3RvcmVJZChMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRh
dGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkKQEAgLTc1NCw4ICs3NTAsNiBAQCBXQVJO
X1VOVVNFRF9SRVRVUk4gc3RhdGljIGJvb2wgc2V0TWF4T2JqZWN0U3RvcmVJZChMZXZlbERCVHJh
bnNhY3Rpb24qIHRyYW5zYWN0aQogYm9vbCBJREJCYWNraW5nU3RvcmU6OmNyZWF0ZU9iamVjdFN0
b3JlKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRh
dGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBJREJLZXlQYXRoJiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQpCiB7CiAgICAgSURCX1RS
QUNFKCJJREJCYWNraW5nU3RvcmU6OmNyZWF0ZU9iamVjdFN0b3JlIik7Ci0gICAgaWYgKCFLZXlQ
cmVmaXg6OnZhbGlkSWRzKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQpKQotICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgTGV2ZWxEQlRyYW5zYWN0aW9uKiBsZXZlbERCVHJhbnNhY3Rpb24gPSBJ
REJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uOjpsZXZlbERCVHJhbnNhY3Rpb25Gcm9tKHRyYW5z
YWN0aW9uKTsKICAgICBpZiAoIXNldE1heE9iamVjdFN0b3JlSWQobGV2ZWxEQlRyYW5zYWN0aW9u
LCBkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
Nzg1LDggKzc3OSw2IEBAIGJvb2wgSURCQmFja2luZ1N0b3JlOjpjcmVhdGVPYmplY3RTdG9yZShJ
REJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvCiBib29sIElEQkJhY2tpbmdT
dG9yZTo6ZGVsZXRlT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiogdHJh
bnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKQogewog
ICAgIElEQl9UUkFDRSgiSURCQmFja2luZ1N0b3JlOjpkZWxldGVPYmplY3RTdG9yZSIpOwotICAg
IGlmICghS2V5UHJlZml4Ojp2YWxpZElkcyhkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIExldmVsREJUcmFuc2FjdGlvbiogbGV2ZWxEQlRyYW5z
YWN0aW9uID0gSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbjo6bGV2ZWxEQlRyYW5zYWN0aW9u
RnJvbSh0cmFuc2FjdGlvbik7CiAKICAgICBTdHJpbmcgb2JqZWN0U3RvcmVOYW1lOwpAQCAtODA4
LDE0ICs4MDAsMTMgQEAgYm9vbCBJREJCYWNraW5nU3RvcmU6OmRlbGV0ZU9iamVjdFN0b3JlKElE
QkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW8KICAgICBkZWxldGVSYW5nZShs
ZXZlbERCVHJhbnNhY3Rpb24sIEluZGV4RnJlZUxpc3RLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBv
YmplY3RTdG9yZUlkLCAwKSwgSW5kZXhGcmVlTGlzdEtleTo6ZW5jb2RlTWF4S2V5KGRhdGFiYXNl
SWQsIG9iamVjdFN0b3JlSWQpKTsKICAgICBkZWxldGVSYW5nZShsZXZlbERCVHJhbnNhY3Rpb24s
IEluZGV4TWV0YURhdGFLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCAwLCAw
KSwgSW5kZXhNZXRhRGF0YUtleTo6ZW5jb2RlTWF4S2V5KGRhdGFiYXNlSWQsIG9iamVjdFN0b3Jl
SWQpKTsKIAotICAgIHJldHVybiBjbGVhck9iamVjdFN0b3JlKHRyYW5zYWN0aW9uLCBkYXRhYmFz
ZUlkLCBvYmplY3RTdG9yZUlkKTsKKyAgICBjbGVhck9iamVjdFN0b3JlKHRyYW5zYWN0aW9uLCBk
YXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBJ
REJCYWNraW5nU3RvcmU6OmdldFJlY29yZChJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiB0
cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNv
bnN0IElEQktleSYga2V5LCBWZWN0b3I8Y2hhcj4mIHJlY29yZCkKIHsKICAgICBJREJfVFJBQ0Uo
IklEQkJhY2tpbmdTdG9yZTo6Z2V0UmVjb3JkIik7Ci0gICAgaWYgKCFLZXlQcmVmaXg6OnZhbGlk
SWRzKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQpKQotICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgTGV2ZWxEQlRyYW5zYWN0aW9uKiBsZXZlbERCVHJhbnNhY3Rpb24gPSBJREJCYWNraW5nU3Rv
cmU6OlRyYW5zYWN0aW9uOjpsZXZlbERCVHJhbnNhY3Rpb25Gcm9tKHRyYW5zYWN0aW9uKTsKIAog
ICAgIGNvbnN0IFZlY3RvcjxjaGFyPiBsZXZlbGRiS2V5ID0gT2JqZWN0U3RvcmVEYXRhS2V5Ojpl
bmNvZGUoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwga2V5KTsKQEAgLTg3MiwxMCArODYzLDcg
QEAgV0FSTl9VTlVTRURfUkVUVVJOIHN0YXRpYyBib29sIGdldE5ld1ZlcnNpb25OdW1iZXIoTGV2
ZWxEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGkKIGJvb2wgSURCQmFja2luZ1N0b3JlOjpwdXRSZWNv
cmQoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0
YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmIGtleSwgUGFzc1Jl
ZlB0cjxTaGFyZWRCdWZmZXI+IHBycFZhbHVlLCBSZWNvcmRJZGVudGlmaWVyKiByZWNvcmRJZGVu
dGlmaWVyKQogewogICAgIElEQl9UUkFDRSgiSURCQmFja2luZ1N0b3JlOjpwdXRSZWNvcmQiKTsK
LSAgICBpZiAoIUtleVByZWZpeDo6dmFsaWRJZHMoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKICAgICBBU1NFUlQoa2V5LmlzVmFsaWQoKSk7Ci0KICAg
ICBMZXZlbERCVHJhbnNhY3Rpb24qIGxldmVsREJUcmFuc2FjdGlvbiA9IElEQkJhY2tpbmdTdG9y
ZTo6VHJhbnNhY3Rpb246OmxldmVsREJUcmFuc2FjdGlvbkZyb20odHJhbnNhY3Rpb24pOwogICAg
IGludDY0X3QgdmVyc2lvbiA9IC0xOwogICAgIGJvb2wgb2sgPSBnZXROZXdWZXJzaW9uTnVtYmVy
KGxldmVsREJUcmFuc2FjdGlvbiwgZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgdmVyc2lvbik7
CkBAIC04OTksMjQgKzg4NywxOSBAQCBib29sIElEQkJhY2tpbmdTdG9yZTo6cHV0UmVjb3JkKElE
QkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NAogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIElEQkJhY2tpbmdTdG9yZTo6Y2xlYXJPYmplY3RTdG9yZShJREJC
YWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlk
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpCit2b2lkIElEQkJhY2tpbmdTdG9yZTo6Y2xlYXJPYmpl
Y3RTdG9yZShJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRf
dCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpCiB7CiAgICAgSURCX1RSQUNFKCJJ
REJCYWNraW5nU3RvcmU6OmNsZWFyT2JqZWN0U3RvcmUiKTsKLSAgICBpZiAoIUtleVByZWZpeDo6
dmFsaWRJZHMoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICBMZXZlbERCVHJhbnNhY3Rpb24qIGxldmVsREJUcmFuc2FjdGlvbiA9IElEQkJhY2tp
bmdTdG9yZTo6VHJhbnNhY3Rpb246OmxldmVsREJUcmFuc2FjdGlvbkZyb20odHJhbnNhY3Rpb24p
OwotICAgIGNvbnN0IFZlY3RvcjxjaGFyPiBzdGFydEtleSA9IEtleVByZWZpeChkYXRhYmFzZUlk
LCBvYmplY3RTdG9yZUlkKS5lbmNvZGUoKTsKLSAgICBjb25zdCBWZWN0b3I8Y2hhcj4gc3RvcEtl
eSA9IEtleVByZWZpeChkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkICsgMSkuZW5jb2RlKCk7Cisg
ICAgY29uc3QgVmVjdG9yPGNoYXI+IHN0YXJ0S2V5ID0gS2V5UHJlZml4KGRhdGFiYXNlSWQsIG9i
amVjdFN0b3JlSWQsIDApLmVuY29kZSgpOworICAgIGNvbnN0IFZlY3RvcjxjaGFyPiBzdG9wS2V5
ID0gS2V5UHJlZml4KGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQgKyAxLCAwKS5lbmNvZGUoKTsK
IAogICAgIGRlbGV0ZVJhbmdlKGxldmVsREJUcmFuc2FjdGlvbiwgc3RhcnRLZXksIHN0b3BLZXkp
OwotICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIElEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlUmVj
b3JkKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRh
dGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgUmVjb3JkSWRlbnRpZmllciYg
cmVjb3JkSWRlbnRpZmllcikKK3ZvaWQgSURCQmFja2luZ1N0b3JlOjpkZWxldGVSZWNvcmQoSURC
QmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJ
ZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBSZWNvcmRJZGVudGlmaWVyJiByZWNvcmRJ
ZGVudGlmaWVyKQogewogICAgIElEQl9UUkFDRSgiSURCQmFja2luZ1N0b3JlOjpkZWxldGVSZWNv
cmQiKTsKLSAgICBpZiAoIUtleVByZWZpeDo6dmFsaWRJZHMoZGF0YWJhc2VJZCwgb2JqZWN0U3Rv
cmVJZCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKICAgICBMZXZlbERCVHJhbnNhY3Rpb24qIGxl
dmVsREJUcmFuc2FjdGlvbiA9IElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb246OmxldmVsREJU
cmFuc2FjdGlvbkZyb20odHJhbnNhY3Rpb24pOwogCiAgICAgY29uc3QgVmVjdG9yPGNoYXI+IG9i
amVjdFN0b3JlRGF0YUtleSA9IE9iamVjdFN0b3JlRGF0YUtleTo6ZW5jb2RlKGRhdGFiYXNlSWQs
IG9iamVjdFN0b3JlSWQsIHJlY29yZElkZW50aWZpZXIucHJpbWFyeUtleSgpKTsKQEAgLTkyNCwx
NCArOTA3LDExIEBAIGJvb2wgSURCQmFja2luZ1N0b3JlOjpkZWxldGVSZWNvcmQoSURCQmFja2lu
Z1N0b3JlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGluCiAKICAgICBjb25zdCBWZWN0b3I8
Y2hhcj4gZXhpc3RzRW50cnlLZXkgPSBFeGlzdHNFbnRyeUtleTo6ZW5jb2RlKGRhdGFiYXNlSWQs
IG9iamVjdFN0b3JlSWQsIHJlY29yZElkZW50aWZpZXIucHJpbWFyeUtleSgpKTsKICAgICBsZXZl
bERCVHJhbnNhY3Rpb24tPnJlbW92ZShleGlzdHNFbnRyeUtleSk7Ci0gICAgcmV0dXJuIHRydWU7
CiB9CiAKIAogYm9vbCBJREJCYWNraW5nU3RvcmU6OmdldEtleUdlbmVyYXRvckN1cnJlbnROdW1i
ZXIoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0
YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90JiBrZXlHZW5lcmF0b3JDdXJy
ZW50TnVtYmVyKQogewotICAgIGlmICghS2V5UHJlZml4Ojp2YWxpZElkcyhkYXRhYmFzZUlkLCBv
YmplY3RTdG9yZUlkKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIExldmVsREJUcmFuc2Fj
dGlvbiogbGV2ZWxEQlRyYW5zYWN0aW9uID0gSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbjo6
bGV2ZWxEQlRyYW5zYWN0aW9uRnJvbSh0cmFuc2FjdGlvbik7CiAKICAgICBjb25zdCBWZWN0b3I8
Y2hhcj4ga2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcktleSA9IE9iamVjdFN0b3JlTWV0YURhdGFL
ZXk6OmVuY29kZShkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCBPYmplY3RTdG9yZU1ldGFEYXRh
S2V5OjpLZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKTsKQEAgLTk4MCw4ICs5NjAsNiBAQCBib29s
IElEQkJhY2tpbmdTdG9yZTo6Z2V0S2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcihJREJCYWNraW5n
U3RvcmU6OlRyYW5zYWN0aW9uKgogCiBib29sIElEQkJhY2tpbmdTdG9yZTo6bWF5YmVVcGRhdGVL
ZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRy
YW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50
NjRfdCBuZXdOdW1iZXIsIGJvb2wgY2hlY2tDdXJyZW50KQogewotICAgIGlmICghS2V5UHJlZml4
Ojp2YWxpZElkcyhkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIExldmVsREJUcmFuc2FjdGlvbiogbGV2ZWxEQlRyYW5zYWN0aW9uID0gSURCQmFj
a2luZ1N0b3JlOjpUcmFuc2FjdGlvbjo6bGV2ZWxEQlRyYW5zYWN0aW9uRnJvbSh0cmFuc2FjdGlv
bik7CiAKICAgICBpZiAoY2hlY2tDdXJyZW50KSB7CkBAIC0xMDAxLDggKzk3OSw2IEBAIGJvb2wg
SURCQmFja2luZ1N0b3JlOjptYXliZVVwZGF0ZUtleUdlbmVyYXRvckN1cnJlbnROdW1iZXIoSURC
QmFja2luZ1N0b3JlOjpUcmFuCiBib29sIElEQkJhY2tpbmdTdG9yZTo6a2V5RXhpc3RzSW5PYmpl
Y3RTdG9yZShJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRf
dCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYga2V5LCBS
ZWNvcmRJZGVudGlmaWVyKiBmb3VuZFJlY29yZElkZW50aWZpZXIsIGJvb2wmIGZvdW5kKQogewog
ICAgIElEQl9UUkFDRSgiSURCQmFja2luZ1N0b3JlOjprZXlFeGlzdHNJbk9iamVjdFN0b3JlIik7
Ci0gICAgaWYgKCFLZXlQcmVmaXg6OnZhbGlkSWRzKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQp
KQotICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgZm91bmQgPSBmYWxzZTsKICAgICBMZXZlbERC
VHJhbnNhY3Rpb24qIGxldmVsREJUcmFuc2FjdGlvbiA9IElEQkJhY2tpbmdTdG9yZTo6VHJhbnNh
Y3Rpb246OmxldmVsREJUcmFuc2FjdGlvbkZyb20odHJhbnNhY3Rpb24pOwogICAgIGNvbnN0IFZl
Y3RvcjxjaGFyPiBsZXZlbGRiS2V5ID0gT2JqZWN0U3RvcmVEYXRhS2V5OjplbmNvZGUoZGF0YWJh
c2VJZCwgb2JqZWN0U3RvcmVJZCwga2V5KTsKQEAgLTEwNDEsMTEgKzEwMTcsOSBAQCBzdGF0aWMg
Ym9vbCBjaGVja0luZGV4QW5kTWV0YURhdGFLZXkoY29uc3QgTGV2ZWxEQkl0ZXJhdG9yKiBpdCwg
Y29uc3QgVmVjdG9yPGNoYQogCiAKIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBkbyBzb21lIGVycm9y
IGhhbmRsaW5nIHJhdGhlciB0aGFuIHBsb3dpbmcgYWhlYWQgd2hlbiBiYWQgZGF0YSBpcyBlbmNv
dW50ZXJlZC4KLWJvb2wgSURCQmFja2luZ1N0b3JlOjpnZXRJbmRleGVzKGludDY0X3QgZGF0YWJh
c2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBJREJPYmplY3RTdG9yZU1ldGFkYXRhOjpJbmRl
eE1hcCogaW5kZXhlcykKK3ZvaWQgSURCQmFja2luZ1N0b3JlOjpnZXRJbmRleGVzKGludDY0X3Qg
ZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBJREJPYmplY3RTdG9yZU1ldGFkYXRh
OjpJbmRleE1hcCogaW5kZXhlcykKIHsKICAgICBJREJfVFJBQ0UoIklEQkJhY2tpbmdTdG9yZTo6
Z2V0SW5kZXhlcyIpOwotICAgIGlmICghS2V5UHJlZml4Ojp2YWxpZElkcyhkYXRhYmFzZUlkLCBv
YmplY3RTdG9yZUlkKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGNvbnN0IFZlY3Rvcjxj
aGFyPiBzdGFydEtleSA9IEluZGV4TWV0YURhdGFLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBvYmpl
Y3RTdG9yZUlkLCAwLCAwKTsKICAgICBjb25zdCBWZWN0b3I8Y2hhcj4gc3RvcEtleSA9IEluZGV4
TWV0YURhdGFLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkICsgMSwgMCwgMCk7
CiAKQEAgLTEwOTQsNyArMTA2OCw2IEBAIGJvb2wgSURCQmFja2luZ1N0b3JlOjpnZXRJbmRleGVz
KGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBJREJPCiAKICAgICAg
ICAgaW5kZXhlcy0+c2V0KGluZGV4SWQsIElEQkluZGV4TWV0YWRhdGEoaW5kZXhOYW1lLCBpbmRl
eElkLCBrZXlQYXRoLCBpbmRleFVuaXF1ZSwgaW5kZXhNdWx0aUVudHJ5KSk7CiAgICAgfQotICAg
IHJldHVybiB0cnVlOwogfQogCiBXQVJOX1VOVVNFRF9SRVRVUk4gc3RhdGljIGJvb2wgc2V0TWF4
SW5kZXhJZChMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkKQpAQCAtMTEyMiw4ICsx
MDk1LDYgQEAgV0FSTl9VTlVTRURfUkVUVVJOIHN0YXRpYyBib29sIHNldE1heEluZGV4SWQoTGV2
ZWxEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW4KIGJvb2wgSURCQmFja2luZ1N0b3JlOjpj
cmVhdGVJbmRleChJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiBrZXlQYXRoLCBib29sIGlzVW5p
cXVlLCBib29sIGlzTXVsdGlFbnRyeSkKIHsKICAgICBJREJfVFJBQ0UoIklEQkJhY2tpbmdTdG9y
ZTo6Y3JlYXRlSW5kZXgiKTsKLSAgICBpZiAoIUtleVByZWZpeDo6dmFsaWRJZHMoZGF0YWJhc2VJ
ZCwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKICAgICBM
ZXZlbERCVHJhbnNhY3Rpb24qIGxldmVsREJUcmFuc2FjdGlvbiA9IElEQkJhY2tpbmdTdG9yZTo6
VHJhbnNhY3Rpb246OmxldmVsREJUcmFuc2FjdGlvbkZyb20odHJhbnNhY3Rpb24pOwogICAgIGlm
ICghc2V0TWF4SW5kZXhJZChsZXZlbERCVHJhbnNhY3Rpb24sIGRhdGFiYXNlSWQsIG9iamVjdFN0
b3JlSWQsIGluZGV4SWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMTQwLDExICsxMTEx
LDkgQEAgYm9vbCBJREJCYWNraW5nU3RvcmU6OmNyZWF0ZUluZGV4KElEQkJhY2tpbmdTdG9yZTo6
VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBJREJCYWNraW5nU3RvcmU6OmRlbGV0ZUluZGV4KElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rp
b24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgaW50NjRfdCBpbmRleElkKQordm9pZCBJREJCYWNraW5nU3RvcmU6OmRlbGV0ZUluZGV4KElE
QkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkKQogewogICAgIElEQl9U
UkFDRSgiSURCQmFja2luZ1N0b3JlOjpkZWxldGVJbmRleCIpOwotICAgIGlmICghS2V5UHJlZml4
Ojp2YWxpZElkcyhkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCBpbmRleElkKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIExldmVsREJUcmFuc2FjdGlvbiogbGV2ZWxEQlRyYW5zYWN0aW9u
ID0gSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbjo6bGV2ZWxEQlRyYW5zYWN0aW9uRnJvbSh0
cmFuc2FjdGlvbik7CiAKICAgICBjb25zdCBWZWN0b3I8Y2hhcj4gaW5kZXhNZXRhRGF0YVN0YXJ0
ID0gSW5kZXhNZXRhRGF0YUtleTo6ZW5jb2RlKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIGlu
ZGV4SWQsIDApOwpAQCAtMTE1NCwxNSArMTEyMywxMyBAQCBib29sIElEQkJhY2tpbmdTdG9yZTo6
ZGVsZXRlSW5kZXgoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGlu
dAogICAgIGNvbnN0IFZlY3RvcjxjaGFyPiBpbmRleERhdGFTdGFydCA9IEluZGV4RGF0YUtleTo6
ZW5jb2RlTWluS2V5KGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQpOwogICAgIGNv
bnN0IFZlY3RvcjxjaGFyPiBpbmRleERhdGFFbmQgPSBJbmRleERhdGFLZXk6OmVuY29kZU1heEtl
eShkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCBpbmRleElkKTsKICAgICBkZWxldGVSYW5nZShs
ZXZlbERCVHJhbnNhY3Rpb24sIGluZGV4RGF0YVN0YXJ0LCBpbmRleERhdGFFbmQpOwotICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIElEQkJhY2tpbmdTdG9yZTo6cHV0SW5kZXhEYXRhRm9yUmVj
b3JkKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRh
dGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJ
REJLZXkmIGtleSwgY29uc3QgUmVjb3JkSWRlbnRpZmllciYgcmVjb3JkSWRlbnRpZmllcikKK3Zv
aWQgSURCQmFja2luZ1N0b3JlOjpwdXRJbmRleERhdGFGb3JSZWNvcmQoSURCQmFja2luZ1N0b3Jl
OjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYga2V5LCBjb25zdCBS
ZWNvcmRJZGVudGlmaWVyJiByZWNvcmRJZGVudGlmaWVyKQogewogICAgIElEQl9UUkFDRSgiSURC
QmFja2luZ1N0b3JlOjpwdXRJbmRleERhdGFGb3JSZWNvcmQiKTsKICAgICBBU1NFUlQoa2V5Lmlz
VmFsaWQoKSk7Ci0gICAgaWYgKCFLZXlQcmVmaXg6OnZhbGlkSWRzKGRhdGFiYXNlSWQsIG9iamVj
dFN0b3JlSWQsIGluZGV4SWQpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgQVNTRVJUKGlu
ZGV4SWQgPj0gTWluaW11bUluZGV4SWQpOwogCiAgICAgTGV2ZWxEQlRyYW5zYWN0aW9uKiBsZXZl
bERCVHJhbnNhY3Rpb24gPSBJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uOjpsZXZlbERCVHJh
bnNhY3Rpb25Gcm9tKHRyYW5zYWN0aW9uKTsKICAgICBjb25zdCBWZWN0b3I8Y2hhcj4gaW5kZXhE
YXRhS2V5ID0gSW5kZXhEYXRhS2V5OjplbmNvZGUoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwg
aW5kZXhJZCwgZW5jb2RlSURCS2V5KGtleSksIHJlY29yZElkZW50aWZpZXIucHJpbWFyeUtleSgp
KTsKQEAgLTExNzIsNyArMTEzOSw2IEBAIGJvb2wgSURCQmFja2luZ1N0b3JlOjpwdXRJbmRleERh
dGFGb3JSZWNvcmQoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiogdHJhbnNhCiAgICAgZGF0
YS5hcHBlbmQocmVjb3JkSWRlbnRpZmllci5wcmltYXJ5S2V5KCkpOwogCiAgICAgbGV2ZWxEQlRy
YW5zYWN0aW9uLT5wdXQoaW5kZXhEYXRhS2V5LCBkYXRhKTsKLSAgICByZXR1cm4gdHJ1ZTsKIH0K
IAogc3RhdGljIGJvb2wgZmluZEdyZWF0ZXN0S2V5TGVzc1RoYW5PckVxdWFsKExldmVsREJUcmFu
c2FjdGlvbiogdHJhbnNhY3Rpb24sIGNvbnN0IFZlY3RvcjxjaGFyPiYgdGFyZ2V0LCBWZWN0b3I8
Y2hhcj4mIGZvdW5kS2V5KQpAQCAtMTIyMyw4ICsxMTg5LDYgQEAgc3RhdGljIGJvb2wgdmVyc2lv
bkV4aXN0cyhMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGkKIGJvb2wgSURCQmFja2luZ1N0b3JlOjpmaW5kS2V5SW5JbmRleChJREJCYWNraW5nU3Rv
cmU6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5JiBrZXksIFZlY3Rv
cjxjaGFyPiYgZm91bmRFbmNvZGVkUHJpbWFyeUtleSwgYm9vbCYgZm91bmQpCiB7CiAgICAgSURC
X1RSQUNFKCJJREJCYWNraW5nU3RvcmU6OmZpbmRLZXlJbkluZGV4Iik7Ci0gICAgQVNTRVJUKEtl
eVByZWZpeDo6dmFsaWRJZHMoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCkpOwot
CiAgICAgQVNTRVJUKGZvdW5kRW5jb2RlZFByaW1hcnlLZXkuaXNFbXB0eSgpKTsKICAgICBmb3Vu
ZCA9IGZhbHNlOwogCkBAIC0xMjY1LDggKzEyMjksNiBAQCBib29sIElEQkJhY2tpbmdTdG9yZTo6
ZmluZEtleUluSW5kZXgoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24s
CiBib29sIElEQkJhY2tpbmdTdG9yZTo6Z2V0UHJpbWFyeUtleVZpYUluZGV4KElEQkJhY2tpbmdT
dG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmIGtleSwgUmVm
UHRyPElEQktleT4mIHByaW1hcnlLZXkpCiB7CiAgICAgSURCX1RSQUNFKCJJREJCYWNraW5nU3Rv
cmU6OmdldFByaW1hcnlLZXlWaWFJbmRleCIpOwotICAgIGlmICghS2V5UHJlZml4Ojp2YWxpZElk
cyhkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCBpbmRleElkKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgYm9vbCBmb3VuZCA9IGZhbHNlOwogICAgIFZlY3RvcjxjaGFyPiBmb3VuZEVu
Y29kZWRQcmltYXJ5S2V5OwpAQCAtMTI4Niw4ICsxMjQ4LDYgQEAgYm9vbCBJREJCYWNraW5nU3Rv
cmU6OmdldFByaW1hcnlLZXlWaWFJbmRleChJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiB0
cmFuc2EKIGJvb2wgSURCQmFja2luZ1N0b3JlOjprZXlFeGlzdHNJbkluZGV4KElEQkJhY2tpbmdT
dG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmIGluZGV4S2V5
LCBSZWZQdHI8SURCS2V5PiYgZm91bmRQcmltYXJ5S2V5LCBib29sJiBleGlzdHMpCiB7CiAgICAg
SURCX1RSQUNFKCJJREJCYWNraW5nU3RvcmU6OmtleUV4aXN0c0luSW5kZXgiKTsKLSAgICBpZiAo
IUtleVByZWZpeDo6dmFsaWRJZHMoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGV4aXN0cyA9IGZhbHNlOwogICAgIFZlY3Rv
cjxjaGFyPiBmb3VuZEVuY29kZWRQcmltYXJ5S2V5OwpAQCAtMTgwMiw5ICsxNzYyLDYgQEAgYm9v
bCBvYmplY3RTdG9yZUN1cnNvck9wdGlvbnMoTGV2ZWxEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlv
biwgaW50NjRfdCBkYXRhYmFzZUkKIGJvb2wgaW5kZXhDdXJzb3JPcHRpb25zKExldmVsREJUcmFu
c2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleVJhbmdlKiByYW5nZSwgSW5kZXhl
ZERCOjpDdXJzb3JEaXJlY3Rpb24gZGlyZWN0aW9uLCBJREJCYWNraW5nU3RvcmU6OkN1cnNvcjo6
Q3Vyc29yT3B0aW9ucyYgY3Vyc29yT3B0aW9ucykKIHsKICAgICBBU1NFUlQodHJhbnNhY3Rpb24p
OwotICAgIGlmICghS2V5UHJlZml4Ojp2YWxpZElkcyhkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlk
LCBpbmRleElkKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgYm9vbCBsb3dlckJvdW5k
ID0gcmFuZ2UgJiYgcmFuZ2UtPmxvd2VyKCk7CiAgICAgYm9vbCB1cHBlckJvdW5kID0gcmFuZ2Ug
JiYgcmFuZ2UtPnVwcGVyKCk7CiAgICAgY3Vyc29yT3B0aW9ucy5mb3J3YXJkID0gKGRpcmVjdGlv
biA9PSBJbmRleGVkREI6OkN1cnNvck5leHROb0R1cGxpY2F0ZSB8fCBkaXJlY3Rpb24gPT0gSW5k
ZXhlZERCOjpDdXJzb3JOZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCQmFja2luZ1N0b3JlLmgKaW5kZXggOWM4ZTM3N2U5OTA4ZDU3MTg2M2I0ODViNDk2
ZGZiYmQyOGEzNWJjNS4uZThlZTZiNmM4ODBjNjI1ODU4OTU2MDYxNjQ5ZTMyNTdjYTZiNjJiNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0
b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0
b3JlLmgKQEAgLTY4LDcgKzY4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJ
REJEYXRhYmFzZUludFZlcnNpb24oSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiosIGludDY0
X3Qgcm93SWQsIGludDY0X3QgaW50VmVyc2lvbik7CiAgICAgdmlydHVhbCBib29sIGRlbGV0ZURh
dGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSk7CiAKLSAgICBib29sIGdldE9iamVjdFN0b3Jlcyhp
bnQ2NF90IGRhdGFiYXNlSWQsIElEQkRhdGFiYXNlTWV0YWRhdGE6Ok9iamVjdFN0b3JlTWFwKikg
V0FSTl9VTlVTRURfUkVUVVJOOworICAgIHZvaWQgZ2V0T2JqZWN0U3RvcmVzKGludDY0X3QgZGF0
YWJhc2VJZCwgSURCRGF0YWJhc2VNZXRhZGF0YTo6T2JqZWN0U3RvcmVNYXAqKTsKICAgICB2aXJ0
dWFsIGJvb2wgY3JlYXRlT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbios
IGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQpOwogICAgIHZpcnR1
YWwgYm9vbCBkZWxldGVPYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiwg
aW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpIFdBUk5fVU5VU0VEX1JF
VFVSTjsKIApAQCAtODksMTUgKzg5LDE1IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBn
ZXRSZWNvcmQoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJ
ZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmLCBWZWN0b3I8Y2hhcj4mIHJl
Y29yZCkgV0FSTl9VTlVTRURfUkVUVVJOOwogICAgIHZpcnR1YWwgYm9vbCBwdXRSZWNvcmQoSURC
QmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFs
dWUsIFJlY29yZElkZW50aWZpZXIqKSBXQVJOX1VOVVNFRF9SRVRVUk47Ci0gICAgdmlydHVhbCBi
b29sIGNsZWFyT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiosIGludDY0
X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKSBXQVJOX1VOVVNFRF9SRVRVUk47
Ci0gICAgdmlydHVhbCBib29sIGRlbGV0ZVJlY29yZChJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0
aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFJl
Y29yZElkZW50aWZpZXImKSBXQVJOX1VOVVNFRF9SRVRVUk47CisgICAgdmlydHVhbCB2b2lkIGNs
ZWFyT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0
YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRl
UmVjb3JkKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgUmVjb3JkSWRlbnRpZmllciYpOwogICAgIHZp
cnR1YWwgYm9vbCBnZXRLZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKElEQkJhY2tpbmdTdG9yZTo6
VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
aW50NjRfdCYgY3VycmVudE51bWJlcikgV0FSTl9VTlVTRURfUkVUVVJOOwogICAgIHZpcnR1YWwg
Ym9vbCBtYXliZVVwZGF0ZUtleUdlbmVyYXRvckN1cnJlbnROdW1iZXIoSURCQmFja2luZ1N0b3Jl
OjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
LCBpbnQ2NF90IG5ld1N0YXRlLCBib29sIGNoZWNrQ3VycmVudCkgV0FSTl9VTlVTRURfUkVUVVJO
OwogICAgIHZpcnR1YWwgYm9vbCBrZXlFeGlzdHNJbk9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9y
ZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgY29uc3QgSURCS2V5JiwgUmVjb3JkSWRlbnRpZmllciogZm91bmRSZWNvcmRJZGVudGlmaWVy
LCBib29sJiBmb3VuZCkgV0FSTl9VTlVTRURfUkVUVVJOOwogCi0gICAgdmlydHVhbCBib29sIGNy
ZWF0ZUluZGV4KElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBib29sIGlzVW5pcXVlLCBib29sIGlzTXVsdGlFbnRy
eSkgV0FSTl9VTlVTRURfUkVUVVJOOwotICAgIHZpcnR1YWwgYm9vbCBkZWxldGVJbmRleChJREJC
YWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCkgV0FSTl9VTlVTRURfUkVUVVJOOwotICAgIHZp
cnR1YWwgYm9vbCBwdXRJbmRleERhdGFGb3JSZWNvcmQoSURCQmFja2luZ1N0b3JlOjpUcmFuc2Fj
dGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90
IGluZGV4SWQsIGNvbnN0IElEQktleSYsIGNvbnN0IFJlY29yZElkZW50aWZpZXImKSBXQVJOX1VO
VVNFRF9SRVRVUk47CisgICAgdmlydHVhbCBib29sIGNyZWF0ZUluZGV4KElEQkJhY2tpbmdTdG9y
ZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgm
LCBib29sIGlzVW5pcXVlLCBib29sIGlzTXVsdGlFbnRyeSk7CisgICAgdmlydHVhbCB2b2lkIGRl
bGV0ZUluZGV4KElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkKTsKKyAgICB2aXJ0dWFs
IHZvaWQgcHV0SW5kZXhEYXRhRm9yUmVjb3JkKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24q
LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRl
eElkLCBjb25zdCBJREJLZXkmLCBjb25zdCBSZWNvcmRJZGVudGlmaWVyJik7CiAgICAgdmlydHVh
bCBib29sIGdldFByaW1hcnlLZXlWaWFJbmRleChJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9u
KiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5k
ZXhJZCwgY29uc3QgSURCS2V5JiwgUmVmUHRyPElEQktleT4mIHByaW1hcnlLZXkpIFdBUk5fVU5V
U0VEX1JFVFVSTjsKICAgICB2aXJ0dWFsIGJvb2wga2V5RXhpc3RzSW5JbmRleChJREJCYWNraW5n
U3RvcmU6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0
b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5JiBpbmRleEtleSwgUmVmUHRyPElE
QktleT4mIGZvdW5kUHJpbWFyeUtleSwgYm9vbCYgZXhpc3RzKSBXQVJOX1VOVVNFRF9SRVRVUk47
CiAKQEAgLTE3OCw3ICsxNzgsNyBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgYm9vbCBm
aW5kS2V5SW5JbmRleChJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRh
YmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURC
S2V5JiwgVmVjdG9yPGNoYXI+JiBmb3VuZEVuY29kZWRQcmltYXJ5S2V5LCBib29sJiBmb3VuZCk7
Ci0gICAgYm9vbCBnZXRJbmRleGVzKGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBJREJPYmplY3RTdG9yZU1ldGFkYXRhOjpJbmRleE1hcCopIFdBUk5fVU5VU0VEX1JF
VFVSTjsKKyAgICB2b2lkIGdldEluZGV4ZXMoaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIElEQk9iamVjdFN0b3JlTWV0YWRhdGE6OkluZGV4TWFwKik7CiAKICAgICBT
dHJpbmcgbV9pZGVudGlmaWVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCmluZGV4IDc2ZDgzNjhj
MTQ5NzYxYjQwZjJmZjg4YTc2NzA2ZjcxOTc1Y2IyYWQuLjJjMzAzMjBhNTRmMzRjYzIzMjg3MWNk
Y2Y3YjNjZGFiMWM0N2NjNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCkBAIC0xNzksMjIgKzE3
OSwyMiBAQCBwcml2YXRlOgogCiBjbGFzcyBEZWxldGVJbmRleE9wZXJhdGlvbiA6IHB1YmxpYyBJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpPcGVyYXRpb24gewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzT3duUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6Ok9wZXJhdGlvbj4gY3JlYXRl
KFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlPiBiYWNraW5nU3RvcmUsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwgY29uc3QgSURCSW5kZXhNZXRhZGF0YSYgaW5kZXhNZXRhZGF0YSkKKyAgICBzdGF0
aWMgUGFzc093blB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpPcGVyYXRpb24+IGNyZWF0
ZShQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0
cihuZXcgRGVsZXRlSW5kZXhPcGVyYXRpb24oYmFja2luZ1N0b3JlLCBvYmplY3RTdG9yZUlkLCBp
bmRleE1ldGFkYXRhKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGVsZXRlSW5kZXhP
cGVyYXRpb24oYmFja2luZ1N0b3JlLCBvYmplY3RTdG9yZUlkLCBpbmRleElkKSk7CiAgICAgfQog
ICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtKElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwqKTsKIHBy
aXZhdGU6Ci0gICAgRGVsZXRlSW5kZXhPcGVyYXRpb24oUGFzc1JlZlB0cjxJREJCYWNraW5nU3Rv
cmU+IGJhY2tpbmdTdG9yZSwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJJbmRleE1l
dGFkYXRhJiBpbmRleE1ldGFkYXRhKQorICAgIERlbGV0ZUluZGV4T3BlcmF0aW9uKFBhc3NSZWZQ
dHI8SURCQmFja2luZ1N0b3JlPiBiYWNraW5nU3RvcmUsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
aW50NjRfdCBpbmRleElkKQogICAgICAgICA6IG1fYmFja2luZ1N0b3JlKGJhY2tpbmdTdG9yZSkK
ICAgICAgICAgLCBtX29iamVjdFN0b3JlSWQob2JqZWN0U3RvcmVJZCkKLSAgICAgICAgLCBtX2lu
ZGV4TWV0YWRhdGEoaW5kZXhNZXRhZGF0YSkKKyAgICAgICAgLCBtX2luZGV4SWQoaW5kZXhJZCkK
ICAgICB7CiAgICAgfQogCiAgICAgY29uc3QgUmVmUHRyPElEQkJhY2tpbmdTdG9yZT4gbV9iYWNr
aW5nU3RvcmU7CiAgICAgY29uc3QgaW50NjRfdCBtX29iamVjdFN0b3JlSWQ7Ci0gICAgY29uc3Qg
SURCSW5kZXhNZXRhZGF0YSBtX2luZGV4TWV0YWRhdGE7CisgICAgY29uc3QgaW50NjRfdCBtX2lu
ZGV4SWQ7CiB9OwogCiBjbGFzcyBDcmVhdGVJbmRleEFib3J0T3BlcmF0aW9uIDogcHVibGljIElE
QlRyYW5zYWN0aW9uQmFja2VuZEltcGw6Ok9wZXJhdGlvbiB7CkBAIC01MzQsOSArNTM0LDEwIEBA
IGJvb2wgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6b3BlbkludGVybmFsKCkKICAgICBBU1NFUlRf
V0lUSF9NRVNTQUdFKHN1Y2Nlc3MgPT0gKG1fbWV0YWRhdGEuaWQgIT0gSW52YWxpZElkKSwgInN1
Y2Nlc3MgPSAlcywgbV9pZCA9ICVsbGQiLCBzdWNjZXNzID8gInRydWUiIDogImZhbHNlIiwgc3Rh
dGljX2Nhc3Q8bG9uZyBsb25nPihtX21ldGFkYXRhLmlkKSk7CiAgICAgaWYgKCFvaykKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChzdWNjZXNzKQotICAgICAgICByZXR1cm4gbV9iYWNr
aW5nU3RvcmUtPmdldE9iamVjdFN0b3JlcyhtX21ldGFkYXRhLmlkLCAmbV9tZXRhZGF0YS5vYmpl
Y3RTdG9yZXMpOwotCisgICAgaWYgKHN1Y2Nlc3MpIHsKKyAgICAgICAgbV9iYWNraW5nU3RvcmUt
PmdldE9iamVjdFN0b3JlcyhtX21ldGFkYXRhLmlkLCAmbV9tZXRhZGF0YS5vYmplY3RTdG9yZXMp
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAgICAgcmV0dXJuIG1fYmFja2luZ1N0b3Jl
LT5jcmVhdGVJREJEYXRhYmFzZU1ldGFEYXRhKG1fbWV0YWRhdGEubmFtZSwgbV9tZXRhZGF0YS52
ZXJzaW9uLCBtX21ldGFkYXRhLmludFZlcnNpb24sIG1fbWV0YWRhdGEuaWQpOwogfQogCkBAIC02
MzksNyArNjQwLDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpkZWxldGVJbmRleChp
bnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3QKICAgICBBU1NFUlQob2JqZWN0
U3RvcmUuaW5kZXhlcy5jb250YWlucyhpbmRleElkKSk7CiAgICAgY29uc3QgSURCSW5kZXhNZXRh
ZGF0YSYgaW5kZXhNZXRhZGF0YSA9IG9iamVjdFN0b3JlLmluZGV4ZXMuZ2V0KGluZGV4SWQpOwog
Ci0gICAgdHJhbnNhY3Rpb24tPnNjaGVkdWxlVGFzayhEZWxldGVJbmRleE9wZXJhdGlvbjo6Y3Jl
YXRlKG1fYmFja2luZ1N0b3JlLCBvYmplY3RTdG9yZUlkLCBpbmRleE1ldGFkYXRhKSwgRGVsZXRl
SW5kZXhBYm9ydE9wZXJhdGlvbjo6Y3JlYXRlKHRoaXMsIG9iamVjdFN0b3JlSWQsIGluZGV4TWV0
YWRhdGEpKTsKKyAgICB0cmFuc2FjdGlvbi0+c2NoZWR1bGVUYXNrKERlbGV0ZUluZGV4T3BlcmF0
aW9uOjpjcmVhdGUobV9iYWNraW5nU3RvcmUsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQpLCBEZWxl
dGVJbmRleEFib3J0T3BlcmF0aW9uOjpjcmVhdGUodGhpcywgb2JqZWN0U3RvcmVJZCwgaW5kZXhN
ZXRhZGF0YSkpOwogCiAgICAgcmVtb3ZlSW5kZXgob2JqZWN0U3RvcmVJZCwgaW5kZXhJZCk7CiB9
CkBAIC02NDcsMTEgKzY0OCw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6ZGVsZXRl
SW5kZXgoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0CiB2b2lkIERlbGV0
ZUluZGV4T3BlcmF0aW9uOjpwZXJmb3JtKElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwqIHRyYW5z
YWN0aW9uKQogewogICAgIElEQl9UUkFDRSgiRGVsZXRlSW5kZXhPcGVyYXRpb24iKTsKLSAgICBi
b29sIG9rID0gbV9iYWNraW5nU3RvcmUtPmRlbGV0ZUluZGV4KHRyYW5zYWN0aW9uLT5iYWNraW5n
U3RvcmVUcmFuc2FjdGlvbigpLCB0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+aWQoKSwgbV9vYmpl
Y3RTdG9yZUlkLCBtX2luZGV4TWV0YWRhdGEuaWQpOwotICAgIGlmICghb2spIHsKLSAgICAgICAg
UmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+IGVycm9yID0gSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRl
KElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIFN0cmluZzo6Zm9ybWF0KCJJbnRl
cm5hbCBlcnJvciBkZWxldGluZyBpbmRleCAnJXMnLiIsIG1faW5kZXhNZXRhZGF0YS5uYW1lLnV0
ZjgoKS5kYXRhKCkpKTsKLSAgICAgICAgdHJhbnNhY3Rpb24tPmFib3J0KGVycm9yKTsKLSAgICB9
CisgICAgbV9iYWNraW5nU3RvcmUtPmRlbGV0ZUluZGV4KHRyYW5zYWN0aW9uLT5iYWNraW5nU3Rv
cmVUcmFuc2FjdGlvbigpLCB0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+aWQoKSwgbV9vYmplY3RT
dG9yZUlkLCBtX2luZGV4SWQpOwogfQogCiB2b2lkIERlbGV0ZUluZGV4QWJvcnRPcGVyYXRpb246
OnBlcmZvcm0oSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCogdHJhbnNhY3Rpb24pCkBAIC0xMDI2
LDEwICsxMDIzLDcgQEAgdm9pZCBEZWxldGVSYW5nZU9wZXJhdGlvbjo6cGVyZm9ybShJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbXBsKiB0cmFuc2FjdGlvbikKICAgICBSZWZQdHI8SURCQmFja2luZ1N0
b3JlOjpDdXJzb3I+IGJhY2tpbmdTdG9yZUN1cnNvciA9IG1fYmFja2luZ1N0b3JlLT5vcGVuT2Jq
ZWN0U3RvcmVDdXJzb3IodHJhbnNhY3Rpb24tPmJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKCksIG1f
ZGF0YWJhc2VJZCwgbV9vYmplY3RTdG9yZUlkLCBtX2tleVJhbmdlLmdldCgpLCBJbmRleGVkREI6
OkN1cnNvck5leHQpOwogICAgIGlmIChiYWNraW5nU3RvcmVDdXJzb3IpIHsKICAgICAgICAgZG8g
ewotICAgICAgICAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZS0+ZGVsZXRlUmVjb3JkKHRyYW5zYWN0
aW9uLT5iYWNraW5nU3RvcmVUcmFuc2FjdGlvbigpLCBtX2RhdGFiYXNlSWQsIG1fb2JqZWN0U3Rv
cmVJZCwgYmFja2luZ1N0b3JlQ3Vyc29yLT5yZWNvcmRJZGVudGlmaWVyKCkpKSB7Ci0gICAgICAg
ICAgICAgICAgbV9jYWxsYmFja3MtPm9uRXJyb3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElE
QkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsICJFcnJvciBkZWxldGluZyBkYXRhIGlu
IHJhbmdlIikpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIG1fYmFja2luZ1N0b3JlLT5kZWxldGVSZWNvcmQodHJhbnNhY3Rpb24tPmJhY2tpbmdT
dG9yZVRyYW5zYWN0aW9uKCksIG1fZGF0YWJhc2VJZCwgbV9vYmplY3RTdG9yZUlkLCBiYWNraW5n
U3RvcmVDdXJzb3ItPnJlY29yZElkZW50aWZpZXIoKSk7CiAgICAgICAgIH0gd2hpbGUgKGJhY2tp
bmdTdG9yZUN1cnNvci0+Y29udGludWVGdW5jdGlvbigwKSk7CiAgICAgfQogCkBAIC0xMDUwLDEw
ICsxMDQ0LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpjbGVhcihpbnQ2NF90IHRy
YW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwKIHZvaWQgQ2xlYXJPcGVyYXRpb246
OnBlcmZvcm0oSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCogdHJhbnNhY3Rpb24pCiB7CiAgICAg
SURCX1RSQUNFKCJPYmplY3RTdG9yZUNsZWFyT3BlcmF0aW9uIik7Ci0gICAgaWYgKCFtX2JhY2tp
bmdTdG9yZS0+Y2xlYXJPYmplY3RTdG9yZSh0cmFuc2FjdGlvbi0+YmFja2luZ1N0b3JlVHJhbnNh
Y3Rpb24oKSwgbV9kYXRhYmFzZUlkLCBtX29iamVjdFN0b3JlSWQpKSB7Ci0gICAgICAgIG1fY2Fs
bGJhY2tzLT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2Vw
dGlvbjo6VW5rbm93bkVycm9yLCAiRXJyb3IgY2xlYXJpbmcgb2JqZWN0IHN0b3JlIikpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQorICAgIG1fYmFja2luZ1N0b3JlLT5jbGVhck9iamVjdFN0b3Jl
KHRyYW5zYWN0aW9uLT5iYWNraW5nU3RvcmVUcmFuc2FjdGlvbigpLCBtX2RhdGFiYXNlSWQsIG1f
b2JqZWN0U3RvcmVJZCk7CiAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcygpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQ29kaW5n
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2Rpbmcu
Y3BwCmluZGV4IDNmZDI0Y2RiOTA2YTgyOGYzMzk5NjA2N2Q5M2E0NDBiNzVjYTI2NzUuLmY4NjI3
ZGMzYTBiYTYzMDBjMGFhYmE4ZDNhMTk4NTk5MTM2ZTBjNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuY3BwCkBAIC05NzMs
NjYgKzk3MywxMSBAQCBLZXlQcmVmaXg6OktleVByZWZpeCgpCiB7CiB9CiAKLUtleVByZWZpeDo6
S2V5UHJlZml4KGludDY0X3QgZGF0YWJhc2VJZCkKLSAgICA6IG1fZGF0YWJhc2VJZChkYXRhYmFz
ZUlkKQotICAgICwgbV9vYmplY3RTdG9yZUlkKDApCi0gICAgLCBtX2luZGV4SWQoMCkKLXsKLSAg
ICBBU1NFUlQoS2V5UHJlZml4Ojppc1ZhbGlkRGF0YWJhc2VJZChkYXRhYmFzZUlkKSk7Ci19Ci0K
LUtleVByZWZpeDo6S2V5UHJlZml4KGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkKQotICAgIDogbV9kYXRhYmFzZUlkKGRhdGFiYXNlSWQpCi0gICAgLCBtX29iamVjdFN0
b3JlSWQob2JqZWN0U3RvcmVJZCkKLSAgICAsIG1faW5kZXhJZCgwKQotewotICAgIEFTU0VSVChL
ZXlQcmVmaXg6OmlzVmFsaWREYXRhYmFzZUlkKGRhdGFiYXNlSWQpKTsKLSAgICBBU1NFUlQoS2V5
UHJlZml4Ojppc1ZhbGlkT2JqZWN0U3RvcmVJZChvYmplY3RTdG9yZUlkKSk7Ci19Ci0KIEtleVBy
ZWZpeDo6S2V5UHJlZml4KGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
LCBpbnQ2NF90IGluZGV4SWQpCiAgICAgOiBtX2RhdGFiYXNlSWQoZGF0YWJhc2VJZCkKICAgICAs
IG1fb2JqZWN0U3RvcmVJZChvYmplY3RTdG9yZUlkKQogICAgICwgbV9pbmRleElkKGluZGV4SWQp
CiB7Ci0gICAgQVNTRVJUKEtleVByZWZpeDo6aXNWYWxpZERhdGFiYXNlSWQoZGF0YWJhc2VJZCkp
OwotICAgIEFTU0VSVChLZXlQcmVmaXg6OmlzVmFsaWRPYmplY3RTdG9yZUlkKG9iamVjdFN0b3Jl
SWQpKTsKLSAgICBBU1NFUlQoS2V5UHJlZml4Ojppc1ZhbGlkSW5kZXhJZChpbmRleElkKSk7Ci19
Ci0KLUtleVByZWZpeDo6S2V5UHJlZml4KFR5cGUgdHlwZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBp
bnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCkKLSAgICA6IG1fZGF0YWJhc2VJ
ZChkYXRhYmFzZUlkKQotICAgICwgbV9vYmplY3RTdG9yZUlkKG9iamVjdFN0b3JlSWQpCi0gICAg
LCBtX2luZGV4SWQoaW5kZXhJZCkKLXsKLSAgICBBU1NFUlQodHlwZSA9PSBJbnZhbGlkVHlwZSk7
Ci0gICAgQVNTRVJUKEtleVByZWZpeDo6aXNWYWxpZERhdGFiYXNlSWQoZGF0YWJhc2VJZCkpOwot
ICAgIEFTU0VSVChLZXlQcmVmaXg6OmlzVmFsaWRPYmplY3RTdG9yZUlkKG9iamVjdFN0b3JlSWQp
KTsKLX0KLQotCi1LZXlQcmVmaXggS2V5UHJlZml4OjpjcmVhdGVXaXRoU3BlY2lhbEluZGV4KGlu
dDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQp
Ci17Ci0gICAgQVNTRVJUKEtleVByZWZpeDo6aXNWYWxpZERhdGFiYXNlSWQoZGF0YWJhc2VJZCkp
OwotICAgIEFTU0VSVChLZXlQcmVmaXg6OmlzVmFsaWRPYmplY3RTdG9yZUlkKG9iamVjdFN0b3Jl
SWQpKTsKLSAgICBBU1NFUlQoaW5kZXhJZCk7Ci0gICAgcmV0dXJuIEtleVByZWZpeChJbnZhbGlk
VHlwZSwgZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCk7Ci19Ci0KLQotYm9vbCBL
ZXlQcmVmaXg6OmlzVmFsaWREYXRhYmFzZUlkKGludDY0X3QgZGF0YWJhc2VJZCkKLXsKLSAgICBy
ZXR1cm4gKGRhdGFiYXNlSWQgPiAwKSAmJiAoZGF0YWJhc2VJZCA8IEtleVByZWZpeDo6a01heERh
dGFiYXNlSWQpOwotfQotCi1ib29sIEtleVByZWZpeDo6aXNWYWxpZE9iamVjdFN0b3JlSWQoaW50
NjRfdCBvYmplY3RTdG9yZUlkKQotewotICAgIHJldHVybiAob2JqZWN0U3RvcmVJZCA+IDApICYm
IChvYmplY3RTdG9yZUlkIDwgS2V5UHJlZml4OjprTWF4T2JqZWN0U3RvcmVJZCk7Ci19Ci0KLWJv
b2wgS2V5UHJlZml4Ojppc1ZhbGlkSW5kZXhJZChpbnQ2NF90IGluZGV4SWQpCi17Ci0gICAgcmV0
dXJuIChpbmRleElkID49IE1pbmltdW1JbmRleElkKSAmJiAoaW5kZXhJZCA8IEtleVByZWZpeDo6
a01heEluZGV4SWQpOwogfQogCiBjb25zdCBjaGFyKiBLZXlQcmVmaXg6OmRlY29kZShjb25zdCBj
aGFyKiBzdGFydCwgY29uc3QgY2hhciogbGltaXQsIEtleVByZWZpeCogcmVzdWx0KQpAQCAtMTA1
OSwzMyArMTAwNCwyMiBAQCBjb25zdCBjaGFyKiBLZXlQcmVmaXg6OmRlY29kZShjb25zdCBjaGFy
KiBzdGFydCwgY29uc3QgY2hhciogbGltaXQsIEtleVByZWZpeCogcgogICAgIHJldHVybiBzdGFy
dDsKIH0KIAotVmVjdG9yPGNoYXI+IEtleVByZWZpeDo6ZW5jb2RlRW1wdHkoKQotewotICAgIGNv
bnN0IFZlY3RvcjxjaGFyLCA0PiByZXN1bHQoNCwgMCk7Ci0gICAgQVNTRVJUKGVuY29kZUludGVy
bmFsKDAsIDAsIDApID09IFZlY3RvcjxjaGFyPig0LCAwKSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsK
LX0KLQogVmVjdG9yPGNoYXI+IEtleVByZWZpeDo6ZW5jb2RlKCkgY29uc3QKIHsKICAgICBBU1NF
UlQobV9kYXRhYmFzZUlkICE9IEludmFsaWRJZCk7CiAgICAgQVNTRVJUKG1fb2JqZWN0U3RvcmVJ
ZCAhPSBJbnZhbGlkSWQpOwogICAgIEFTU0VSVChtX2luZGV4SWQgIT0gSW52YWxpZElkKTsKLSAg
ICByZXR1cm4gZW5jb2RlSW50ZXJuYWwobV9kYXRhYmFzZUlkLCBtX29iamVjdFN0b3JlSWQsIG1f
aW5kZXhJZCk7Ci19CiAKLVZlY3RvcjxjaGFyPiBLZXlQcmVmaXg6OmVuY29kZUludGVybmFsKGlu
dDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQp
Ci17Ci0gICAgVmVjdG9yPGNoYXI+IGRhdGFiYXNlSWRTdHJpbmcgPSBlbmNvZGVJbnRTYWZlbHko
ZGF0YWJhc2VJZCwga01heERhdGFiYXNlSWQpOwotICAgIFZlY3RvcjxjaGFyPiBvYmplY3RTdG9y
ZUlkU3RyaW5nID0gZW5jb2RlSW50U2FmZWx5KG9iamVjdFN0b3JlSWQsIGtNYXhPYmplY3RTdG9y
ZUlkKTsKLSAgICBWZWN0b3I8Y2hhcj4gaW5kZXhJZFN0cmluZyA9IGVuY29kZUludFNhZmVseShp
bmRleElkLCBrTWF4SW5kZXhJZCk7CisgICAgVmVjdG9yPGNoYXI+IGRhdGFiYXNlSWRTdHJpbmcg
PSBlbmNvZGVJbnQobV9kYXRhYmFzZUlkKTsKKyAgICBWZWN0b3I8Y2hhcj4gb2JqZWN0U3RvcmVJ
ZFN0cmluZyA9IGVuY29kZUludChtX29iamVjdFN0b3JlSWQpOworICAgIFZlY3RvcjxjaGFyPiBp
bmRleElkU3RyaW5nID0gZW5jb2RlSW50KG1faW5kZXhJZCk7CisKKyAgICBBU1NFUlQoZGF0YWJh
c2VJZFN0cmluZy5zaXplKCkgPD0gOCk7CisgICAgQVNTRVJUKG9iamVjdFN0b3JlSWRTdHJpbmcu
c2l6ZSgpIDw9IDgpOworICAgIEFTU0VSVChpbmRleElkU3RyaW5nLnNpemUoKSA8PSA0KTsKIAot
ICAgIEFTU0VSVChkYXRhYmFzZUlkU3RyaW5nLnNpemUoKSA8PSBrTWF4RGF0YWJhc2VJZFNpemVC
eXRlcyk7Ci0gICAgQVNTRVJUKG9iamVjdFN0b3JlSWRTdHJpbmcuc2l6ZSgpIDw9IGtNYXhPYmpl
Y3RTdG9yZUlkU2l6ZUJ5dGVzKTsKLSAgICBBU1NFUlQoaW5kZXhJZFN0cmluZy5zaXplKCkgPD0g
a01heEluZGV4SWRTaXplQnl0ZXMpOwogCi0gICAgdW5zaWduZWQgY2hhciBmaXJzdEJ5dGUgPSAo
ZGF0YWJhc2VJZFN0cmluZy5zaXplKCkgLSAxKSA8PCAoa01heE9iamVjdFN0b3JlSWRTaXplQml0
cyArIGtNYXhJbmRleElkU2l6ZUJpdHMpIHwgKG9iamVjdFN0b3JlSWRTdHJpbmcuc2l6ZSgpIC0g
MSkgPDwga01heEluZGV4SWRTaXplQml0cyB8IChpbmRleElkU3RyaW5nLnNpemUoKSAtIDEpOwot
ICAgIENPTVBJTEVfQVNTRVJUKGtNYXhEYXRhYmFzZUlkU2l6ZUJpdHMgKyBrTWF4T2JqZWN0U3Rv
cmVJZFNpemVCaXRzICsga01heEluZGV4SWRTaXplQml0cyA9PSBzaXplb2YoZmlyc3RCeXRlKSAq
IDgsIENBTlRfRU5DT0RFX0lEUyk7CisgICAgdW5zaWduZWQgY2hhciBmaXJzdEJ5dGUgPSAoZGF0
YWJhc2VJZFN0cmluZy5zaXplKCkgLSAxKSA8PCA1IHwgKG9iamVjdFN0b3JlSWRTdHJpbmcuc2l6
ZSgpIC0gMSkgPDwgMiB8IChpbmRleElkU3RyaW5nLnNpemUoKSAtIDEpOwogICAgIFZlY3Rvcjxj
aGFyLCBEZWZhdWx0SW5saW5lQnVmZmVyU2l6ZT4gcmV0OwogICAgIHJldC5hcHBlbmQoZmlyc3RC
eXRlKTsKICAgICByZXQuYXBwZW5kKGRhdGFiYXNlSWRTdHJpbmcpOwpAQCAtMTEzNCwyMSArMTA2
OCwyNCBAQCBLZXlQcmVmaXg6OlR5cGUgS2V5UHJlZml4Ojp0eXBlKCkgY29uc3QKIAogVmVjdG9y
PGNoYXI+IFNjaGVtYVZlcnNpb25LZXk6OmVuY29kZSgpCiB7Ci0gICAgVmVjdG9yPGNoYXI+IHJl
dCA9IEtleVByZWZpeDo6ZW5jb2RlRW1wdHkoKTsKKyAgICBLZXlQcmVmaXggcHJlZml4KDAsIDAs
IDApOworICAgIFZlY3RvcjxjaGFyPiByZXQgPSBwcmVmaXguZW5jb2RlKCk7CiAgICAgcmV0LmFw
cGVuZChlbmNvZGVCeXRlKFNjaGVtYVZlcnNpb25UeXBlQnl0ZSkpOwogICAgIHJldHVybiByZXQ7
CiB9CiAKIFZlY3RvcjxjaGFyPiBNYXhEYXRhYmFzZUlkS2V5OjplbmNvZGUoKQogewotICAgIFZl
Y3RvcjxjaGFyPiByZXQgPSBLZXlQcmVmaXg6OmVuY29kZUVtcHR5KCk7CisgICAgS2V5UHJlZml4
IHByZWZpeCgwLCAwLCAwKTsKKyAgICBWZWN0b3I8Y2hhcj4gcmV0ID0gcHJlZml4LmVuY29kZSgp
OwogICAgIHJldC5hcHBlbmQoZW5jb2RlQnl0ZShNYXhEYXRhYmFzZUlkVHlwZUJ5dGUpKTsKICAg
ICByZXR1cm4gcmV0OwogfQogCiBWZWN0b3I8Y2hhcj4gRGF0YVZlcnNpb25LZXk6OmVuY29kZSgp
CiB7Ci0gICAgVmVjdG9yPGNoYXI+IHJldCA9IEtleVByZWZpeDo6ZW5jb2RlRW1wdHkoKTsKKyAg
ICBLZXlQcmVmaXggcHJlZml4KDAsIDAsIDApOworICAgIFZlY3RvcjxjaGFyPiByZXQgPSBwcmVm
aXguZW5jb2RlKCk7CiAgICAgcmV0LmFwcGVuZChlbmNvZGVCeXRlKERhdGFWZXJzaW9uVHlwZUJ5
dGUpKTsKICAgICByZXR1cm4gcmV0OwogfQpAQCAtMTE3OSw3ICsxMTE2LDggQEAgY29uc3QgY2hh
ciogRGF0YWJhc2VGcmVlTGlzdEtleTo6ZGVjb2RlKGNvbnN0IGNoYXIqIHN0YXJ0LCBjb25zdCBj
aGFyKiBsaW1pdCwgRGEKIAogVmVjdG9yPGNoYXI+IERhdGFiYXNlRnJlZUxpc3RLZXk6OmVuY29k
ZShpbnQ2NF90IGRhdGFiYXNlSWQpCiB7Ci0gICAgVmVjdG9yPGNoYXI+IHJldCA9IEtleVByZWZp
eDo6ZW5jb2RlRW1wdHkoKTsKKyAgICBLZXlQcmVmaXggcHJlZml4KDAsIDAsIDApOworICAgIFZl
Y3RvcjxjaGFyPiByZXQgPSBwcmVmaXguZW5jb2RlKCk7CiAgICAgcmV0LmFwcGVuZChlbmNvZGVC
eXRlKERhdGFiYXNlRnJlZUxpc3RUeXBlQnl0ZSkpOwogICAgIHJldC5hcHBlbmQoZW5jb2RlVmFy
SW50KGRhdGFiYXNlSWQpKTsKICAgICByZXR1cm4gcmV0OwpAQCAtMTIyNiw3ICsxMTY0LDggQEAg
Y29uc3QgY2hhciogRGF0YWJhc2VOYW1lS2V5OjpkZWNvZGUoY29uc3QgY2hhciogc3RhcnQsIGNv
bnN0IGNoYXIqIGxpbWl0LCBEYXRhYmEKIAogVmVjdG9yPGNoYXI+IERhdGFiYXNlTmFtZUtleTo6
ZW5jb2RlKGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSkK
IHsKLSAgICBWZWN0b3I8Y2hhcj4gcmV0ID0gS2V5UHJlZml4OjplbmNvZGVFbXB0eSgpOworICAg
IEtleVByZWZpeCBwcmVmaXgoMCwgMCwgMCk7CisgICAgVmVjdG9yPGNoYXI+IHJldCA9IHByZWZp
eC5lbmNvZGUoKTsKICAgICByZXQuYXBwZW5kKGVuY29kZUJ5dGUoRGF0YWJhc2VOYW1lVHlwZUJ5
dGUpKTsKICAgICByZXQuYXBwZW5kKGVuY29kZVN0cmluZ1dpdGhMZW5ndGgob3JpZ2luKSk7CiAg
ICAgcmV0LmFwcGVuZChlbmNvZGVTdHJpbmdXaXRoTGVuZ3RoKGRhdGFiYXNlTmFtZSkpOwpAQCAt
MTI1Myw3ICsxMTkyLDcgQEAgaW50IERhdGFiYXNlTmFtZUtleTo6Y29tcGFyZShjb25zdCBEYXRh
YmFzZU5hbWVLZXkmIG90aGVyKQogCiBWZWN0b3I8Y2hhcj4gRGF0YWJhc2VNZXRhRGF0YUtleTo6
ZW5jb2RlKGludDY0X3QgZGF0YWJhc2VJZCwgTWV0YURhdGFUeXBlIG1ldGFEYXRhVHlwZSkKIHsK
LSAgICBLZXlQcmVmaXggcHJlZml4KGRhdGFiYXNlSWQpOworICAgIEtleVByZWZpeCBwcmVmaXgo
ZGF0YWJhc2VJZCwgMCwgMCk7CiAgICAgVmVjdG9yPGNoYXI+IHJldCA9IHByZWZpeC5lbmNvZGUo
KTsKICAgICByZXQuYXBwZW5kKGVuY29kZUJ5dGUobWV0YURhdGFUeXBlKSk7CiAgICAgcmV0dXJu
IHJldDsKQEAgLTEyOTIsNyArMTIzMSw3IEBAIGNvbnN0IGNoYXIqIE9iamVjdFN0b3JlTWV0YURh
dGFLZXk6OmRlY29kZShjb25zdCBjaGFyKiBzdGFydCwgY29uc3QgY2hhciogbGltaXQsCiAKIFZl
Y3RvcjxjaGFyPiBPYmplY3RTdG9yZU1ldGFEYXRhS2V5OjplbmNvZGUoaW50NjRfdCBkYXRhYmFz
ZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIHVuc2lnbmVkIGNoYXIgbWV0YURhdGFUeXBlKQog
ewotICAgIEtleVByZWZpeCBwcmVmaXgoZGF0YWJhc2VJZCk7CisgICAgS2V5UHJlZml4IHByZWZp
eChkYXRhYmFzZUlkLCAwLCAwKTsKICAgICBWZWN0b3I8Y2hhcj4gcmV0ID0gcHJlZml4LmVuY29k
ZSgpOwogICAgIHJldC5hcHBlbmQoZW5jb2RlQnl0ZShPYmplY3RTdG9yZU1ldGFEYXRhVHlwZUJ5
dGUpKTsKICAgICByZXQuYXBwZW5kKGVuY29kZVZhckludChvYmplY3RTdG9yZUlkKSk7CkBAIC0x
MzY3LDcgKzEzMDYsNyBAQCBjb25zdCBjaGFyKiBJbmRleE1ldGFEYXRhS2V5OjpkZWNvZGUoY29u
c3QgY2hhciogc3RhcnQsIGNvbnN0IGNoYXIqIGxpbWl0LCBJbmRleAogCiBWZWN0b3I8Y2hhcj4g
SW5kZXhNZXRhRGF0YUtleTo6ZW5jb2RlKGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIHVuc2lnbmVkIGNoYXIgbWV0YURhdGFUeXBlKQog
ewotICAgIEtleVByZWZpeCBwcmVmaXgoZGF0YWJhc2VJZCk7CisgICAgS2V5UHJlZml4IHByZWZp
eChkYXRhYmFzZUlkLCAwLCAwKTsKICAgICBWZWN0b3I8Y2hhcj4gcmV0ID0gcHJlZml4LmVuY29k
ZSgpOwogICAgIHJldC5hcHBlbmQoZW5jb2RlQnl0ZShJbmRleE1ldGFEYXRhVHlwZUJ5dGUpKTsK
ICAgICByZXQuYXBwZW5kKGVuY29kZVZhckludChvYmplY3RTdG9yZUlkKSk7CkBAIC0xNDMwLDcg
KzEzNjksNyBAQCBjb25zdCBjaGFyKiBPYmplY3RTdG9yZUZyZWVMaXN0S2V5OjpkZWNvZGUoY29u
c3QgY2hhciogc3RhcnQsIGNvbnN0IGNoYXIqIGxpbWl0LAogCiBWZWN0b3I8Y2hhcj4gT2JqZWN0
U3RvcmVGcmVlTGlzdEtleTo6ZW5jb2RlKGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkKQogewotICAgIEtleVByZWZpeCBwcmVmaXgoZGF0YWJhc2VJZCk7CisgICAgS2V5
UHJlZml4IHByZWZpeChkYXRhYmFzZUlkLCAwLCAwKTsKICAgICBWZWN0b3I8Y2hhcj4gcmV0ID0g
cHJlZml4LmVuY29kZSgpOwogICAgIHJldC5hcHBlbmQoZW5jb2RlQnl0ZShPYmplY3RTdG9yZUZy
ZWVMaXN0VHlwZUJ5dGUpKTsKICAgICByZXQuYXBwZW5kKGVuY29kZVZhckludChvYmplY3RTdG9y
ZUlkKSk7CkBAIC0xNDg3LDcgKzE0MjYsNyBAQCBjb25zdCBjaGFyKiBJbmRleEZyZWVMaXN0S2V5
OjpkZWNvZGUoY29uc3QgY2hhciogc3RhcnQsIGNvbnN0IGNoYXIqIGxpbWl0LCBJbmRleAogCiBW
ZWN0b3I8Y2hhcj4gSW5kZXhGcmVlTGlzdEtleTo6ZW5jb2RlKGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQpCiB7Ci0gICAgS2V5UHJlZml4
IHByZWZpeChkYXRhYmFzZUlkKTsKKyAgICBLZXlQcmVmaXggcHJlZml4KGRhdGFiYXNlSWQsIDAs
IDApOwogICAgIFZlY3RvcjxjaGFyPiByZXQgPSBwcmVmaXguZW5jb2RlKCk7CiAgICAgcmV0LmFw
cGVuZChlbmNvZGVCeXRlKEluZGV4RnJlZUxpc3RUeXBlQnl0ZSkpOwogICAgIHJldC5hcHBlbmQo
ZW5jb2RlVmFySW50KG9iamVjdFN0b3JlSWQpKTsKQEAgLTE1NDMsNyArMTQ4Miw3IEBAIGNvbnN0
IGNoYXIqIE9iamVjdFN0b3JlTmFtZXNLZXk6OmRlY29kZShjb25zdCBjaGFyKiBzdGFydCwgY29u
c3QgY2hhciogbGltaXQsIE9iCiAKIFZlY3RvcjxjaGFyPiBPYmplY3RTdG9yZU5hbWVzS2V5Ojpl
bmNvZGUoaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSkK
IHsKLSAgICBLZXlQcmVmaXggcHJlZml4KGRhdGFiYXNlSWQpOworICAgIEtleVByZWZpeCBwcmVm
aXgoZGF0YWJhc2VJZCwgMCwgMCk7CiAgICAgVmVjdG9yPGNoYXI+IHJldCA9IHByZWZpeC5lbmNv
ZGUoKTsKICAgICByZXQuYXBwZW5kKGVuY29kZUJ5dGUoT2JqZWN0U3RvcmVOYW1lc1R5cGVCeXRl
KSk7CiAgICAgcmV0LmFwcGVuZChlbmNvZGVTdHJpbmdXaXRoTGVuZ3RoKG9iamVjdFN0b3JlTmFt
ZSkpOwpAQCAtMTU4Niw3ICsxNTI1LDcgQEAgY29uc3QgY2hhciogSW5kZXhOYW1lc0tleTo6ZGVj
b2RlKGNvbnN0IGNoYXIqIHN0YXJ0LCBjb25zdCBjaGFyKiBsaW1pdCwgSW5kZXhOYW0KIAogVmVj
dG9yPGNoYXI+IEluZGV4TmFtZXNLZXk6OmVuY29kZShpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBpbmRleE5hbWUpCiB7Ci0gICAgS2V5UHJl
Zml4IHByZWZpeChkYXRhYmFzZUlkKTsKKyAgICBLZXlQcmVmaXggcHJlZml4KGRhdGFiYXNlSWQs
IDAsIDApOwogICAgIFZlY3RvcjxjaGFyPiByZXQgPSBwcmVmaXguZW5jb2RlKCk7CiAgICAgcmV0
LmFwcGVuZChlbmNvZGVCeXRlKEluZGV4TmFtZXNLZXlUeXBlQnl0ZSkpOwogICAgIHJldC5hcHBl
bmQoZW5jb2RlVmFySW50KG9iamVjdFN0b3JlSWQpKTsKQEAgLTE2MTgsNyArMTU1Nyw3IEBAIGNv
bnN0IGNoYXIqIE9iamVjdFN0b3JlRGF0YUtleTo6ZGVjb2RlKGNvbnN0IGNoYXIqIHN0YXJ0LCBj
b25zdCBjaGFyKiBlbmQsIE9iamVjCiAKIFZlY3RvcjxjaGFyPiBPYmplY3RTdG9yZURhdGFLZXk6
OmVuY29kZShpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3Qg
VmVjdG9yPGNoYXI+IGVuY29kZWRVc2VyS2V5KQogewotICAgIEtleVByZWZpeCBwcmVmaXgoS2V5
UHJlZml4OjpjcmVhdGVXaXRoU3BlY2lhbEluZGV4KGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQs
IFNwZWNpYWxJbmRleE51bWJlcikpOworICAgIEtleVByZWZpeCBwcmVmaXgoZGF0YWJhc2VJZCwg
b2JqZWN0U3RvcmVJZCwgU3BlY2lhbEluZGV4TnVtYmVyKTsKICAgICBWZWN0b3I8Y2hhcj4gcmV0
ID0gcHJlZml4LmVuY29kZSgpOwogICAgIHJldC5hcHBlbmQoZW5jb2RlZFVzZXJLZXkpOwogCkBA
IC0xNjYwLDcgKzE1OTksNyBAQCBjb25zdCBjaGFyKiBFeGlzdHNFbnRyeUtleTo6ZGVjb2RlKGNv
bnN0IGNoYXIqIHN0YXJ0LCBjb25zdCBjaGFyKiBlbmQsIEV4aXN0c0VudAogCiBWZWN0b3I8Y2hh
cj4gRXhpc3RzRW50cnlLZXk6OmVuY29kZShpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgY29uc3QgVmVjdG9yPGNoYXI+JiBlbmNvZGVkS2V5KQogewotICAgIEtleVBy
ZWZpeCBwcmVmaXgoS2V5UHJlZml4OjpjcmVhdGVXaXRoU3BlY2lhbEluZGV4KGRhdGFiYXNlSWQs
IG9iamVjdFN0b3JlSWQsIFNwZWNpYWxJbmRleE51bWJlcikpOworICAgIEtleVByZWZpeCBwcmVm
aXgoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgU3BlY2lhbEluZGV4TnVtYmVyKTsKICAgICBW
ZWN0b3I8Y2hhcj4gcmV0ID0gcHJlZml4LmVuY29kZSgpOwogICAgIHJldC5hcHBlbmQoZW5jb2Rl
ZEtleSk7CiAgICAgcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkxldmVsREJDb2RpbmcuaAppbmRleCBlYmM2NzllYmMxYjgyYjY1ZWI4ZTRh
ZGNhMjMwYzc2NWMyYTBlZjcwLi4wMjRjZGVhYzEzZWM5MzU1MTgyMDJkNjZkZmY1MmVkODU2YmFm
ODA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZl
bERCQ29kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2
ZWxEQkNvZGluZy5oCkBAIC01NCwxMSArNTQsNiBAQCBWZWN0b3I8Y2hhcj4gbWluSURCS2V5KCk7
CiBWZWN0b3I8Y2hhcj4gZW5jb2RlQm9vbChib29sKTsKIGJvb2wgZGVjb2RlQm9vbChjb25zdCBj
aGFyKiBiZWdpbiwgY29uc3QgY2hhciogZW5kKTsKIFZlY3RvcjxjaGFyPiBlbmNvZGVJbnQoaW50
NjRfdCk7Ci1pbmxpbmUgVmVjdG9yPGNoYXI+IGVuY29kZUludFNhZmVseShpbnQ2NF90IG5QYXJh
bSwgc2l6ZV90IG1heCkKLXsKLSAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8c2l6ZV90PihuUGFyYW0p
IDw9IG1heCk7Ci0gICAgcmV0dXJuIGVuY29kZUludChuUGFyYW0pOwotfQogaW50NjRfdCBkZWNv
ZGVJbnQoY29uc3QgY2hhciogYmVnaW4sIGNvbnN0IGNoYXIqIGVuZCk7CiBWZWN0b3I8Y2hhcj4g
ZW5jb2RlVmFySW50KGludDY0X3QpOwogY29uc3QgY2hhciogZGVjb2RlVmFySW50KGNvbnN0IGNo
YXIqIHAsIGNvbnN0IGNoYXIqIGxpbWl0LCBpbnQ2NF90JiBmb3VuZEludCk7CkBAIC04MiwxNCAr
NzcsMTAgQEAgaW50IGNvbXBhcmUoY29uc3QgTGV2ZWxEQlNsaWNlJiwgY29uc3QgTGV2ZWxEQlNs
aWNlJiwgYm9vbCBpbmRleEtleXMgPSBmYWxzZSk7CiBjbGFzcyBLZXlQcmVmaXggewogcHVibGlj
OgogICAgIEtleVByZWZpeCgpOwotICAgIGV4cGxpY2l0IEtleVByZWZpeChpbnQ2NF90IGRhdGFi
YXNlSWQpOwotICAgIEtleVByZWZpeChpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCk7CiAgICAgS2V5UHJlZml4KGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQpOwotICAgIHN0YXRpYyBLZXlQcmVmaXggY3JlYXRl
V2l0aFNwZWNpYWxJbmRleChpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgaW50NjRfdCBpbmRleElkKTsKIAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBkZWNvZGUoY29u
c3QgY2hhciogc3RhcnQsIGNvbnN0IGNoYXIqIGxpbWl0LCBLZXlQcmVmaXgqIHJlc3VsdCk7CiAg
ICAgVmVjdG9yPGNoYXI+IGVuY29kZSgpIGNvbnN0OwotICAgIHN0YXRpYyBWZWN0b3I8Y2hhcj4g
ZW5jb2RlRW1wdHkoKTsKICAgICBpbnQgY29tcGFyZShjb25zdCBLZXlQcmVmaXgmIG90aGVyKSBj
b25zdDsKIAogICAgIGVudW0gVHlwZSB7CkBAIC0xMDEsMzQgKzkyLDYgQEAgcHVibGljOgogICAg
ICAgICBJbnZhbGlkVHlwZQogICAgIH07CiAKLSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGtNYXhE
YXRhYmFzZUlkU2l6ZUJpdHMgPSAzOwotICAgIHN0YXRpYyBjb25zdCBzaXplX3Qga01heE9iamVj
dFN0b3JlSWRTaXplQml0cyA9IDM7Ci0gICAgc3RhdGljIGNvbnN0IHNpemVfdCBrTWF4SW5kZXhJ
ZFNpemVCaXRzID0gMjsKLQotICAgIHN0YXRpYyBjb25zdCBzaXplX3Qga01heERhdGFiYXNlSWRT
aXplQnl0ZXMgPSAxVUwgPDwga01heERhdGFiYXNlSWRTaXplQml0czsgLy8gOAotICAgIHN0YXRp
YyBjb25zdCBzaXplX3Qga01heE9iamVjdFN0b3JlSWRTaXplQnl0ZXMgPSAxVUwgPDwga01heE9i
amVjdFN0b3JlSWRTaXplQml0czsgLy8gOAotICAgIHN0YXRpYyBjb25zdCBzaXplX3Qga01heElu
ZGV4SWRTaXplQnl0ZXMgPSAxVUwgPDwga01heEluZGV4SWRTaXplQml0czsgLy8gNAotCi0gICAg
c3RhdGljIGNvbnN0IHNpemVfdCBrTWF4RGF0YWJhc2VJZEJpdHMgPSBrTWF4RGF0YWJhc2VJZFNp
emVCeXRlcyAqIDggLSAxOyAvLyA2MwotICAgIHN0YXRpYyBjb25zdCBzaXplX3Qga01heE9iamVj
dFN0b3JlSWRCaXRzID0ga01heE9iamVjdFN0b3JlSWRTaXplQnl0ZXMgKiA4IC0gMTsgLy8gNjMK
LSAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGtNYXhJbmRleElkQml0cyA9IGtNYXhJbmRleElkU2l6
ZUJ5dGVzICogOCAtIDE7IC8vIDMxCi0KLSAgICBzdGF0aWMgY29uc3QgaW50NjRfdCBrTWF4RGF0
YWJhc2VJZCA9ICgxVUwgPDwga01heERhdGFiYXNlSWRCaXRzKSAtIDE7IC8vIG1heCBzaWduZWQg
aW50NjRfdAotICAgIHN0YXRpYyBjb25zdCBpbnQ2NF90IGtNYXhPYmplY3RTdG9yZUlkID0gKDFV
TCA8PCBrTWF4T2JqZWN0U3RvcmVJZEJpdHMpIC0gMTsgLy8gbWF4IHNpZ25lZCBpbnQ2NF90Ci0g
ICAgc3RhdGljIGNvbnN0IGludDY0X3Qga01heEluZGV4SWQgPSAoMVVMIDw8IGtNYXhJbmRleElk
Qml0cykgLSAxOyAvLyBtYXggc2lnbmVkIGludDMyX3QKLQotICAgIHN0YXRpYyBib29sIGlzVmFs
aWREYXRhYmFzZUlkKGludDY0X3QgZGF0YWJhc2VJZCk7Ci0gICAgc3RhdGljIGJvb2wgaXNWYWxp
ZE9iamVjdFN0b3JlSWQoaW50NjRfdCBpbmRleElkKTsKLSAgICBzdGF0aWMgYm9vbCBpc1ZhbGlk
SW5kZXhJZChpbnQ2NF90IGluZGV4SWQpOwotICAgIHN0YXRpYyBib29sIHZhbGlkSWRzKGludDY0
X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQpCi0g
ICAgewotICAgICAgICByZXR1cm4gaXNWYWxpZERhdGFiYXNlSWQoZGF0YWJhc2VJZCkgJiYgaXNW
YWxpZE9iamVjdFN0b3JlSWQob2JqZWN0U3RvcmVJZCkgJiYgaXNWYWxpZEluZGV4SWQoaW5kZXhJ
ZCk7Ci0gICAgfQotICAgIHN0YXRpYyBib29sIHZhbGlkSWRzKGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGlzVmFsaWREYXRh
YmFzZUlkKGRhdGFiYXNlSWQpICYmIGlzVmFsaWRPYmplY3RTdG9yZUlkKG9iamVjdFN0b3JlSWQp
OwotICAgIH0KLQogICAgIFR5cGUgdHlwZSgpIGNvbnN0OwogCiAgICAgaW50NjRfdCBtX2RhdGFi
YXNlSWQ7CkBAIC0xMzYsMTEgKzk5LDYgQEAgcHVibGljOgogICAgIGludDY0X3QgbV9pbmRleElk
OwogCiAgICAgc3RhdGljIGNvbnN0IGludDY0X3QgSW52YWxpZElkID0gLTE7Ci0KLXByaXZhdGU6
Ci0gICAgc3RhdGljIFZlY3RvcjxjaGFyPiBlbmNvZGVJbnRlcm5hbChpbnQ2NF90IGRhdGFiYXNl
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkKTsKLSAgICAvLyBTcGVj
aWFsIGNvbnN0cnVjdG9yIGZvciBjcmVhdGVXaXRoU3BlY2lhbEluZGV4KCkKLSAgICBLZXlQcmVm
aXgoVHlwZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0
X3QgaW5kZXhJZCk7CiB9OwogCiBjbGFzcyBTY2hlbWFWZXJzaW9uS2V5IHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZElt
cGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW1wbC5jcHAKaW5kZXggNWM1ZWQwYzRkZjc0YjMyODcwZTM3NjQ0YThiNDI4YTgwMWE4
NGVkYS4uNGZjOGIxN2YzNDJmY2MwOGJkMWU2YjQwMzkzNWY2YTg4OWUzM2M4MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5k
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0
U3RvcmVCYWNrZW5kSW1wbC5jcHAKQEAgLTY0LDkgKzY0LDcgQEAgdm9pZCBJREJPYmplY3RTdG9y
ZUJhY2tlbmRJbXBsOjpJbmRleFdyaXRlcjo6d3JpdGVJbmRleEtleXMoY29uc3QgSURCQmFja2lu
Z1N0b3IKIHsKICAgICBpbnQ2NF90IGluZGV4SWQgPSBtX2luZGV4TWV0YWRhdGEuaWQ7CiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2luZGV4S2V5cy5zaXplKCk7ICsraSkgewotICAgICAg
ICBib29sIG9rID0gYmFja2luZ1N0b3JlLnB1dEluZGV4RGF0YUZvclJlY29yZCh0cmFuc2FjdGlv
biwgZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCwgKihtX2luZGV4S2V5cylbaV0u
Z2V0KCksIHJlY29yZElkZW50aWZpZXIpOwotICAgICAgICAvLyBUaGlzIHNob3VsZCBoYXZlIGFs
cmVhZHkgYmVlbiB2ZXJpZmllZCBhcyBhIHZhbGlkIHdyaXRlIGR1cmluZyB2ZXJpZnlJbmRleEtl
eXMuCi0gICAgICAgIEFTU0VSVF9VTlVTRUQob2ssIG9rKTsKKyAgICAgICAgYmFja2luZ1N0b3Jl
LnB1dEluZGV4RGF0YUZvclJlY29yZCh0cmFuc2FjdGlvbiwgZGF0YWJhc2VJZCwgb2JqZWN0U3Rv
cmVJZCwgaW5kZXhJZCwgKihtX2luZGV4S2V5cylbaV0uZ2V0KCksIHJlY29yZElkZW50aWZpZXIp
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9J
REJCYWNraW5nU3RvcmVUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURC
QmFja2luZ1N0b3JlVGVzdC5jcHAKaW5kZXggMDE5N2ExNTVlMjdlOGEwMzE3NTMxMjI1ZDNmNmM0
YjIwMDM1MzcwNS4uNTMwMmUxMmFmYzI3MzVlMWMxNzhhODdiZGQwZWM3MDRmZmE2MWMzNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJCYWNraW5nU3RvcmVUZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkJhY2tpbmdTdG9yZVRl
c3QuY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSAiSURCQmFja2luZ1N0b3JlLmgiCiAK
ICNpbmNsdWRlICJJREJGYWN0b3J5QmFja2VuZEltcGwuaCIKLSNpbmNsdWRlICJJREJMZXZlbERC
Q29kaW5nLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAKICNpbmNsdWRlIDxndGVzdC9n
dGVzdC5oPgpAQCAtMzcsNyArMzYsNiBAQAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQog
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5nIElEQkxldmVsREJDb2Rpbmc6OktleVBy
ZWZpeDsKIAogbmFtZXNwYWNlIHsKIApAQCAtNTUsMTMgKzUzLDEwIEBAIHB1YmxpYzoKICAgICAg
ICAgLy8gdXNlZnVsIGtleXMgYW5kIHZhbHVlcyBkdXJpbmcgdGVzdHMKICAgICAgICAgY29uc3Qg
Y2hhciByYXdWYWx1ZTFbXSA9ICJ2YWx1ZTEiOwogICAgICAgICBjb25zdCBjaGFyIHJhd1ZhbHVl
MltdID0gInZhbHVlMiI7Ci0gICAgICAgIGNvbnN0IGNoYXIgcmF3VmFsdWUzW10gPSAidmFsdWUz
IjsKICAgICAgICAgbV92YWx1ZTEuYXBwZW5kKHJhd1ZhbHVlMSwgc2l6ZW9mKHJhd1ZhbHVlMSkp
OwogICAgICAgICBtX3ZhbHVlMi5hcHBlbmQocmF3VmFsdWUyLCBzaXplb2YocmF3VmFsdWUyKSk7
Ci0gICAgICAgIG1fdmFsdWUzLmFwcGVuZChyYXdWYWx1ZTMsIHNpemVvZihyYXdWYWx1ZTMpKTsK
ICAgICAgICAgbV9rZXkxID0gSURCS2V5OjpjcmVhdGVOdW1iZXIoOTkpOwogICAgICAgICBtX2tl
eTIgPSBJREJLZXk6OmNyZWF0ZVN0cmluZygia2V5MiIpOwotICAgICAgICBtX2tleTMgPSBJREJL
ZXk6OmNyZWF0ZVN0cmluZygia2V5MyIpOwogICAgIH0KIAogcHJvdGVjdGVkOgpAQCAtNzAsMTAg
KzY1LDggQEAgcHJvdGVjdGVkOgogICAgIC8vIFNhbXBsZSBrZXlzIGFuZCB2YWx1ZXMgdGhhdCBh
cmUgY29uc2lzdGVudC4KICAgICBSZWZQdHI8SURCS2V5PiBtX2tleTE7CiAgICAgUmVmUHRyPElE
QktleT4gbV9rZXkyOwotICAgIFJlZlB0cjxJREJLZXk+IG1fa2V5MzsKICAgICBWZWN0b3I8Y2hh
cj4gbV92YWx1ZTE7CiAgICAgVmVjdG9yPGNoYXI+IG1fdmFsdWUyOwotICAgIFZlY3RvcjxjaGFy
PiBtX3ZhbHVlMzsKIH07CiAKIFRFU1RfRihJREJCYWNraW5nU3RvcmVUZXN0LCBQdXRHZXRDb25z
aXN0ZW5jeSkKQEAgLTEwMywyNiArOTYsMTIgQEAgVEVTVF9GKElEQkJhY2tpbmdTdG9yZVRlc3Qs
IEhpZ2hJZHMpCiB7CiAgICAgY29uc3QgaW50NjRfdCBoaWdoRGF0YWJhc2VJZCA9IDFVTEwgPDwg
MzU7CiAgICAgY29uc3QgaW50NjRfdCBoaWdoT2JqZWN0U3RvcmVJZCA9IDFVTEwgPDwgMzk7Ci0g
ICAgLy8gaW5kZXhJZHMgYXJlIGNhcHBlZCBhdCAzMiBiaXRzIGZvciBzdG9yYWdlIHB1cnBvc2Vz
LgotICAgIGNvbnN0IGludDY0X3QgaGlnaEluZGV4SWQgPSAxVUxMIDw8IDI5OwotCi0gICAgY29u
c3QgaW50NjRfdCBpbnZhbGlkSGlnaEluZGV4SWQgPSAxVUxMIDw8IDM3OwotCi0gICAgY29uc3Qg
UmVmUHRyPElEQktleT4gaW5kZXhLZXkgPSBtX2tleTI7Ci0gICAgVmVjdG9yPGNoYXI+IGluZGV4
S2V5UmF3ID0gSURCTGV2ZWxEQkNvZGluZzo6ZW5jb2RlSURCS2V5KCppbmRleEtleSk7CiAgICAg
ewogICAgICAgICBJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uMShtX2Jh
Y2tpbmdTdG9yZS5nZXQoKSk7CiAgICAgICAgIHRyYW5zYWN0aW9uMS5iZWdpbigpOwogICAgICAg
ICBJREJCYWNraW5nU3RvcmU6OlJlY29yZElkZW50aWZpZXIgcmVjb3JkOwogICAgICAgICBib29s
IG9rID0gbV9iYWNraW5nU3RvcmUtPnB1dFJlY29yZCgmdHJhbnNhY3Rpb24xLCBoaWdoRGF0YWJh
c2VJZCwgaGlnaE9iamVjdFN0b3JlSWQsICptX2tleTEuZ2V0KCksIFNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKG1fdmFsdWUxLmRhdGEoKSwgbV92YWx1ZTEuc2l6ZSgpKSwgJnJlY29yZCk7CiAgICAgICAg
IEVYUEVDVF9UUlVFKG9rKTsKLQotICAgICAgICBvayA9IG1fYmFja2luZ1N0b3JlLT5wdXRJbmRl
eERhdGFGb3JSZWNvcmQoJnRyYW5zYWN0aW9uMSwgaGlnaERhdGFiYXNlSWQsIGhpZ2hPYmplY3RT
dG9yZUlkLCBpbnZhbGlkSGlnaEluZGV4SWQsICppbmRleEtleSwgcmVjb3JkKTsKLSAgICAgICAg
RVhQRUNUX0ZBTFNFKG9rKTsKLQotICAgICAgICBvayA9IG1fYmFja2luZ1N0b3JlLT5wdXRJbmRl
eERhdGFGb3JSZWNvcmQoJnRyYW5zYWN0aW9uMSwgaGlnaERhdGFiYXNlSWQsIGhpZ2hPYmplY3RT
dG9yZUlkLCBoaWdoSW5kZXhJZCwgKmluZGV4S2V5LCByZWNvcmQpOwotICAgICAgICBFWFBFQ1Rf
VFJVRShvayk7Ci0KICAgICAgICAgb2sgPSB0cmFuc2FjdGlvbjEuY29tbWl0KCk7CiAgICAgICAg
IEVYUEVDVF9UUlVFKG9rKTsKICAgICB9CkBAIC0xMzMsNjkgKzExMiwxMiBAQCBURVNUX0YoSURC
QmFja2luZ1N0b3JlVGVzdCwgSGlnaElkcykKICAgICAgICAgVmVjdG9yPGNoYXI+IHJlc3VsdFZh
bHVlOwogICAgICAgICBib29sIG9rID0gbV9iYWNraW5nU3RvcmUtPmdldFJlY29yZCgmdHJhbnNh
Y3Rpb24yLCBoaWdoRGF0YWJhc2VJZCwgaGlnaE9iamVjdFN0b3JlSWQsICptX2tleTEuZ2V0KCks
IHJlc3VsdFZhbHVlKTsKICAgICAgICAgRVhQRUNUX1RSVUUob2spOwotICAgICAgICBFWFBFQ1Rf
RVEobV92YWx1ZTEsIHJlc3VsdFZhbHVlKTsKLQotICAgICAgICBSZWZQdHI8SURCS2V5PiBuZXdQ
cmltYXJ5S2V5OwotICAgICAgICBvayA9IG1fYmFja2luZ1N0b3JlLT5nZXRQcmltYXJ5S2V5Vmlh
SW5kZXgoJnRyYW5zYWN0aW9uMiwgaGlnaERhdGFiYXNlSWQsIGhpZ2hPYmplY3RTdG9yZUlkLCBp
bnZhbGlkSGlnaEluZGV4SWQsICppbmRleEtleSwgbmV3UHJpbWFyeUtleSk7Ci0gICAgICAgIEVY
UEVDVF9GQUxTRShvayk7Ci0KLSAgICAgICAgb2sgPSBtX2JhY2tpbmdTdG9yZS0+Z2V0UHJpbWFy
eUtleVZpYUluZGV4KCZ0cmFuc2FjdGlvbjIsIGhpZ2hEYXRhYmFzZUlkLCBoaWdoT2JqZWN0U3Rv
cmVJZCwgaGlnaEluZGV4SWQsICppbmRleEtleSwgbmV3UHJpbWFyeUtleSk7Ci0gICAgICAgIEVY
UEVDVF9UUlVFKG9rKTsKLSAgICAgICAgRVhQRUNUX1RSVUUobmV3UHJpbWFyeUtleS0+aXNFcXVh
bChtX2tleTEuZ2V0KCkpKTsKLQogICAgICAgICBvayA9IHRyYW5zYWN0aW9uMi5jb21taXQoKTsK
ICAgICAgICAgRVhQRUNUX1RSVUUob2spOworICAgICAgICBFWFBFQ1RfRVEobV92YWx1ZTEsIHJl
c3VsdFZhbHVlKTsKICAgICB9CiB9CiAKLS8vIE1ha2Ugc3VyZSB0aGF0IG90aGVyIGludmFsaWQg
aWRzIGRvIG5vdCBjcmFzaC4KLVRFU1RfRihJREJCYWNraW5nU3RvcmVUZXN0LCBJbnZhbGlkSWRz
KQotewotICAgIC8vIHZhbGlkIGlkcyBmb3IgdXNlIHdoZW4gdGVzdGluZyBpbnZhbGlkIGlkcwot
ICAgIGNvbnN0IGludDY0X3QgZGF0YWJhc2VJZCA9IDE7Ci0gICAgY29uc3QgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkID0gMTsKLSAgICBjb25zdCBpbnQ2NF90IGluZGV4SWQgPSBJREJMZXZlbERCQ29k
aW5nOjpNaW5pbXVtSW5kZXhJZDsKLSAgICBjb25zdCBpbnQ2NF90IGludmFsaWRMb3dJbmRleElk
ID0gMTk7IC8vIGluZGV4SWRzIG11c3QgYmUgPiBJREJMZXZlbERCQ29kaW5nOjpNaW5pbXVtSW5k
ZXhJZAotCi0gICAgY29uc3QgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFsdWUgPSBTaGFyZWRCdWZm
ZXI6OmNyZWF0ZShtX3ZhbHVlMS5kYXRhKCksIG1fdmFsdWUxLnNpemUoKSk7Ci0gICAgVmVjdG9y
PGNoYXI+IHJlc3VsdFZhbHVlOwotCi0gICAgSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiB0
cmFuc2FjdGlvbjEobV9iYWNraW5nU3RvcmUuZ2V0KCkpOwotICAgIHRyYW5zYWN0aW9uMS5iZWdp
bigpOwotCi0gICAgSURCQmFja2luZ1N0b3JlOjpSZWNvcmRJZGVudGlmaWVyIHJlY29yZDsKLSAg
ICBib29sIG9rID0gbV9iYWNraW5nU3RvcmUtPnB1dFJlY29yZCgmdHJhbnNhY3Rpb24xLCBkYXRh
YmFzZUlkLCBLZXlQcmVmaXg6OkludmFsaWRJZCwgKm1fa2V5MS5nZXQoKSwgdmFsdWUsICZyZWNv
cmQpOwotICAgIEVYUEVDVF9GQUxTRShvayk7Ci0gICAgb2sgPSBtX2JhY2tpbmdTdG9yZS0+cHV0
UmVjb3JkKCZ0cmFuc2FjdGlvbjEsIGRhdGFiYXNlSWQsIDAsICptX2tleTEuZ2V0KCksIHZhbHVl
LCAmcmVjb3JkKTsKLSAgICBFWFBFQ1RfRkFMU0Uob2spOwotICAgIG9rID0gbV9iYWNraW5nU3Rv
cmUtPnB1dFJlY29yZCgmdHJhbnNhY3Rpb24xLCBLZXlQcmVmaXg6OkludmFsaWRJZCwgb2JqZWN0
U3RvcmVJZCwgKm1fa2V5MS5nZXQoKSwgdmFsdWUsICZyZWNvcmQpOwotICAgIEVYUEVDVF9GQUxT
RShvayk7Ci0gICAgb2sgPSBtX2JhY2tpbmdTdG9yZS0+cHV0UmVjb3JkKCZ0cmFuc2FjdGlvbjEs
IDAsIG9iamVjdFN0b3JlSWQsICptX2tleTEuZ2V0KCksIHZhbHVlLCAmcmVjb3JkKTsKLSAgICBF
WFBFQ1RfRkFMU0Uob2spOwotCi0gICAgb2sgPSBtX2JhY2tpbmdTdG9yZS0+Z2V0UmVjb3JkKCZ0
cmFuc2FjdGlvbjEsIGRhdGFiYXNlSWQsIEtleVByZWZpeDo6SW52YWxpZElkLCAqbV9rZXkxLmdl
dCgpLCByZXN1bHRWYWx1ZSk7Ci0gICAgRVhQRUNUX0ZBTFNFKG9rKTsKLSAgICBvayA9IG1fYmFj
a2luZ1N0b3JlLT5nZXRSZWNvcmQoJnRyYW5zYWN0aW9uMSwgZGF0YWJhc2VJZCwgMCwgKm1fa2V5
MS5nZXQoKSwgcmVzdWx0VmFsdWUpOwotICAgIEVYUEVDVF9GQUxTRShvayk7Ci0gICAgb2sgPSBt
X2JhY2tpbmdTdG9yZS0+Z2V0UmVjb3JkKCZ0cmFuc2FjdGlvbjEsIEtleVByZWZpeDo6SW52YWxp
ZElkLCBvYmplY3RTdG9yZUlkLCAqbV9rZXkxLmdldCgpLCByZXN1bHRWYWx1ZSk7Ci0gICAgRVhQ
RUNUX0ZBTFNFKG9rKTsKLSAgICBvayA9IG1fYmFja2luZ1N0b3JlLT5nZXRSZWNvcmQoJnRyYW5z
YWN0aW9uMSwgMCwgb2JqZWN0U3RvcmVJZCwgKm1fa2V5MS5nZXQoKSwgcmVzdWx0VmFsdWUpOwot
ICAgIEVYUEVDVF9GQUxTRShvayk7Ci0KLSAgICBSZWZQdHI8SURCS2V5PiBuZXdQcmltYXJ5S2V5
OwotICAgIG9rID0gbV9iYWNraW5nU3RvcmUtPmdldFByaW1hcnlLZXlWaWFJbmRleCgmdHJhbnNh
Y3Rpb24xLCBkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCBLZXlQcmVmaXg6OkludmFsaWRJZCwg
Km1fa2V5MSwgbmV3UHJpbWFyeUtleSk7Ci0gICAgRVhQRUNUX0ZBTFNFKG9rKTsKLSAgICBvayA9
IG1fYmFja2luZ1N0b3JlLT5nZXRQcmltYXJ5S2V5VmlhSW5kZXgoJnRyYW5zYWN0aW9uMSwgZGF0
YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgaW52YWxpZExvd0luZGV4SWQsICptX2tleTEsIG5ld1By
aW1hcnlLZXkpOwotICAgIEVYUEVDVF9GQUxTRShvayk7Ci0gICAgb2sgPSBtX2JhY2tpbmdTdG9y
ZS0+Z2V0UHJpbWFyeUtleVZpYUluZGV4KCZ0cmFuc2FjdGlvbjEsIGRhdGFiYXNlSWQsIG9iamVj
dFN0b3JlSWQsIDAsICptX2tleTEsIG5ld1ByaW1hcnlLZXkpOwotICAgIEVYUEVDVF9GQUxTRShv
ayk7Ci0KLSAgICBvayA9IG1fYmFja2luZ1N0b3JlLT5nZXRQcmltYXJ5S2V5VmlhSW5kZXgoJnRy
YW5zYWN0aW9uMSwgS2V5UHJlZml4OjpJbnZhbGlkSWQsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQs
ICptX2tleTEsIG5ld1ByaW1hcnlLZXkpOwotICAgIEVYUEVDVF9GQUxTRShvayk7Ci0gICAgb2sg
PSBtX2JhY2tpbmdTdG9yZS0+Z2V0UHJpbWFyeUtleVZpYUluZGV4KCZ0cmFuc2FjdGlvbjEsIGRh
dGFiYXNlSWQsIEtleVByZWZpeDo6SW52YWxpZElkLCBpbmRleElkLCAqbV9rZXkxLCBuZXdQcmlt
YXJ5S2V5KTsKLSAgICBFWFBFQ1RfRkFMU0Uob2spOwotfQotCiBURVNUX0YoSURCQmFja2luZ1N0
b3JlVGVzdCwgQ3JlYXRlRGF0YWJhc2UpCiB7CiAgICAgY29uc3QgU3RyaW5nIGRhdGFiYXNlTmFt
ZSgiZGIxIik7CkBAIC0yNDQsOCArMTY2LDcgQEAgVEVTVF9GKElEQkJhY2tpbmdTdG9yZVRlc3Qs
IENyZWF0ZURhdGFiYXNlKQogICAgICAgICBFWFBFQ1RfRVEoaW50VmVyc2lvbiwgZGF0YWJhc2Uu
aW50VmVyc2lvbik7CiAgICAgICAgIEVYUEVDVF9FUShkYXRhYmFzZUlkLCBkYXRhYmFzZS5pZCk7
CiAKLSAgICAgICAgb2sgPSBtX2JhY2tpbmdTdG9yZS0+Z2V0T2JqZWN0U3RvcmVzKGRhdGFiYXNl
LmlkLCAmZGF0YWJhc2Uub2JqZWN0U3RvcmVzKTsKLSAgICAgICAgRVhQRUNUX1RSVUUob2spOwor
ICAgICAgICBtX2JhY2tpbmdTdG9yZS0+Z2V0T2JqZWN0U3RvcmVzKGRhdGFiYXNlLmlkLCAmZGF0
YWJhc2Uub2JqZWN0U3RvcmVzKTsKIAogICAgICAgICBFWFBFQ1RfRVEoMSwgZGF0YWJhc2Uub2Jq
ZWN0U3RvcmVzLnNpemUoKSk7CiAgICAgICAgIElEQk9iamVjdFN0b3JlTWV0YWRhdGEgb2JqZWN0
U3RvcmUgPSBkYXRhYmFzZS5vYmplY3RTdG9yZXMuZ2V0KG9iamVjdFN0b3JlSWQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJGYWtlQmFja2luZ1N0b3JlLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkZha2VCYWNraW5nU3RvcmUuaAppbmRl
eCBhNDdiNTkzMjliOTQyMjAxYTE2MzU3MjY5N2E4ZGY4ZWVjNTg2OTA2Li5lZWZjNjQ4YWQyM2E0
NWMyY2M4N2MyNGNiY2IzNDIxNjIxZDc0ZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0lEQkZha2VCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0lEQkZha2VCYWNraW5nU3RvcmUuaApAQCAtNDEsMTUgKzQxLDE1IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVPYmplY3RTdG9yZShUcmFuc2FjdGlvbios
IGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQpIE9WRVJSSURFIHsg
cmV0dXJuIGZhbHNlOyB9OwogCi0gICAgdmlydHVhbCBib29sIGNsZWFyT2JqZWN0U3RvcmUoVHJh
bnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkgT1ZF
UlJJREUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUmVjb3JkKFRy
YW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNv
bnN0IFJlY29yZElkZW50aWZpZXImKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZp
cnR1YWwgdm9pZCBjbGVhck9iamVjdFN0b3JlKFRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFz
ZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpIE9WRVJSSURFIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBkZWxldGVSZWNvcmQoVHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCwgY29uc3QgUmVjb3JkSWRlbnRpZmllciYpIE9WRVJSSURFIHsgfQogICAg
IHZpcnR1YWwgYm9vbCBnZXRLZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKFRyYW5zYWN0aW9uKiwg
aW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QmIGN1cnJl
bnROdW1iZXIpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgbWF5
YmVVcGRhdGVLZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKFRyYW5zYWN0aW9uKiwgaW50NjRfdCBk
YXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgbmV3TnVtYmVyLCBib29s
IGNoZWNrQ3VycmVudCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBrZXlFeGlzdHNJbk9iamVjdFN0b3JlKFRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlk
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYsIFJlY29yZElkZW50aWZpZXIq
IGZvdW5kUmVjb3JkSWRlbnRpZmllciwgYm9vbCYgZm91bmQpIE9WRVJSSURFIHsgcmV0dXJuIHRy
dWU7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBjcmVhdGVJbmRleChUcmFuc2FjdGlvbiosIGludDY0
X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYsIGJvb2wgaXNVbmlxdWUsIGJvb2wg
aXNNdWx0aUVudHJ5KSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfTsKLSAgICB2aXJ0dWFsIGJv
b2wgZGVsZXRlSW5kZXgoVHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsg
fQotICAgIHZpcnR1YWwgYm9vbCBwdXRJbmRleERhdGFGb3JSZWNvcmQoVHJhbnNhY3Rpb24qLCBp
bnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElk
LCBjb25zdCBJREJLZXkmLCBjb25zdCBSZWNvcmRJZGVudGlmaWVyJikgT1ZFUlJJREUgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlSW5kZXgoVHJhbnNhY3Rpb24qLCBp
bnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElk
KSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcHV0SW5kZXhEYXRhRm9yUmVjb3JkKFRy
YW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGlu
dDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5JiwgY29uc3QgUmVjb3JkSWRlbnRpZmllciYpIE9W
RVJSSURFIHsgfQogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEN1cnNvcj4gb3Blbk9iamVjdFN0
b3JlS2V5Q3Vyc29yKFRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIGNvbnN0IElEQktleVJhbmdlKiwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rp
b24pIE9WRVJSSURFIHsgcmV0dXJuIFBhc3NSZWZQdHI8Q3Vyc29yPigpOyB9CiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPEN1cnNvcj4gb3Blbk9iamVjdFN0b3JlQ3Vyc29yKFRyYW5zYWN0aW9uKiwg
aW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleVJh
bmdlKiwgSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb24pIE9WRVJSSURFIHsgcmV0dXJuIFBhc3NS
ZWZQdHI8Q3Vyc29yPigpOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>