<?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>176060</bug_id>
          
          <creation_ts>2017-08-29 11:26:21 -0700</creation_ts>
          <short_desc>Throwing an exception in the DFG/FTL should not cause a jettison</short_desc>
          <delta_ts>2017-08-31 22:41:14 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>176090</dependson>
          <blocked>175396</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1343162</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-29 11:26:21 -0700</bug_when>
    <thetext>This is expected behavior, there is no reason we should repeatedly jettison and recompile.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343234</commentid>
    <comment_count>1</comment_count>
      <attachid>319285</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-29 14:49:53 -0700</bug_when>
    <thetext>Created attachment 319285
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343238</commentid>
    <comment_count>2</comment_count>
      <attachid>319285</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2017-08-29 14:53:17 -0700</bug_when>
    <thetext>Comment on attachment 319285
patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:3
&gt; +        Throwing an exception in the DFG/FTL should not be a jittison-able OSR exit

I think you want the bug title to be &quot;... jettison-able ...&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343240</commentid>
    <comment_count>3</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-29 14:55:40 -0700</bug_when>
    <thetext>fixed in:
https://trac.webkit.org/changeset/221317/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343241</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-29 14:56:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/34143348&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343360</commentid>
    <comment_count>5</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-08-29 18:11:31 -0700</bug_when>
    <thetext>This change caused 3 JSC test failures:
** The following JSC stress test failures have been introduced:
	jsc-layout-tests.yaml/js/script-tests/dfg-activation-register-overwritten-in-throw.js.layout
	jsc-layout-tests.yaml/js/script-tests/dfg-activation-register-overwritten-in-throw.js.layout-ftl-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/dfg-activation-register-overwritten-in-throw.js.layout-ftl-no-cjit

https://build.webkit.org/builders/Apple%20Sierra%20Release%20JSC%20%28Tests%29/builds/3457</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343405</commentid>
    <comment_count>6</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-29 19:59:42 -0700</bug_when>
    <thetext>Will look into this in an hour or so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343415</commentid>
    <comment_count>7</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-29 20:49:05 -0700</bug_when>
    <thetext>Very weird, I can&apos;t reproduce this locally running the test manually. However, I can reproduce it when running it via run-jsc-stress-tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343417</commentid>
    <comment_count>8</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-29 20:51:28 -0700</bug_when>
    <thetext>Nevermind, I can reproduce it. This is super weird.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343422</commentid>
    <comment_count>9</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-29 21:03:23 -0700</bug_when>
    <thetext>I think I see the bug. We&apos;re running the test with &quot;testTheFTL=true&quot;, however, I don&apos;t think we&apos;re ever compiling for the FTL because we just repeatedly exit at the throw site. We also never increment our FTL optimization counter. The test in layout tests will ensure that we make it to the DFG, but the CodeBlock is lying and saying we&apos;re not in the DFG:

unsigned CodeBlock::numberOfDFGCompiles()
{
    ASSERT(JITCode::isBaselineCode(jitType()));
    if (Options::testTheFTL()) {
        if (m_didFailFTLCompilation)
            return 1000000;
        return (m_hasBeenCompiledWithFTL ? 1 : 0) + m_reoptimizationRetryCounter;
    }
    return (JITCode::isOptimizingJIT(replacement()-&gt;jitType()) ? 1 : 0) + m_reoptimizationRetryCounter;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343436</commentid>
    <comment_count>10</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-29 21:13:31 -0700</bug_when>
    <thetext>Ima roll out for now. I think we should just treat Throw/ThrowStaticError like a terminal and actually throw an exception from the DFG/FTL. Anybody have any reasons to oppose doing this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343438</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-29 21:15:17 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 176090</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343486</commentid>
    <comment_count>12</comment_count>
      <attachid>319352</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-30 01:09:57 -0700</bug_when>
    <thetext>Created attachment 319352
patch

Might be it. Let&apos;s see what EWS thinks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343513</commentid>
    <comment_count>13</comment_count>
      <attachid>319352</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-30 06:05:38 -0700</bug_when>
    <thetext>Comment on attachment 319352
patch

Attachment 319352 did not pass jsc-ews (mac):
Output: http://webkit-queues.webkit.org/results/4409440

New failing tests:
microbenchmarks/exit-length-on-plain-object.js.dfg-maximal-flush-validate-no-cjit
stress/promise-finally.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/array-prototype-reduce.js.dfg-maximal-flush-validate-no-cjit
stress/generic-arguments-correct-delete-behavior.js.dfg-maximal-flush-validate-no-cjit
stress/typedarray-getownproperty-not-configurable.js.dfg-maximal-flush-validate-no-cjit
stress/arguments-elimination-varargs-too-many-args-arg-count.js.dfg-maximal-flush-validate-no-cjit
stress/super-method-calls-check-tdz.js.dfg-maximal-flush-validate-no-cjit
stress/inlined-error-gets-correct-codeblock-for-bytecodeoffset.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/for-of-iterate-array-keys.js.dfg-maximal-flush-validate-no-cjit
stress/spec-empty-flows-through-cell-checks.js.dfg-maximal-flush-validate-no-cjit
stress/reserved-word-with-escape.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/array-prototype-map.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/raytrace-with-empty-try-catch.js.dfg-maximal-flush-validate-no-cjit
v8-v6/v8-deltablue.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-try-catch-arith-sub-exception.js.dfg-maximal-flush-validate-no-cjit
stress/math-round-basics.js.dfg-maximal-flush-validate-no-cjit
stress/fold-profiled-call-to-call.js.dfg-maximal-flush-validate-no-cjit
stress/phantom-inadequacy.js.dfg-maximal-flush-validate-no-cjit
stress/const-loop-semantics.js.dfg-maximal-flush-validate-no-cjit
stress/regress-170896-with-int32-shape-profile.js.dfg-maximal-flush-validate-no-cjit
stress/SharedArrayBuffer-opt.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-activation-sink-osrexit-default-value-tdz-error.js.dfg-maximal-flush-validate-no-cjit
stress/argument-count-bytecode.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-put-setter-by-id-class.js.dfg-maximal-flush-validate-no-cjit
sunspider-1.0/string-validate-input.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-abs-zero-then-get-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/module-namespace-access-transitive-exports.js.dfg-maximal-flush-validate-no-cjit
stress/builtin-function-is-construct-type-none.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/super-get-by-val-with-this-polymorphic.js.dfg-maximal-flush-validate-no-cjit
stress/to-string-on-object-or-string.js.dfg-maximal-flush-validate-no-cjit
stress/new-regex-inline.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-shr-exception.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-call-varargs-exception-interesting-live-state.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-constructor.js.dfg-maximal-flush-validate-no-cjit
stress/typedarray-fill.js.dfg-maximal-flush-validate-no-cjit
stress/exception-dfg-not-strict-equal.js.dfg-maximal-flush-validate-no-cjit
stress/pow-simple.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-get-by-id-slow-exception.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-supercall-1.js.dfg-maximal-flush-validate-no-cjit
stress/parameter-scoping.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-arguments-non-strict-2.js.dfg-maximal-flush-validate-no-cjit
stress/to-string-on-object.js.dfg-maximal-flush-validate-no-cjit
stress/scoped-then-direct-arguments-get-by-val-in-baseline.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/large-map-iteration.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-exception-try-catch-in-constructor-with-inlined-throw.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-replace.js.dfg-maximal-flush-validate-no-cjit
stress/flatten-oversize-dictionary-object.js.dfg-maximal-flush-validate-no-cjit
stress/class-subclassing-string.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/map-for-of.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-double-constructor.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-has-property.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-no-tdz.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-neg-then-get-by-val.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/super-get-by-id-with-this-polymorphic.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-repeat-not-resolving.js.dfg-maximal-flush-validate-no-cjit
stress/for-in-invalidate-context-weird-assignments.js.dfg-maximal-flush-validate-no-cjit
stress/create-this-with-callee-variants.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-put-by-id-slow-exception.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/branch-fold.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-call-exception.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-try-catch-oom-error-lazy-slow-path.js.dfg-maximal-flush-validate-no-cjit
stress/map-iteration.js.dfg-maximal-flush-validate-no-cjit
stress/instanceof.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-try-catch-varargs-call-throws.js.dfg-maximal-flush-validate-no-cjit
stress/throw-through-optimized-code.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/instanceof-bound.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/get-by-id-chain-from-try-block.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-div-then-get-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/compare-number-and-other.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/arrowfunction-call-in-class-method.js.dfg-maximal-flush-validate-no-cjit
stress/const-tdz.js.dfg-maximal-flush-validate-no-cjit
stress/typedarray-view-string-properties-neutered.js.dfg-maximal-flush-validate-no-cjit
stress/arrow-functions-as-default-parameter-values.js.dfg-maximal-flush-validate-no-cjit
stress/destructuring-rest-element.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/simple-regexp-test-folding-fail-with-hoisted-regexp.js.dfg-maximal-flush-validate-no-cjit
stress/new-array-with-spread-with-normal-spread-and-phantom-spread.js.dfg-maximal-flush-validate-no-cjit
stress/eval-func-decl-block-with-var-and-remove.js.dfg-maximal-flush-validate-no-cjit
stress/throw-from-ftl-call-ic-slow-path.js.dfg-maximal-flush-validate-no-cjit
stress/call-apply-exponential-bytecode-size.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-others.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-superproperty.js.dfg-maximal-flush-validate-no-cjit
stress/allocation-sinking-puthint-control-flow.js.dfg-maximal-flush-validate-no-cjit
stress/async-arrow-functions-lexical-binding-in-class.js.dfg-maximal-flush-validate-no-cjit
stress/cse-multi-get-by-offset-remove-checks.js.dfg-maximal-flush-validate-no-cjit
stress/cloned-arguments-modification.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/locale-compare.js.dfg-maximal-flush-validate-no-cjit
stress/liveness-pruning-needed-for-osr-availability.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-library-inlining-exceptions.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-is-array.js.dfg-maximal-flush-validate-no-cjit
stress/rest-parameter-many-arguments.js.dfg-maximal-flush-validate-no-cjit
stress/array-reverse-proxy.js.dfg-maximal-flush-validate-no-cjit
v8-v6/v8-earley-boyer.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-supercall-2.js.dfg-maximal-flush-validate-no-cjit
stress/map-inherit-set.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-concat-convert.js.dfg-maximal-flush-validate-no-cjit
stress/dont-unwind-past-vm-entry-frame.js.dfg-maximal-flush-validate-no-cjit
stress/get-by-val-with-string-getter.js.dfg-maximal-flush-validate-no-cjit
stress/super-property-access-tdz.js.dfg-maximal-flush-validate-no-cjit
stress/variable-named-eval-under-tdz.js.dfg-maximal-flush-validate-no-cjit
stress/async-iteration-yield-star.js.dfg-maximal-flush-validate-no-cjit
stress/typedarray-map.js.dfg-maximal-flush-validate-no-cjit
stress/fiat-value-to-int52-then-exit-not-int52.js.dfg-maximal-flush-validate-no-cjit
stress/to-property-key-correctness.js.dfg-maximal-flush-validate-no-cjit
stress/compare-eq-on-null-and-undefined-optimized-in-constant-folding.js.dfg-maximal-flush-validate-no-cjit
stress/fold-typed-array-properties.js.dfg-maximal-flush-validate-no-cjit
stress/class-derived-from-null.js.dfg-maximal-flush-validate-no-cjit
stress/generator-fib-ftl.js.dfg-maximal-flush-validate-no-cjit
stress/regress-156765.js.dfg-maximal-flush-validate-no-cjit
stress/v8-splay-strict.js.dfg-maximal-flush-validate-no-cjit
stress/pow-nan-behaviors.js.dfg-maximal-flush-validate-no-cjit
stress/prop-type-struct-then-object-opt-fold.js.dfg-maximal-flush-validate-no-cjit
stress/spread-forward-varargs-stack-overflow.js.dfg-maximal-flush-validate-no-cjit
stress/math-clz32-basics.js.dfg-maximal-flush-validate-no-cjit
stress/rest-parameter-having-a-bad-time.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-try-catch-getter-throw-interesting-value-recovery.js.dfg-maximal-flush-validate-no-cjit
stress/regress-170896-with-double-shape-profile.js.dfg-maximal-flush-validate-no-cjit
stress/typedarray-slice.js.dfg-maximal-flush-validate-no-cjit
stress/sink-object-past-invalid-check-sneakier.js.dfg-maximal-flush-validate-no-cjit
stress/constant-fold-multi-get-by-offset-to-get-by-offset-on-prototype-and-sink-allocation.js.dfg-maximal-flush-validate-no-cjit
stress/sink-arguments-past-invalid-check-sneakier.js.dfg-maximal-flush-validate-no-cjit
stress/array-symbol-species-lazy-watchpoints.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-operation-exception.js.dfg-maximal-flush-validate-no-cjit
stress/fold-to-primitive-to-identity-in-cfa.js.dfg-maximal-flush-validate-no-cjit
stress/tail-call-host-call-throw.js.dfg-maximal-flush-validate-no-cjit
stress/sampling-profiler-deep-stack.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/call-spread-call.js.dfg-maximal-flush-validate-no-cjit
stress/exception-in-to-property-key-should-be-handled-early.js.dfg-maximal-flush-validate-no-cjit
stress/poly-call-stub-in-getter-stub.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-typeof.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-with-private-symbols.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-operation-exception-interesting-live-state.js.dfg-maximal-flush-validate-no-cjit
stress/get-by-val-on-undecided-sane-chain-2.js.dfg-maximal-flush-validate-no-cjit
stress/with.js.dfg-maximal-flush-validate-no-cjit
stress/spread-forward-call-varargs-stack-overflow.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-no-tdz-in-loop-no-inline-super.js.dfg-maximal-flush-validate-no-cjit
stress/make-rope-2.js.dfg-maximal-flush-validate-no-cjit
stress/activation-sink-osrexit-default-value-tdz-error.js.dfg-maximal-flush-validate-no-cjit
stress/throw-from-ftl-call-ic-slow-path-undefined.js.dfg-maximal-flush-validate-no-cjit
stress/array-slice-osr-exit-2.js.dfg-maximal-flush-validate-no-cjit
stress/arith-mul-with-constants.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-try-catch-wrong-value-recovery-on-ic-miss.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-newtarget.js.dfg-maximal-flush-validate-no-cjit
stress/fiat-value-to-int52-then-fail-to-fold.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/call-spread-apply.js.dfg-maximal-flush-validate-no-cjit
stress/spread-correct-global-object-on-exception.js.dfg-maximal-flush-validate-no-cjit
stress/inferred-infinite-loop-that-uses-captured-variables.js.dfg-maximal-flush-validate-no-cjit
stress/fold-load-varargs-arity-check-fail.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-repeat-not-resolving-no-inline.js.dfg-maximal-flush-validate-no-cjit
stress/dead-fiat-value-to-int52-then-exit-not-int52.js.dfg-maximal-flush-validate-no-cjit
stress/get-by-val-with-string-constructor.js.dfg-maximal-flush-validate-no-cjit
v8-v6/v8-raytrace.js.dfg-maximal-flush-validate-no-cjit
stress/global-lexical-var-injection.js.dfg-maximal-flush-validate-no-cjit
stress/async-iteration-yield-promise.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-get-and-set-recursion-stack-overflow.js.dfg-maximal-flush-validate-no-cjit
stress/global-isNaN-basics.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-call.js.dfg-maximal-flush-validate-no-cjit
stress/array-concat-spread-proxy.js.dfg-maximal-flush-validate-no-cjit
stress/domjit-getter-try-catch-getter-as-get-by-id-register-restoration.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-get-prototype-of.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-get-by-id-slow-exception-interesting-live-state.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-try-catch-tail-call-inilned-caller.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-put-setter-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-property-descriptor.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-put-getter-by-id.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-to-primitive-pass-symbol.js.dfg-maximal-flush-validate-no-cjit
stress/to-string-on-string-or-string-object.js.dfg-maximal-flush-validate-no-cjit
stress/sink-function-past-invalid-check-sneakier.js.dfg-maximal-flush-validate-no-cjit
stress/Number-isNaN-basics.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/rest-parameter-allocation-elimination.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/many-foreach-calls.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/deltablue-for-of.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-xor-exception.js.dfg-maximal-flush-validate-no-cjit
stress/math-max-min-no-arguments.js.dfg-maximal-flush-validate-no-cjit
stress/activation-test-loop.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-bound.js.dfg-maximal-flush-validate-no-cjit
stress/es6-default-parameters.js.dfg-maximal-flush-validate-no-cjit
stress/instanceof-not-cell.js.dfg-maximal-flush-validate-no-cjit
stress/tailCallForwardArguments.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-max-then-get-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/delete-to-object-exception.js.dfg-maximal-flush-validate-no-cjit
stress/generator-function-expression-sinking-osrexit.js.dfg-maximal-flush-validate-no-cjit
stress/get-by-val-on-undecided-array-type.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-tdz-3.js.dfg-maximal-flush-validate-no-cjit
stress/get-by-val-with-symbol-constructor.js.dfg-maximal-flush-validate-no-cjit
stress/try-catch-custom-getter-as-get-by-id.js.dfg-maximal-flush-validate-no-cjit
stress/module-namespace-access.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-repeat-resolving.js.dfg-maximal-flush-validate-no-cjit
sunspider-1.0/controlflow-recursive.js.dfg-maximal-flush-validate-no-cjit
stress/branch-may-exit-due-to-object-or-other-use-kind.js.dfg-maximal-flush-validate-no-cjit
stress/bug-131764.js.dfg-maximal-flush-validate-no-cjit
stress/typedarray-bad-getter.js.dfg-maximal-flush-validate-no-cjit
stress/generator-function-declaration-sinking-put.js.dfg-maximal-flush-validate-no-cjit
stress/has-own-property-name-cache-symbol-keys.js.dfg-maximal-flush-validate-no-cjit
stress/v8-earley-boyer-strict.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/array-prototype-reduceRight.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-put-getter-by-id-class.js.dfg-maximal-flush-validate-no-cjit
stress/super-property-access.js.dfg-maximal-flush-validate-no-cjit
stress/fold-to-double-constant-then-exit.js.dfg-maximal-flush-validate-no-cjit
stress/typedarray-functions-with-neutered.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-tdz-2.js.dfg-maximal-flush-validate-no-cjit
stress/fiat-value-to-int52-then-fold.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-mod-then-get-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/bound-function-lazy-name-generation.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/object-keys-map-values.js.dfg-maximal-flush-validate-no-cjit
stress/set-clone.js.dfg-maximal-flush-validate-no-cjit
stress/redundant-array-bounds-checks-unchecked-addition.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-supercall-4.js.dfg-maximal-flush-validate-no-cjit
stress/tagged-template-tdz.js.dfg-maximal-flush-validate-no-cjit
stress/regress-174044.js.dfg-maximal-flush-validate-no-cjit
stress/redundant-array-bounds-checks-addition-skip-first.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-derived-default-constructor.js.dfg-maximal-flush-validate-no-cjit
stress/generator-fib-ftl-and-object.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/lazy-array-species-watchpoints.js.dfg-maximal-flush-validate-no-cjit
stress/int52-ai-sub-then-filter-int32.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-tdz-1.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-add-constant-folding.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-get-by-id-getter-exception-interesting-live-state.js.dfg-maximal-flush-validate-no-cjit
stress/strcat-emtpy.js.dfg-maximal-flush-validate-no-cjit
stress/dont-strength-reduce-valuerep-of-doublerep.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-replace-empty.js.dfg-maximal-flush-validate-no-cjit
stress/redundant-array-bounds-checks-addition.js.dfg-maximal-flush-validate-no-cjit
stress/to-number-intrinsic-value-profiling.js.dfg-maximal-flush-validate-no-cjit
stress/rest-parameter-is-destructuring.js.dfg-maximal-flush-validate-no-cjit
stress/throw-from-ftl.js.dfg-maximal-flush-validate-no-cjit
stress/to-number-intrinsic-int52.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/map-has-get-cse-opportunity.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/try-catch-get-by-val-cloned-arguments.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-this-2.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-arguments-strict.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/generator-sunspider-access-nsieve.js.dfg-maximal-flush-validate-no-cjit
stress/v8-raytrace-strict.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/map-for-each.js.dfg-maximal-flush-validate-no-cjit
stress/arith-modulo-twice.js.dfg-maximal-flush-validate-no-cjit
stress/class-subclassing-function.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/get-by-val-with-string-chain-from-try-block.js.dfg-maximal-flush-validate-no-cjit
stress/class-subclassing-array.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/generator-fib.js.dfg-maximal-flush-validate-no-cjit
stress/get-by-val-on-undecided-trivial.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/richards-empty-try-catch.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-concat-long-convert.js.dfg-maximal-flush-validate-no-cjit
stress/math-pow-nan-behaviors.js.dfg-maximal-flush-validate-no-cjit
stress/modify-map-during-iteration.js.dfg-maximal-flush-validate-no-cjit
stress/has-own-property-name-cache-string-keys.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-put-by-val-direct-with-edge-numbers.js.dfg-maximal-flush-validate-no-cjit
stress/array-species-config-array-constructor.js.dfg-maximal-flush-validate-no-cjit
stress/async-await-mozilla.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/super-get-by-val-with-this-monomorphic.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/sorting-benchmark.js.dfg-maximal-flush-validate-no-cjit
stress/fold-based-on-int32-proof-mul-branch.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-repeat-not-resolving-fixed.js.dfg-maximal-flush-validate-no-cjit
stress/super-property-access-object-literal-to-this.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-put-setter-by-id.js.dfg-maximal-flush-validate-no-cjit
stress/string-prototype-methods-endsWith-startsWith-includes-correctness.js.dfg-maximal-flush-validate-no-cjit
stress/async-function-declaration-sinking-put.js.dfg-maximal-flush-validate-no-cjit
stress/equality-type-checking.js.dfg-maximal-flush-validate-no-cjit
stress/spread-optimized-properly.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-this-8.js.dfg-maximal-flush-validate-no-cjit
stress/generator-fib-ftl-and-array.js.dfg-maximal-flush-validate-no-cjit
stress/tail-call-recognize.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-class.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/set-for-of.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-put-accessors-by-id-class.js.dfg-maximal-flush-validate-no-cjit
stress/import-basic.js.dfg-maximal-flush-validate-no-cjit
stress/osr-enter-to-catch-with-set-local-type-check-failure.js.dfg-maximal-flush-validate-no-cjit
stress/get-by-offset-double.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-library-inlining-exceptions-dataview.js.dfg-maximal-flush-validate-no-cjit
stress/lexical-let-not-strict-mode.js.dfg-maximal-flush-validate-no-cjit
stress/generator-function-declaration-sinking-osrexit.js.dfg-maximal-flush-validate-no-cjit
stress/map-clone-instance-iterator-change.js.dfg-maximal-flush-validate-no-cjit
stress/rest-parameter-and-default-arguments.js.dfg-maximal-flush-validate-no-cjit
stress/yield-reserved-word.js.dfg-maximal-flush-validate-no-cjit
stress/array-prototype-concat-of-long-spliced-arrays2.js.dfg-maximal-flush-validate-no-cjit
stress/compare-eq-on-null-and-undefined.js.dfg-maximal-flush-validate-no-cjit
stress/array-from-abs-and-floor.js.dfg-maximal-flush-validate-no-cjit
stress/const-semantics.js.dfg-maximal-flush-validate-no-cjit
stress/phantom-spread-osr-exit.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-call-bad-callee-exception-interesting-live-state.js.dfg-maximal-flush-validate-no-cjit
stress/argument-intrinsic-not-convert-to-get-argument.js.dfg-maximal-flush-validate-no-cjit
stress/class-subclassing-misc.js.dfg-maximal-flush-validate-no-cjit
stress/eval-func-decl-in-eval-within-block-with-let.js.dfg-maximal-flush-validate-no-cjit
stress/async-await-syntax.js.dfg-maximal-flush-validate-no-cjit
stress/throw-from-ftl-call-ic-slow-path-cells.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-add-then-get-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/int52-ai-neg-then-filter-int32.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/for-of-iterate-array-values.js.dfg-maximal-flush-validate-no-cjit
stress/domjit-getter-complex-with-incorrect-object.js.dfg-maximal-flush-validate-no-cjit
stress/fiat-value-to-int52-then-exit-not-double.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-call-varargs-bad-callee-exception-interesting-live-state.js.dfg-maximal-flush-validate-no-cjit
stress/to-lower-case-intrinsic-on-empty-rope.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-no-loop-tdz.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-try-catch-getter-throw.js.dfg-maximal-flush-validate-no-cjit
stress/try-catch-getter-as-get-by-id.js.dfg-maximal-flush-validate-no-cjit
stress/async-iteration-yield-star-interface.js.dfg-maximal-flush-validate-no-cjit
stress/typedarray-access-neutered.js.dfg-maximal-flush-validate-no-cjit
stress/eval-func-decl-in-eval-within-with-scope.js.dfg-maximal-flush-validate-no-cjit
stress/try-catch-getter-as-get-by-id-register-restoration.js.dfg-maximal-flush-validate-no-cjit
stress/lexical-let-loop-semantics.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-array-prototype-methods.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/is-array-for-mixed-case.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-set-prototype-of.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/richards-try-catch.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-library-exception.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/infer-closure-const-then-mov.js.dfg-maximal-flush-validate-no-cjit
stress/liveness-pruning-needed-for-osr-availability-eager.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-arguments-non-strict-1.js.dfg-maximal-flush-validate-no-cjit
stress/async-function-expression-sinking-put.js.dfg-maximal-flush-validate-no-cjit
stress/instanceof-custom-hasinstancesymbol.js.dfg-maximal-flush-validate-no-cjit
stress/super-property-access-object-literal-to-this-2.js.dfg-maximal-flush-validate-no-cjit
stress/construct-forward-varargs-for-inlined-escaped-arguments.js.dfg-maximal-flush-validate-no-cjit
stress/function-constructor-reading-from-global-lexical-environment.js.dfg-maximal-flush-validate-no-cjit
stress/set-inherit-add.js.dfg-maximal-flush-validate-no-cjit
stress/dont-crash-in-cfg-simplification.js.dfg-maximal-flush-validate-no-cjit
stress/infinite-loop-that-uses-captured-variables.js.dfg-maximal-flush-validate-no-cjit
stress/super-property-access-exceptions.js.dfg-maximal-flush-validate-no-cjit
stress/int52-ai-add-then-filter-int32.js.dfg-maximal-flush-validate-no-cjit
stress/reflect-set-proxy-set.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/Float32Array-matrix-mult.js.dfg-maximal-flush-validate-no-cjit
stress/try-catch-setter-as-put-by-id.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-tdz-in-catch.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-replace-generic.js.dfg-maximal-flush-validate-no-cjit
stress/int16-put-by-val-out-of-bounds-bounds-then-do-in-bounds.js.dfg-maximal-flush-validate-no-cjit
stress/array-concat-spread-object.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-concat.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-tdz-in-eval.js.dfg-maximal-flush-validate-no-cjit
stress/get-by-val-with-symbol-getter.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-new-negative-array-size.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/apply-not-apply.js.dfg-maximal-flush-validate-no-cjit
stress/typedarray-subarray.js.dfg-maximal-flush-validate-no-cjit
stress/v8-deltablue-strict.js.dfg-maximal-flush-validate-no-cjit
stress/activation-sink-default-value-tdz-error.js.dfg-maximal-flush-validate-no-cjit
stress/int16-put-by-val-in-and-out-of-bounds.js.dfg-maximal-flush-validate-no-cjit
stress/to-string-on-value-or-string.js.dfg-maximal-flush-validate-no-cjit
stress/array-slice-osr-exit.js.dfg-maximal-flush-validate-no-cjit
stress/is-undefined-exit-on-masquerader.js.dfg-maximal-flush-validate-no-cjit
stress/put-direct-index-broken-2.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-try-catch-getter-ic-fail-to-call-operation-throw-error.js.dfg-maximal-flush-validate-no-cjit
v8-v6/v8-splay.js.dfg-maximal-flush-validate-no-cjit
stress/catch-set-argument-speculation-failure.js.dfg-maximal-flush-validate-no-cjit
stress/lexical-let-tdz.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/delta-blue-try-catch.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/map-constant-key.js.dfg-maximal-flush-validate-no-cjit
stress/fold-to-primitive-in-cfa.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-call-class-constructor.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-no-tdz-in-eval.js.dfg-maximal-flush-validate-no-cjit
stress/math-unary-no-arg.js.dfg-maximal-flush-validate-no-cjit
stress/phantom-new-array-with-spread-osr-exit.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-put-by-id-setter-exception.js.dfg-maximal-flush-validate-no-cjit
stress/regress-153486.js.dfg-maximal-flush-validate-no-cjit
stress/function-with-defaults-inlining.js.dfg-maximal-flush-validate-no-cjit
stress/bug-171786.js.dfg-maximal-flush-validate-no-cjit
stress/call-varargs-with-different-arguments-length-after-warmup.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/try-catch-get-by-val-direct-arguments.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-repeat-resolving-no-inline.js.dfg-maximal-flush-validate-no-cjit
stress/exception-dfg-operation-read-value.js.dfg-maximal-flush-validate-no-cjit
stress/instanceof-late-constant-folding.js.dfg-maximal-flush-validate-no-cjit
stress/get-from-scope-dynamic-onto-proxy.js.dfg-maximal-flush-validate-no-cjit
stress/number-is-finite.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-call-exception-interesting-live-state.js.dfg-maximal-flush-validate-no-cjit
stress/dont-dead-lock-put-by-val-as-put-by-id.js.dfg-maximal-flush-validate-no-cjit
stress/op-add-exceptions.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-no-tdz-in-loop.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/simple-regexp-test-folding-fail.js.dfg-maximal-flush-validate-no-cjit
stress/regress-170896-with-contiguous-shape-profile.js.dfg-maximal-flush-validate-no-cjit
stress/tricky-infinite-loop-that-uses-captured-variables.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-min-then-get-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/make-rope-3.js.dfg-maximal-flush-validate-no-cjit
stress/tagged-templates-raw-strings.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/array-prototype-every.js.dfg-maximal-flush-validate-no-cjit
stress/tricky-inferred-infinite-loop-that-uses-captured-variables-and-creates-the-activation-outside-the-loop.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/simple-regexp-test-folding.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-try-catch-patchpoint-with-volatile-registers.js.dfg-maximal-flush-validate-no-cjit
stress/modify-set-during-iteration.js.dfg-maximal-flush-validate-no-cjit
stress/int52-ai-mul-then-filter-int32.js.dfg-maximal-flush-validate-no-cjit
stress/regress-171079.js.dfg-maximal-flush-validate-no-cjit
stress/async-function-declaration-sinking-no-double-allocate.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-sub-then-get-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-call-varargs-exception.js.dfg-maximal-flush-validate-no-cjit
stress/rest-parameter-basics.js.dfg-maximal-flush-validate-no-cjit
stress/lexical-scoping-break-continue.js.dfg-maximal-flush-validate-no-cjit
stress/set-clone-instance-iterator-change.js.dfg-maximal-flush-validate-no-cjit
stress/value-to-boolean.js.dfg-maximal-flush-validate-no-cjit
stress/map-clone.js.dfg-maximal-flush-validate-no-cjit
stress/dead-fiat-value-to-int52-then-exit-not-double.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-tdz.js.dfg-maximal-flush-validate-no-cjit
stress/IIFE-es6-default-parameters.js.dfg-maximal-flush-validate-no-cjit
stress/array-prototype-concat-of-long-spliced-arrays.js.dfg-maximal-flush-validate-no-cjit
stress/fold-load-varargs-arity-check-fail-barely.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/varargs-construct.js.dfg-maximal-flush-validate-no-cjit
stress/pad-start-calls-repeat-character-with-double.js.dfg-maximal-flush-validate-no-cjit
v8-v6/v8-richards.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-define-own-property.js.dfg-maximal-flush-validate-no-cjit
stress/varargs-inlined-simple-exit-aliasing.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-tdz-in-conditional.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-put-by-id-setter-exception-interesting-live-state.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-no-tdz-in-catch.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-tdz-in-loop.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/v8-regexp-search.js.dfg-maximal-flush-validate-no-cjit
stress/v8-richards-strict.js.dfg-maximal-flush-validate-no-cjit
v8-v6/v8-regexp.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/for-of-array.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/is-symbol-mixed.js.dfg-maximal-flush-validate-no-cjit
stress/spread-calling.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-get-by-id-getter-exception.js.dfg-maximal-flush-validate-no-cjit
stress/try-catch-stub-routine-replaced.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/map-rehash.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-put-setter-by-val-class.js.dfg-maximal-flush-validate-no-cjit
stress/global-lexical-redefine-const.js.dfg-maximal-flush-validate-no-cjit
stress/to-string-on-string-object.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-mul-then-get-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/to-number-throws-correct-exception.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/arrowfunction-call-in-class-constructor.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/arguments-strict-mode.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/get-by-val-with-symbol-chain-from-try-block.js.dfg-maximal-flush-validate-no-cjit
stress/for-in-prototype.js.dfg-maximal-flush-validate-no-cjit
stress/es6-for-of-loop-exception.js.dfg-maximal-flush-validate-no-cjit
stress/sloppy-mode-function-hoisting.js.dfg-maximal-flush-validate-no-cjit
stress/array-message-passing.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-instanceof.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/v8-raytrace-with-try-catch.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-tdz-4.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-supercall-3.js.dfg-maximal-flush-validate-no-cjit
stress/sparse-array-entry-update-144067.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/concat-append-one.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-repeat-single-not-resolving.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-no-tdz-in-conditional.js.dfg-maximal-flush-validate-no-cjit
stress/symbol-toprimitive.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-try-catch-setter-throw.js.dfg-maximal-flush-validate-no-cjit
stress/generator-fib-ftl-and-string.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-with-unbalanced-getter-setter.js.dfg-maximal-flush-validate-no-cjit
stress/arith-add-with-constants.js.dfg-maximal-flush-validate-no-cjit
stress/eval-func-decl-block-with-var-sinthesize.js.dfg-maximal-flush-validate-no-cjit
stress/const-not-strict-mode.js.dfg-maximal-flush-validate-no-cjit
stress/eval-func-decl-within-eval-without-reassign-to-let.js.dfg-maximal-flush-validate-no-cjit
sunspider-1.0/string-tagcloud.js.dfg-maximal-flush-validate-no-cjit
stress/infinite-loop-that-uses-captured-variables-before-throwing.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-construct.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-set.js.dfg-maximal-flush-validate-no-cjit
stress/runtime-throw-through-optimized-code.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-abs-then-get-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/has-own-property-cache-basics.js.dfg-maximal-flush-validate-no-cjit
stress/IIFE-function-name-captured.js.dfg-maximal-flush-validate-no-cjit
stress/get-by-id-throw-from-getter-through-optimized-code.js.dfg-maximal-flush-validate-no-cjit
stress/array-slice-jettison-on-constructor-change.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-repeat-resolving-fixed.js.dfg-maximal-flush-validate-no-cjit
stress/istypedarrayview-intrinsic.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/try-catch-word-count.js.dfg-maximal-flush-validate-no-cjit
stress/int52-ai-mul-and-clean-neg-zero-then-filter-int32.js.dfg-maximal-flush-validate-no-cjit
stress/math-ceil-basics.js.dfg-maximal-flush-validate-no-cjit
stress/array-copywithin.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-json.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-neg-zero-then-get-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/tricky-indirectly-inferred-infinite-loop-that-uses-captured-variables-and-creates-the-activation-outside-the-loop.js.dfg-maximal-flush-validate-no-cjit
stress/infer-uninitialized-closure-var.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/raytrace-with-try-catch.js.dfg-maximal-flush-validate-no-cjit
stress/load-varargs-then-inlined-call-exit-in-foo.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/switch-char-constant.js.dfg-maximal-flush-validate-no-cjit
stress/escape-object-in-diamond-then-exit.js.dfg-maximal-flush-validate-no-cjit
stress/number-is-nan.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-delete.js.dfg-maximal-flush-validate-no-cjit
stress/tricky-infinite-loop-that-uses-captured-variables-and-creates-the-activation-outside-the-loop.js.dfg-maximal-flush-validate-no-cjit
sunspider-1.0/date-format-tofte.js.dfg-maximal-flush-validate-no-cjit
stress/regress-132147.js.dfg-maximal-flush-validate-no-cjit
stress/array-slice-intrinsic.js.dfg-maximal-flush-validate-no-cjit
stress/array-concat-with-slow-indexingtypes.js.dfg-maximal-flush-validate-no-cjit
stress/check-dom-with-signature.js.dfg-maximal-flush-validate-no-cjit
stress/spread-non-array.js.dfg-maximal-flush-validate-no-cjit
stress/arith-sub-on-double-array-with-holes.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-add.js.dfg-maximal-flush-validate-no-cjit
stress/global-is-finite.js.dfg-maximal-flush-validate-no-cjit
stress/pow-stable-results.js.dfg-maximal-flush-validate-no-cjit
stress/fold-multi-get-by-offset-to-get-by-offset-without-folding-the-structure-check-new.js.dfg-maximal-flush-validate-no-cjit
stress/check-sub-class.js.dfg-maximal-flush-validate-no-cjit
stress/generator-frame-empty.js.dfg-maximal-flush-validate-no-cjit
stress/class-subclassing-typedarray.js.dfg-maximal-flush-validate-no-cjit
stress/tier-up-in-loop-with-cfg-simplification.js.dfg-maximal-flush-validate-no-cjit
stress/generator-function-expression-sinking-put.js.dfg-maximal-flush-validate-no-cjit
stress/sampling-profiler-microtasks.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-put-by-id-slow-exception-interesting-live-state.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-put-accessors-by-id.js.dfg-maximal-flush-validate-no-cjit
stress/sink-multigetbyoffset.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/array-prototype-forEach.js.dfg-maximal-flush-validate-no-cjit
stress/async-function-expression-sinking-osrexit.js.dfg-maximal-flush-validate-no-cjit
stress/no-abc-skippy-loop.js.dfg-maximal-flush-validate-no-cjit
stress/typedarray-configure-index.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-revoke.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/is-array-for-proxy.js.dfg-maximal-flush-validate-no-cjit
stress/ai-consistency-filter-cells.js.dfg-maximal-flush-validate-no-cjit
stress/eval-func-decl-within-eval-with-reassign-to-var.js.dfg-maximal-flush-validate-no-cjit
stress/map-clone-iterator-change.js.dfg-maximal-flush-validate-no-cjit
stress/to-string-on-string-or-string-object-then-object.js.dfg-maximal-flush-validate-no-cjit
stress/constant-folding-osr-exit.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-sub.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/hard-overflow-check-equal.js.dfg-maximal-flush-validate-no-cjit
stress/async-iteration-async-from-sync.js.dfg-maximal-flush-validate-no-cjit
stress/compare-strict-eq-integer-to-misc.js.dfg-maximal-flush-validate-no-cjit
stress/v8-regexp-strict.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/rare-osr-exit-on-local.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-transcoding.js.dfg-maximal-flush-validate-no-cjit
stress/math-trunc-basics.js.dfg-maximal-flush-validate-no-cjit
stress/create-subclass-structure-might-throw.js.dfg-maximal-flush-validate-no-cjit
stress/typedarray-access-monomorphic-neutered.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-put-getter-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/infinite-loop-that-uses-captured-variables-but-they-do-not-escape.js.dfg-maximal-flush-validate-no-cjit
stress/has-own-property-name-cache-symbols-and-strings.js.dfg-maximal-flush-validate-no-cjit
stress/tricky-array-bounds-checks.js.dfg-maximal-flush-validate-no-cjit
stress/math-floor-basics.js.dfg-maximal-flush-validate-no-cjit
stress/get-local-elimination.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/typed-array-subarray.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/for-of-iterate-array-entries.js.dfg-maximal-flush-validate-no-cjit
stress/exception-dfg-throw-from-catch-block.js.dfg-maximal-flush-validate-no-cjit
stress/to-string-on-value.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/is-array-for-array.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-own-keys.js.dfg-maximal-flush-validate-no-cjit
stress/operation-in-throw-error.js.dfg-maximal-flush-validate-no-cjit
stress/math-pow-stable-results.js.dfg-maximal-flush-validate-no-cjit
v8-v6/v8-crypto.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/array-prototype-some.js.dfg-maximal-flush-validate-no-cjit
stress/for-in-modify-int-loop-var.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-repeat-small-resolving.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-repeat-single-resolving.js.dfg-maximal-flush-validate-no-cjit
stress/v8-crypto-strict.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-this-6.js.dfg-maximal-flush-validate-no-cjit
stress/promise-infinite-recursion-should-not-crash.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-put-getter-by-val-class.js.dfg-maximal-flush-validate-no-cjit
stress/fold-to-int52-constant-then-exit.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-concat-long.js.dfg-maximal-flush-validate-no-cjit
stress/super-get-by-id.js.dfg-maximal-flush-validate-no-cjit
stress/reflect-construct.js.dfg-maximal-flush-validate-no-cjit
stress/eval-func-decl-in-global-of-eval.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-prototype.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/super-getter.js.dfg-maximal-flush-validate-no-cjit
stress/exception-dfg-inlined-frame-not-strict-equal.js.dfg-maximal-flush-validate-no-cjit
stress/dead-osr-entry-value.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-repeat-small-not-resolving.js.dfg-maximal-flush-validate-no-cjit
stress/global-lexical-variable-tdz.js.dfg-maximal-flush-validate-no-cjit
stress/block-scoped-function-declarations.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/fake-iterators-that-throw-when-finished.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/abc-skippy-loop.js.dfg-maximal-flush-validate-no-cjit
stress/async-iteration-basic.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/v8-raytrace-with-empty-try-catch.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/set-for-each.js.dfg-maximal-flush-validate-no-cjit
stress/async-function-declaration-sinking-osrexit.js.dfg-maximal-flush-validate-no-cjit
stress/array-concat-spread-proxy-exception-check.js.dfg-maximal-flush-validate-no-cjit
stress/global-is-nan.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-sub-exception.js.dfg-maximal-flush-validate-no-cjit
stress/domjit-getter-type-check.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/super-get-by-id-with-this-monomorphic.js.dfg-maximal-flush-validate-no-cjit
stress/phantom-spread-forward-varargs.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/simple-regexp-test-folding-with-hoisted-regexp.js.dfg-maximal-flush-validate-no-cjit
stress/set-clone-iterator-change.js.dfg-maximal-flush-validate-no-cjit
stress/float32-array-out-of-bounds.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-super-in-eval.js.dfg-maximal-flush-validate-no-cjit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343538</commentid>
    <comment_count>14</comment_count>
      <attachid>319352</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-30 07:59:46 -0700</bug_when>
    <thetext>Comment on attachment 319352
patch

Attachment 319352 did not pass jsc-ews (mac):
Output: http://webkit-queues.webkit.org/results/4409841

New failing tests:
microbenchmarks/exit-length-on-plain-object.js.dfg-maximal-flush-validate-no-cjit
stress/promise-finally.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/array-prototype-reduce.js.dfg-maximal-flush-validate-no-cjit
stress/generic-arguments-correct-delete-behavior.js.dfg-maximal-flush-validate-no-cjit
stress/typedarray-getownproperty-not-configurable.js.dfg-maximal-flush-validate-no-cjit
stress/arguments-elimination-varargs-too-many-args-arg-count.js.dfg-maximal-flush-validate-no-cjit
stress/super-method-calls-check-tdz.js.dfg-maximal-flush-validate-no-cjit
stress/inlined-error-gets-correct-codeblock-for-bytecodeoffset.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/for-of-iterate-array-keys.js.dfg-maximal-flush-validate-no-cjit
stress/spec-empty-flows-through-cell-checks.js.dfg-maximal-flush-validate-no-cjit
stress/reserved-word-with-escape.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/array-prototype-map.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/raytrace-with-empty-try-catch.js.dfg-maximal-flush-validate-no-cjit
v8-v6/v8-deltablue.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-try-catch-arith-sub-exception.js.dfg-maximal-flush-validate-no-cjit
stress/math-round-basics.js.dfg-maximal-flush-validate-no-cjit
stress/fold-profiled-call-to-call.js.dfg-maximal-flush-validate-no-cjit
stress/phantom-inadequacy.js.dfg-maximal-flush-validate-no-cjit
stress/const-loop-semantics.js.dfg-maximal-flush-validate-no-cjit
stress/regress-170896-with-int32-shape-profile.js.dfg-maximal-flush-validate-no-cjit
stress/SharedArrayBuffer-opt.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-activation-sink-osrexit-default-value-tdz-error.js.dfg-maximal-flush-validate-no-cjit
stress/argument-count-bytecode.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-put-setter-by-id-class.js.dfg-maximal-flush-validate-no-cjit
sunspider-1.0/string-validate-input.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-abs-zero-then-get-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/module-namespace-access-transitive-exports.js.dfg-maximal-flush-validate-no-cjit
stress/builtin-function-is-construct-type-none.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/super-get-by-val-with-this-polymorphic.js.dfg-maximal-flush-validate-no-cjit
stress/to-string-on-object-or-string.js.dfg-maximal-flush-validate-no-cjit
stress/new-regex-inline.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-shr-exception.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-call-varargs-exception-interesting-live-state.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-constructor.js.dfg-maximal-flush-validate-no-cjit
stress/typedarray-fill.js.dfg-maximal-flush-validate-no-cjit
stress/exception-dfg-not-strict-equal.js.dfg-maximal-flush-validate-no-cjit
stress/pow-simple.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-get-by-id-slow-exception.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-supercall-1.js.dfg-maximal-flush-validate-no-cjit
stress/parameter-scoping.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-arguments-non-strict-2.js.dfg-maximal-flush-validate-no-cjit
stress/to-string-on-object.js.dfg-maximal-flush-validate-no-cjit
stress/scoped-then-direct-arguments-get-by-val-in-baseline.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/large-map-iteration.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-exception-try-catch-in-constructor-with-inlined-throw.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-replace.js.dfg-maximal-flush-validate-no-cjit
stress/flatten-oversize-dictionary-object.js.dfg-maximal-flush-validate-no-cjit
stress/class-subclassing-string.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/map-for-of.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-double-constructor.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-has-property.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-no-tdz.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-neg-then-get-by-val.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/super-get-by-id-with-this-polymorphic.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-repeat-not-resolving.js.dfg-maximal-flush-validate-no-cjit
stress/for-in-invalidate-context-weird-assignments.js.dfg-maximal-flush-validate-no-cjit
stress/create-this-with-callee-variants.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-put-by-id-slow-exception.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/branch-fold.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-call-exception.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-try-catch-oom-error-lazy-slow-path.js.dfg-maximal-flush-validate-no-cjit
stress/map-iteration.js.dfg-maximal-flush-validate-no-cjit
stress/instanceof.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-try-catch-varargs-call-throws.js.dfg-maximal-flush-validate-no-cjit
stress/throw-through-optimized-code.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/instanceof-bound.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/get-by-id-chain-from-try-block.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-div-then-get-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/compare-number-and-other.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/arrowfunction-call-in-class-method.js.dfg-maximal-flush-validate-no-cjit
stress/const-tdz.js.dfg-maximal-flush-validate-no-cjit
stress/typedarray-view-string-properties-neutered.js.dfg-maximal-flush-validate-no-cjit
stress/arrow-functions-as-default-parameter-values.js.dfg-maximal-flush-validate-no-cjit
stress/destructuring-rest-element.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/simple-regexp-test-folding-fail-with-hoisted-regexp.js.dfg-maximal-flush-validate-no-cjit
stress/new-array-with-spread-with-normal-spread-and-phantom-spread.js.dfg-maximal-flush-validate-no-cjit
stress/eval-func-decl-block-with-var-and-remove.js.dfg-maximal-flush-validate-no-cjit
stress/throw-from-ftl-call-ic-slow-path.js.dfg-maximal-flush-validate-no-cjit
stress/call-apply-exponential-bytecode-size.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-others.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-superproperty.js.dfg-maximal-flush-validate-no-cjit
stress/allocation-sinking-puthint-control-flow.js.dfg-maximal-flush-validate-no-cjit
stress/async-arrow-functions-lexical-binding-in-class.js.dfg-maximal-flush-validate-no-cjit
stress/cse-multi-get-by-offset-remove-checks.js.dfg-maximal-flush-validate-no-cjit
stress/cloned-arguments-modification.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/locale-compare.js.dfg-maximal-flush-validate-no-cjit
stress/liveness-pruning-needed-for-osr-availability.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-library-inlining-exceptions.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-is-array.js.dfg-maximal-flush-validate-no-cjit
stress/rest-parameter-many-arguments.js.dfg-maximal-flush-validate-no-cjit
stress/array-reverse-proxy.js.dfg-maximal-flush-validate-no-cjit
v8-v6/v8-earley-boyer.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-supercall-2.js.dfg-maximal-flush-validate-no-cjit
stress/map-inherit-set.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-concat-convert.js.dfg-maximal-flush-validate-no-cjit
stress/dont-unwind-past-vm-entry-frame.js.dfg-maximal-flush-validate-no-cjit
stress/get-by-val-with-string-getter.js.dfg-maximal-flush-validate-no-cjit
stress/super-property-access-tdz.js.dfg-maximal-flush-validate-no-cjit
stress/variable-named-eval-under-tdz.js.dfg-maximal-flush-validate-no-cjit
stress/async-iteration-yield-star.js.dfg-maximal-flush-validate-no-cjit
stress/typedarray-map.js.dfg-maximal-flush-validate-no-cjit
stress/fiat-value-to-int52-then-exit-not-int52.js.dfg-maximal-flush-validate-no-cjit
stress/to-property-key-correctness.js.dfg-maximal-flush-validate-no-cjit
stress/compare-eq-on-null-and-undefined-optimized-in-constant-folding.js.dfg-maximal-flush-validate-no-cjit
stress/fold-typed-array-properties.js.dfg-maximal-flush-validate-no-cjit
stress/class-derived-from-null.js.dfg-maximal-flush-validate-no-cjit
stress/generator-fib-ftl.js.dfg-maximal-flush-validate-no-cjit
stress/regress-156765.js.dfg-maximal-flush-validate-no-cjit
stress/v8-splay-strict.js.dfg-maximal-flush-validate-no-cjit
stress/pow-nan-behaviors.js.dfg-maximal-flush-validate-no-cjit
stress/prop-type-struct-then-object-opt-fold.js.dfg-maximal-flush-validate-no-cjit
stress/spread-forward-varargs-stack-overflow.js.dfg-maximal-flush-validate-no-cjit
stress/math-clz32-basics.js.dfg-maximal-flush-validate-no-cjit
stress/rest-parameter-having-a-bad-time.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-try-catch-getter-throw-interesting-value-recovery.js.dfg-maximal-flush-validate-no-cjit
stress/regress-170896-with-double-shape-profile.js.dfg-maximal-flush-validate-no-cjit
stress/typedarray-slice.js.dfg-maximal-flush-validate-no-cjit
stress/sink-object-past-invalid-check-sneakier.js.dfg-maximal-flush-validate-no-cjit
stress/constant-fold-multi-get-by-offset-to-get-by-offset-on-prototype-and-sink-allocation.js.dfg-maximal-flush-validate-no-cjit
stress/sink-arguments-past-invalid-check-sneakier.js.dfg-maximal-flush-validate-no-cjit
stress/array-symbol-species-lazy-watchpoints.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-operation-exception.js.dfg-maximal-flush-validate-no-cjit
stress/fold-to-primitive-to-identity-in-cfa.js.dfg-maximal-flush-validate-no-cjit
stress/tail-call-host-call-throw.js.dfg-maximal-flush-validate-no-cjit
stress/sampling-profiler-deep-stack.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/call-spread-call.js.dfg-maximal-flush-validate-no-cjit
stress/exception-in-to-property-key-should-be-handled-early.js.dfg-maximal-flush-validate-no-cjit
stress/poly-call-stub-in-getter-stub.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-typeof.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-with-private-symbols.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-operation-exception-interesting-live-state.js.dfg-maximal-flush-validate-no-cjit
stress/get-by-val-on-undecided-sane-chain-2.js.dfg-maximal-flush-validate-no-cjit
stress/with.js.dfg-maximal-flush-validate-no-cjit
stress/spread-forward-call-varargs-stack-overflow.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-no-tdz-in-loop-no-inline-super.js.dfg-maximal-flush-validate-no-cjit
stress/make-rope-2.js.dfg-maximal-flush-validate-no-cjit
stress/activation-sink-osrexit-default-value-tdz-error.js.dfg-maximal-flush-validate-no-cjit
stress/throw-from-ftl-call-ic-slow-path-undefined.js.dfg-maximal-flush-validate-no-cjit
stress/array-slice-osr-exit-2.js.dfg-maximal-flush-validate-no-cjit
stress/arith-mul-with-constants.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-try-catch-wrong-value-recovery-on-ic-miss.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-newtarget.js.dfg-maximal-flush-validate-no-cjit
stress/fiat-value-to-int52-then-fail-to-fold.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/call-spread-apply.js.dfg-maximal-flush-validate-no-cjit
stress/spread-correct-global-object-on-exception.js.dfg-maximal-flush-validate-no-cjit
stress/inferred-infinite-loop-that-uses-captured-variables.js.dfg-maximal-flush-validate-no-cjit
stress/fold-load-varargs-arity-check-fail.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-repeat-not-resolving-no-inline.js.dfg-maximal-flush-validate-no-cjit
stress/dead-fiat-value-to-int52-then-exit-not-int52.js.dfg-maximal-flush-validate-no-cjit
stress/get-by-val-with-string-constructor.js.dfg-maximal-flush-validate-no-cjit
v8-v6/v8-raytrace.js.dfg-maximal-flush-validate-no-cjit
stress/generator-function-declaration-sinking-osrexit.js.dfg-maximal-flush-validate-no-cjit
stress/async-iteration-yield-promise.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-get-and-set-recursion-stack-overflow.js.dfg-maximal-flush-validate-no-cjit
stress/global-isNaN-basics.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-call.js.dfg-maximal-flush-validate-no-cjit
stress/array-concat-spread-proxy.js.dfg-maximal-flush-validate-no-cjit
stress/domjit-getter-try-catch-getter-as-get-by-id-register-restoration.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-get-prototype-of.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-get-by-id-slow-exception-interesting-live-state.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-try-catch-tail-call-inilned-caller.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-put-setter-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-property-descriptor.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-put-getter-by-id.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-to-primitive-pass-symbol.js.dfg-maximal-flush-validate-no-cjit
stress/to-string-on-string-or-string-object.js.dfg-maximal-flush-validate-no-cjit
stress/sink-function-past-invalid-check-sneakier.js.dfg-maximal-flush-validate-no-cjit
stress/Number-isNaN-basics.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/rest-parameter-allocation-elimination.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/many-foreach-calls.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/deltablue-for-of.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-xor-exception.js.dfg-maximal-flush-validate-no-cjit
stress/math-max-min-no-arguments.js.dfg-maximal-flush-validate-no-cjit
stress/activation-test-loop.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-bound.js.dfg-maximal-flush-validate-no-cjit
stress/es6-default-parameters.js.dfg-maximal-flush-validate-no-cjit
stress/instanceof-not-cell.js.dfg-maximal-flush-validate-no-cjit
stress/tailCallForwardArguments.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-max-then-get-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/delete-to-object-exception.js.dfg-maximal-flush-validate-no-cjit
stress/generator-function-expression-sinking-osrexit.js.dfg-maximal-flush-validate-no-cjit
stress/get-by-val-on-undecided-array-type.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-tdz-3.js.dfg-maximal-flush-validate-no-cjit
stress/get-by-val-with-symbol-constructor.js.dfg-maximal-flush-validate-no-cjit
stress/try-catch-custom-getter-as-get-by-id.js.dfg-maximal-flush-validate-no-cjit
stress/module-namespace-access.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-repeat-resolving.js.dfg-maximal-flush-validate-no-cjit
sunspider-1.0/controlflow-recursive.js.dfg-maximal-flush-validate-no-cjit
stress/branch-may-exit-due-to-object-or-other-use-kind.js.dfg-maximal-flush-validate-no-cjit
stress/bug-131764.js.dfg-maximal-flush-validate-no-cjit
stress/typedarray-bad-getter.js.dfg-maximal-flush-validate-no-cjit
stress/generator-function-declaration-sinking-put.js.dfg-maximal-flush-validate-no-cjit
stress/has-own-property-name-cache-symbol-keys.js.dfg-maximal-flush-validate-no-cjit
stress/v8-earley-boyer-strict.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/array-prototype-reduceRight.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-put-getter-by-id-class.js.dfg-maximal-flush-validate-no-cjit
stress/super-property-access.js.dfg-maximal-flush-validate-no-cjit
stress/fold-to-double-constant-then-exit.js.dfg-maximal-flush-validate-no-cjit
stress/typedarray-functions-with-neutered.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-tdz-2.js.dfg-maximal-flush-validate-no-cjit
stress/fiat-value-to-int52-then-fold.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-mod-then-get-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/bound-function-lazy-name-generation.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/object-keys-map-values.js.dfg-maximal-flush-validate-no-cjit
stress/set-clone.js.dfg-maximal-flush-validate-no-cjit
stress/redundant-array-bounds-checks-unchecked-addition.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-supercall-4.js.dfg-maximal-flush-validate-no-cjit
stress/tagged-template-tdz.js.dfg-maximal-flush-validate-no-cjit
stress/regress-174044.js.dfg-maximal-flush-validate-no-cjit
stress/redundant-array-bounds-checks-addition-skip-first.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-derived-default-constructor.js.dfg-maximal-flush-validate-no-cjit
stress/generator-fib-ftl-and-object.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/lazy-array-species-watchpoints.js.dfg-maximal-flush-validate-no-cjit
stress/int52-ai-sub-then-filter-int32.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-tdz-1.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-add-constant-folding.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-get-by-id-getter-exception-interesting-live-state.js.dfg-maximal-flush-validate-no-cjit
stress/strcat-emtpy.js.dfg-maximal-flush-validate-no-cjit
stress/dont-strength-reduce-valuerep-of-doublerep.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-replace-empty.js.dfg-maximal-flush-validate-no-cjit
stress/redundant-array-bounds-checks-addition.js.dfg-maximal-flush-validate-no-cjit
stress/to-number-intrinsic-value-profiling.js.dfg-maximal-flush-validate-no-cjit
stress/rest-parameter-is-destructuring.js.dfg-maximal-flush-validate-no-cjit
stress/throw-from-ftl.js.dfg-maximal-flush-validate-no-cjit
stress/to-number-intrinsic-int52.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/map-has-get-cse-opportunity.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/try-catch-get-by-val-cloned-arguments.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-this-2.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-arguments-strict.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/generator-sunspider-access-nsieve.js.dfg-maximal-flush-validate-no-cjit
stress/v8-raytrace-strict.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/map-for-each.js.dfg-maximal-flush-validate-no-cjit
stress/arith-modulo-twice.js.dfg-maximal-flush-validate-no-cjit
stress/class-subclassing-function.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/get-by-val-with-string-chain-from-try-block.js.dfg-maximal-flush-validate-no-cjit
stress/class-subclassing-array.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/generator-fib.js.dfg-maximal-flush-validate-no-cjit
stress/get-by-val-on-undecided-trivial.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/richards-empty-try-catch.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-concat-long-convert.js.dfg-maximal-flush-validate-no-cjit
stress/math-pow-nan-behaviors.js.dfg-maximal-flush-validate-no-cjit
stress/modify-map-during-iteration.js.dfg-maximal-flush-validate-no-cjit
stress/has-own-property-name-cache-string-keys.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-put-by-val-direct-with-edge-numbers.js.dfg-maximal-flush-validate-no-cjit
stress/array-species-config-array-constructor.js.dfg-maximal-flush-validate-no-cjit
stress/async-await-mozilla.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/super-get-by-val-with-this-monomorphic.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/sorting-benchmark.js.dfg-maximal-flush-validate-no-cjit
stress/fold-based-on-int32-proof-mul-branch.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-repeat-not-resolving-fixed.js.dfg-maximal-flush-validate-no-cjit
stress/super-property-access-object-literal-to-this.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-put-setter-by-id.js.dfg-maximal-flush-validate-no-cjit
stress/string-prototype-methods-endsWith-startsWith-includes-correctness.js.dfg-maximal-flush-validate-no-cjit
stress/async-function-declaration-sinking-put.js.dfg-maximal-flush-validate-no-cjit
stress/equality-type-checking.js.dfg-maximal-flush-validate-no-cjit
stress/spread-optimized-properly.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-this-8.js.dfg-maximal-flush-validate-no-cjit
stress/generator-fib-ftl-and-array.js.dfg-maximal-flush-validate-no-cjit
stress/tail-call-recognize.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-class.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/set-for-of.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-put-accessors-by-id-class.js.dfg-maximal-flush-validate-no-cjit
stress/import-basic.js.dfg-maximal-flush-validate-no-cjit
stress/osr-enter-to-catch-with-set-local-type-check-failure.js.dfg-maximal-flush-validate-no-cjit
stress/get-by-offset-double.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-library-inlining-exceptions-dataview.js.dfg-maximal-flush-validate-no-cjit
stress/lexical-let-not-strict-mode.js.dfg-maximal-flush-validate-no-cjit
stress/map-clone-instance-iterator-change.js.dfg-maximal-flush-validate-no-cjit
stress/rest-parameter-and-default-arguments.js.dfg-maximal-flush-validate-no-cjit
stress/yield-reserved-word.js.dfg-maximal-flush-validate-no-cjit
stress/array-prototype-concat-of-long-spliced-arrays2.js.dfg-maximal-flush-validate-no-cjit
stress/compare-eq-on-null-and-undefined.js.dfg-maximal-flush-validate-no-cjit
stress/array-from-abs-and-floor.js.dfg-maximal-flush-validate-no-cjit
stress/const-semantics.js.dfg-maximal-flush-validate-no-cjit
stress/phantom-spread-osr-exit.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-call-bad-callee-exception-interesting-live-state.js.dfg-maximal-flush-validate-no-cjit
stress/argument-intrinsic-not-convert-to-get-argument.js.dfg-maximal-flush-validate-no-cjit
stress/class-subclassing-misc.js.dfg-maximal-flush-validate-no-cjit
stress/eval-func-decl-in-eval-within-block-with-let.js.dfg-maximal-flush-validate-no-cjit
stress/async-await-syntax.js.dfg-maximal-flush-validate-no-cjit
stress/throw-from-ftl-call-ic-slow-path-cells.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-add-then-get-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/int52-ai-neg-then-filter-int32.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/for-of-iterate-array-values.js.dfg-maximal-flush-validate-no-cjit
stress/domjit-getter-complex-with-incorrect-object.js.dfg-maximal-flush-validate-no-cjit
stress/fiat-value-to-int52-then-exit-not-double.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-call-varargs-bad-callee-exception-interesting-live-state.js.dfg-maximal-flush-validate-no-cjit
stress/to-lower-case-intrinsic-on-empty-rope.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-no-loop-tdz.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-try-catch-getter-throw.js.dfg-maximal-flush-validate-no-cjit
stress/try-catch-getter-as-get-by-id.js.dfg-maximal-flush-validate-no-cjit
stress/async-iteration-yield-star-interface.js.dfg-maximal-flush-validate-no-cjit
stress/typedarray-access-neutered.js.dfg-maximal-flush-validate-no-cjit
stress/eval-func-decl-in-eval-within-with-scope.js.dfg-maximal-flush-validate-no-cjit
stress/try-catch-getter-as-get-by-id-register-restoration.js.dfg-maximal-flush-validate-no-cjit
stress/lexical-let-loop-semantics.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-array-prototype-methods.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/is-array-for-mixed-case.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-set-prototype-of.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/richards-try-catch.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-library-exception.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/infer-closure-const-then-mov.js.dfg-maximal-flush-validate-no-cjit
stress/liveness-pruning-needed-for-osr-availability-eager.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-arguments-non-strict-1.js.dfg-maximal-flush-validate-no-cjit
stress/async-function-expression-sinking-put.js.dfg-maximal-flush-validate-no-cjit
stress/instanceof-custom-hasinstancesymbol.js.dfg-maximal-flush-validate-no-cjit
stress/super-property-access-object-literal-to-this-2.js.dfg-maximal-flush-validate-no-cjit
stress/construct-forward-varargs-for-inlined-escaped-arguments.js.dfg-maximal-flush-validate-no-cjit
stress/function-constructor-reading-from-global-lexical-environment.js.dfg-maximal-flush-validate-no-cjit
stress/set-inherit-add.js.dfg-maximal-flush-validate-no-cjit
stress/async-iteration-for-await-of.js.dfg-maximal-flush-validate-no-cjit
stress/dont-crash-in-cfg-simplification.js.dfg-maximal-flush-validate-no-cjit
stress/infinite-loop-that-uses-captured-variables.js.dfg-maximal-flush-validate-no-cjit
stress/super-property-access-exceptions.js.dfg-maximal-flush-validate-no-cjit
stress/int52-ai-add-then-filter-int32.js.dfg-maximal-flush-validate-no-cjit
stress/reflect-set-proxy-set.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/Float32Array-matrix-mult.js.dfg-maximal-flush-validate-no-cjit
stress/try-catch-setter-as-put-by-id.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-tdz-in-catch.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-replace-generic.js.dfg-maximal-flush-validate-no-cjit
stress/int16-put-by-val-out-of-bounds-bounds-then-do-in-bounds.js.dfg-maximal-flush-validate-no-cjit
stress/array-concat-spread-object.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-concat.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-tdz-in-eval.js.dfg-maximal-flush-validate-no-cjit
stress/get-by-val-with-symbol-getter.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-new-negative-array-size.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/apply-not-apply.js.dfg-maximal-flush-validate-no-cjit
stress/typedarray-subarray.js.dfg-maximal-flush-validate-no-cjit
stress/v8-deltablue-strict.js.dfg-maximal-flush-validate-no-cjit
stress/activation-sink-default-value-tdz-error.js.dfg-maximal-flush-validate-no-cjit
stress/int16-put-by-val-in-and-out-of-bounds.js.dfg-maximal-flush-validate-no-cjit
stress/to-string-on-value-or-string.js.dfg-maximal-flush-validate-no-cjit
stress/array-slice-osr-exit.js.dfg-maximal-flush-validate-no-cjit
stress/is-undefined-exit-on-masquerader.js.dfg-maximal-flush-validate-no-cjit
stress/put-direct-index-broken-2.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-try-catch-getter-ic-fail-to-call-operation-throw-error.js.dfg-maximal-flush-validate-no-cjit
v8-v6/v8-splay.js.dfg-maximal-flush-validate-no-cjit
stress/global-lexical-var-injection.js.dfg-maximal-flush-validate-no-cjit
stress/catch-set-argument-speculation-failure.js.dfg-maximal-flush-validate-no-cjit
stress/lexical-let-tdz.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/delta-blue-try-catch.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/map-constant-key.js.dfg-maximal-flush-validate-no-cjit
stress/fold-to-primitive-in-cfa.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-call-class-constructor.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-no-tdz-in-eval.js.dfg-maximal-flush-validate-no-cjit
stress/math-unary-no-arg.js.dfg-maximal-flush-validate-no-cjit
stress/phantom-new-array-with-spread-osr-exit.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-put-by-id-setter-exception.js.dfg-maximal-flush-validate-no-cjit
stress/regress-153486.js.dfg-maximal-flush-validate-no-cjit
stress/function-with-defaults-inlining.js.dfg-maximal-flush-validate-no-cjit
stress/bug-171786.js.dfg-maximal-flush-validate-no-cjit
stress/call-varargs-with-different-arguments-length-after-warmup.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/try-catch-get-by-val-direct-arguments.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-repeat-resolving-no-inline.js.dfg-maximal-flush-validate-no-cjit
stress/exception-dfg-operation-read-value.js.dfg-maximal-flush-validate-no-cjit
stress/instanceof-late-constant-folding.js.dfg-maximal-flush-validate-no-cjit
stress/get-from-scope-dynamic-onto-proxy.js.dfg-maximal-flush-validate-no-cjit
stress/number-is-finite.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-call-exception-interesting-live-state.js.dfg-maximal-flush-validate-no-cjit
stress/dont-dead-lock-put-by-val-as-put-by-id.js.dfg-maximal-flush-validate-no-cjit
stress/op-add-exceptions.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-no-tdz-in-loop.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/simple-regexp-test-folding-fail.js.dfg-maximal-flush-validate-no-cjit
stress/regress-170896-with-contiguous-shape-profile.js.dfg-maximal-flush-validate-no-cjit
stress/tricky-infinite-loop-that-uses-captured-variables.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-min-then-get-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/make-rope-3.js.dfg-maximal-flush-validate-no-cjit
stress/tagged-templates-raw-strings.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/array-prototype-every.js.dfg-maximal-flush-validate-no-cjit
stress/tricky-inferred-infinite-loop-that-uses-captured-variables-and-creates-the-activation-outside-the-loop.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/simple-regexp-test-folding.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-try-catch-patchpoint-with-volatile-registers.js.dfg-maximal-flush-validate-no-cjit
stress/modify-set-during-iteration.js.dfg-maximal-flush-validate-no-cjit
stress/int52-ai-mul-then-filter-int32.js.dfg-maximal-flush-validate-no-cjit
stress/regress-171079.js.dfg-maximal-flush-validate-no-cjit
stress/async-function-declaration-sinking-no-double-allocate.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-sub-then-get-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-call-varargs-exception.js.dfg-maximal-flush-validate-no-cjit
stress/rest-parameter-basics.js.dfg-maximal-flush-validate-no-cjit
stress/lexical-scoping-break-continue.js.dfg-maximal-flush-validate-no-cjit
stress/set-clone-instance-iterator-change.js.dfg-maximal-flush-validate-no-cjit
stress/value-to-boolean.js.dfg-maximal-flush-validate-no-cjit
stress/map-clone.js.dfg-maximal-flush-validate-no-cjit
stress/dead-fiat-value-to-int52-then-exit-not-double.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-tdz.js.dfg-maximal-flush-validate-no-cjit
stress/IIFE-es6-default-parameters.js.dfg-maximal-flush-validate-no-cjit
stress/array-prototype-concat-of-long-spliced-arrays.js.dfg-maximal-flush-validate-no-cjit
stress/fold-load-varargs-arity-check-fail-barely.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/varargs-construct.js.dfg-maximal-flush-validate-no-cjit
stress/pad-start-calls-repeat-character-with-double.js.dfg-maximal-flush-validate-no-cjit
v8-v6/v8-richards.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-define-own-property.js.dfg-maximal-flush-validate-no-cjit
stress/varargs-inlined-simple-exit-aliasing.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-tdz-in-conditional.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-put-by-id-setter-exception-interesting-live-state.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-no-tdz-in-catch.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-tdz-in-loop.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/v8-regexp-search.js.dfg-maximal-flush-validate-no-cjit
stress/v8-richards-strict.js.dfg-maximal-flush-validate-no-cjit
v8-v6/v8-regexp.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/for-of-array.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/is-symbol-mixed.js.dfg-maximal-flush-validate-no-cjit
stress/spread-calling.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-get-by-id-getter-exception.js.dfg-maximal-flush-validate-no-cjit
stress/try-catch-stub-routine-replaced.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/map-rehash.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-put-setter-by-val-class.js.dfg-maximal-flush-validate-no-cjit
stress/global-lexical-redefine-const.js.dfg-maximal-flush-validate-no-cjit
stress/to-string-on-string-object.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-mul-then-get-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/to-number-throws-correct-exception.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/arrowfunction-call-in-class-constructor.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/arguments-strict-mode.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/get-by-val-with-symbol-chain-from-try-block.js.dfg-maximal-flush-validate-no-cjit
stress/for-in-prototype.js.dfg-maximal-flush-validate-no-cjit
stress/es6-for-of-loop-exception.js.dfg-maximal-flush-validate-no-cjit
stress/sloppy-mode-function-hoisting.js.dfg-maximal-flush-validate-no-cjit
stress/array-message-passing.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-instanceof.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/v8-raytrace-with-try-catch.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-tdz-4.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-supercall-3.js.dfg-maximal-flush-validate-no-cjit
stress/sparse-array-entry-update-144067.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/concat-append-one.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-repeat-single-not-resolving.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-no-tdz-in-conditional.js.dfg-maximal-flush-validate-no-cjit
stress/symbol-toprimitive.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-try-catch-setter-throw.js.dfg-maximal-flush-validate-no-cjit
stress/generator-fib-ftl-and-string.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-with-unbalanced-getter-setter.js.dfg-maximal-flush-validate-no-cjit
stress/arith-add-with-constants.js.dfg-maximal-flush-validate-no-cjit
stress/eval-func-decl-block-with-var-sinthesize.js.dfg-maximal-flush-validate-no-cjit
stress/const-not-strict-mode.js.dfg-maximal-flush-validate-no-cjit
stress/eval-func-decl-within-eval-without-reassign-to-let.js.dfg-maximal-flush-validate-no-cjit
sunspider-1.0/string-tagcloud.js.dfg-maximal-flush-validate-no-cjit
stress/infinite-loop-that-uses-captured-variables-before-throwing.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-construct.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-set.js.dfg-maximal-flush-validate-no-cjit
stress/runtime-throw-through-optimized-code.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-abs-then-get-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/has-own-property-cache-basics.js.dfg-maximal-flush-validate-no-cjit
stress/IIFE-function-name-captured.js.dfg-maximal-flush-validate-no-cjit
stress/get-by-id-throw-from-getter-through-optimized-code.js.dfg-maximal-flush-validate-no-cjit
stress/array-slice-jettison-on-constructor-change.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-repeat-resolving-fixed.js.dfg-maximal-flush-validate-no-cjit
stress/istypedarrayview-intrinsic.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/try-catch-word-count.js.dfg-maximal-flush-validate-no-cjit
stress/int52-ai-mul-and-clean-neg-zero-then-filter-int32.js.dfg-maximal-flush-validate-no-cjit
stress/math-ceil-basics.js.dfg-maximal-flush-validate-no-cjit
stress/array-copywithin.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-json.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-neg-zero-then-get-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/tricky-indirectly-inferred-infinite-loop-that-uses-captured-variables-and-creates-the-activation-outside-the-loop.js.dfg-maximal-flush-validate-no-cjit
stress/infer-uninitialized-closure-var.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/raytrace-with-try-catch.js.dfg-maximal-flush-validate-no-cjit
stress/load-varargs-then-inlined-call-exit-in-foo.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/switch-char-constant.js.dfg-maximal-flush-validate-no-cjit
stress/escape-object-in-diamond-then-exit.js.dfg-maximal-flush-validate-no-cjit
stress/number-is-nan.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-delete.js.dfg-maximal-flush-validate-no-cjit
stress/tricky-infinite-loop-that-uses-captured-variables-and-creates-the-activation-outside-the-loop.js.dfg-maximal-flush-validate-no-cjit
sunspider-1.0/date-format-tofte.js.dfg-maximal-flush-validate-no-cjit
stress/regress-132147.js.dfg-maximal-flush-validate-no-cjit
stress/array-slice-intrinsic.js.dfg-maximal-flush-validate-no-cjit
stress/array-concat-with-slow-indexingtypes.js.dfg-maximal-flush-validate-no-cjit
stress/check-dom-with-signature.js.dfg-maximal-flush-validate-no-cjit
stress/spread-non-array.js.dfg-maximal-flush-validate-no-cjit
stress/arith-sub-on-double-array-with-holes.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-add.js.dfg-maximal-flush-validate-no-cjit
stress/global-is-finite.js.dfg-maximal-flush-validate-no-cjit
stress/pow-stable-results.js.dfg-maximal-flush-validate-no-cjit
stress/fold-multi-get-by-offset-to-get-by-offset-without-folding-the-structure-check-new.js.dfg-maximal-flush-validate-no-cjit
stress/check-sub-class.js.dfg-maximal-flush-validate-no-cjit
stress/generator-frame-empty.js.dfg-maximal-flush-validate-no-cjit
stress/class-subclassing-typedarray.js.dfg-maximal-flush-validate-no-cjit
stress/tier-up-in-loop-with-cfg-simplification.js.dfg-maximal-flush-validate-no-cjit
stress/generator-function-expression-sinking-put.js.dfg-maximal-flush-validate-no-cjit
stress/sampling-profiler-microtasks.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-put-by-id-slow-exception-interesting-live-state.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-put-accessors-by-id.js.dfg-maximal-flush-validate-no-cjit
stress/sink-multigetbyoffset.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/array-prototype-forEach.js.dfg-maximal-flush-validate-no-cjit
stress/async-function-expression-sinking-osrexit.js.dfg-maximal-flush-validate-no-cjit
stress/no-abc-skippy-loop.js.dfg-maximal-flush-validate-no-cjit
stress/typedarray-configure-index.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-revoke.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/is-array-for-proxy.js.dfg-maximal-flush-validate-no-cjit
stress/ai-consistency-filter-cells.js.dfg-maximal-flush-validate-no-cjit
stress/eval-func-decl-within-eval-with-reassign-to-var.js.dfg-maximal-flush-validate-no-cjit
stress/map-clone-iterator-change.js.dfg-maximal-flush-validate-no-cjit
stress/to-string-on-string-or-string-object-then-object.js.dfg-maximal-flush-validate-no-cjit
stress/constant-folding-osr-exit.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/int-or-other-sub.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/hard-overflow-check-equal.js.dfg-maximal-flush-validate-no-cjit
stress/async-iteration-async-from-sync.js.dfg-maximal-flush-validate-no-cjit
stress/compare-strict-eq-integer-to-misc.js.dfg-maximal-flush-validate-no-cjit
stress/v8-regexp-strict.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/rare-osr-exit-on-local.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-transcoding.js.dfg-maximal-flush-validate-no-cjit
stress/math-trunc-basics.js.dfg-maximal-flush-validate-no-cjit
stress/create-subclass-structure-might-throw.js.dfg-maximal-flush-validate-no-cjit
stress/typedarray-access-monomorphic-neutered.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-put-getter-by-val.js.dfg-maximal-flush-validate-no-cjit
stress/infinite-loop-that-uses-captured-variables-but-they-do-not-escape.js.dfg-maximal-flush-validate-no-cjit
stress/has-own-property-name-cache-symbols-and-strings.js.dfg-maximal-flush-validate-no-cjit
stress/tricky-array-bounds-checks.js.dfg-maximal-flush-validate-no-cjit
stress/math-floor-basics.js.dfg-maximal-flush-validate-no-cjit
stress/get-local-elimination.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/typed-array-subarray.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/for-of-iterate-array-entries.js.dfg-maximal-flush-validate-no-cjit
stress/exception-dfg-throw-from-catch-block.js.dfg-maximal-flush-validate-no-cjit
stress/to-string-on-value.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/is-array-for-array.js.dfg-maximal-flush-validate-no-cjit
stress/proxy-own-keys.js.dfg-maximal-flush-validate-no-cjit
stress/operation-in-throw-error.js.dfg-maximal-flush-validate-no-cjit
stress/math-pow-stable-results.js.dfg-maximal-flush-validate-no-cjit
v8-v6/v8-crypto.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/array-prototype-some.js.dfg-maximal-flush-validate-no-cjit
stress/for-in-modify-int-loop-var.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-repeat-small-resolving.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-repeat-single-resolving.js.dfg-maximal-flush-validate-no-cjit
stress/v8-crypto-strict.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-lexical-bind-this-6.js.dfg-maximal-flush-validate-no-cjit
stress/promise-infinite-recursion-should-not-crash.js.dfg-maximal-flush-validate-no-cjit
stress/dfg-put-getter-by-val-class.js.dfg-maximal-flush-validate-no-cjit
stress/fold-to-int52-constant-then-exit.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-concat-long.js.dfg-maximal-flush-validate-no-cjit
stress/super-get-by-id.js.dfg-maximal-flush-validate-no-cjit
stress/reflect-construct.js.dfg-maximal-flush-validate-no-cjit
stress/eval-func-decl-in-global-of-eval.js.dfg-maximal-flush-validate-no-cjit
stress/arrowfunction-prototype.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/super-getter.js.dfg-maximal-flush-validate-no-cjit
stress/exception-dfg-inlined-frame-not-strict-equal.js.dfg-maximal-flush-validate-no-cjit
stress/dead-osr-entry-value.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/string-repeat-small-not-resolving.js.dfg-maximal-flush-validate-no-cjit
stress/global-lexical-variable-tdz.js.dfg-maximal-flush-validate-no-cjit
stress/block-scoped-function-declarations.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/fake-iterators-that-throw-when-finished.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/abc-skippy-loop.js.dfg-maximal-flush-validate-no-cjit
stress/async-iteration-basic.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/v8-raytrace-with-empty-try-catch.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/set-for-each.js.dfg-maximal-flush-validate-no-cjit
stress/async-function-declaration-sinking-osrexit.js.dfg-maximal-flush-validate-no-cjit
stress/array-concat-spread-proxy-exception-check.js.dfg-maximal-flush-validate-no-cjit
stress/global-is-nan.js.dfg-maximal-flush-validate-no-cjit
stress/ftl-sub-exception.js.dfg-maximal-flush-validate-no-cjit
stress/domjit-getter-type-check.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/super-get-by-id-with-this-monomorphic.js.dfg-maximal-flush-validate-no-cjit
stress/phantom-spread-forward-varargs.js.dfg-maximal-flush-validate-no-cjit
microbenchmarks/simple-regexp-test-folding-with-hoisted-regexp.js.dfg-maximal-flush-validate-no-cjit
stress/set-clone-iterator-change.js.dfg-maximal-flush-validate-no-cjit
stress/float32-array-out-of-bounds.js.dfg-maximal-flush-validate-no-cjit
stress/class-syntax-super-in-eval.js.dfg-maximal-flush-validate-no-cjit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343653</commentid>
    <comment_count>15</comment_count>
      <attachid>319388</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-30 12:48:43 -0700</bug_when>
    <thetext>Created attachment 319388
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343828</commentid>
    <comment_count>16</comment_count>
      <attachid>319388</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-08-30 18:29:49 -0700</bug_when>
    <thetext>Comment on attachment 319388
patch

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

r=me with nit.

&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:5222
&gt; +            uint32_t errorType = currentInstruction[2].u.unsignedValue;

Nit: You could add names for throw_static_errors offsets!

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:10296
&gt; +#if USE(JSVALUE64)
&gt; +    callOperation(operationThrowDFG, valueRegs.gpr());
&gt; +#else
&gt; +    callOperation(operationThrowDFG, valueRegs);
&gt; +#endif

Nit: instead of an #if can you add a callOperation(V_JITOperation_EJssUi, JSValueRegs)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344188</commentid>
    <comment_count>17</comment_count>
      <attachid>319388</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-31 16:28:22 -0700</bug_when>
    <thetext>Comment on attachment 319388
patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:5222
&gt;&gt; +            uint32_t errorType = currentInstruction[2].u.unsignedValue;
&gt; 
&gt; Nit: You could add names for throw_static_errors offsets!

I&apos;ll embark on this journey in another patch

&gt;&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:10296
&gt;&gt; +#endif
&gt; 
&gt; Nit: instead of an #if can you add a callOperation(V_JITOperation_EJssUi, JSValueRegs)?

will do</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344194</commentid>
    <comment_count>18</comment_count>
      <attachid>319540</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-31 16:42:39 -0700</bug_when>
    <thetext>Created attachment 319540
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344314</commentid>
    <comment_count>19</comment_count>
      <attachid>319540</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-31 22:41:12 -0700</bug_when>
    <thetext>Comment on attachment 319540
patch for landing

Clearing flags on attachment: 319540

Committed r221472: &lt;http://trac.webkit.org/changeset/221472&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344315</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-31 22:41:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319285</attachid>
            <date>2017-08-29 14:49:53 -0700</date>
            <delta_ts>2017-08-30 01:09:57 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>4386</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjIxMzE2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBA
CisyMDE3LTA4LTI5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFRocm93aW5nIGFuIGV4Y2VwdGlvbiBpbiB0aGUgREZHL0ZUTCBzaG91bGQgbm90IGJlIGEgaml0
dGlzb24tYWJsZSBPU1IgZXhpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc2MDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgT1NSIGV4aXR0aW5nIHdoZW4gd2UgdGhyb3cgYW4gZXhjZXB0aW9uIGlzIGV4
cGVjdGVkIGJlaGF2aW9yLiBXZSBzaG91bGQKKyAgICAgICAgbm90IGNvdW50IHRoZXNlIGV4aXRz
IHRvd2FyZHMgb3VyIGpldHRpc29uIE9TUiBleGl0IHRocmVzaG9sZC4KKworICAgICAgICAqIGJ5
dGVjb2RlL0V4aXRLaW5kLmNwcDoKKyAgICAgICAgKEpTQzo6ZXhpdEtpbmRUb1N0cmluZyk6Cisg
ICAgICAgIChKU0M6OmV4aXRLaW5kTWF5SmV0dGlzb24pOgorICAgICAgICAqIGJ5dGVjb2RlL0V4
aXRLaW5kLmg6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlVGhyb3cpOgorCiAyMDE3LTA4
LTI5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGluaXRp
YWwgc3VwcG9ydCBmb3IgZGF0YVRyYW5zZmVySXRlbS53ZWJraXRHZXRBc0VudHJ5KCkKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcAkocmV2aXNpb24g
MjIxMjk5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0V4aXRLaW5kLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtOTAsNiArOTAsOCBAQCBjb25zdCBjaGFyKiBleGl0S2luZFRvU3Ry
aW5nKEV4aXRLaW5kIGtpCiAgICAgICAgIHJldHVybiAiRXhjZXB0aW9uQ2hlY2siOwogICAgIGNh
c2UgR2VuZXJpY1Vud2luZDoKICAgICAgICAgcmV0dXJuICJHZW5lcmljVW53aW5kIjsKKyAgICBj
YXNlIFRocm93RXhjZXB0aW9uOgorICAgICAgICByZXR1cm4gIlRocm93RXhjZXB0aW9uIjsKICAg
ICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gIlVua25v
d24iOwpAQCAtMTAwLDYgKzEwMiw3IEBAIGJvb2wgZXhpdEtpbmRNYXlKZXR0aXNvbihFeGl0S2lu
ZCBraW5kKQogICAgIHN3aXRjaCAoa2luZCkgewogICAgIGNhc2UgRXhjZXB0aW9uQ2hlY2s6CiAg
ICAgY2FzZSBHZW5lcmljVW53aW5kOgorICAgIGNhc2UgVGhyb3dFeGNlcHRpb246CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gdHJ1ZTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9FeGl0S2luZC5oCShyZXZpc2lvbiAyMjEy
OTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRXhpdEtpbmQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTYsNiArNTYsNyBAQCBlbnVtIEV4aXRLaW5kIDogdWludDhfdCB7CiAgICAg
RGVidWdnZXJFdmVudCwgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugd2UgbmVlZCB0byBzZXJ2aWNlIHRo
ZSBkZWJ1Z2dlci4KICAgICBFeGNlcHRpb25DaGVjaywgLy8gV2UgZXhpdGVkIGJlY2F1c2UgYSBk
aXJlY3QgZXhjZXB0aW9uIGNoZWNrIHNob3dlZCB0aGF0IHdlIHRocmV3IGFuIGV4Y2VwdGlvbiBm
cm9tIGEgQyBjYWxsLgogICAgIEdlbmVyaWNVbndpbmQsIC8vIFdlIGV4aXRlZCBiZWNhdXNlIGEg
d2UgYXJyaXZlZCBhdCB0aGlzIE9TUiBleGl0IGZyb20gZ2VuZXJpY1Vud2luZC4KKyAgICBUaHJv
d0V4Y2VwdGlvbiwgLy8gV2UgZXhpdGVkIGJlY2F1c2Ugd2UgZGlkICd0aHJvdycuCiB9OwogCiBj
b25zdCBjaGFyKiBleGl0S2luZFRvU3RyaW5nKEV4aXRLaW5kKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2
aXNpb24gMjIxMjk5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzY1MSw3ICszNjUxLDcgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgVGhyb3dTdGF0aWNF
cnJvcjogewogICAgICAgICAvLyBXZSBleHBlY3QgdGhhdCB0aHJvdyBzdGF0ZW1lbnRzIGFyZSBy
YXJlIGFuZCBhcmUgaW50ZW5kZWQgdG8gZXhpdCB0aGUgY29kZSBibG9jawogICAgICAgICAvLyBh
bnl3YXksIHNvIHdlIGp1c3QgT1NSIGJhY2sgdG8gdGhlIG9sZCBKSVQgZm9yIG5vdy4KLSAgICAg
ICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRpb24oVW5jb3VudGFibGUsIEpTVmFsdWVSZWdz
KCksIDApOworICAgICAgICB0ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihUaHJvd0V4Y2Vw
dGlvbiwgSlNWYWx1ZVJlZ3MoKSwgMCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAg
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAJKHJldmlzaW9uIDIyMTI5OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4NzQsNyArMzg3NCw3
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIFRo
cm93U3RhdGljRXJyb3I6IHsKICAgICAgICAgLy8gV2UgZXhwZWN0IHRoYXQgdGhyb3cgc3RhdGVt
ZW50cyBhcmUgcmFyZSBhbmQgYXJlIGludGVuZGVkIHRvIGV4aXQgdGhlIGNvZGUgYmxvY2sKICAg
ICAgICAgLy8gYW55d2F5LCBzbyB3ZSBqdXN0IE9TUiBiYWNrIHRvIHRoZSBvbGQgSklUIGZvciBu
b3cuCi0gICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKFVuY291bnRhYmxlLCBK
U1ZhbHVlUmVncygpLCAwKTsKKyAgICAgICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRpb24o
VGhyb3dFeGNlcHRpb24sIEpTVmFsdWVSZWdzKCksIDApOwogICAgICAgICBicmVhazsKICAgICB9
CiAgICAgICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
QjMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJE
RkdUb0IzLmNwcAkocmV2aXNpb24gMjIxMjk5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvQjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03ODAwLDcgKzc4MDAsNyBA
QCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgY29tcGlsZVRocm93KCkKICAgICB7Ci0gICAgICAg
IHRlcm1pbmF0ZShVbmNvdW50YWJsZSk7CisgICAgICAgIHRlcm1pbmF0ZShUaHJvd0V4Y2VwdGlv
bik7CiAgICAgfQogICAgIAogICAgIHZvaWQgY29tcGlsZUludmFsaWRhdGlvblBvaW50KCkK
</data>
<flag name="review"
          id="339585"
          type_id="1"
          status="+"
          setter="msaboff"
    />
    <flag name="commit-queue"
          id="339586"
          type_id="3"
          status="-"
          setter="msaboff"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319352</attachid>
            <date>2017-08-30 01:09:57 -0700</date>
            <delta_ts>2017-08-30 12:48:43 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>19242</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjIxMzQ3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBA
CisyMDE3LTA4LTMwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFRocm93aW5nIGFuIGV4Y2VwdGlvbiBpbiB0aGUgREZHL0ZUTCBzaG91bGQgbm90IGNhdXNlIGEg
amV0dGlzb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3NjA2MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQxNDMzNDg+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhyb3dpbmcgYW4gZXhjZXB0aW9u
IGlzIG5vdCBzb21ldGhpbmcgdGhhdCBzaG91bGQgYmUgYSBqZXR0aXNvbi1hYmxlCisgICAgICAg
IE9TUiBleGl0LiBXZSB1c2VkIHRvIGNvdW50IFRocm93L1Rocm93U3RhdGljRXJyb3IgdG93YXJk
cyBvdXIgT1NSIGV4aXQKKyAgICAgICAgY291bnRzIHdoaWNoIGNvdWxkIGNhdXNlIGEgQ29kZUJs
b2NrIHRvIGpldHRpc29uIGFuZCByZWNvbXBpbGUuIFRoaXMKKyAgICAgICAgd2FzIGR1bWIuIFRo
cm93aW5nIGFuIGV4Y2VwdGlvbiBpcyBub3QgYSByZWFzb24gdG8gamV0dGlzb24gYW5kCisgICAg
ICAgIHJlY29tcGlsZSBpbiB0aGUgd2F5IHRoYXQgYSBzcGVjdWxhdGlvbiBmYWlsdXJlIGlzLiBU
aGlzIHBhdGNoCisgICAgICAgIHRyZWF0cyBUaHJvdy9UaHJvd1N0YXRpY0Vycm9yIGFzIHRydWUg
dGVybWluYWxzIGluIERGRyBJUi4KKworICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVm
Lmg6CisgICAgICAgIChKU0M6OmNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAg
ICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpE
Rkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0
cyk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAgICogZGZnL0RGR0Nsb2Ji
ZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcv
REZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBO
b2RlKToKKyAgICAgICAgKiBkZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OkluUGxhY2VBYnN0cmFjdFN0YXRlOjptZXJnZVRvU3VjY2Vzc29ycyk6Cisg
ICAgICAgICogZGZnL0RGR01heGltYWxGbHVzaEluc2VydGlvblBoYXNlLmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpNYXhpbWFsRmx1c2hJbnNlcnRpb25QaGFzZTo6dHJlYXRSZWd1bGFyQmxvY2sp
OgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aXNU
ZXJtaW5hbCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aXNQc2V1ZG9UZXJtaW5hbCk6Cisg
ICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6ZXJyb3JUeXBlKToKKyAgICAgICAgKiBkZmcvREZHTm9k
ZVR5cGUuaDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogZGZn
L0RGR09wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9u
UGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUaHJvdyk6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUaHJvd1N0YXRpY0Vycm9yKToKKyAgICAgICAg
KiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJf
NjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAg
ICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMu
Y3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlTm9kZSk6
CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVUaHJvdyk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVUaHJvd1N0YXRpY0Vy
cm9yKToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5oOgorCiAyMDE3LTA4LTI5ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjIxMzE3LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlVXNlRGVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgJKHJldmlzaW9uIDIyMTM0MykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCSh3b3JraW5nIGNvcHkpCkBA
IC02Myw2ICs2Myw3IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldChCbG9jayoK
ICAgICBjYXNlIG9wX2lkZW50aXR5X3dpdGhfcHJvZmlsZToKICAgICBjYXNlIG9wX3Byb2ZpbGVf
dHlwZToKICAgICBjYXNlIG9wX3Rocm93OgorICAgIGNhc2Ugb3BfdGhyb3dfc3RhdGljX2Vycm9y
OgogICAgIGNhc2Ugb3BfZW5kOgogICAgIGNhc2Ugb3BfcmV0OgogICAgIGNhc2Ugb3BfanRydWU6
CkBAIC03MSw4ICs3Miw3IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldChCbG9j
ayoKICAgICBjYXNlIG9wX2puZXFfbnVsbDoKICAgICBjYXNlIG9wX2RlYzoKICAgICBjYXNlIG9w
X2luYzoKLSAgICBjYXNlIG9wX2xvZ19zaGFkb3dfY2hpY2tlbl9wcm9sb2d1ZToKLSAgICBjYXNl
IG9wX3Rocm93X3N0YXRpY19lcnJvcjogeworICAgIGNhc2Ugb3BfbG9nX3NoYWRvd19jaGlja2Vu
X3Byb2xvZ3VlOiB7CiAgICAgICAgIEFTU0VSVChvcGNvZGVMZW5ndGhzW29wY29kZUlEXSA+IDEp
OwogICAgICAgICBmdW5jdG9yKGNvZGVCbG9jaywgaW5zdHJ1Y3Rpb24sIG9wY29kZUlELCBpbnN0
cnVjdGlvblsxXS51Lm9wZXJhbmQpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5s
aW5lcy5oCShyZXZpc2lvbiAyMjEzNDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4ODAsNiAr
MTg4MCw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICAg
ICAgCiAgICAgY2FzZSBUaHJvdzoKICAgICBjYXNlIFRocm93U3RhdGljRXJyb3I6CisgICAgICAg
IGNsb2JiZXJXb3JsZChub2RlLT5vcmlnaW4uc2VtYW50aWMsIGNsb2JiZXJMaW1pdCk7CiAgICAg
ICAgIG1fc3RhdGUuc2V0SXNWYWxpZChmYWxzZSk7CiAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFy
c2VyLmNwcAkocmV2aXNpb24gMjIxMzQzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyMTYsMTUgKzUyMTYsMTQg
QEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZAogICAgICAgICBjYXNl
IG9wX3Rocm93OgogICAgICAgICAgICAgYWRkVG9HcmFwaChUaHJvdywgZ2V0KFZpcnR1YWxSZWdp
c3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSkpOwogICAgICAgICAgICAgZmx1
c2hGb3JUZXJtaW5hbCgpOwotICAgICAgICAgICAgYWRkVG9HcmFwaChVbnJlYWNoYWJsZSk7CiAg
ICAgICAgICAgICBMQVNUX09QQ09ERShvcF90aHJvdyk7CiAgICAgICAgICAgICAKLSAgICAgICAg
Y2FzZSBvcF90aHJvd19zdGF0aWNfZXJyb3I6Ci0gICAgICAgICAgICBhZGRUb0dyYXBoKFRocm93
U3RhdGljRXJyb3IpOwotICAgICAgICAgICAgYWRkVG9HcmFwaChQaGFudG9tLCBnZXQoVmlydHVh
bFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKSk7IC8vIEtlZXAgYXJn
dW1lbnQgbGl2ZS4KKyAgICAgICAgY2FzZSBvcF90aHJvd19zdGF0aWNfZXJyb3I6IHsKKyAgICAg
ICAgICAgIHVpbnQzMl90IGVycm9yVHlwZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51LnVuc2ln
bmVkVmFsdWU7CisgICAgICAgICAgICBhZGRUb0dyYXBoKFRocm93U3RhdGljRXJyb3IsIE9wSW5m
byhlcnJvclR5cGUpLCBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51
Lm9wZXJhbmQpKSk7CiAgICAgICAgICAgICBmbHVzaEZvclRlcm1pbmFsKCk7Ci0gICAgICAgICAg
ICBhZGRUb0dyYXBoKFVucmVhY2hhYmxlKTsKICAgICAgICAgICAgIExBU1RfT1BDT0RFKG9wX3Ro
cm93X3N0YXRpY19lcnJvcik7CisgICAgICAgIH0KIAogICAgICAgICBjYXNlIG9wX2NhdGNoOiB7
CiAgICAgICAgICAgICBtX2dyYXBoLm1faGFzRXhjZXB0aW9uSGFuZGxlcnMgPSB0cnVlOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgJKHJldmlzaW9uIDIy
MTM0MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MjYsNyArNDI2LDYgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFw
aCwgTm9kZSogbm9kZQogICAgIGNhc2UgSnVtcDoKICAgICBjYXNlIEJyYW5jaDoKICAgICBjYXNl
IFN3aXRjaDoKLSAgICBjYXNlIFRocm93OgogICAgIGNhc2UgRm9yY2VPU1JFeGl0OgogICAgIGNh
c2UgQ2hlY2tCYWRDZWxsOgogICAgIGNhc2UgUmV0dXJuOgpAQCAtMTUzMCw4ICsxNTI5LDEwIEBA
IHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgICAgICAKKyAgICBjYXNlIFRocm93OgogICAgIGNhc2UgVGhy
b3dTdGF0aWNFcnJvcjoKLSAgICAgICAgd3JpdGUoU2lkZVN0YXRlKTsKKyAgICAgICAgcmVhZChX
b3JsZCk7CisgICAgICAgIHdyaXRlKEhlYXApOwogICAgICAgICByZXR1cm47CiAgICAgICAgIAog
ICAgIGNhc2UgQ291bnRFeGVjdXRpb246CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0ZpeHVwUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRml4dXBQaGFzZS5jcHAJKHJldmlzaW9uIDIyMTM0MykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5NDgsNiAr
MTk0OCwxMCBAQCBwcml2YXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAorICAg
ICAgICBjYXNlIFRocm93U3RhdGljRXJyb3I6CisgICAgICAgICAgICBmaXhFZGdlPFN0cmluZ1Vz
ZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgYnJlYWs7CisKICNpZiAhQVNTRVJUX0RJ
U0FCTEVECiAgICAgICAgIC8vIEhhdmUgdGhlc2Ugbm8tb3AgY2FzZXMgaGVyZSB0byBlbnN1cmUg
dGhhdCBub2JvZHkgZm9yZ2V0cyB0byBhZGQgaGFuZGxlcnMgZm9yIG5ldyBvcGNvZGVzLgogICAg
ICAgICBjYXNlIFNldEFyZ3VtZW50OgpAQCAtMjAwMCw3ICsyMDA0LDYgQEAgcHJpdmF0ZToKICAg
ICAgICAgY2FzZSBEaXJlY3RUYWlsQ2FsbDoKICAgICAgICAgY2FzZSBUYWlsQ2FsbFZhcmFyZ3M6
CiAgICAgICAgIGNhc2UgVGhyb3c6Ci0gICAgICAgIGNhc2UgVGhyb3dTdGF0aWNFcnJvcjoKICAg
ICAgICAgY2FzZSBDb3VudEV4ZWN1dGlvbjoKICAgICAgICAgY2FzZSBGb3JjZU9TUkV4aXQ6CiAg
ICAgICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHAJKHJldmlzaW9uIDIyMTM0
MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNzgsNiArMzc4LDggQEAgaW5saW5lIGJvb2wgSW5QbGFj
ZUFic3RyYWN0U3RhdGU6Om1lcmdlVAogICAgIGNhc2UgVGFpbENhbGxWYXJhcmdzOgogICAgIGNh
c2UgVGFpbENhbGxGb3J3YXJkVmFyYXJnczoKICAgICBjYXNlIFVucmVhY2hhYmxlOgorICAgIGNh
c2UgVGhyb3c6CisgICAgY2FzZSBUaHJvd1N0YXRpY0Vycm9yOgogICAgICAgICBBU1NFUlQoYmFz
aWNCbG9jay0+Y2ZhQnJhbmNoRGlyZWN0aW9uID09IEludmFsaWRCcmFuY2hEaXJlY3Rpb24pOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2UuY3BwCShyZXZp
c2lvbiAyMjEzNDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR01heGltYWxGbHVz
aEluc2VydGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTMsNyArOTMsNyBAQCBwdWJs
aWM6CiAKICAgICAgICAgLy8gRmx1c2ggZXZlcnl0aGluZyBhdCB0aGUgZW5kIG9mIHRoZSBibG9j
ay4KICAgICAgICAgewotICAgICAgICAgICAgTm9kZU9yaWdpbiBvcmlnaW4gPSBibG9jay0+YXQo
YmxvY2stPnNpemUoKSAtIDEpLT5vcmlnaW47CisgICAgICAgICAgICBOb2RlT3JpZ2luIG9yaWdp
biA9IGJsb2NrLT5hdChibG9jay0+c2l6ZSgpIC0gMSktPm9yaWdpbi53aXRoRXhpdE9LKGZhbHNl
KTsKICAgICAgICAgICAgIGF1dG8gaW5zZXJ0Rmx1c2hBdEVuZCA9IFsmXSAoVmlydHVhbFJlZ2lz
dGVyIG9wZXJhbmQpIHsKICAgICAgICAgICAgICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEqIGFjY2Vz
c0RhdGEgPSBjdXJyZW50QmxvY2tBY2Nlc3NEYXRhLm9wZXJhbmQob3BlcmFuZCk7CiAgICAgICAg
ICAgICAgICAgaWYgKCFhY2Nlc3NEYXRhKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdO
b2RlLmgJKHJldmlzaW9uIDIyMTM0MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzE4LDYgKzEzMTgsOCBAQCBwdWJsaWM6CiAgICAg
ICAgIGNhc2UgVGFpbENhbGxWYXJhcmdzOgogICAgICAgICBjYXNlIFRhaWxDYWxsRm9yd2FyZFZh
cmFyZ3M6CiAgICAgICAgIGNhc2UgVW5yZWFjaGFibGU6CisgICAgICAgIGNhc2UgVGhyb3c6Cisg
ICAgICAgIGNhc2UgVGhyb3dTdGF0aWNFcnJvcjoKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTM0Miw4ICsx
MzQ0LDYgQEAgcHVibGljOgogICAgICAgICBzd2l0Y2ggKG9wKCkpIHsKICAgICAgICAgY2FzZSBG
b3JjZU9TUkV4aXQ6CiAgICAgICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgotICAgICAgICBjYXNlIFRo
cm93OgotICAgICAgICBjYXNlIFRocm93U3RhdGljRXJyb3I6CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI1
ODMsNiArMjU4MywxMiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX29wSW5mby5hczxCdWNr
ZXRPd25lclR5cGU+KCk7CiAgICAgfQogCisgICAgdWludDMyX3QgZXJyb3JUeXBlKCkKKyAgICB7
CisgICAgICAgIEFTU0VSVChvcCgpID09IFRocm93U3RhdGljRXJyb3IpOworICAgICAgICByZXR1
cm4gbV9vcEluZm8uYXM8dWludDMyX3Q+KCk7CisgICAgfQorCiAgICAgdm9pZCBkdW1wQ2hpbGRy
ZW4oUHJpbnRTdHJlYW0mIG91dCkKICAgICB7CiAgICAgICAgIGlmICghY2hpbGQxKCkpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCShyZXZpc2lvbiAyMjEzNDMp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM4NSwxMCArMzg1LDYgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewog
ICAgIFwKICAgICBtYWNybyhOZXdBc3luY0Z1bmN0aW9uLCBOb2RlUmVzdWx0SlMpIFwKICAgICBc
Ci0gICAgLyogVGhlc2UgYXJlbid0IHRlcm1pbmFscyBidXQgYWx3YXlzIGV4aXQgKi8gXAotICAg
IG1hY3JvKFRocm93LCBOb2RlTXVzdEdlbmVyYXRlKSBcCi0gICAgbWFjcm8oVGhyb3dTdGF0aWNF
cnJvciwgTm9kZU11c3RHZW5lcmF0ZSkgXAotICAgIFwKICAgICAvKiBCbG9jayB0ZXJtaW5hbHMu
ICovXAogICAgIG1hY3JvKEp1bXAsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhCcmFu
Y2gsIE5vZGVNdXN0R2VuZXJhdGUpIFwKQEAgLTM5OSw2ICszOTUsOCBAQCBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oVGFpbENhbGxWYXJhcmdzLCBOb2RlTXVzdEdl
bmVyYXRlKSBcCiAgICAgbWFjcm8oVGFpbENhbGxGb3J3YXJkVmFyYXJncywgTm9kZU11c3RHZW5l
cmF0ZSkgXAogICAgIG1hY3JvKFVucmVhY2hhYmxlLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAg
bWFjcm8oVGhyb3csIE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhUaHJvd1N0YXRpY0Vy
cm9yLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgXAogICAgIC8qIENvdW50IGV4ZWN1dGlvbi4g
Ki9cCiAgICAgbWFjcm8oQ291bnRFeGVjdXRpb24sIE5vZGVNdXN0R2VuZXJhdGUpIFwKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAkocmV2aXNpb24g
MjIxMzQzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjMxMyw2ICsyMzEzLDIzIEBAIEpTQ2VsbCogSklUX09QRVJBVElP
TiBvcGVyYXRpb25KU1NldEZpbmQKICAgICByZXR1cm4gKmJ1Y2tldDsKIH0KIAordm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblRocm93REZHKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgdmFsdWVUb1Rocm93KQoreworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgTmF0aXZl
Q2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOworICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBzY29wZS50aHJvd0V4Y2VwdGlvbihleGVjLCBKU1Zh
bHVlOjpkZWNvZGUodmFsdWVUb1Rocm93KSk7Cit9CisKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25UaHJvd1N0YXRpY0Vycm9yKEV4ZWNTdGF0ZSogZXhlYywgSlNTdHJpbmcqIG1lc3NhZ2Us
IHVpbnQzMl90IGVycm9yVHlwZSkKK3sKKyAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgIE5h
dGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKKyAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgU3RyaW5nIGVycm9yTWVzc2FnZSA9IG1lc3Nh
Z2UtPnZhbHVlKGV4ZWMpOworICAgIHNjb3BlLnRocm93RXhjZXB0aW9uKGV4ZWMsIGNyZWF0ZUVy
cm9yKGV4ZWMsIHN0YXRpY19jYXN0PEVycm9yVHlwZT4oZXJyb3JUeXBlKSwgZXJyb3JNZXNzYWdl
KSk7Cit9CisKIGV4dGVybiAiQyIgdm9pZCBKSVRfT1BFUkFUSU9OIHRyaWdnZXJSZW9wdGltaXph
dGlvbk5vdyhDb2RlQmxvY2sqIGNvZGVCbG9jaywgT1NSRXhpdEJhc2UqIGV4aXQpCiB7CiAgICAg
Ly8gSXQncyBzb3J0IG9mIHByZWZlcmFibGUgdGhhdCB3ZSBkb24ndCBHQyB3aGlsZSBpbiBoZXJl
LiBBbnl3YXlzLCBkb2luZyBzbyB3b3VsZG4ndApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPcGVyYXRpb25zLmgJKHJldmlzaW9uIDIyMTM0MykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDIsNiArMjAy
LDggQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5vdGlmeVdyaXRlKAogdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0ZvclZhcmFyZ3MoRXhlY1N0YXRl
KikgV1RGX0lOVEVSTkFMOwogaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblNpemVPZlZh
cmFyZ3MoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzLCBpbnQzMl90IGZpcnN0
VmFyQXJnT2Zmc2V0KTsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Mb2FkVmFyYXJncyhF
eGVjU3RhdGUqLCBpbnQzMl90IGZpcnN0RWxlbWVudERlc3QsIEVuY29kZWRKU1ZhbHVlIGFyZ3Vt
ZW50cywgaW50MzJfdCBvZmZzZXQsIGludDMyX3QgbGVuZ3RoLCBpbnQzMl90IG1hbmRhdG9yeU1p
bmltdW0pOwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRocm93REZHKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlKTsKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJvd1N0YXRp
Y0Vycm9yKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwgdWludDMyX3QpOwogCiBpbnQzMl90IEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uSGFzT3duUHJvcGVydHkoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJl
ZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCShyZXZpc2lvbiAy
MjEzNDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdh
dGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEwNiwxMSArMTEwNiwxMiBAQCBwcml2
YXRlOgogICAgICAgICBjYXNlIFB1dENsb3N1cmVWYXI6CiAgICAgICAgIGNhc2UgUHV0VG9Bcmd1
bWVudHM6CiAgICAgICAgIGNhc2UgUmV0dXJuOgorICAgICAgICBjYXNlIFRocm93OgorICAgICAg
ICBjYXNlIFRocm93U3RhdGljRXJyb3I6CiAgICAgICAgIGNhc2UgVGFpbENhbGw6CiAgICAgICAg
IGNhc2UgRGlyZWN0VGFpbENhbGw6CiAgICAgICAgIGNhc2UgVGFpbENhbGxWYXJhcmdzOgogICAg
ICAgICBjYXNlIFRhaWxDYWxsRm9yd2FyZFZhcmFyZ3M6Ci0gICAgICAgIGNhc2UgVGhyb3c6CiAg
ICAgICAgIGNhc2UgUHV0QnlJZDoKICAgICAgICAgY2FzZSBQdXRCeUlkRmx1c2g6CiAgICAgICAg
IGNhc2UgUHV0QnlJZERpcmVjdDoKQEAgLTExMjgsNyArMTEyOSw2IEBAIHByaXZhdGU6CiAgICAg
ICAgIGNhc2UgU3dpdGNoOgogICAgICAgICBjYXNlIFByb2ZpbGVUeXBlOgogICAgICAgICBjYXNl
IFByb2ZpbGVDb250cm9sRmxvdzoKLSAgICAgICAgY2FzZSBUaHJvd1N0YXRpY0Vycm9yOgogICAg
ICAgICBjYXNlIEZvcmNlT1NSRXhpdDoKICAgICAgICAgY2FzZSBTZXRBcmd1bWVudDoKICAgICAg
ICAgY2FzZSBTZXRGdW5jdGlvbk5hbWU6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHJldmlzaW9uIDIyMTM0MykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM2NDcsMTQgKzM2NDcsMTYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAgICAgICAgIAot
ICAgIGNhc2UgVGhyb3c6CisgICAgY2FzZSBUaHJvdzogeworICAgICAgICBjb21waWxlVGhyb3co
bm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKwogICAgIGNhc2UgVGhyb3dTdGF0aWNFcnJv
cjogewotICAgICAgICAvLyBXZSBleHBlY3QgdGhhdCB0aHJvdyBzdGF0ZW1lbnRzIGFyZSByYXJl
IGFuZCBhcmUgaW50ZW5kZWQgdG8gZXhpdCB0aGUgY29kZSBibG9jawotICAgICAgICAvLyBhbnl3
YXksIHNvIHdlIGp1c3QgT1NSIGJhY2sgdG8gdGhlIG9sZCBKSVQgZm9yIG5vdy4KLSAgICAgICAg
dGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRpb24oVW5jb3VudGFibGUsIEpTVmFsdWVSZWdzKCks
IDApOworICAgICAgICBjb21waWxlVGhyb3dTdGF0aWNFcnJvcihub2RlKTsKICAgICAgICAgYnJl
YWs7CiAgICAgfQotICAgICAgICAKKwogICAgIGNhc2UgQm9vbGVhblRvTnVtYmVyOiB7CiAgICAg
ICAgIHN3aXRjaCAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpKSB7CiAgICAgICAgIGNhc2UgQm9v
bGVhblVzZTogewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAyMjEzNDMpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zODcw
LDExICszODcwLDEzIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgICAgICAKLSAgICBjYXNlIFRocm93OgorICAgIGNh
c2UgVGhyb3c6IHsKKyAgICAgICAgY29tcGlsZVRocm93KG5vZGUpOworICAgICAgICBicmVhazsK
KyAgICB9CisKICAgICBjYXNlIFRocm93U3RhdGljRXJyb3I6IHsKLSAgICAgICAgLy8gV2UgZXhw
ZWN0IHRoYXQgdGhyb3cgc3RhdGVtZW50cyBhcmUgcmFyZSBhbmQgYXJlIGludGVuZGVkIHRvIGV4
aXQgdGhlIGNvZGUgYmxvY2sKLSAgICAgICAgLy8gYW55d2F5LCBzbyB3ZSBqdXN0IE9TUiBiYWNr
IHRvIHRoZSBvbGQgSklUIGZvciBub3cuCi0gICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhl
Y3V0aW9uKFVuY291bnRhYmxlLCBKU1ZhbHVlUmVncygpLCAwKTsKKyAgICAgICAgY29tcGlsZVRo
cm93U3RhdGljRXJyb3Iobm9kZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cAkocmV2aXNpb24gMjIxMzQzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMjg0LDYgKzEwMjg0LDMzIEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVMb2FkVmFsdWVGcm8KICAgICBqc1ZhbHVlUmVzdWx0
KHJlc3VsdFJlZ3MsIG5vZGUpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVGhy
b3coTm9kZSogbm9kZSkKK3sKKyAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5j
aGlsZDEoKSk7CisgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzID0gdmFsdWUuanNWYWx1ZVJlZ3Mo
KTsKKyAgICBmbHVzaFJlZ2lzdGVycygpOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25UaHJvd0RGRywgdmFsdWVSZWdzLmdwcigpKTsKKyNlbHNlCisgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25UaHJvd0RGRywgdmFsdWVSZWdzKTsKKyNlbmRpZgorICAg
IG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisgICAgbV9qaXQuYnJlYWtwb2ludCgpOworICAgIG5v
UmVzdWx0KG5vZGUpOworfQorCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVGhyb3dTdGF0
aWNFcnJvcihOb2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG1lc3NhZ2Uo
dGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAgIEdQUlJlZyBtZXNzYWdlR1BSID0gbWVzc2FnZS5n
cHIoKTsKKyAgICBzcGVjdWxhdGVTdHJpbmcobm9kZS0+Y2hpbGQxKCksIG1lc3NhZ2VHUFIpOwor
ICAgIGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25UaHJvd1N0
YXRpY0Vycm9yLCBtZXNzYWdlR1BSLCBub2RlLT5lcnJvclR5cGUoKSk7CisgICAgbV9qaXQuZXhj
ZXB0aW9uQ2hlY2soKTsKKyAgICBtX2ppdC5icmVha3BvaW50KCk7CisgICAgbm9SZXN1bHQobm9k
ZSk7Cit9CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKIAogI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCShyZXZpc2lvbiAy
MjEzNDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgJ
KHdvcmtpbmcgY29weSkKQEAgLTk2Miw2ICs5NjIsMTEgQEAgcHVibGljOgogICAgICAgICBtX2pp
dC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMik7CiAgICAgICAgIHJldHVy
biBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKICAgICB9CisgICAgSklU
Q29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSnNzVWkgb3BlcmF0
aW9uLCBHUFJSZWcgYXJnMSwgdWludDMyX3QgYXJnMikKKyAgICB7CisgICAgICAgIG1faml0LnNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBUcnVzdGVkSW1tMzIoYXJnMikpOworICAg
ICAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVyYXRpb24pOworICAgIH0KICAgICBKSVRDb21waWxl
cjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFBfSklUT3BlcmF0aW9uX0VPIG9wZXJhdGlvbiwgR1BSUmVn
IHJlc3VsdCwgR1BSUmVnIG9iamVjdCkKICAgICB7CiAgICAgICAgIG1faml0LnNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShvYmplY3QpOwpAQCAtMjkxNSw2ICsyOTIwLDggQEAgcHVibGljOgog
ICAgIHZvaWQgY29tcGlsZURlZmluZURhdGFQcm9wZXJ0eShOb2RlKik7CiAgICAgdm9pZCBjb21w
aWxlRGVmaW5lQWNjZXNzb3JQcm9wZXJ0eShOb2RlKik7CiAgICAgdm9pZCBjb21waWxlVG9Mb3dl
ckNhc2UoTm9kZSopOworICAgIHZvaWQgY29tcGlsZVRocm93KE5vZGUqKTsKKyAgICB2b2lkIGNv
bXBpbGVUaHJvd1N0YXRpY0Vycm9yKE5vZGUqKTsKIAogICAgIHZvaWQgbW92ZVRydWVUbyhHUFJS
ZWcpOwogICAgIHZvaWQgbW92ZUZhbHNlVG8oR1BSUmVnKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHJldmlzaW9uIDIyMTM0MykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtOTQ1LDkgKzk0NSwxMSBAQCBwcml2YXRlOgogICAgICAgICAgICAgY29tcGlsZUZv
cmNlT1NSRXhpdCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVGhyb3c6Ci0g
ICAgICAgIGNhc2UgVGhyb3dTdGF0aWNFcnJvcjoKICAgICAgICAgICAgIGNvbXBpbGVUaHJvdygp
OwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVGhyb3dTdGF0aWNFcnJvcjoKKyAg
ICAgICAgICAgIGNvbXBpbGVUaHJvd1N0YXRpY0Vycm9yKCk7CisgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBJbnZhbGlkYXRpb25Qb2ludDoKICAgICAgICAgICAgIGNvbXBpbGVJbnZh
bGlkYXRpb25Qb2ludCgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC03ODAwLDcgKzc4MDIsMTkg
QEAgcHJpdmF0ZToKICAgICAKICAgICB2b2lkIGNvbXBpbGVUaHJvdygpCiAgICAgewotICAgICAg
ICB0ZXJtaW5hdGUoVW5jb3VudGFibGUpOworICAgICAgICBMVmFsdWUgZXJyb3IgPSBsb3dKU1Zh
bHVlKG1fbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICB2bUNhbGwoVm9pZCwgbV9vdXQub3BlcmF0
aW9uKG9wZXJhdGlvblRocm93REZHKSwgbV9jYWxsRnJhbWUsIGVycm9yKTsgCisgICAgICAgIC8v
IHZtQ2FsbCgpIGRvZXMgYW4gZXhjZXB0aW9uIGNoZWNrIHNvIHdlIHNob3VsZCBuZXZlciByZWFj
aCB0aGlzLgorICAgICAgICBtX291dC51bnJlYWNoYWJsZSgpOworICAgIH0KKworICAgIHZvaWQg
Y29tcGlsZVRocm93U3RhdGljRXJyb3IoKQorICAgIHsKKyAgICAgICAgTFZhbHVlIGVycm9yTWVz
c2FnZSA9IGxvd1N0cmluZyhtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgTFZhbHVlIGVycm9y
VHlwZSA9IG1fb3V0LmNvbnN0SW50MzIobV9ub2RlLT5lcnJvclR5cGUoKSk7CisgICAgICAgIHZt
Q2FsbChWb2lkLCBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uVGhyb3dTdGF0aWNFcnJvciksIG1f
Y2FsbEZyYW1lLCBlcnJvck1lc3NhZ2UsIGVycm9yVHlwZSk7CisgICAgICAgIC8vIHZtQ2FsbCgp
IGRvZXMgYW4gZXhjZXB0aW9uIGNoZWNrIHNvIHdlIHNob3VsZCBuZXZlciByZWFjaCB0aGlzLgor
ICAgICAgICBtX291dC51bnJlYWNoYWJsZSgpOwogICAgIH0KICAgICAKICAgICB2b2lkIGNvbXBp
bGVJbnZhbGlkYXRpb25Qb2ludCgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuaAkocmV2aXNpb24gMjIxMzQzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5Niw2ICsyOTYsNyBAQCB0
eXBlZGVmIHZvaWQgKEpJVF9PUEVSQVRJT04gKlZfSklUT3BlcmF0CiB0eXBlZGVmIHZvaWQgKEpJ
VF9PUEVSQVRJT04gKlZfSklUT3BlcmF0aW9uX0VWbSkoRXhlY1N0YXRlKiwgVk0qKTsKIHR5cGVk
ZWYgdm9pZCAoSklUX09QRVJBVElPTiAqVl9KSVRPcGVyYXRpb25fSikoRW5jb2RlZEpTVmFsdWUp
OwogdHlwZWRlZiB2b2lkIChKSVRfT1BFUkFUSU9OICpWX0pJVE9wZXJhdGlvbl9aKShpbnQzMl90
KTsKK3R5cGVkZWYgdm9pZCAoSklUX09QRVJBVElPTiAqVl9KSVRPcGVyYXRpb25fRUpzc1VpKShF
eGVjU3RhdGUqLCBKU1N0cmluZyosIHVpbnQzMl90KTsKIHR5cGVkZWYgSlNDZWxsKiAoSklUX09Q
RVJBVElPTiAqQ19KSVRPcGVyYXRpb25fRVJVaVVpKShFeGVjU3RhdGUqLCBSZWdpc3RlciosIHVp
bnQzMl90LCB1aW50MzJfdCk7CiB0eXBlZGVmIHZvaWQgKEpJVF9PUEVSQVRJT04gKlZfSklUT3Bl
cmF0aW9uX0VPSklVaSkoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgVW5p
cXVlZFN0cmluZ0ltcGwqLCB1aW50MzJfdCk7CiB0eXBlZGVmIGNoYXIqIChKSVRfT1BFUkFUSU9O
ICpQX0pJVE9wZXJhdGlvbl9FKShFeGVjU3RhdGUqKTsK
</data>
<flag name="commit-queue"
          id="339650"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319388</attachid>
            <date>2017-08-30 12:48:43 -0700</date>
            <delta_ts>2017-08-31 16:42:39 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>18982</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjIxMzkzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBA
CisyMDE3LTA4LTMwICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFRocm93aW5nIGFuIGV4Y2VwdGlvbiBpbiB0aGUgREZHL0ZUTCBzaG91bGQgbm90IGNhdXNlIGEg
amV0dGlzb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3NjA2MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQxNDMzNDg+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhyb3dpbmcgYW4gZXhjZXB0aW9u
IGlzIG5vdCBzb21ldGhpbmcgdGhhdCBzaG91bGQgYmUgYSBqZXR0aXNvbi1hYmxlCisgICAgICAg
IE9TUiBleGl0LiBXZSB1c2VkIHRvIGNvdW50IFRocm93L1Rocm93U3RhdGljRXJyb3IgdG93YXJk
cyBvdXIgT1NSIGV4aXQKKyAgICAgICAgY291bnRzIHdoaWNoIGNvdWxkIGNhdXNlIGEgQ29kZUJs
b2NrIHRvIGpldHRpc29uIGFuZCByZWNvbXBpbGUuIFRoaXMKKyAgICAgICAgd2FzIGR1bWIuIFRo
cm93aW5nIGFuIGV4Y2VwdGlvbiBpcyBub3QgYSByZWFzb24gdG8gamV0dGlzb24gYW5kCisgICAg
ICAgIHJlY29tcGlsZSBpbiB0aGUgd2F5IHRoYXQgYSBzcGVjdWxhdGlvbiBmYWlsdXJlIGlzLiBU
aGlzIHBhdGNoCisgICAgICAgIHRyZWF0cyBUaHJvdy9UaHJvd1N0YXRpY0Vycm9yIGFzIHRydWUg
dGVybWluYWxzIGluIERGRyBJUi4KKworICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVm
Lmg6CisgICAgICAgIChKU0M6OmNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAg
ICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpE
Rkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0
cyk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAgICogZGZnL0RGR0Nsb2Ji
ZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcv
REZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBO
b2RlKToKKyAgICAgICAgKiBkZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OkluUGxhY2VBYnN0cmFjdFN0YXRlOjptZXJnZVRvU3VjY2Vzc29ycyk6Cisg
ICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjppc1Rlcm1p
bmFsKToKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjppc1BzZXVkb1Rlcm1pbmFsKToKKyAgICAg
ICAgKEpTQzo6REZHOjpOb2RlOjplcnJvclR5cGUpOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlw
ZS5oOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBkZmcvREZH
T3BlcmF0aW9ucy5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFz
ZS5jcHA6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRocm93KToKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRocm93U3RhdGljRXJyb3IpOgorICAgICAgICAqIGRm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
OjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAg
ICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6
CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVOb2RlKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVRocm93KToKKyAgICAg
ICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZVRocm93U3RhdGljRXJyb3Ip
OgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisKIDIwMTctMDgtMjIgIEZpbGlwIFBp
emxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBTdHJpbmdzIG5lZWQgdG8gYmUgaW4g
c29tZSBraW5kIG9mIGdpZ2FjYWdlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQnl0ZWNvZGVVc2VEZWYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAkocmV2aXNpb24gMjIxMzQzKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgJKHdvcmtpbmcgY29weSkKQEAg
LTYzLDYgKzYzLDcgQEAgdm9pZCBjb21wdXRlVXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KEJsb2NrKgog
ICAgIGNhc2Ugb3BfaWRlbnRpdHlfd2l0aF9wcm9maWxlOgogICAgIGNhc2Ugb3BfcHJvZmlsZV90
eXBlOgogICAgIGNhc2Ugb3BfdGhyb3c6CisgICAgY2FzZSBvcF90aHJvd19zdGF0aWNfZXJyb3I6
CiAgICAgY2FzZSBvcF9lbmQ6CiAgICAgY2FzZSBvcF9yZXQ6CiAgICAgY2FzZSBvcF9qdHJ1ZToK
QEAgLTcxLDggKzcyLDcgQEAgdm9pZCBjb21wdXRlVXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KEJsb2Nr
KgogICAgIGNhc2Ugb3Bfam5lcV9udWxsOgogICAgIGNhc2Ugb3BfZGVjOgogICAgIGNhc2Ugb3Bf
aW5jOgotICAgIGNhc2Ugb3BfbG9nX3NoYWRvd19jaGlja2VuX3Byb2xvZ3VlOgotICAgIGNhc2Ug
b3BfdGhyb3dfc3RhdGljX2Vycm9yOiB7CisgICAgY2FzZSBvcF9sb2dfc2hhZG93X2NoaWNrZW5f
cHJvbG9ndWU6IHsKICAgICAgICAgQVNTRVJUKG9wY29kZUxlbmd0aHNbb3Bjb2RlSURdID4gMSk7
CiAgICAgICAgIGZ1bmN0b3IoY29kZUJsb2NrLCBpbnN0cnVjdGlvbiwgb3Bjb2RlSUQsIGluc3Ry
dWN0aW9uWzFdLnUub3BlcmFuZCk7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxp
bmVzLmgJKHJldmlzaW9uIDIyMTM0MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTg3MCw2ICsx
ODcwLDggQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAgICAg
ICBtX3N0YXRlLnNldElzVmFsaWQoZmFsc2UpOwogICAgICAgICBicmVhazsKIAorICAgIGNhc2Ug
VGhyb3c6CisgICAgY2FzZSBUaHJvd1N0YXRpY0Vycm9yOgogICAgIGNhc2UgVGFpbENhbGw6CiAg
ICAgY2FzZSBEaXJlY3RUYWlsQ2FsbDoKICAgICBjYXNlIFRhaWxDYWxsVmFyYXJnczoKQEAgLTE4
NzgsMTEgKzE4ODAsNiBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5
CiAgICAgICAgIG1fc3RhdGUuc2V0SXNWYWxpZChmYWxzZSk7CiAgICAgICAgIGJyZWFrOwogICAg
ICAgICAKLSAgICBjYXNlIFRocm93OgotICAgIGNhc2UgVGhyb3dTdGF0aWNFcnJvcjoKLSAgICAg
ICAgbV9zdGF0ZS5zZXRJc1ZhbGlkKGZhbHNlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAKICAgICBjYXNlIFRvUHJpbWl0aXZlOiB7CiAgICAgICAgIEpTVmFsdWUgY2hpbGRDb25zdCA9
IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7CiAgICAgICAgIGlmIChjaGlsZENvbnN0
ICYmIGNoaWxkQ29uc3QuaXNOdW1iZXIoKSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJldmlzaW9uIDIyMTM0MykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01MjE2LDE1ICs1MjE2LDE0IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxv
Y2sodW5zaWduZWQKICAgICAgICAgY2FzZSBvcF90aHJvdzoKICAgICAgICAgICAgIGFkZFRvR3Jh
cGgoVGhyb3csIGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3Bl
cmFuZCkpKTsKICAgICAgICAgICAgIGZsdXNoRm9yVGVybWluYWwoKTsKLSAgICAgICAgICAgIGFk
ZFRvR3JhcGgoVW5yZWFjaGFibGUpOwogICAgICAgICAgICAgTEFTVF9PUENPREUob3BfdGhyb3cp
OwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2Ugb3BfdGhyb3dfc3RhdGljX2Vycm9yOgotICAg
ICAgICAgICAgYWRkVG9HcmFwaChUaHJvd1N0YXRpY0Vycm9yKTsKLSAgICAgICAgICAgIGFkZFRv
R3JhcGgoUGhhbnRvbSwgZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0u
dS5vcGVyYW5kKSkpOyAvLyBLZWVwIGFyZ3VtZW50IGxpdmUuCisgICAgICAgIGNhc2Ugb3BfdGhy
b3dfc3RhdGljX2Vycm9yOiB7CisgICAgICAgICAgICB1aW50MzJfdCBlcnJvclR5cGUgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bMl0udS51bnNpZ25lZFZhbHVlOworICAgICAgICAgICAgYWRkVG9HcmFw
aChUaHJvd1N0YXRpY0Vycm9yLCBPcEluZm8oZXJyb3JUeXBlKSwgZ2V0KFZpcnR1YWxSZWdpc3Rl
cihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSkpOwogICAgICAgICAgICAgZmx1c2hG
b3JUZXJtaW5hbCgpOwotICAgICAgICAgICAgYWRkVG9HcmFwaChVbnJlYWNoYWJsZSk7CiAgICAg
ICAgICAgICBMQVNUX09QQ09ERShvcF90aHJvd19zdGF0aWNfZXJyb3IpOworICAgICAgICB9CiAK
ICAgICAgICAgY2FzZSBvcF9jYXRjaDogewogICAgICAgICAgICAgbV9ncmFwaC5tX2hhc0V4Y2Vw
dGlvbkhhbmRsZXJzID0gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q2xvYmJlcml6ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q2xvYmJlcml6ZS5oCShyZXZpc2lvbiAyMjEzNDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Nsb2JiZXJpemUuaAkod29ya2luZyBjb3B5KQpAQCAtNDI2LDcgKzQyNiw2IEBAIHZv
aWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUKICAgICBjYXNlIEp1bXA6CiAg
ICAgY2FzZSBCcmFuY2g6CiAgICAgY2FzZSBTd2l0Y2g6Ci0gICAgY2FzZSBUaHJvdzoKICAgICBj
YXNlIEZvcmNlT1NSRXhpdDoKICAgICBjYXNlIENoZWNrQmFkQ2VsbDoKICAgICBjYXNlIFJldHVy
bjoKQEAgLTY0OCw2ICs2NDcsOSBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2Rl
KiBub2RlCiAgICAgICAgIHdyaXRlKEhlYXApOwogICAgICAgICByZXR1cm47CiAKKyAgICAgICAg
CisgICAgY2FzZSBUaHJvdzoKKyAgICBjYXNlIFRocm93U3RhdGljRXJyb3I6CiAgICAgY2FzZSBU
YWlsQ2FsbDoKICAgICBjYXNlIERpcmVjdFRhaWxDYWxsOgogICAgIGNhc2UgVGFpbENhbGxWYXJh
cmdzOgpAQCAtMTUzMCwxMCArMTUzMiw2IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgs
IE5vZGUqIG5vZGUKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAKLSAg
ICBjYXNlIFRocm93U3RhdGljRXJyb3I6Ci0gICAgICAgIHdyaXRlKFNpZGVTdGF0ZSk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICAgICAgCiAgICAgY2FzZSBDb3VudEV4ZWN1dGlvbjoKICAgICAgICAg
cmVhZChJbnRlcm5hbFN0YXRlKTsKICAgICAgICAgd3JpdGUoSW50ZXJuYWxTdGF0ZSk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHJldmlzaW9u
IDIyMTM0MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE5NDgsNiArMTk0OCwxMCBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KIAorICAgICAgICBjYXNlIFRocm93U3RhdGljRXJyb3I6Cisg
ICAgICAgICAgICBmaXhFZGdlPFN0cmluZ1VzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAg
ICAgYnJlYWs7CisKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgICAgIC8vIEhhdmUgdGhlc2Ug
bm8tb3AgY2FzZXMgaGVyZSB0byBlbnN1cmUgdGhhdCBub2JvZHkgZm9yZ2V0cyB0byBhZGQgaGFu
ZGxlcnMgZm9yIG5ldyBvcGNvZGVzLgogICAgICAgICBjYXNlIFNldEFyZ3VtZW50OgpAQCAtMjAw
MCw3ICsyMDA0LDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBEaXJlY3RUYWlsQ2FsbDoKICAg
ICAgICAgY2FzZSBUYWlsQ2FsbFZhcmFyZ3M6CiAgICAgICAgIGNhc2UgVGhyb3c6Ci0gICAgICAg
IGNhc2UgVGhyb3dTdGF0aWNFcnJvcjoKICAgICAgICAgY2FzZSBDb3VudEV4ZWN1dGlvbjoKICAg
ICAgICAgY2FzZSBGb3JjZU9TUkV4aXQ6CiAgICAgICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJh
Y3RTdGF0ZS5jcHAJKHJldmlzaW9uIDIyMTM0MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNzgsNiAr
Mzc4LDggQEAgaW5saW5lIGJvb2wgSW5QbGFjZUFic3RyYWN0U3RhdGU6Om1lcmdlVAogICAgIGNh
c2UgVGFpbENhbGxWYXJhcmdzOgogICAgIGNhc2UgVGFpbENhbGxGb3J3YXJkVmFyYXJnczoKICAg
ICBjYXNlIFVucmVhY2hhYmxlOgorICAgIGNhc2UgVGhyb3c6CisgICAgY2FzZSBUaHJvd1N0YXRp
Y0Vycm9yOgogICAgICAgICBBU1NFUlQoYmFzaWNCbG9jay0+Y2ZhQnJhbmNoRGlyZWN0aW9uID09
IEludmFsaWRCcmFuY2hEaXJlY3Rpb24pOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCShyZXZpc2lvbiAyMjEzNDMpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTMxOCw2
ICsxMzE4LDggQEAgcHVibGljOgogICAgICAgICBjYXNlIFRhaWxDYWxsVmFyYXJnczoKICAgICAg
ICAgY2FzZSBUYWlsQ2FsbEZvcndhcmRWYXJhcmdzOgogICAgICAgICBjYXNlIFVucmVhY2hhYmxl
OgorICAgICAgICBjYXNlIFRocm93OgorICAgICAgICBjYXNlIFRocm93U3RhdGljRXJyb3I6CiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTEzNDIsOCArMTM0NCw2IEBAIHB1YmxpYzoKICAgICAgICAgc3dpdGNo
IChvcCgpKSB7CiAgICAgICAgIGNhc2UgRm9yY2VPU1JFeGl0OgogICAgICAgICBjYXNlIENoZWNr
QmFkQ2VsbDoKLSAgICAgICAgY2FzZSBUaHJvdzoKLSAgICAgICAgY2FzZSBUaHJvd1N0YXRpY0Vy
cm9yOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0yNTgzLDYgKzI1ODMsMTIgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gbV9vcEluZm8uYXM8QnVja2V0T3duZXJUeXBlPigpOwogICAgIH0KIAorICAgIHVp
bnQzMl90IGVycm9yVHlwZSgpCisgICAgeworICAgICAgICBBU1NFUlQob3AoKSA9PSBUaHJvd1N0
YXRpY0Vycm9yKTsKKyAgICAgICAgcmV0dXJuIG1fb3BJbmZvLmFzPHVpbnQzMl90PigpOworICAg
IH0KKwogICAgIHZvaWQgZHVtcENoaWxkcmVuKFByaW50U3RyZWFtJiBvdXQpCiAgICAgewogICAg
ICAgICBpZiAoIWNoaWxkMSgpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdO
b2RlVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZVR5cGUuaAkocmV2aXNpb24gMjIxMzQzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb2RlVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zODUsMTAgKzM4NSw2IEBAIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBcCiAgICAgbWFjcm8oTmV3QXN5bmNGdW5jdGlv
biwgTm9kZVJlc3VsdEpTKSBcCiAgICAgXAotICAgIC8qIFRoZXNlIGFyZW4ndCB0ZXJtaW5hbHMg
YnV0IGFsd2F5cyBleGl0ICovIFwKLSAgICBtYWNybyhUaHJvdywgTm9kZU11c3RHZW5lcmF0ZSkg
XAotICAgIG1hY3JvKFRocm93U3RhdGljRXJyb3IsIE5vZGVNdXN0R2VuZXJhdGUpIFwKLSAgICBc
CiAgICAgLyogQmxvY2sgdGVybWluYWxzLiAqL1wKICAgICBtYWNybyhKdW1wLCBOb2RlTXVzdEdl
bmVyYXRlKSBcCiAgICAgbWFjcm8oQnJhbmNoLCBOb2RlTXVzdEdlbmVyYXRlKSBcCkBAIC0zOTks
NiArMzk1LDggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKFRh
aWxDYWxsVmFyYXJncywgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKFRhaWxDYWxsRm9y
d2FyZFZhcmFyZ3MsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhVbnJlYWNoYWJsZSwg
Tm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKFRocm93LCBOb2RlTXVzdEdlbmVyYXRlKSBc
CisgICAgbWFjcm8oVGhyb3dTdGF0aWNFcnJvciwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIFwK
ICAgICAvKiBDb3VudCBleGVjdXRpb24uICovXAogICAgIG1hY3JvKENvdW50RXhlY3V0aW9uLCBO
b2RlTXVzdEdlbmVyYXRlKSBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09w
ZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDIyMTM0MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMTMsNiArMjMxMywy
MyBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSlNTZXRGaW5kCiAgICAgcmV0dXJu
ICpidWNrZXQ7CiB9CiAKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJvd0RGRyhFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHZhbHVlVG9UaHJvdykKK3sKKyAgICBWTSYgdm0g
PSBleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVj
KTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgc2NvcGUu
dGhyb3dFeGNlcHRpb24oZXhlYywgSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlVG9UaHJvdykpOworfQor
Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dTdGF0aWNFcnJvcihFeGVjU3RhdGUq
IGV4ZWMsIEpTU3RyaW5nKiBtZXNzYWdlLCB1aW50MzJfdCBlcnJvclR5cGUpCit7CisgICAgVk0m
IHZtID0gZXhlYy0+dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwg
ZXhlYyk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIFN0
cmluZyBlcnJvck1lc3NhZ2UgPSBtZXNzYWdlLT52YWx1ZShleGVjKTsKKyAgICBzY29wZS50aHJv
d0V4Y2VwdGlvbihleGVjLCBjcmVhdGVFcnJvcihleGVjLCBzdGF0aWNfY2FzdDxFcnJvclR5cGU+
KGVycm9yVHlwZSksIGVycm9yTWVzc2FnZSkpOworfQorCiBleHRlcm4gIkMiIHZvaWQgSklUX09Q
RVJBVElPTiB0cmlnZ2VyUmVvcHRpbWl6YXRpb25Ob3coQ29kZUJsb2NrKiBjb2RlQmxvY2ssIE9T
UkV4aXRCYXNlKiBleGl0KQogewogICAgIC8vIEl0J3Mgc29ydCBvZiBwcmVmZXJhYmxlIHRoYXQg
d2UgZG9uJ3QgR0Mgd2hpbGUgaW4gaGVyZS4gQW55d2F5cywgZG9pbmcgc28gd291bGRuJ3QKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAy
MjEzNDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAkod29y
a2luZyBjb3B5KQpAQCAtMjAyLDYgKzIwMiw4IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25Ob3RpZnlXcml0ZSgKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJvd1N0YWNrT3Zl
cmZsb3dGb3JWYXJhcmdzKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKIGludDMyX3QgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25TaXplT2ZWYXJhcmdzKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
IGFyZ3VtZW50cywgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCk7CiB2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uTG9hZFZhcmFyZ3MoRXhlY1N0YXRlKiwgaW50MzJfdCBmaXJzdEVsZW1lbnRE
ZXN0LCBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHMsIGludDMyX3Qgb2Zmc2V0LCBpbnQzMl90IGxl
bmd0aCwgaW50MzJfdCBtYW5kYXRvcnlNaW5pbXVtKTsKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25UaHJvd0RGRyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSk7Cit2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uVGhyb3dTdGF0aWNFcnJvcihFeGVjU3RhdGUqLCBKU1N0cmluZyosIHVp
bnQzMl90KTsKIAogaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkhhc093blByb3BlcnR5
KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUpOwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdh
dGlvblBoYXNlLmNwcAkocmV2aXNpb24gMjIxMzQzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTExMDYsMTEgKzExMDYsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBQdXRDbG9zdXJlVmFy
OgogICAgICAgICBjYXNlIFB1dFRvQXJndW1lbnRzOgogICAgICAgICBjYXNlIFJldHVybjoKKyAg
ICAgICAgY2FzZSBUaHJvdzoKKyAgICAgICAgY2FzZSBUaHJvd1N0YXRpY0Vycm9yOgogICAgICAg
ICBjYXNlIFRhaWxDYWxsOgogICAgICAgICBjYXNlIERpcmVjdFRhaWxDYWxsOgogICAgICAgICBj
YXNlIFRhaWxDYWxsVmFyYXJnczoKICAgICAgICAgY2FzZSBUYWlsQ2FsbEZvcndhcmRWYXJhcmdz
OgotICAgICAgICBjYXNlIFRocm93OgogICAgICAgICBjYXNlIFB1dEJ5SWQ6CiAgICAgICAgIGNh
c2UgUHV0QnlJZEZsdXNoOgogICAgICAgICBjYXNlIFB1dEJ5SWREaXJlY3Q6CkBAIC0xMTI4LDcg
KzExMjksNiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFN3aXRjaDoKICAgICAgICAgY2FzZSBQ
cm9maWxlVHlwZToKICAgICAgICAgY2FzZSBQcm9maWxlQ29udHJvbEZsb3c6Ci0gICAgICAgIGNh
c2UgVGhyb3dTdGF0aWNFcnJvcjoKICAgICAgICAgY2FzZSBGb3JjZU9TUkV4aXQ6CiAgICAgICAg
IGNhc2UgU2V0QXJndW1lbnQ6CiAgICAgICAgIGNhc2UgU2V0RnVuY3Rpb25OYW1lOgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJf
NjQuY3BwCShyZXZpc2lvbiAyMjEzNDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjQ3LDE0ICszNjQ3
LDE2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAg
YnJlYWs7CiAgICAgfQogICAgICAgICAKLSAgICBjYXNlIFRocm93OgorICAgIGNhc2UgVGhyb3c6
IHsKKyAgICAgICAgY29tcGlsZVRocm93KG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9CisK
ICAgICBjYXNlIFRocm93U3RhdGljRXJyb3I6IHsKLSAgICAgICAgLy8gV2UgZXhwZWN0IHRoYXQg
dGhyb3cgc3RhdGVtZW50cyBhcmUgcmFyZSBhbmQgYXJlIGludGVuZGVkIHRvIGV4aXQgdGhlIGNv
ZGUgYmxvY2sKLSAgICAgICAgLy8gYW55d2F5LCBzbyB3ZSBqdXN0IE9TUiBiYWNrIHRvIHRoZSBv
bGQgSklUIGZvciBub3cuCi0gICAgICAgIHRlcm1pbmF0ZVNwZWN1bGF0aXZlRXhlY3V0aW9uKFVu
Y291bnRhYmxlLCBKU1ZhbHVlUmVncygpLCAwKTsKKyAgICAgICAgY29tcGlsZVRocm93U3RhdGlj
RXJyb3Iobm9kZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICAgICAgCisKICAgICBjYXNl
IEJvb2xlYW5Ub051bWJlcjogewogICAgICAgICBzd2l0Y2ggKG5vZGUtPmNoaWxkMSgpLnVzZUtp
bmQoKSkgewogICAgICAgICBjYXNlIEJvb2xlYW5Vc2U6IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMjIx
MzQzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzg3MCwxMSArMzg3MCwxMyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAg
Ci0gICAgY2FzZSBUaHJvdzoKKyAgICBjYXNlIFRocm93OiB7CisgICAgICAgIGNvbXBpbGVUaHJv
dyhub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgY2FzZSBUaHJvd1N0YXRpY0Vy
cm9yOiB7Ci0gICAgICAgIC8vIFdlIGV4cGVjdCB0aGF0IHRocm93IHN0YXRlbWVudHMgYXJlIHJh
cmUgYW5kIGFyZSBpbnRlbmRlZCB0byBleGl0IHRoZSBjb2RlIGJsb2NrCi0gICAgICAgIC8vIGFu
eXdheSwgc28gd2UganVzdCBPU1IgYmFjayB0byB0aGUgb2xkIEpJVCBmb3Igbm93LgotICAgICAg
ICB0ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihVbmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3Mo
KSwgMCk7CisgICAgICAgIGNvbXBpbGVUaHJvd1N0YXRpY0Vycm9yKG5vZGUpOwogICAgICAgICBi
cmVhazsKICAgICB9CiAgICAgICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDIyMTM0MykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDI4NCw2ICsxMDI4NCwzMyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTG9hZFZh
bHVlRnJvCiAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKIH0KIAordm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRocm93KE5vZGUqIG5vZGUpCit7CisgICAgSlNWYWx1ZU9w
ZXJhbmQgdmFsdWUodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAgIEpTVmFsdWVSZWdzIHZhbHVl
UmVncyA9IHZhbHVlLmpzVmFsdWVSZWdzKCk7CisgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyNpZiBV
U0UoSlNWQUxVRTY0KQorICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVGhyb3dERkcsIHZhbHVl
UmVncy5ncHIoKSk7CisjZWxzZQorICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVGhyb3dERkcs
IHZhbHVlUmVncyk7CisjZW5kaWYKKyAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOworICAgIG1f
aml0LmJyZWFrcG9pbnQoKTsKKyAgICBub1Jlc3VsdChub2RlKTsKK30KKwordm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZVRocm93U3RhdGljRXJyb3IoTm9kZSogbm9kZSkKK3sKKyAgICBTcGVj
dWxhdGVDZWxsT3BlcmFuZCBtZXNzYWdlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBHUFJS
ZWcgbWVzc2FnZUdQUiA9IG1lc3NhZ2UuZ3ByKCk7CisgICAgc3BlY3VsYXRlU3RyaW5nKG5vZGUt
PmNoaWxkMSgpLCBtZXNzYWdlR1BSKTsKKyAgICBmbHVzaFJlZ2lzdGVycygpOworICAgIGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uVGhyb3dTdGF0aWNFcnJvciwgbWVzc2FnZUdQUiwgbm9kZS0+ZXJy
b3JUeXBlKCkpOworICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisgICAgbV9qaXQuYnJlYWtw
b2ludCgpOworICAgIG5vUmVzdWx0KG5vZGUpOworfQorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
REZHCiAKICNlbmRpZgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuaAkocmV2aXNpb24gMjIxMzQzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC05NjIsNiArOTYyLDEx
IEBAIHB1YmxpYzoKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFy
ZzEsIGFyZzIpOwogICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24s
IHJlc3VsdCk7CiAgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9K
SVRPcGVyYXRpb25fRUpzc1VpIG9wZXJhdGlvbiwgR1BSUmVnIGFyZzEsIHVpbnQzMl90IGFyZzIp
CisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwg
VHJ1c3RlZEltbTMyKGFyZzIpKTsKKyAgICAgICAgcmV0dXJuIGFwcGVuZENhbGwob3BlcmF0aW9u
KTsKKyAgICB9CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihQX0pJVE9wZXJh
dGlvbl9FTyBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBvYmplY3QpCiAgICAgewog
ICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUob2JqZWN0KTsKQEAgLTI5
MTUsNiArMjkyMCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbXBpbGVEZWZpbmVEYXRhUHJvcGVy
dHkoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZURlZmluZUFjY2Vzc29yUHJvcGVydHkoTm9kZSop
OwogICAgIHZvaWQgY29tcGlsZVRvTG93ZXJDYXNlKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVU
aHJvdyhOb2RlKik7CisgICAgdm9pZCBjb21waWxlVGhyb3dTdGF0aWNFcnJvcihOb2RlKik7CiAK
ICAgICB2b2lkIG1vdmVUcnVlVG8oR1BSUmVnKTsKICAgICB2b2lkIG1vdmVGYWxzZVRvKEdQUlJl
Zyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwCShyZXZpc2lvbiAyMjEzNDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk0NSw5ICs5NDUsMTEgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgIGNvbXBpbGVGb3JjZU9TUkV4aXQoKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIFRocm93OgotICAgICAgICBjYXNlIFRocm93U3RhdGljRXJyb3I6CiAg
ICAgICAgICAgICBjb21waWxlVGhyb3coKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIFRocm93U3RhdGljRXJyb3I6CisgICAgICAgICAgICBjb21waWxlVGhyb3dTdGF0aWNFcnJv
cigpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSW52YWxpZGF0aW9uUG9pbnQ6
CiAgICAgICAgICAgICBjb21waWxlSW52YWxpZGF0aW9uUG9pbnQoKTsKICAgICAgICAgICAgIGJy
ZWFrOwpAQCAtNzgwMCw3ICs3ODAyLDE5IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCBjb21w
aWxlVGhyb3coKQogICAgIHsKLSAgICAgICAgdGVybWluYXRlKFVuY291bnRhYmxlKTsKKyAgICAg
ICAgTFZhbHVlIGVycm9yID0gbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAg
dm1DYWxsKFZvaWQsIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25UaHJvd0RGRyksIG1fY2FsbEZy
YW1lLCBlcnJvcik7IAorICAgICAgICAvLyB2bUNhbGwoKSBkb2VzIGFuIGV4Y2VwdGlvbiBjaGVj
ayBzbyB3ZSBzaG91bGQgbmV2ZXIgcmVhY2ggdGhpcy4KKyAgICAgICAgbV9vdXQudW5yZWFjaGFi
bGUoKTsKKyAgICB9CisKKyAgICB2b2lkIGNvbXBpbGVUaHJvd1N0YXRpY0Vycm9yKCkKKyAgICB7
CisgICAgICAgIExWYWx1ZSBlcnJvck1lc3NhZ2UgPSBsb3dTdHJpbmcobV9ub2RlLT5jaGlsZDEo
KSk7CisgICAgICAgIExWYWx1ZSBlcnJvclR5cGUgPSBtX291dC5jb25zdEludDMyKG1fbm9kZS0+
ZXJyb3JUeXBlKCkpOworICAgICAgICB2bUNhbGwoVm9pZCwgbV9vdXQub3BlcmF0aW9uKG9wZXJh
dGlvblRocm93U3RhdGljRXJyb3IpLCBtX2NhbGxGcmFtZSwgZXJyb3JNZXNzYWdlLCBlcnJvclR5
cGUpOworICAgICAgICAvLyB2bUNhbGwoKSBkb2VzIGFuIGV4Y2VwdGlvbiBjaGVjayBzbyB3ZSBz
aG91bGQgbmV2ZXIgcmVhY2ggdGhpcy4KKyAgICAgICAgbV9vdXQudW5yZWFjaGFibGUoKTsKICAg
ICB9CiAgICAgCiAgICAgdm9pZCBjb21waWxlSW52YWxpZGF0aW9uUG9pbnQoKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgJKHJldmlzaW9uIDIyMTM0MykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yOTYsNiArMjk2LDcgQEAgdHlwZWRlZiB2b2lkIChKSVRfT1BFUkFUSU9OICpWX0pJ
VE9wZXJhdAogdHlwZWRlZiB2b2lkIChKSVRfT1BFUkFUSU9OICpWX0pJVE9wZXJhdGlvbl9FVm0p
KEV4ZWNTdGF0ZSosIFZNKik7CiB0eXBlZGVmIHZvaWQgKEpJVF9PUEVSQVRJT04gKlZfSklUT3Bl
cmF0aW9uX0opKEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgdm9pZCAoSklUX09QRVJBVElPTiAq
Vl9KSVRPcGVyYXRpb25fWikoaW50MzJfdCk7Cit0eXBlZGVmIHZvaWQgKEpJVF9PUEVSQVRJT04g
KlZfSklUT3BlcmF0aW9uX0VKc3NVaSkoRXhlY1N0YXRlKiwgSlNTdHJpbmcqLCB1aW50MzJfdCk7
CiB0eXBlZGVmIEpTQ2VsbCogKEpJVF9PUEVSQVRJT04gKkNfSklUT3BlcmF0aW9uX0VSVWlVaSko
RXhlY1N0YXRlKiwgUmVnaXN0ZXIqLCB1aW50MzJfdCwgdWludDMyX3QpOwogdHlwZWRlZiB2b2lk
IChKSVRfT1BFUkFUSU9OICpWX0pJVE9wZXJhdGlvbl9FT0pJVWkpKEV4ZWNTdGF0ZSosIEpTT2Jq
ZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKiwgdWludDMyX3QpOwogdHlw
ZWRlZiBjaGFyKiAoSklUX09QRVJBVElPTiAqUF9KSVRPcGVyYXRpb25fRSkoRXhlY1N0YXRlKik7
Cg==
</data>
<flag name="review"
          id="339681"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319540</attachid>
            <date>2017-08-31 16:42:39 -0700</date>
            <delta_ts>2017-08-31 22:41:12 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>20019</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjIxNDU3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBA
CisyMDE3LTA4LTMxICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFRocm93aW5nIGFuIGV4Y2VwdGlvbiBpbiB0aGUgREZHL0ZUTCBzaG91bGQgbm90IGNhdXNlIGEg
amV0dGlzb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3NjA2MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzQxNDMzNDg+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgS2VpdGggTWlsbGVyLgorCisgICAgICAgIFRocm93aW5nIGFuIGV4Y2VwdGlvbiBp
cyBub3Qgc29tZXRoaW5nIHRoYXQgc2hvdWxkIGJlIGEgamV0dGlzb24tYWJsZQorICAgICAgICBP
U1IgZXhpdC4gV2UgdXNlZCB0byBjb3VudCBUaHJvdy9UaHJvd1N0YXRpY0Vycm9yIHRvd2FyZHMg
b3VyIE9TUiBleGl0CisgICAgICAgIGNvdW50cyB3aGljaCBjb3VsZCBjYXVzZSBhIENvZGVCbG9j
ayB0byBqZXR0aXNvbiBhbmQgcmVjb21waWxlLiBUaGlzCisgICAgICAgIHdhcyBkdW1iLiBUaHJv
d2luZyBhbiBleGNlcHRpb24gaXMgbm90IGEgcmVhc29uIHRvIGpldHRpc29uIGFuZAorICAgICAg
ICByZWNvbXBpbGUgaW4gdGhlIHdheSB0aGF0IGEgc3BlY3VsYXRpb24gZmFpbHVyZSBpcy4gVGhp
cyBwYXRjaAorICAgICAgICB0cmVhdHMgVGhyb3cvVGhyb3dTdGF0aWNFcnJvciBhcyB0cnVlIHRl
cm1pbmFscyBpbiBERkcgSVIuCisKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZVVzZURlZi5o
OgorICAgICAgICAoSlNDOjpjb21wdXRlVXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAg
KiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZH
OjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMp
OgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVy
aXplLmg6CisgICAgICAgIChKU0M6OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RG
R0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9k
ZSk6CisgICAgICAgICogZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpJblBsYWNlQWJzdHJhY3RTdGF0ZTo6bWVyZ2VUb1N1Y2Nlc3NvcnMpOgorICAg
ICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aXNUZXJtaW5h
bCk6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aXNQc2V1ZG9UZXJtaW5hbCk6CisgICAgICAg
IChKU0M6OkRGRzo6Tm9kZTo6ZXJyb3JUeXBlKToKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUu
aDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogZGZnL0RGR09w
ZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2Uu
Y3BwOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUaHJvdyk6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUaHJvd1N0YXRpY0Vycm9yKToKKyAgICAgICAgKiBkZmcv
REZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y2FsbE9wZXJhdGlvbik6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAg
KiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlTm9kZSk6CisgICAg
ICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVUaHJvdyk6CisgICAgICAg
IChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVUaHJvd1N0YXRpY0Vycm9yKToK
KyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5oOgorCiAyMDE3LTA4LTMxICBTYWFtIEJhcmF0
aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIHVzZVNlcGFyYXRlZFdYSGVhcCBzaG91
bGQgbmV2ZXIgYmUgdHJ1ZSB3aGVuIG5vdCBvbiBpT1MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCShyZXZpc2lvbiAyMjE0NTcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNjMsNiArNjMsNyBAQCB2b2lkIGNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZz
ZXQoQmxvY2sqCiAgICAgY2FzZSBvcF9pZGVudGl0eV93aXRoX3Byb2ZpbGU6CiAgICAgY2FzZSBv
cF9wcm9maWxlX3R5cGU6CiAgICAgY2FzZSBvcF90aHJvdzoKKyAgICBjYXNlIG9wX3Rocm93X3N0
YXRpY19lcnJvcjoKICAgICBjYXNlIG9wX2VuZDoKICAgICBjYXNlIG9wX3JldDoKICAgICBjYXNl
IG9wX2p0cnVlOgpAQCAtNzEsOCArNzIsNyBAQCB2b2lkIGNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVP
ZmZzZXQoQmxvY2sqCiAgICAgY2FzZSBvcF9qbmVxX251bGw6CiAgICAgY2FzZSBvcF9kZWM6CiAg
ICAgY2FzZSBvcF9pbmM6Ci0gICAgY2FzZSBvcF9sb2dfc2hhZG93X2NoaWNrZW5fcHJvbG9ndWU6
Ci0gICAgY2FzZSBvcF90aHJvd19zdGF0aWNfZXJyb3I6IHsKKyAgICBjYXNlIG9wX2xvZ19zaGFk
b3dfY2hpY2tlbl9wcm9sb2d1ZTogewogICAgICAgICBBU1NFUlQob3Bjb2RlTGVuZ3Roc1tvcGNv
ZGVJRF0gPiAxKTsKICAgICAgICAgZnVuY3Rvcihjb2RlQmxvY2ssIGluc3RydWN0aW9uLCBvcGNv
ZGVJRCwgaW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaAkocmV2aXNpb24gMjIxNDU3KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xODcwLDYgKzE4NzAsOCBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0
ZVR5CiAgICAgICAgIG1fc3RhdGUuc2V0SXNWYWxpZChmYWxzZSk7CiAgICAgICAgIGJyZWFrOwog
CisgICAgY2FzZSBUaHJvdzoKKyAgICBjYXNlIFRocm93U3RhdGljRXJyb3I6CiAgICAgY2FzZSBU
YWlsQ2FsbDoKICAgICBjYXNlIERpcmVjdFRhaWxDYWxsOgogICAgIGNhc2UgVGFpbENhbGxWYXJh
cmdzOgpAQCAtMTg3OCwxMSArMTg4MCw2IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0
cmFjdFN0YXRlVHkKICAgICAgICAgbV9zdGF0ZS5zZXRJc1ZhbGlkKGZhbHNlKTsKICAgICAgICAg
YnJlYWs7CiAgICAgICAgIAotICAgIGNhc2UgVGhyb3c6Ci0gICAgY2FzZSBUaHJvd1N0YXRpY0Vy
cm9yOgotICAgICAgICBtX3N0YXRlLnNldElzVmFsaWQoZmFsc2UpOwotICAgICAgICBicmVhazsK
LSAgICAgICAgICAgIAogICAgIGNhc2UgVG9QcmltaXRpdmU6IHsKICAgICAgICAgSlNWYWx1ZSBj
aGlsZENvbnN0ID0gZm9yTm9kZShub2RlLT5jaGlsZDEoKSkudmFsdWUoKTsKICAgICAgICAgaWYg
KGNoaWxkQ29uc3QgJiYgY2hpbGRDb25zdC5pc051bWJlcigpKSB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMjIx
NDU3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTUyMTYsMTUgKzUyMTYsMTQgQEAgYm9vbCBCeXRlQ29kZVBhcnNl
cjo6cGFyc2VCbG9jayh1bnNpZ25lZAogICAgICAgICBjYXNlIG9wX3Rocm93OgogICAgICAgICAg
ICAgYWRkVG9HcmFwaChUaHJvdywgZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rp
b25bMV0udS5vcGVyYW5kKSkpOwogICAgICAgICAgICAgZmx1c2hGb3JUZXJtaW5hbCgpOwotICAg
ICAgICAgICAgYWRkVG9HcmFwaChVbnJlYWNoYWJsZSk7CiAgICAgICAgICAgICBMQVNUX09QQ09E
RShvcF90aHJvdyk7CiAgICAgICAgICAgICAKLSAgICAgICAgY2FzZSBvcF90aHJvd19zdGF0aWNf
ZXJyb3I6Ci0gICAgICAgICAgICBhZGRUb0dyYXBoKFRocm93U3RhdGljRXJyb3IpOwotICAgICAg
ICAgICAgYWRkVG9HcmFwaChQaGFudG9tLCBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0
cnVjdGlvblsxXS51Lm9wZXJhbmQpKSk7IC8vIEtlZXAgYXJndW1lbnQgbGl2ZS4KKyAgICAgICAg
Y2FzZSBvcF90aHJvd19zdGF0aWNfZXJyb3I6IHsKKyAgICAgICAgICAgIHVpbnQzMl90IGVycm9y
VHlwZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51LnVuc2lnbmVkVmFsdWU7CisgICAgICAgICAg
ICBhZGRUb0dyYXBoKFRocm93U3RhdGljRXJyb3IsIE9wSW5mbyhlcnJvclR5cGUpLCBnZXQoVmly
dHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpKSk7CiAgICAgICAg
ICAgICBmbHVzaEZvclRlcm1pbmFsKCk7Ci0gICAgICAgICAgICBhZGRUb0dyYXBoKFVucmVhY2hh
YmxlKTsKICAgICAgICAgICAgIExBU1RfT1BDT0RFKG9wX3Rocm93X3N0YXRpY19lcnJvcik7Cisg
ICAgICAgIH0KIAogICAgICAgICBjYXNlIG9wX2NhdGNoOiB7CiAgICAgICAgICAgICBtX2dyYXBo
Lm1faGFzRXhjZXB0aW9uSGFuZGxlcnMgPSB0cnVlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDbG9iYmVyaXplLmgJKHJldmlzaW9uIDIyMTQ1NykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MjYsNyAr
NDI2LDYgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZQogICAgIGNh
c2UgSnVtcDoKICAgICBjYXNlIEJyYW5jaDoKICAgICBjYXNlIFN3aXRjaDoKLSAgICBjYXNlIFRo
cm93OgogICAgIGNhc2UgRm9yY2VPU1JFeGl0OgogICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgogICAg
IGNhc2UgUmV0dXJuOgpAQCAtNjQ4LDYgKzY0Nyw4IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYg
Z3JhcGgsIE5vZGUqIG5vZGUKICAgICAgICAgd3JpdGUoSGVhcCk7CiAgICAgICAgIHJldHVybjsK
IAorICAgIGNhc2UgVGhyb3c6CisgICAgY2FzZSBUaHJvd1N0YXRpY0Vycm9yOgogICAgIGNhc2Ug
VGFpbENhbGw6CiAgICAgY2FzZSBEaXJlY3RUYWlsQ2FsbDoKICAgICBjYXNlIFRhaWxDYWxsVmFy
YXJnczoKQEAgLTE1MzAsMTAgKzE1MzEsNiBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBo
LCBOb2RlKiBub2RlCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCi0g
ICAgY2FzZSBUaHJvd1N0YXRpY0Vycm9yOgotICAgICAgICB3cml0ZShTaWRlU3RhdGUpOwotICAg
ICAgICByZXR1cm47Ci0gICAgICAgIAogICAgIGNhc2UgQ291bnRFeGVjdXRpb246CiAgICAgICAg
IHJlYWQoSW50ZXJuYWxTdGF0ZSk7CiAgICAgICAgIHdyaXRlKEludGVybmFsU3RhdGUpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCShyZXZpc2lv
biAyMjE0NTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xOTQ4LDYgKzE5NDgsMTAgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAKKyAgICAgICAgY2FzZSBUaHJvd1N0YXRpY0Vycm9yOgor
ICAgICAgICAgICAgZml4RWRnZTxTdHJpbmdVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAg
ICAgIGJyZWFrOworCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAgICAgICAvLyBIYXZlIHRoZXNl
IG5vLW9wIGNhc2VzIGhlcmUgdG8gZW5zdXJlIHRoYXQgbm9ib2R5IGZvcmdldHMgdG8gYWRkIGhh
bmRsZXJzIGZvciBuZXcgb3Bjb2Rlcy4KICAgICAgICAgY2FzZSBTZXRBcmd1bWVudDoKQEAgLTIw
MDAsNyArMjAwNCw2IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgRGlyZWN0VGFpbENhbGw6CiAg
ICAgICAgIGNhc2UgVGFpbENhbGxWYXJhcmdzOgogICAgICAgICBjYXNlIFRocm93OgotICAgICAg
ICBjYXNlIFRocm93U3RhdGljRXJyb3I6CiAgICAgICAgIGNhc2UgQ291bnRFeGVjdXRpb246CiAg
ICAgICAgIGNhc2UgRm9yY2VPU1JFeGl0OgogICAgICAgICBjYXNlIENoZWNrQmFkQ2VsbDoKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5QbGFjZUFic3Ry
YWN0U3RhdGUuY3BwCShyZXZpc2lvbiAyMjE0NTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzc4LDYg
KzM3OCw4IEBAIGlubGluZSBib29sIEluUGxhY2VBYnN0cmFjdFN0YXRlOjptZXJnZVQKICAgICBj
YXNlIFRhaWxDYWxsVmFyYXJnczoKICAgICBjYXNlIFRhaWxDYWxsRm9yd2FyZFZhcmFyZ3M6CiAg
ICAgY2FzZSBVbnJlYWNoYWJsZToKKyAgICBjYXNlIFRocm93OgorICAgIGNhc2UgVGhyb3dTdGF0
aWNFcnJvcjoKICAgICAgICAgQVNTRVJUKGJhc2ljQmxvY2stPmNmYUJyYW5jaERpcmVjdGlvbiA9
PSBJbnZhbGlkQnJhbmNoRGlyZWN0aW9uKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAkocmV2aXNpb24gMjIxNDU3KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMTgs
NiArMTMxOCw4IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBUYWlsQ2FsbFZhcmFyZ3M6CiAgICAg
ICAgIGNhc2UgVGFpbENhbGxGb3J3YXJkVmFyYXJnczoKICAgICAgICAgY2FzZSBVbnJlYWNoYWJs
ZToKKyAgICAgICAgY2FzZSBUaHJvdzoKKyAgICAgICAgY2FzZSBUaHJvd1N0YXRpY0Vycm9yOgog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC0xMzQyLDggKzEzNDQsNiBAQCBwdWJsaWM6CiAgICAgICAgIHN3aXRj
aCAob3AoKSkgewogICAgICAgICBjYXNlIEZvcmNlT1NSRXhpdDoKICAgICAgICAgY2FzZSBDaGVj
a0JhZENlbGw6Ci0gICAgICAgIGNhc2UgVGhyb3c6Ci0gICAgICAgIGNhc2UgVGhyb3dTdGF0aWNF
cnJvcjoKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjU4Myw2ICsyNTgzLDEyIEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIG1fb3BJbmZvLmFzPEJ1Y2tldE93bmVyVHlwZT4oKTsKICAgICB9CiAKKyAgICB1
aW50MzJfdCBlcnJvclR5cGUoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKG9wKCkgPT0gVGhyb3dT
dGF0aWNFcnJvcik7CisgICAgICAgIHJldHVybiBtX29wSW5mby5hczx1aW50MzJfdD4oKTsKKyAg
ICB9CisKICAgICB2b2lkIGR1bXBDaGlsZHJlbihQcmludFN0cmVhbSYgb3V0KQogICAgIHsKICAg
ICAgICAgaWYgKCFjaGlsZDEoKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Tm9kZVR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGVUeXBlLmgJKHJldmlzaW9uIDIyMTQ1NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTm9kZVR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzg1LDEwICszODUsNiBAQCBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgXAogICAgIG1hY3JvKE5ld0FzeW5jRnVuY3Rp
b24sIE5vZGVSZXN1bHRKUykgXAogICAgIFwKLSAgICAvKiBUaGVzZSBhcmVuJ3QgdGVybWluYWxz
IGJ1dCBhbHdheXMgZXhpdCAqLyBcCi0gICAgbWFjcm8oVGhyb3csIE5vZGVNdXN0R2VuZXJhdGUp
IFwKLSAgICBtYWNybyhUaHJvd1N0YXRpY0Vycm9yLCBOb2RlTXVzdEdlbmVyYXRlKSBcCi0gICAg
XAogICAgIC8qIEJsb2NrIHRlcm1pbmFscy4gKi9cCiAgICAgbWFjcm8oSnVtcCwgTm9kZU11c3RH
ZW5lcmF0ZSkgXAogICAgIG1hY3JvKEJyYW5jaCwgTm9kZU11c3RHZW5lcmF0ZSkgXApAQCAtMzk5
LDYgKzM5NSw4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhU
YWlsQ2FsbFZhcmFyZ3MsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhUYWlsQ2FsbEZv
cndhcmRWYXJhcmdzLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oVW5yZWFjaGFibGUs
IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhUaHJvdywgTm9kZU11c3RHZW5lcmF0ZSkg
XAorICAgIG1hY3JvKFRocm93U3RhdGljRXJyb3IsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBc
CiAgICAgLyogQ291bnQgZXhlY3V0aW9uLiAqL1wKICAgICBtYWNybyhDb3VudEV4ZWN1dGlvbiwg
Tm9kZU11c3RHZW5lcmF0ZSkgXApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAyMjE0NTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzEzLDYgKzIzMTMs
MjMgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkpTU2V0RmluZAogICAgIHJldHVy
biAqYnVja2V0OwogfQogCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dERkcoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZVRvVGhyb3cpCit7CisgICAgVk0mIHZt
ID0gZXhlYy0+dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhl
Yyk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIHNjb3Bl
LnRocm93RXhjZXB0aW9uKGV4ZWMsIEpTVmFsdWU6OmRlY29kZSh2YWx1ZVRvVGhyb3cpKTsKK30K
Kwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRocm93U3RhdGljRXJyb3IoRXhlY1N0YXRl
KiBleGVjLCBKU1N0cmluZyogbWVzc2FnZSwgdWludDMyX3QgZXJyb3JUeXBlKQoreworICAgIFZN
JiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0s
IGV4ZWMpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBT
dHJpbmcgZXJyb3JNZXNzYWdlID0gbWVzc2FnZS0+dmFsdWUoZXhlYyk7CisgICAgc2NvcGUudGhy
b3dFeGNlcHRpb24oZXhlYywgY3JlYXRlRXJyb3IoZXhlYywgc3RhdGljX2Nhc3Q8RXJyb3JUeXBl
PihlcnJvclR5cGUpLCBlcnJvck1lc3NhZ2UpKTsKK30KKwogZXh0ZXJuICJDIiB2b2lkIEpJVF9P
UEVSQVRJT04gdHJpZ2dlclJlb3B0aW1pemF0aW9uTm93KENvZGVCbG9jayogY29kZUJsb2NrLCBP
U1JFeGl0QmFzZSogZXhpdCkKIHsKICAgICAvLyBJdCdzIHNvcnQgb2YgcHJlZmVyYWJsZSB0aGF0
IHdlIGRvbid0IEdDIHdoaWxlIGluIGhlcmUuIEFueXdheXMsIGRvaW5nIHNvIHdvdWxkbid0Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAkocmV2aXNpb24g
MjIxNDU3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgJKHdv
cmtpbmcgY29weSkKQEAgLTIwMiw2ICsyMDIsOCBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uTm90aWZ5V3JpdGUoCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3dTdGFja092
ZXJmbG93Rm9yVmFyYXJncyhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiBpbnQzMl90IEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uU2l6ZU9mVmFyYXJncyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSBhcmd1bWVudHMsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQpOwogdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkxvYWRWYXJhcmdzKEV4ZWNTdGF0ZSosIGludDMyX3QgZmlyc3RFbGVtZW50
RGVzdCwgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzLCBpbnQzMl90IG9mZnNldCwgaW50MzJfdCBs
ZW5ndGgsIGludDMyX3QgbWFuZGF0b3J5TWluaW11bSk7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uVGhyb3dERkcoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpOwordm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblRocm93U3RhdGljRXJyb3IoRXhlY1N0YXRlKiwgSlNTdHJpbmcqLCB1
aW50MzJfdCk7CiAKIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYXNPd25Qcm9wZXJ0
eShFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlKTsKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFn
YXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDIyMTQ1NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTA2LDExICsxMTA2LDEyIEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgUHV0Q2xvc3VyZVZh
cjoKICAgICAgICAgY2FzZSBQdXRUb0FyZ3VtZW50czoKICAgICAgICAgY2FzZSBSZXR1cm46Cisg
ICAgICAgIGNhc2UgVGhyb3c6CisgICAgICAgIGNhc2UgVGhyb3dTdGF0aWNFcnJvcjoKICAgICAg
ICAgY2FzZSBUYWlsQ2FsbDoKICAgICAgICAgY2FzZSBEaXJlY3RUYWlsQ2FsbDoKICAgICAgICAg
Y2FzZSBUYWlsQ2FsbFZhcmFyZ3M6CiAgICAgICAgIGNhc2UgVGFpbENhbGxGb3J3YXJkVmFyYXJn
czoKLSAgICAgICAgY2FzZSBUaHJvdzoKICAgICAgICAgY2FzZSBQdXRCeUlkOgogICAgICAgICBj
YXNlIFB1dEJ5SWRGbHVzaDoKICAgICAgICAgY2FzZSBQdXRCeUlkRGlyZWN0OgpAQCAtMTEyOCw3
ICsxMTI5LDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBTd2l0Y2g6CiAgICAgICAgIGNhc2Ug
UHJvZmlsZVR5cGU6CiAgICAgICAgIGNhc2UgUHJvZmlsZUNvbnRyb2xGbG93OgotICAgICAgICBj
YXNlIFRocm93U3RhdGljRXJyb3I6CiAgICAgICAgIGNhc2UgRm9yY2VPU1JFeGl0OgogICAgICAg
ICBjYXNlIFNldEFyZ3VtZW50OgogICAgICAgICBjYXNlIFNldEZ1bmN0aW9uTmFtZToKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcAkocmV2aXNpb24gMjIxNDU3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzY0NywxNCArMzY0
NywxNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAg
IGJyZWFrOwogICAgIH0KICAgICAgICAgCi0gICAgY2FzZSBUaHJvdzoKKyAgICBjYXNlIFRocm93
OiB7CisgICAgICAgIGNvbXBpbGVUaHJvdyhub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
CiAgICAgY2FzZSBUaHJvd1N0YXRpY0Vycm9yOiB7Ci0gICAgICAgIC8vIFdlIGV4cGVjdCB0aGF0
IHRocm93IHN0YXRlbWVudHMgYXJlIHJhcmUgYW5kIGFyZSBpbnRlbmRlZCB0byBleGl0IHRoZSBj
b2RlIGJsb2NrCi0gICAgICAgIC8vIGFueXdheSwgc28gd2UganVzdCBPU1IgYmFjayB0byB0aGUg
b2xkIEpJVCBmb3Igbm93LgotICAgICAgICB0ZXJtaW5hdGVTcGVjdWxhdGl2ZUV4ZWN1dGlvbihV
bmNvdW50YWJsZSwgSlNWYWx1ZVJlZ3MoKSwgMCk7CisgICAgICAgIGNvbXBpbGVUaHJvd1N0YXRp
Y0Vycm9yKG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgICAgIAorCiAgICAgY2Fz
ZSBCb29sZWFuVG9OdW1iZXI6IHsKICAgICAgICAgc3dpdGNoIChub2RlLT5jaGlsZDEoKS51c2VL
aW5kKCkpIHsKICAgICAgICAgY2FzZSBCb29sZWFuVXNlOiB7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDIy
MTQ1NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM4NzAsMTEgKzM4NzAsMTMgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAgICAgICAg
IAotICAgIGNhc2UgVGhyb3c6CisgICAgY2FzZSBUaHJvdzogeworICAgICAgICBjb21waWxlVGhy
b3cobm9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKwogICAgIGNhc2UgVGhyb3dTdGF0aWNF
cnJvcjogewotICAgICAgICAvLyBXZSBleHBlY3QgdGhhdCB0aHJvdyBzdGF0ZW1lbnRzIGFyZSBy
YXJlIGFuZCBhcmUgaW50ZW5kZWQgdG8gZXhpdCB0aGUgY29kZSBibG9jawotICAgICAgICAvLyBh
bnl3YXksIHNvIHdlIGp1c3QgT1NSIGJhY2sgdG8gdGhlIG9sZCBKSVQgZm9yIG5vdy4KLSAgICAg
ICAgdGVybWluYXRlU3BlY3VsYXRpdmVFeGVjdXRpb24oVW5jb3VudGFibGUsIEpTVmFsdWVSZWdz
KCksIDApOworICAgICAgICBjb21waWxlVGhyb3dTdGF0aWNFcnJvcihub2RlKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQogICAgICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiAyMjE0NTcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTAyODQsNiArMTAyODQsMjkgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUxvYWRW
YWx1ZUZybwogICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CiB9CiAKK3ZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUaHJvdyhOb2RlKiBub2RlKQoreworICAgIEpTVmFsdWVP
cGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBKU1ZhbHVlUmVncyB2YWx1
ZVJlZ3MgPSB2YWx1ZS5qc1ZhbHVlUmVncygpOworICAgIGZsdXNoUmVnaXN0ZXJzKCk7CisgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25UaHJvd0RGRywgdmFsdWVSZWdzKTsKKyAgICBtX2ppdC5l
eGNlcHRpb25DaGVjaygpOworICAgIG1faml0LmJyZWFrcG9pbnQoKTsKKyAgICBub1Jlc3VsdChu
b2RlKTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRocm93U3RhdGljRXJyb3Io
Tm9kZSogbm9kZSkKK3sKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBtZXNzYWdlKHRoaXMsIG5v
ZGUtPmNoaWxkMSgpKTsKKyAgICBHUFJSZWcgbWVzc2FnZUdQUiA9IG1lc3NhZ2UuZ3ByKCk7Cisg
ICAgc3BlY3VsYXRlU3RyaW5nKG5vZGUtPmNoaWxkMSgpLCBtZXNzYWdlR1BSKTsKKyAgICBmbHVz
aFJlZ2lzdGVycygpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVGhyb3dTdGF0aWNFcnJv
ciwgbWVzc2FnZUdQUiwgbm9kZS0+ZXJyb3JUeXBlKCkpOworICAgIG1faml0LmV4Y2VwdGlvbkNo
ZWNrKCk7CisgICAgbV9qaXQuYnJlYWtwb2ludCgpOworICAgIG5vUmVzdWx0KG5vZGUpOworfQor
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAKICNlbmRpZgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkocmV2aXNpb24gMjIxNDU3KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCSh3b3JraW5n
IGNvcHkpCkBAIC05NjIsNiArOTYyLDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9qaXQuc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIpOwogICAgICAgICByZXR1cm4gYXBwZW5k
Q2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CiAgICAgfQorICAgIEpJVENvbXBpbGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRUpzc1VpIG9wZXJhdGlvbiwgR1BS
UmVnIGFyZzEsIHVpbnQzMl90IGFyZzIpCisgICAgeworICAgICAgICBtX2ppdC5zZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgVHJ1c3RlZEltbTMyKGFyZzIpKTsKKyAgICAgICAgcmV0
dXJuIGFwcGVuZENhbGwob3BlcmF0aW9uKTsKKyAgICB9CiAgICAgSklUQ29tcGlsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihQX0pJVE9wZXJhdGlvbl9FTyBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQs
IEdQUlJlZyBvYmplY3QpCiAgICAgewogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUob2JqZWN0KTsKQEAgLTEzODAsNiArMTM4NSwxNiBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKICAgICB9CiAK
KyAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKIG9w
ZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgYXJnMSkKKyAgICB7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAg
ICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEuZ3ByKCkpOworI2Vs
c2UKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRf
RFVNTVlfQVJHIGFyZzEucGF5bG9hZEdQUigpLCBhcmcxLnRhZ0dQUigpKTsKKyNlbmRpZgorICAg
ICAgICByZXR1cm4gYXBwZW5kQ2FsbChvcGVyYXRpb24pOworICAgIH0KKwogI2lmIFVTRShKU1ZB
TFVFNjQpCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihaX0pJVE9wZXJhdGlv
bl9FT0ogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIp
CiAgICAgewpAQCAtMjM4OCwxMiArMjQwMyw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFw
cGVuZENhbGwob3BlcmF0aW9uKTsKICAgICB9CiAKLSAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKFZfSklUT3BlcmF0aW9uX0VKIG9wZXJhdGlvbiwgSlNWYWx1ZVJlZ3MgYXJnMSkK
LSAgICB7Ci0gICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMy
QklUX0RVTU1ZX0FSRyBhcmcxLnBheWxvYWRHUFIoKSwgYXJnMS50YWdHUFIoKSk7Ci0gICAgICAg
IHJldHVybiBhcHBlbmRDYWxsKG9wZXJhdGlvbik7Ci0gICAgfQotCiAgICAgSklUQ29tcGlsZXI6
OkNhbGwgY2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlvbl9FSlBQIG9wZXJhdGlvbiwgSlNWYWx1
ZVJlZ3MgYXJnMSwgR1BSUmVnIGFyZzIsIHZvaWQqIHBvaW50ZXIpCiAgICAgewogICAgICAgICBt
X2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJn
MS5wYXlsb2FkR1BSKCksIGFyZzEudGFnR1BSKCksIGFyZzIsIFRydXN0ZWRJbW1QdHIocG9pbnRl
cikpOwpAQCAtMjkxNSw2ICsyOTI0LDggQEAgcHVibGljOgogICAgIHZvaWQgY29tcGlsZURlZmlu
ZURhdGFQcm9wZXJ0eShOb2RlKik7CiAgICAgdm9pZCBjb21waWxlRGVmaW5lQWNjZXNzb3JQcm9w
ZXJ0eShOb2RlKik7CiAgICAgdm9pZCBjb21waWxlVG9Mb3dlckNhc2UoTm9kZSopOworICAgIHZv
aWQgY29tcGlsZVRocm93KE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVUaHJvd1N0YXRpY0Vycm9y
KE5vZGUqKTsKIAogICAgIHZvaWQgbW92ZVRydWVUbyhHUFJSZWcpOwogICAgIHZvaWQgbW92ZUZh
bHNlVG8oR1BSUmVnKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJE
RkdUb0IzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHAJKHJldmlzaW9uIDIyMTQ1NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQ1LDkgKzk0NSwx
MSBAQCBwcml2YXRlOgogICAgICAgICAgICAgY29tcGlsZUZvcmNlT1NSRXhpdCgpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVGhyb3c6Ci0gICAgICAgIGNhc2UgVGhyb3dTdGF0
aWNFcnJvcjoKICAgICAgICAgICAgIGNvbXBpbGVUaHJvdygpOwogICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgVGhyb3dTdGF0aWNFcnJvcjoKKyAgICAgICAgICAgIGNvbXBpbGVUaHJv
d1N0YXRpY0Vycm9yKCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBJbnZhbGlk
YXRpb25Qb2ludDoKICAgICAgICAgICAgIGNvbXBpbGVJbnZhbGlkYXRpb25Qb2ludCgpOwogICAg
ICAgICAgICAgYnJlYWs7CkBAIC03ODAwLDcgKzc4MDIsMTkgQEAgcHJpdmF0ZToKICAgICAKICAg
ICB2b2lkIGNvbXBpbGVUaHJvdygpCiAgICAgewotICAgICAgICB0ZXJtaW5hdGUoVW5jb3VudGFi
bGUpOworICAgICAgICBMVmFsdWUgZXJyb3IgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQxKCkp
OworICAgICAgICB2bUNhbGwoVm9pZCwgbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvblRocm93REZH
KSwgbV9jYWxsRnJhbWUsIGVycm9yKTsgCisgICAgICAgIC8vIHZtQ2FsbCgpIGRvZXMgYW4gZXhj
ZXB0aW9uIGNoZWNrIHNvIHdlIHNob3VsZCBuZXZlciByZWFjaCB0aGlzLgorICAgICAgICBtX291
dC51bnJlYWNoYWJsZSgpOworICAgIH0KKworICAgIHZvaWQgY29tcGlsZVRocm93U3RhdGljRXJy
b3IoKQorICAgIHsKKyAgICAgICAgTFZhbHVlIGVycm9yTWVzc2FnZSA9IGxvd1N0cmluZyhtX25v
ZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgTFZhbHVlIGVycm9yVHlwZSA9IG1fb3V0LmNvbnN0SW50
MzIobV9ub2RlLT5lcnJvclR5cGUoKSk7CisgICAgICAgIHZtQ2FsbChWb2lkLCBtX291dC5vcGVy
YXRpb24ob3BlcmF0aW9uVGhyb3dTdGF0aWNFcnJvciksIG1fY2FsbEZyYW1lLCBlcnJvck1lc3Nh
Z2UsIGVycm9yVHlwZSk7CisgICAgICAgIC8vIHZtQ2FsbCgpIGRvZXMgYW4gZXhjZXB0aW9uIGNo
ZWNrIHNvIHdlIHNob3VsZCBuZXZlciByZWFjaCB0aGlzLgorICAgICAgICBtX291dC51bnJlYWNo
YWJsZSgpOwogICAgIH0KICAgICAKICAgICB2b2lkIGNvbXBpbGVJbnZhbGlkYXRpb25Qb2ludCgp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAkocmV2aXNp
b24gMjIxNDU3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI5Niw2ICsyOTYsNyBAQCB0eXBlZGVmIHZvaWQgKEpJVF9PUEVS
QVRJT04gKlZfSklUT3BlcmF0CiB0eXBlZGVmIHZvaWQgKEpJVF9PUEVSQVRJT04gKlZfSklUT3Bl
cmF0aW9uX0VWbSkoRXhlY1N0YXRlKiwgVk0qKTsKIHR5cGVkZWYgdm9pZCAoSklUX09QRVJBVElP
TiAqVl9KSVRPcGVyYXRpb25fSikoRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiB2b2lkIChKSVRf
T1BFUkFUSU9OICpWX0pJVE9wZXJhdGlvbl9aKShpbnQzMl90KTsKK3R5cGVkZWYgdm9pZCAoSklU
X09QRVJBVElPTiAqVl9KSVRPcGVyYXRpb25fRUpzc1VpKShFeGVjU3RhdGUqLCBKU1N0cmluZyos
IHVpbnQzMl90KTsKIHR5cGVkZWYgSlNDZWxsKiAoSklUX09QRVJBVElPTiAqQ19KSVRPcGVyYXRp
b25fRVJVaVVpKShFeGVjU3RhdGUqLCBSZWdpc3RlciosIHVpbnQzMl90LCB1aW50MzJfdCk7CiB0
eXBlZGVmIHZvaWQgKEpJVF9PUEVSQVRJT04gKlZfSklUT3BlcmF0aW9uX0VPSklVaSkoRXhlY1N0
YXRlKiwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqLCB1aW50
MzJfdCk7CiB0eXBlZGVmIGNoYXIqIChKSVRfT1BFUkFUSU9OICpQX0pJVE9wZXJhdGlvbl9FKShF
eGVjU3RhdGUqKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>