sparkforensics-cli 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/bin/sparkforensics-analyze.mjs +113 -48
- package/export-template/docs/404.html +25 -0
- package/export-template/docs/assets/app.CndaAS6v.js +1 -0
- package/export-template/docs/assets/aqe-loop.IwQSATHw.svg +1 -0
- package/export-template/docs/assets/aqe-loop.dark.DGbaxqJE.svg +1 -0
- package/export-template/docs/assets/broadcast-vs-shuffle.Db4WY1XK.svg +1 -0
- package/export-template/docs/assets/broadcast-vs-shuffle.dark.C7Bxs0mG.svg +1 -0
- package/export-template/docs/assets/cache-lifecycle.dark.B-hS7AgU.svg +1 -0
- package/export-template/docs/assets/cache-lifecycle.rEOVYQNU.svg +1 -0
- package/export-template/docs/assets/chunks/@localSearchIndexroot.DNY8bVcl.js +1 -0
- package/export-template/docs/assets/chunks/VPLocalSearchBox.yJbZbsEo.js +9 -0
- package/export-template/docs/assets/chunks/duplicate-plan-subtree.dark.Cdp70QhV.js +1 -0
- package/export-template/docs/assets/chunks/framework.DSg0KOwT.js +20 -0
- package/export-template/docs/assets/chunks/retry-escalation-ladder.dark.DHipdJgZ.js +1 -0
- package/export-template/docs/assets/chunks/theme.Df2VAG9w.js +2 -0
- package/export-template/docs/assets/cold-start-timeline.DxC_Sc7w.svg +1 -0
- package/export-template/docs/assets/cold-start-timeline.dark.CZ17YcAG.svg +1 -0
- package/export-template/docs/assets/columnar-layout.PghGeOEA.svg +1 -0
- package/export-template/docs/assets/columnar-layout.dark.BVNlz0ff.svg +1 -0
- package/export-template/docs/assets/container-memory.DIO0AnIm.svg +1 -0
- package/export-template/docs/assets/container-memory.dark.CP-5zuCl.svg +1 -0
- package/export-template/docs/assets/contributor-guide_architecture_board-widgets.md.B-OsL91z.js +1 -0
- package/export-template/docs/assets/contributor-guide_architecture_board-widgets.md.B-OsL91z.lean.js +1 -0
- package/export-template/docs/assets/contributor-guide_architecture_detector-contract.md.BOeH4d1J.js +1 -0
- package/export-template/docs/assets/contributor-guide_architecture_detector-contract.md.BOeH4d1J.lean.js +1 -0
- package/export-template/docs/assets/contributor-guide_architecture_drill-down.md.BtPdlM7r.js +1 -0
- package/export-template/docs/assets/contributor-guide_architecture_drill-down.md.BtPdlM7r.lean.js +1 -0
- package/export-template/docs/assets/contributor-guide_architecture_impact-estimation.md.DYCDPgkh.js +1 -0
- package/export-template/docs/assets/contributor-guide_architecture_impact-estimation.md.DYCDPgkh.lean.js +1 -0
- package/export-template/docs/assets/contributor-guide_architecture_index.md.3TO9ic6w.js +1 -0
- package/export-template/docs/assets/contributor-guide_architecture_index.md.3TO9ic6w.lean.js +1 -0
- package/export-template/docs/assets/contributor-guide_architecture_overview.md.CehiRmGn.js +1 -0
- package/export-template/docs/assets/contributor-guide_architecture_overview.md.CehiRmGn.lean.js +1 -0
- package/export-template/docs/assets/contributor-guide_architecture_state-and-history.md.m3S3UdMk.js +1 -0
- package/export-template/docs/assets/contributor-guide_architecture_state-and-history.md.m3S3UdMk.lean.js +1 -0
- package/export-template/docs/assets/contributor-guide_architecture_widget-rendering.md.DbqPf2OT.js +1 -0
- package/export-template/docs/assets/contributor-guide_architecture_widget-rendering.md.DbqPf2OT.lean.js +1 -0
- package/export-template/docs/assets/contributor-guide_architecture_worker-protocol.md.B93qJ_tT.js +6 -0
- package/export-template/docs/assets/contributor-guide_architecture_worker-protocol.md.B93qJ_tT.lean.js +1 -0
- package/export-template/docs/assets/contributor-guide_contributing.md.CvRsdr6J.js +1 -0
- package/export-template/docs/assets/contributor-guide_contributing.md.CvRsdr6J.lean.js +1 -0
- package/export-template/docs/assets/contributor-guide_development-setup.md.DvAN_9mK.js +12 -0
- package/export-template/docs/assets/contributor-guide_development-setup.md.DvAN_9mK.lean.js +1 -0
- package/export-template/docs/assets/contributor-guide_testing.md.6rIKqSyY.js +1 -0
- package/export-template/docs/assets/contributor-guide_testing.md.6rIKqSyY.lean.js +1 -0
- package/export-template/docs/assets/dag-stages.DSz_S937.svg +1 -0
- package/export-template/docs/assets/dag-stages.dark.F72UzxH4.svg +1 -0
- package/export-template/docs/assets/driver-executor.D5pQ7YN1.svg +1 -0
- package/export-template/docs/assets/driver-executor.dark.BmX9cPvh.svg +1 -0
- package/export-template/docs/assets/duplicate-plan-subtree.B4cvN6fj.svg +1 -0
- package/export-template/docs/assets/duplicate-plan-subtree.dark.Dw8wS0Ag.svg +1 -0
- package/export-template/docs/assets/index.md.CHJVslga.js +1 -0
- package/export-template/docs/assets/index.md.CHJVslga.lean.js +1 -0
- package/export-template/docs/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 +0 -0
- package/export-template/docs/assets/inter-italic-cyrillic.By2_1cv3.woff2 +0 -0
- package/export-template/docs/assets/inter-italic-greek-ext.1u6EdAuj.woff2 +0 -0
- package/export-template/docs/assets/inter-italic-greek.DJ8dCoTZ.woff2 +0 -0
- package/export-template/docs/assets/inter-italic-latin-ext.CN1xVJS-.woff2 +0 -0
- package/export-template/docs/assets/inter-italic-latin.C2AdPX0b.woff2 +0 -0
- package/export-template/docs/assets/inter-italic-vietnamese.BSbpV94h.woff2 +0 -0
- package/export-template/docs/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 +0 -0
- package/export-template/docs/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 +0 -0
- package/export-template/docs/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 +0 -0
- package/export-template/docs/assets/inter-roman-greek.BBVDIX6e.woff2 +0 -0
- package/export-template/docs/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 +0 -0
- package/export-template/docs/assets/inter-roman-latin.Di8DUHzh.woff2 +0 -0
- package/export-template/docs/assets/inter-roman-vietnamese.BjW4sHH5.woff2 +0 -0
- package/export-template/docs/assets/join-strategy.C_FvrCEo.svg +1 -0
- package/export-template/docs/assets/join-strategy.dark.ChMLnNII.svg +1 -0
- package/export-template/docs/assets/memory-borrowing.BqQRJg0u.svg +1 -0
- package/export-template/docs/assets/memory-borrowing.dark.Yhh20O9C.svg +1 -0
- package/export-template/docs/assets/memory-regions.XHvO7jHG.svg +1 -0
- package/export-template/docs/assets/memory-regions.dark.D4TP9_08.svg +1 -0
- package/export-template/docs/assets/repartition-vs-coalesce.BovLRrpj.svg +1 -0
- package/export-template/docs/assets/repartition-vs-coalesce.dark.BhAczKZQ.svg +1 -0
- package/export-template/docs/assets/retry-escalation-ladder.DyTKJJmZ.svg +1 -0
- package/export-template/docs/assets/retry-escalation-ladder.dark.BdsabtU3.svg +1 -0
- package/export-template/docs/assets/shuffle-map-reduce.KuOEZVmg.svg +1 -0
- package/export-template/docs/assets/shuffle-map-reduce.dark.BgQZnFSb.svg +1 -0
- package/export-template/docs/assets/spill-classification.BU2euYDO.svg +1 -0
- package/export-template/docs/assets/spill-classification.dark.D7i1M40d.svg +1 -0
- package/export-template/docs/assets/style.DXOMCXxn.css +1 -0
- package/export-template/docs/assets/tuning-reference_anti-patterns.md.Df1YMIHu.js +1 -0
- package/export-template/docs/assets/tuning-reference_anti-patterns.md.Df1YMIHu.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_aqe.md.BIsCtLzm.js +1 -0
- package/export-template/docs/assets/tuning-reference_aqe.md.BIsCtLzm.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-broadcast-sizing.md.CEstB3Ia.js +1 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-broadcast-sizing.md.CEstB3Ia.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-cold-start.md.CEuy-72y.js +7 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-cold-start.md.CEuy-72y.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-duplicate-plan-subtree.md.CIohQDfn.js +1 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-duplicate-plan-subtree.md.CIohQDfn.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-failures.md.4z5BXGJ2.js +6 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-failures.md.4z5BXGJ2.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-gc.md.DSxzZRK7.js +6 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-gc.md.DSxzZRK7.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-job-failure-rate.md.BaJl__1W.js +8 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-job-failure-rate.md.BaJl__1W.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-memory-utilization.md.DbP-SJZc.js +7 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-memory-utilization.md.DbP-SJZc.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-retry-waste.md.D5JMjVOt.js +1 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-retry-waste.md.D5JMjVOt.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-shuffle.md.CM-nTmIH.js +12 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-shuffle.md.CM-nTmIH.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-skew.md.BdUwiDhn.js +14 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-skew.md.BdUwiDhn.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-slow-host.md.BlIo6UDW.js +7 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-slow-host.md.BlIo6UDW.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-small-files.md.B8kloyx8.js +5 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-small-files.md.B8kloyx8.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-spill.md.PNH7mITt.js +6 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-spill.md.PNH7mITt.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-straggler.md.DY36fHN5.js +7 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-straggler.md.DY36fHN5.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-tiny-tasks.md.QTV7O8kU.js +8 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-tiny-tasks.md.QTV7O8kU.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-utilization.md.DTiueZC3.js +5 -0
- package/export-template/docs/assets/tuning-reference_bottleneck-utilization.md.DTiueZC3.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_caching.md.B7aQ8asB.js +1 -0
- package/export-template/docs/assets/tuning-reference_caching.md.B7aQ8asB.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_cluster-config.md.ZVmDGsQ3.js +1 -0
- package/export-template/docs/assets/tuning-reference_cluster-config.md.ZVmDGsQ3.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_config.md.UvveiWG3.js +1 -0
- package/export-template/docs/assets/tuning-reference_config.md.UvveiWG3.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_data-formats.md.bjCAWH3N.js +1 -0
- package/export-template/docs/assets/tuning-reference_data-formats.md.bjCAWH3N.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_index.md.BQ_NooMV.js +1 -0
- package/export-template/docs/assets/tuning-reference_index.md.BQ_NooMV.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_intro.md.CobD-lGB.js +1 -0
- package/export-template/docs/assets/tuning-reference_intro.md.CobD-lGB.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_joins.md.BtKs_CuW.js +1 -0
- package/export-template/docs/assets/tuning-reference_joins.md.BtKs_CuW.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_memory-model.md.DhT-n4y3.js +1 -0
- package/export-template/docs/assets/tuning-reference_memory-model.md.DhT-n4y3.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_metrics.md.mLOh7Apj.js +1 -0
- package/export-template/docs/assets/tuning-reference_metrics.md.mLOh7Apj.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_partitioning.md.q0zKF_8X.js +1 -0
- package/export-template/docs/assets/tuning-reference_partitioning.md.q0zKF_8X.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_pyspark.md.DDCfvN9t.js +6 -0
- package/export-template/docs/assets/tuning-reference_pyspark.md.DDCfvN9t.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_shuffle.md.BZZ7R4Ix.js +1 -0
- package/export-template/docs/assets/tuning-reference_shuffle.md.BZZ7R4Ix.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_spark-architecture.md.Dwzm5avO.js +1 -0
- package/export-template/docs/assets/tuning-reference_spark-architecture.md.Dwzm5avO.lean.js +1 -0
- package/export-template/docs/assets/tuning-reference_table-formats.md.D6wj-2dX.js +1 -0
- package/export-template/docs/assets/tuning-reference_table-formats.md.D6wj-2dX.lean.js +1 -0
- package/export-template/docs/assets/udf-execution-models.BUFDICuG.svg +1 -0
- package/export-template/docs/assets/udf-execution-models.dark.YTNS6GDq.svg +1 -0
- package/export-template/docs/assets/user-guide_alternative-log-retrieval.md.sU3KGarf.js +1 -0
- package/export-template/docs/assets/user-guide_alternative-log-retrieval.md.sU3KGarf.lean.js +1 -0
- package/export-template/docs/assets/user-guide_getting-started.md.DtEM37MK.js +3 -0
- package/export-template/docs/assets/user-guide_getting-started.md.DtEM37MK.lean.js +1 -0
- package/export-template/docs/assets/user-guide_mcp-tools.md.C8MiIu7F.js +125 -0
- package/export-template/docs/assets/user-guide_mcp-tools.md.C8MiIu7F.lean.js +1 -0
- package/export-template/docs/assets/user-guide_run-comparison.md.S0TWWmLY.js +1 -0
- package/export-template/docs/assets/user-guide_run-comparison.md.S0TWWmLY.lean.js +1 -0
- package/export-template/docs/assets/user-guide_understanding-findings.md.D0R_Y-R2.js +1 -0
- package/export-template/docs/assets/user-guide_understanding-findings.md.D0R_Y-R2.lean.js +1 -0
- package/export-template/docs/contributor-guide/architecture/board-widgets.html +25 -0
- package/export-template/docs/contributor-guide/architecture/detector-contract.html +25 -0
- package/export-template/docs/contributor-guide/architecture/drill-down.html +25 -0
- package/export-template/docs/contributor-guide/architecture/impact-estimation.html +25 -0
- package/export-template/docs/contributor-guide/architecture/index.html +25 -0
- package/export-template/docs/contributor-guide/architecture/overview.html +25 -0
- package/export-template/docs/contributor-guide/architecture/state-and-history.html +25 -0
- package/export-template/docs/contributor-guide/architecture/widget-rendering.html +25 -0
- package/export-template/docs/contributor-guide/architecture/worker-protocol.html +30 -0
- package/export-template/docs/contributor-guide/contributing.html +25 -0
- package/export-template/docs/contributor-guide/development-setup.html +36 -0
- package/export-template/docs/contributor-guide/testing.html +25 -0
- package/export-template/docs/favicon.svg +4 -0
- package/export-template/docs/hashmap.json +1 -0
- package/export-template/docs/index.html +25 -0
- package/export-template/docs/package.json +1 -0
- package/export-template/docs/tuning-reference/anti-patterns.html +25 -0
- package/export-template/docs/tuning-reference/aqe.html +25 -0
- package/export-template/docs/tuning-reference/bottleneck-broadcast-sizing.html +25 -0
- package/export-template/docs/tuning-reference/bottleneck-cold-start.html +31 -0
- package/export-template/docs/tuning-reference/bottleneck-duplicate-plan-subtree.html +25 -0
- package/export-template/docs/tuning-reference/bottleneck-failures.html +30 -0
- package/export-template/docs/tuning-reference/bottleneck-gc.html +30 -0
- package/export-template/docs/tuning-reference/bottleneck-job-failure-rate.html +32 -0
- package/export-template/docs/tuning-reference/bottleneck-memory-utilization.html +31 -0
- package/export-template/docs/tuning-reference/bottleneck-retry-waste.html +25 -0
- package/export-template/docs/tuning-reference/bottleneck-shuffle.html +36 -0
- package/export-template/docs/tuning-reference/bottleneck-skew.html +38 -0
- package/export-template/docs/tuning-reference/bottleneck-slow-host.html +31 -0
- package/export-template/docs/tuning-reference/bottleneck-small-files.html +29 -0
- package/export-template/docs/tuning-reference/bottleneck-spill.html +30 -0
- package/export-template/docs/tuning-reference/bottleneck-straggler.html +31 -0
- package/export-template/docs/tuning-reference/bottleneck-tiny-tasks.html +32 -0
- package/export-template/docs/tuning-reference/bottleneck-utilization.html +29 -0
- package/export-template/docs/tuning-reference/caching.html +25 -0
- package/export-template/docs/tuning-reference/cluster-config.html +25 -0
- package/export-template/docs/tuning-reference/config.html +25 -0
- package/export-template/docs/tuning-reference/data-formats.html +25 -0
- package/export-template/docs/tuning-reference/index.html +25 -0
- package/export-template/docs/tuning-reference/intro.html +25 -0
- package/export-template/docs/tuning-reference/joins.html +25 -0
- package/export-template/docs/tuning-reference/memory-model.html +25 -0
- package/export-template/docs/tuning-reference/metrics.html +25 -0
- package/export-template/docs/tuning-reference/partitioning.html +25 -0
- package/export-template/docs/tuning-reference/pyspark.html +30 -0
- package/export-template/docs/tuning-reference/shuffle.html +25 -0
- package/export-template/docs/tuning-reference/spark-architecture.html +25 -0
- package/export-template/docs/tuning-reference/table-formats.html +25 -0
- package/export-template/docs/user-guide/alternative-log-retrieval.html +25 -0
- package/export-template/docs/user-guide/getting-started.html +27 -0
- package/export-template/docs/user-guide/mcp-tools.html +149 -0
- package/export-template/docs/user-guide/run-comparison.html +25 -0
- package/export-template/docs/user-guide/understanding-findings.html +25 -0
- package/export-template/docs/vp-icons.css +0 -0
- package/export-template/favicon.svg +4 -0
- package/export-template/index.html +115 -0
- package/export-template/parser-worker-QqyEE4m9.js +64 -0
- package/package.json +16 -3
- package/vendor-core/analyzer.js +74 -74
- package/vendor-core/cli/budgets.js +13 -27
- package/vendor-core/cli/collect-run.js +43 -19
- package/vendor-core/core-count.js +25 -27
- package/vendor-core/core-locality-ratio.js +4 -11
- package/vendor-core/core-time-series.js +6 -12
- package/vendor-core/core-usage-locality.js +3 -4
- package/vendor-core/detectors.js +256 -375
- package/vendor-core/docs-config.js +69 -21
- package/vendor-core/docs-content/chapters/01-intro.md +32 -0
- package/vendor-core/docs-content/chapters/02-spark-architecture.md +76 -0
- package/vendor-core/docs-content/chapters/03-memory-model.md +73 -0
- package/vendor-core/docs-content/chapters/04-partitioning.md +65 -0
- package/vendor-core/docs-content/chapters/05-joins.md +62 -0
- package/vendor-core/docs-content/chapters/06-shuffle.md +59 -0
- package/vendor-core/docs-content/chapters/07-data-formats.md +81 -0
- package/vendor-core/docs-content/chapters/07b-table-formats.md +56 -0
- package/vendor-core/docs-content/chapters/08-caching.md +58 -0
- package/vendor-core/docs-content/chapters/09-pyspark.md +78 -0
- package/vendor-core/docs-content/chapters/10-aqe.md +167 -0
- package/vendor-core/docs-content/chapters/11-cluster-config.md +170 -0
- package/vendor-core/docs-content/chapters/12-anti-patterns.md +171 -0
- package/vendor-core/docs-content/chapters/14-metrics.md +87 -0
- package/vendor-core/docs-content/chapters/15-config.md +93 -0
- package/vendor-core/docs-content/chapters/nav-index.json +370 -0
- package/vendor-core/docs-content/detection/cache.md +6 -0
- package/vendor-core/docs-content/detection/cfg.md +15 -0
- package/vendor-core/docs-content/detection/chrn.md +7 -0
- package/vendor-core/docs-content/detection/cold.md +4 -0
- package/vendor-core/docs-content/detection/cstor.md +4 -0
- package/vendor-core/docs-content/detection/fail.md +5 -0
- package/vendor-core/docs-content/detection/gc.md +4 -0
- package/vendor-core/docs-content/detection/host.md +5 -0
- package/vendor-core/docs-content/detection/incmp.md +6 -0
- package/vendor-core/docs-content/detection/jobs.md +4 -0
- package/vendor-core/docs-content/detection/local.md +7 -0
- package/vendor-core/docs-content/detection/mem.md +10 -0
- package/vendor-core/docs-content/detection/part.md +5 -0
- package/vendor-core/docs-content/detection/plan.md +14 -0
- package/vendor-core/docs-content/detection/retry.md +4 -0
- package/vendor-core/docs-content/detection/sfail.md +5 -0
- package/vendor-core/docs-content/detection/shape.md +5 -0
- package/vendor-core/docs-content/detection/shfl.md +4 -0
- package/vendor-core/docs-content/detection/skew.md +6 -0
- package/vendor-core/docs-content/detection/slow.md +6 -0
- package/vendor-core/docs-content/detection/spec.md +7 -0
- package/vendor-core/docs-content/detection/spill.md +7 -0
- package/vendor-core/docs-content/detection/strag.md +5 -0
- package/vendor-core/docs-content/detection/tiny.md +4 -0
- package/vendor-core/docs-content/detection/util.md +4 -0
- package/vendor-core/docs-content/diagrams/aqe-loop.dark.svg +1 -0
- package/vendor-core/docs-content/diagrams/aqe-loop.svg +1 -0
- package/vendor-core/docs-content/diagrams/broadcast-vs-shuffle.dark.svg +1 -0
- package/vendor-core/docs-content/diagrams/broadcast-vs-shuffle.svg +1 -0
- package/vendor-core/docs-content/diagrams/cache-lifecycle.dark.svg +1 -0
- package/vendor-core/docs-content/diagrams/cache-lifecycle.svg +1 -0
- package/vendor-core/docs-content/diagrams/cold-start-timeline.dark.svg +1 -0
- package/vendor-core/docs-content/diagrams/cold-start-timeline.svg +1 -0
- package/vendor-core/docs-content/diagrams/columnar-layout.dark.svg +1 -0
- package/vendor-core/docs-content/diagrams/columnar-layout.svg +1 -0
- package/vendor-core/docs-content/diagrams/container-memory.dark.svg +1 -0
- package/vendor-core/docs-content/diagrams/container-memory.svg +1 -0
- package/vendor-core/docs-content/diagrams/dag-stages.dark.svg +1 -0
- package/vendor-core/docs-content/diagrams/dag-stages.svg +1 -0
- package/vendor-core/docs-content/diagrams/driver-executor.dark.svg +1 -0
- package/vendor-core/docs-content/diagrams/driver-executor.svg +1 -0
- package/vendor-core/docs-content/diagrams/duplicate-plan-subtree.dark.svg +1 -0
- package/vendor-core/docs-content/diagrams/duplicate-plan-subtree.svg +1 -0
- package/vendor-core/docs-content/diagrams/join-strategy.dark.svg +1 -0
- package/vendor-core/docs-content/diagrams/join-strategy.svg +1 -0
- package/vendor-core/docs-content/diagrams/memory-borrowing.dark.svg +1 -0
- package/vendor-core/docs-content/diagrams/memory-borrowing.svg +1 -0
- package/vendor-core/docs-content/diagrams/memory-regions.dark.svg +1 -0
- package/vendor-core/docs-content/diagrams/memory-regions.svg +1 -0
- package/vendor-core/docs-content/diagrams/repartition-vs-coalesce.dark.svg +1 -0
- package/vendor-core/docs-content/diagrams/repartition-vs-coalesce.svg +1 -0
- package/vendor-core/docs-content/diagrams/retry-escalation-ladder.dark.svg +1 -0
- package/vendor-core/docs-content/diagrams/retry-escalation-ladder.svg +1 -0
- package/vendor-core/docs-content/diagrams/shuffle-map-reduce.dark.svg +1 -0
- package/vendor-core/docs-content/diagrams/shuffle-map-reduce.svg +1 -0
- package/vendor-core/docs-content/diagrams/spill-classification.dark.svg +1 -0
- package/vendor-core/docs-content/diagrams/spill-classification.svg +1 -0
- package/vendor-core/docs-content/diagrams/udf-execution-models.dark.svg +1 -0
- package/vendor-core/docs-content/diagrams/udf-execution-models.svg +1 -0
- package/vendor-core/docs-content/tuning/broadcast-sizing.md +78 -0
- package/vendor-core/docs-content/tuning/cold-start.md +81 -0
- package/vendor-core/docs-content/tuning/duplicate-plan-subtree.md +45 -0
- package/vendor-core/docs-content/tuning/failures.md +124 -0
- package/vendor-core/docs-content/tuning/gc.md +110 -0
- package/vendor-core/docs-content/tuning/job-failure-rate.md +101 -0
- package/vendor-core/docs-content/tuning/memory-utilization.md +58 -0
- package/vendor-core/docs-content/tuning/retry-waste.md +90 -0
- package/vendor-core/docs-content/tuning/shuffle.md +154 -0
- package/vendor-core/docs-content/tuning/skew.md +123 -0
- package/vendor-core/docs-content/tuning/slow-host.md +117 -0
- package/vendor-core/docs-content/tuning/small-files.md +99 -0
- package/vendor-core/docs-content/tuning/spill.md +114 -0
- package/vendor-core/docs-content/tuning/straggler.md +103 -0
- package/vendor-core/docs-content/tuning/tiny-tasks.md +94 -0
- package/vendor-core/docs-content/tuning/utilization.md +90 -0
- package/vendor-core/docs-site-config.js +10 -17
- package/vendor-core/efficiency-model.js +7 -13
- package/vendor-core/etl-phases.js +3 -5
- package/vendor-core/event-handlers.js +232 -134
- package/vendor-core/event-schemas.js +48 -114
- package/vendor-core/evidence-availability.js +5 -10
- package/vendor-core/evidence-report.js +72 -122
- package/vendor-core/export-data.js +48 -0
- package/vendor-core/finding-action-label.js +4 -10
- package/vendor-core/finding-filter-predicate.js +3 -7
- package/vendor-core/finding-generic-recommendation.js +112 -0
- package/vendor-core/finding-names.js +51 -0
- package/vendor-core/format-utils.js +112 -38
- package/vendor-core/impact-band.js +18 -24
- package/vendor-core/impact-estimator.js +38 -74
- package/vendor-core/ingest.js +7 -13
- package/vendor-core/job-groups.js +3 -6
- package/vendor-core/list-runs.js +278 -0
- package/vendor-core/load-vendored.js +6 -12
- package/vendor-core/log-header-peek.js +81 -0
- package/vendor-core/lz4-block.js +4 -6
- package/vendor-core/mcp-server-factory.js +38 -8
- package/vendor-core/mcp-tools.js +105 -76
- package/vendor-core/model-assembler.js +8 -16
- package/vendor-core/occupancy.js +5 -9
- package/vendor-core/parser-worker.js +18 -27
- package/vendor-core/plan-dot.js +2 -5
- package/vendor-core/plan-duration-attribution.js +78 -29
- package/vendor-core/plan-graph-model.js +126 -69
- package/vendor-core/plan-node-detail.js +31 -17
- package/vendor-core/plan-summary.js +19 -8
- package/vendor-core/recommendation-rollup.js +35 -39
- package/vendor-core/redact.js +72 -16
- package/vendor-core/rolling-log-reassembly.js +4 -6
- package/vendor-core/run-comparison.js +65 -70
- package/vendor-core/scaling-sim.js +5 -7
- package/vendor-core/session-snapshot.js +1 -1
- package/vendor-core/shs-fetch.js +4 -6
- package/vendor-core/shs-load.js +9 -13
- package/vendor-core/shs-request.js +1 -1
- package/vendor-core/stage-quantiles.js +14 -0
- package/vendor-core/types.js +78 -18
- package/vendor-core/wasted-core-hours.js +7 -12
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg id="gd10" width="100%" xmlns="http://www.w3.org/2000/svg" class="flowchart" viewBox="-8 -17.3125 1225.7492576111572 432.63750000000005" role="graphics-document document" aria-roledescription="flowchart-v2" style="max-width: 1225.7492576111572px;"><style>#gd10{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px;fill:#f4f4f5;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#gd10 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#gd10 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#gd10 .error-icon{fill:#1a232f;}#gd10 .error-text{fill:#e5dcd0;stroke:#e5dcd0;}#gd10 .edge-thickness-normal{stroke-width:1px;}#gd10 .edge-thickness-thick{stroke-width:3.5px;}#gd10 .edge-pattern-solid{stroke-dasharray:0;}#gd10 .edge-thickness-invisible{stroke-width:0;fill:none;}#gd10 .edge-pattern-dashed{stroke-dasharray:3;}#gd10 .edge-pattern-dotted{stroke-dasharray:2;}#gd10 .marker{fill:#a9b5b4;stroke:#a9b5b4;}#gd10 .marker.cross{stroke:#a9b5b4;}#gd10 svg{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px;}#gd10 p{margin:0;}#gd10 .label{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#f4f4f5;}#gd10 .cluster-label text{fill:#f4f4f5;}#gd10 .cluster-label span{color:#f4f4f5;}#gd10 .cluster-label span p{background-color:transparent;}#gd10 .label text,#gd10 span{fill:#f4f4f5;color:#f4f4f5;}#gd10 .node rect,#gd10 .node circle,#gd10 .node ellipse,#gd10 .node polygon,#gd10 .node path{fill:#17202c;stroke:#3a4a52;stroke-width:1px;}#gd10 .rough-node .label text,#gd10 .node .label text,#gd10 .image-shape .label,#gd10 .icon-shape .label{text-anchor:middle;}#gd10 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#gd10 .rough-node .label,#gd10 .node .label,#gd10 .image-shape .label,#gd10 .icon-shape .label{text-align:center;}#gd10 .node.clickable{cursor:pointer;}#gd10 .root .anchor path{fill:#a9b5b4!important;stroke-width:0;stroke:#a9b5b4;}#gd10 .arrowheadPath{fill:rgba(255, 255, 255, 0);}#gd10 .edgePath .path{stroke:#a9b5b4;stroke-width:1px;}#gd10 .flowchart-link{stroke:#a9b5b4;fill:none;}#gd10 .edgeLabel{background-color:#11171a;text-align:center;}#gd10 .edgeLabel p{background-color:#11171a;}#gd10 .edgeLabel rect{opacity:0.5;background-color:#11171a;fill:#11171a;}#gd10 .labelBkg{background-color:rgba(17, 23, 26, 0.5);}#gd10 .cluster rect{fill:#11171a;stroke:#233035;stroke-width:1px;}#gd10 .cluster text{fill:#f4f4f5;}#gd10 .cluster span{color:#f4f4f5;}#gd10 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:12px;background:#1a232f;border:1px solid hsl(214.2857142857, 0%, 4.3137254902%);border-radius:2px;pointer-events:none;z-index:100;}#gd10 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#f4f4f5;}#gd10 rect.text{fill:none;stroke-width:0;}#gd10 .icon-shape,#gd10 .image-shape{background-color:#11171a;text-align:center;}#gd10 .icon-shape p,#gd10 .image-shape p{background-color:#11171a;padding:2px;}#gd10 .icon-shape .label rect,#gd10 .image-shape .label rect{opacity:0.5;background-color:#11171a;fill:#11171a;}#gd10 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#gd10 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#gd10 .node .neo-node{stroke:#3a4a52;}#gd10 [data-look="neo"].node rect,#gd10 [data-look="neo"].cluster rect,#gd10 [data-look="neo"].node polygon{stroke:url(#gd10-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd10 [data-look="neo"].swimlane.cluster rect{filter:none;}#gd10 [data-look="neo"].node path{stroke:url(#gd10-gradient);stroke-width:1px;}#gd10 [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd10 [data-look="neo"].node .neo-line path{stroke:#3a4a52;filter:none;}#gd10 [data-look="neo"].node circle{stroke:url(#gd10-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd10 [data-look="neo"].node circle .state-start{fill:#000000;}#gd10 [data-look="neo"].icon-shape .icon{fill:url(#gd10-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd10 [data-look="neo"].icon-shape .icon-neo path{stroke:url(#gd10-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd10 :root{--mermaid-font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;}</style><g><marker id="gd10_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></path></marker><marker id="gd10_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></path></marker><marker id="gd10_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></path></marker><marker id="gd10_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></polygon></marker><marker id="gd10_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></circle></marker><marker id="gd10_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></circle></marker><marker id="gd10_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></circle></marker><marker id="gd10_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></circle></marker><marker id="gd10_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width:2;stroke-dasharray:1,0"></path></marker><marker id="gd10_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width:2;stroke-dasharray:1,0"></path></marker><marker id="gd10_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width:2.5"></path></marker><marker id="gd10_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width:2.5;stroke-dasharray:1,0"></path></marker><g class="root"><g class="clusters"></g><g class="edgePaths"><path d="M993.126,58.448L977.864,64.629C962.603,70.811,932.08,83.174,907.646,95.056C883.213,106.938,864.87,118.338,855.698,124.038L846.526,129.739" id="gd10-L_FILE_FOOTER_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_FILE_FOOTER_0" data-points="W3sieCI6OTkzLjEyNTUyMzU4MjU2OCwieSI6NTguNDQ3NTkyMzYwNjc1MTF9LHsieCI6OTAxLjU1NjY0MDYyNSwieSI6OTUuNTM3NX0seyJ4Ijo4NDMuMTI4OTI0NDg1MTUxNSwieSI6MTMxLjg1fV0=" data-look="classic" marker-end="url(#gd10_flowchart-v2-pointEnd)" style=";"></path><path d="M976.377,40.741L871.036,49.874C765.694,59.006,555.011,77.272,449.67,96.19C344.328,115.108,344.328,134.679,344.328,144.465L344.328,154.25" id="gd10-L_FILE_RG1_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_FILE_RG1_0" data-points="W3sieCI6OTc2LjM3NzIyMDk2MzkzNjcsInkiOjQwLjc0MDk4MjgzNDE1MTE2fSx7IngiOjM0NC4zMjgxMjUsInkiOjk1LjUzNzV9LHsieCI6MzQ0LjMyODEyNSwieSI6MTU4LjI1fV0=" data-look="classic" marker-end="url(#gd10_flowchart-v2-pointEnd)" style=";"></path><path d="M1112.48,57.924L1128.509,64.193C1144.539,70.462,1176.597,83,1192.627,103.773C1208.656,124.546,1208.656,153.554,1208.656,186.963C1208.656,220.371,1208.656,258.179,1195.957,287.122C1183.258,316.065,1157.861,336.142,1145.162,346.181L1132.463,356.219" id="gd10-L_FILE_RG2_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_FILE_RG2_0" data-points="W3sieCI6MTExMi40Nzk4NDAwNDcyNjU3LCJ5Ijo1Ny45MjM3NTUyMTEyOTI4MX0seyJ4IjoxMjA4LjY1NjI1LCJ5Ijo5NS41Mzc1fSx7IngiOjEyMDguNjU2MjUsInkiOjE4Mi41NjI1fSx7IngiOjEyMDguNjU2MjUsInkiOjI5NS45ODc1fSx7IngiOjExMjkuMzI0ODk3OTQ1NjU4NywieSI6MzU4LjcwMDAwMDAwMDAwMDA1fV0=" data-look="classic" marker-end="url(#gd10_flowchart-v2-pointEnd)" style=";"></path><path d="M1056.218,59.725L1057.112,65.694C1058.006,71.663,1059.794,83.6,1060.688,99.354C1061.582,115.108,1061.582,134.679,1061.582,144.465L1061.582,154.25" id="gd10-L_FILE_RGN_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_FILE_RGN_0" data-points="W3sieCI6MTA1Ni4yMTgwODI5MjU0MTQsInkiOjU5LjcyNDk5OTk5OTk5OTk5NH0seyJ4IjoxMDYxLjU4MjAzMTI1LCJ5Ijo5NS41Mzc1fSx7IngiOjEwNjEuNTgyMDMxMjUsInkiOjE1OC4yNX1d" data-look="classic" marker-end="url(#gd10_flowchart-v2-pointEnd)" style=";"></path><path d="M292.694,206.875L261.151,221.727C229.608,236.579,166.523,266.283,134.98,290.921C103.438,315.558,103.438,335.129,103.438,344.915L103.438,354.7" id="gd10-L_RG1_CA_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_RG1_CA_0" data-points="W3sieCI6MjkyLjY5MzUzNTQ0NDY3NzEsInkiOjIwNi44NzV9LHsieCI6MTAzLjQzNzUsInkiOjI5NS45ODc1fSx7IngiOjEwMy40Mzc1LCJ5IjozNTguNzAwMDAwMDAwMDAwMDV9XQ==" data-look="classic" marker-end="url(#gd10_flowchart-v2-pointEnd)" style=";"></path><path d="M344.328,206.875L344.328,221.727C344.328,236.579,344.328,266.283,344.328,290.921C344.328,315.558,344.328,335.129,344.328,344.915L344.328,354.7" id="gd10-L_RG1_CB_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_RG1_CB_0" data-points="W3sieCI6MzQ0LjMyODEyNSwieSI6MjA2Ljg3NX0seyJ4IjozNDQuMzI4MTI1LCJ5IjoyOTUuOTg3NX0seyJ4IjozNDQuMzI4MTI1LCJ5IjozNTguNzAwMDAwMDAwMDAwMDV9XQ==" data-look="classic" marker-end="url(#gd10_flowchart-v2-pointEnd)" style=";"></path><path d="M395.987,206.875L427.545,221.727C459.102,236.579,522.217,266.283,553.775,290.921C585.332,315.558,585.332,335.129,585.332,344.915L585.332,354.7" id="gd10-L_RG1_CC_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_RG1_CC_0" data-points="W3sieCI6Mzk1Ljk4Njk5NjI0MjY5ODksInkiOjIwNi44NzV9LHsieCI6NTg1LjMzMjAzMTI1LCJ5IjoyOTUuOTg3NX0seyJ4Ijo1ODUuMzMyMDMxMjUsInkiOjM1OC43MDAwMDAwMDAwMDAwNX1d" data-look="classic" marker-end="url(#gd10_flowchart-v2-pointEnd)" style=";"></path><path d="M532.351,50.925L555.376,58.36C578.401,65.796,624.45,80.667,653.324,93.693C682.198,106.72,693.895,117.903,699.744,123.495L705.593,129.086" id="gd10-L_READER_FOOTER_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_READER_FOOTER_0" data-points="W3sieCI6NTMyLjM1MTIyOTc1MTIxMTIsInkiOjUwLjkyNTAwMDAwMDAwMDAxfSx7IngiOjY3MC41LCJ5Ijo5NS41Mzc1fSx7IngiOjcwOC40ODQxNjg1MjE5NzY1LCJ5IjoxMzEuODV9XQ==" data-look="classic" marker-end="url(#gd10_flowchart-v2-pointEnd)" style=";"></path><path d="M761.531,233.275L761.531,243.727C761.531,254.179,761.531,275.083,801.366,295.821C841.2,316.558,920.868,337.129,960.703,347.415L1000.537,357.7" id="gd10-L_FOOTER_RG2_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_FOOTER_RG2_0" data-points="W3sieCI6NzYxLjUzMTI1LCJ5IjoyMzMuMjc1fSx7IngiOjc2MS41MzEyNSwieSI6Mjk1Ljk4NzV9LHsieCI6MTAwNC40MDk5MTMwMjc1MzE3LCJ5IjozNTguNzAwMDAwMDAwMDAwMDV9XQ==" data-look="classic" marker-end="url(#gd10_flowchart-v2-pointEnd)" style=";"></path></g><g class="edgeLabels"><g class="edgeLabel"><g class="label" data-id="L_FILE_FOOTER_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_FILE_RG1_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_FILE_RG2_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_FILE_RGN_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_RG1_CA_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_RG1_CB_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_RG1_CC_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel" transform="translate(626.42871, 81.30552)"><g class="label" data-id="L_READER_FOOTER_0" transform="translate(0, -10.4609375)"><g><rect class="background" x="-97.09375" y="-0.8515625" width="194.1875" height="22.625"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">1.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> read</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> footer</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> stats</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> first</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(761.53125, 295.9875)"><g class="label" data-id="L_FOOTER_RG2_0" transform="translate(0, -36.860937500000006)"><g><rect class="background" x="-75.66796875" y="-0.8515625" width="151.3359375" height="75.42500000000001"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">2.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> skip</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> row</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> groups</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">whose</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">min/max</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> exclude</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">predicate</tspan></tspan></text></g></g></g></g><g class="nodes"><g class="node default " id="gd10-flowchart-FILE-0" data-look="classic" transform="translate(1051.58203125, 33.6125)"><g class="basic label-container outer-path"><path d="M-50.978125000000006 -25.6125 C-20.05119182103046 -25.6125, 10.875741357939084 -25.6125, 50.978125000000006 -25.6125 C50.978125000000006 -25.6125, 50.978125000000006 -25.6125, 50.978125000000006 -25.6125 C51.54970182648099 -25.594170643681558, 52.12127865296197 -25.57584128736311, 52.61912350925601 -25.55987637181799 C53.02430296971637 -25.520789196566973, 53.42948243017673 -25.481702021315957, 54.25337880364441 -25.40222172904789 C54.882156069386554 -25.300565896963224, 55.51093333512869 -25.19891006487856, 55.8741753776139 -25.140183908433663 C56.27975513185705 -25.047612976182904, 56.6853348861002 -24.955042043932142, 57.474853030382256 -24.774839679587142 C57.88915352591949 -24.65187746721937, 58.30345402145672 -24.528915254851597, 59.04883423412999 -24.30769032031075 C59.595187738269644 -24.10662718035093, 60.1415412424093 -23.90556404039111, 60.589651162472975 -23.740655447524983 C60.892556894223674 -23.60656806545823, 61.195462625974365 -23.472480683391478, 62.09097226814846 -23.07606512915071 C62.54422950094206 -22.839601121127405, 62.997486733735656 -22.6031371131041, 63.54662830070086 -22.316650309360316 C63.912124038764304 -22.09508464505489, 64.27761977682775 -21.87351898074946, 64.95063765725519 -21.46553158654227 C65.46302197139121 -21.10811446976044, 65.97540628552726 -20.75069735297861, 66.29723096220627 -20.52620639009304 C66.61830434186577 -20.270158913936058, 66.93937772152526 -20.014111437779075, 67.58087477482073 -19.50253460872946 C68.00837322704898 -19.114291825404983, 68.43587167927723 -18.726049042080508, 68.7962943273318 -18.398722729378047 C69.10406908001812 -18.080920028452294, 69.41184383270443 -17.763117327526537, 69.93849520009152 -17.219306551817983 C70.23629496060174 -16.86949400783627, 70.53409472111196 -16.519681463854557, 71.00278384471241 -15.969132550106815 C71.25601749552561 -15.629822528077304, 71.50925114633883 -15.290512506047794, 71.98478687086453 -14.653337957379076 C72.32586124874327 -14.129356121662891, 72.666935626622 -13.605374285946704, 72.88046901747444 -13.277329655853325 C73.14312585618865 -12.810955841827267, 73.40578269490285 -12.344582027801208, 73.68614973447848 -11.846761958793394 C73.90551369576264 -11.39124799954996, 74.12487765704681 -10.935734040306524, 74.3985183069925 -10.367513375722318 C74.60241781904399 -9.863877638826235, 74.80631733109549 -9.360241901930152, 75.01464745974948 -8.845662456365755 C75.16704560920608 -8.386663511550138, 75.31944375866267 -7.9276645667345225, 75.53200538590147 -7.287462812587326 C75.65698441631514 -6.81086360336559, 75.78196344672881 -6.334264394143853, 75.94846615075696 -5.699317420956105 C76.01393143716983 -5.363167011319184, 76.0793967235827 -5.027016601682262, 76.26231842770261 -4.0877523115424355 C76.34555416738151 -3.4421923513487744, 76.42878990706042 -2.796632391155113, 76.47227253041135 -2.459389751060504 C76.5124594219345 -1.8334464773125392, 76.55264631345764 -1.2075032035645747, 76.57746571244013 -0.820921030554018 C76.57746571244013 -0.20104905503734838, 76.57746571244013 0.41882292047932124, 76.57746571244013 0.8209210305540118 C76.55313843005224 1.1998380903741857, 76.52881114766436 1.5787551501943593, 76.47227253041135 2.4593897510604865 C76.39895576918761 3.028020073079682, 76.32563900796389 3.5966503950988775, 76.26231842770261 4.087752311542418 C76.14033436337789 4.714114700508741, 76.01835029905317 5.340477089475064, 75.94846615075696 5.6993174209561 C75.80937339758493 6.229738371981588, 75.67028064441291 6.760159323007075, 75.53200538590147 7.287462812587309 C75.34089687583206 7.863051195910374, 75.14978836576265 8.438639579233438, 75.0146474597495 8.845662456365737 C74.78062960962932 9.42369107058991, 74.54661175950915 10.001719684814084, 74.3985183069925 10.36751337572231 C74.18686174951705 10.807022746044938, 73.97520519204159 11.246532116367566, 73.68614973447848 11.846761958793389 C73.4005582365315 12.353858582673316, 73.11496673858451 12.860955206553246, 72.88046901747444 13.27732965585332 C72.53330515463566 13.810666575723813, 72.18614129179687 14.344003495594306, 71.98478687086454 14.653337957379062 C71.62855000938308 15.130662897918507, 71.27231314790161 15.607987838457953, 71.00278384471243 15.969132550106808 C70.77588717557335 16.23565828846379, 70.54899050643427 16.50218402682077, 69.93849520009154 17.21930655181797 C69.60158321894487 17.567195833339987, 69.26467123779818 17.915085114862002, 68.79629432733181 18.398722729378044 C68.5253467853134 18.644790118160035, 68.25439924329501 18.89085750694203, 67.58087477482076 19.50253460872944 C67.09618873510557 19.889058827365098, 66.6115026953904 20.275583046000758, 66.29723096220629 20.526206390093037 C65.99700993181894 20.735627584532306, 65.6967889014316 20.945048778971575, 64.9506376572552 21.465531586542262 C64.53849157579555 21.715376963162317, 64.1263454943359 21.965222339782375, 63.54662830070086 22.316650309360313 C63.21658803710736 22.488832103476163, 62.88654777351386 22.661013897592014, 62.09097226814847 23.07606512915071 C61.65101252296398 23.270822257401743, 61.21105277777949 23.465579385652774, 60.58965116247299 23.74065544752498 C60.268249290701085 23.85893430734337, 59.94684741892919 23.977213167161764, 59.048834234130005 24.307690320310744 C58.69553881262177 24.41254654692888, 58.342243391113534 24.517402773547012, 57.474853030382285 24.774839679587135 C57.01133225378506 24.880635272089705, 56.547811477187835 24.98643086459228, 55.87417537761391 25.140183908433663 C55.27300713992368 25.23737612697411, 54.67183890223344 25.33456834551455, 54.25337880364443 25.40222172904789 C53.66189646971888 25.459281318440105, 53.070414135793335 25.51634090783232, 52.61912350925601 25.55987637181799 C51.975414301121795 25.58051887321889, 51.33170509298758 25.60116137461979, 50.97812500000001 25.6125 C50.97812500000001 25.6125, 50.978125000000006 25.6125, 50.978125000000006 25.6125 C18.50494885250292 25.6125, -13.968227294994165 25.6125, -50.978125 25.6125 C-51.38909173551417 25.599321096690286, -51.80005847102834 25.586142193380567, -52.619123509256006 25.55987637181799 C-53.111347016740915 25.5123921620363, -53.60357052422582 25.46490795225461, -54.253378803644424 25.40222172904789 C-54.87320231688359 25.302013470230516, -55.49302583012276 25.201805211413145, -55.8741753776139 25.140183908433663 C-56.3762608198412 25.025586182658987, -56.878346262068504 24.910988456884315, -57.474853030382256 24.774839679587142 C-57.94802509620433 24.63440469418201, -58.42119716202641 24.493969708776874, -59.04883423412998 24.30769032031076 C-59.413371885278245 24.17353709493909, -59.777909536426506 24.03938386956742, -60.589651162472975 23.740655447524983 C-60.896204789039565 23.60495325063419, -61.20275841560616 23.469251053743395, -62.09097226814846 23.076065129150713 C-62.43155170680729 22.898385054153945, -62.77213114546611 22.720704979157176, -63.54662830070085 22.316650309360316 C-63.933180132541274 22.082320317267943, -64.3197319643817 21.847990325175566, -64.95063765725517 21.46553158654228 C-65.39696693040695 21.154191606874434, -65.84329620355871 20.84285162720659, -66.29723096220627 20.52620639009304 C-66.8001058475679 20.125177051079845, -67.30298073292954 19.72414771206665, -67.58087477482073 19.502534608729462 C-67.98695299004942 19.13374511789958, -68.3930312052781 18.764955627069693, -68.7962943273318 18.39872272937806 C-69.04496027934647 18.141954718068558, -69.29362623136116 17.885186706759058, -69.93849520009152 17.219306551817976 C-70.2895531302422 16.806933931300886, -70.64061106039286 16.3945613107838, -71.00278384471241 15.969132550106817 C-71.23151668365708 15.66265138391127, -71.46024952260174 15.35617021771572, -71.98478687086453 14.65333795737908 C-72.31898975807567 14.13991257658191, -72.65319264528682 13.626487195784739, -72.88046901747443 13.277329655853338 C-73.1100701384651 12.869649615899785, -73.33967125945578 12.461969575946235, -73.68614973447848 11.846761958793396 C-73.94765376919719 11.303743235409984, -74.2091578039159 10.760724512026574, -74.3985183069925 10.367513375722321 C-74.58000943630086 9.919226777438391, -74.76150056560923 9.47094017915446, -75.01464745974948 8.845662456365757 C-75.20936214813601 8.259212838518032, -75.40407683652255 7.6727632206703085, -75.53200538590147 7.287462812587319 C-75.66662422289416 6.774102842961209, -75.80124305988683 6.260742873335099, -75.94846615075696 5.699317420956109 C-76.04108375628994 5.223745591282141, -76.13370136182292 4.748173761608173, -76.26231842770261 4.087752311542438 C-76.3197129932038 3.6426113953542028, -76.37710755870496 3.1974704791659674, -76.47227253041135 2.4593897510605185 C-76.50938080235667 1.8813984622540771, -76.546489074302 1.303407173447636, -76.57746571244013 0.8209210305540211 C-76.57746571244013 0.4465622393866026, -76.57746571244013 0.07220344821918412, -76.57746571244013 -0.8209210305540087 C-76.54909743162673 -1.2627799026868247, -76.52072915081332 -1.704638774819641, -76.47227253041135 -2.459389751060483 C-76.41536107703232 -2.900783745030605, -76.35844962365329 -3.3421777390007272, -76.26231842770261 -4.087752311542426 C-76.16829154292317 -4.570560492295666, -76.07426465814375 -5.053368673048906, -75.94846615075696 -5.699317420956097 C-75.80771394502595 -6.2360665838002936, -75.66696173929493 -6.772815746644491, -75.53200538590148 -7.2874628125873055 C-75.34747131878085 -7.843250021243863, -75.16293725166021 -8.39903722990042, -75.0146474597495 -8.845662456365725 C-74.82337345300505 -9.318112951055854, -74.63209944626061 -9.790563445745983, -74.3985183069925 -10.367513375722307 C-74.1234115581332 -10.93877842607009, -73.84830480927391 -11.510043476417875, -73.68614973447848 -11.846761958793385 C-73.50301294944178 -12.171939865236425, -73.3198761644051 -12.497117771679463, -72.88046901747444 -13.277329655853329 C-72.53071341739805 -13.814648180099672, -72.18095781732166 -14.351966704346017, -71.98478687086454 -14.65333795737907 C-71.67240563847656 -15.071900350263242, -71.36002440608858 -15.490462743147413, -71.00278384471243 -15.969132550106808 C-70.66464006955096 -16.366335469337354, -70.32649629438947 -16.763538388567902, -69.93849520009154 -17.21930655181797 C-69.56467925454984 -17.605302206449664, -69.19086330900815 -17.991297861081364, -68.79629432733182 -18.398722729378033 C-68.35533209594742 -18.799192960700054, -67.914369864563 -19.199663192022072, -67.58087477482076 -19.502534608729437 C-67.11332307517569 -19.875394647123116, -66.64577137553063 -20.248254685516798, -66.29723096220629 -20.526206390093034 C-65.94282412721398 -20.77342525615905, -65.58841729222166 -21.020644122225068, -64.9506376572552 -21.46553158654226 C-64.66579518481375 -21.638204767256436, -64.3809527123723 -21.810877947970614, -63.54662830070087 -22.31665030936031 C-63.02843936520266 -22.58698914509387, -62.51025042970445 -22.857327980827435, -62.09097226814847 -23.07606512915071 C-61.693636627830486 -23.251953830576486, -61.2963009875125 -23.427842532002263, -60.58965116247299 -23.740655447524976 C-60.0624261876627 -23.934679111869404, -59.535201212852414 -24.128702776213835, -59.04883423413001 -24.307690320310744 C-58.556463384746365 -24.453823403900483, -58.06409253536271 -24.59995648749022, -57.47485303038229 -24.774839679587135 C-56.83767705856524 -24.92027093719258, -56.2005010867482 -25.06570219479802, -55.874175377613916 -25.14018390843366 C-55.44579811763526 -25.209440621711742, -55.01742085765661 -25.278697334989825, -54.25337880364443 -25.40222172904789 C-53.74132490197804 -25.45161895310673, -53.22927100031165 -25.50101617716557, -52.61912350925601 -25.55987637181799 C-52.03117569870908 -25.57873071373124, -51.44322788816214 -25.597585055644494, -50.97812500000001 -25.6125 C-50.97812500000001 -25.6125, -50.978125000000006 -25.6125, -50.978125000000006 -25.6125" stroke="none" stroke-width="0" fill="#17202c"></path><path d="M-50.978125000000006 -25.6125 C-15.976963622912407 -25.6125, 19.02419775417519 -25.6125, 50.978125000000006 -25.6125 M-50.978125000000006 -25.6125 C-29.251236696864307 -25.6125, -7.524348393728609 -25.6125, 50.978125000000006 -25.6125 M50.978125000000006 -25.6125 C50.978125000000006 -25.6125, 50.978125000000006 -25.6125, 50.978125000000006 -25.6125 M50.978125000000006 -25.6125 C50.978125000000006 -25.6125, 50.978125000000006 -25.6125, 50.978125000000006 -25.6125 M50.978125000000006 -25.6125 C51.41101487562561 -25.598618064257714, 51.843904751251216 -25.584736128515427, 52.61912350925601 -25.55987637181799 M50.978125000000006 -25.6125 C51.51316086856578 -25.595342441079236, 52.04819673713155 -25.578184882158475, 52.61912350925601 -25.55987637181799 M52.61912350925601 -25.55987637181799 C52.98855665975177 -25.52423760009803, 53.35798981024753 -25.488598828378073, 54.25337880364441 -25.40222172904789 M52.61912350925601 -25.55987637181799 C53.047784938022495 -25.51852391932568, 53.47644636678898 -25.477171466833372, 54.25337880364441 -25.40222172904789 M54.25337880364441 -25.40222172904789 C54.818477715077506 -25.3108609194549, 55.38357662651061 -25.219500109861904, 55.8741753776139 -25.140183908433663 M54.25337880364441 -25.40222172904789 C54.795132712063285 -25.314635158499037, 55.33688662048216 -25.22704858795018, 55.8741753776139 -25.140183908433663 M55.8741753776139 -25.140183908433663 C56.20477684502763 -25.064726280872673, 56.53537831244136 -24.98926865331168, 57.474853030382256 -24.774839679587142 M55.8741753776139 -25.140183908433663 C56.48419085408603 -25.000951856651902, 57.09420633055816 -24.861719804870138, 57.474853030382256 -24.774839679587142 M57.474853030382256 -24.774839679587142 C57.979578804013826 -24.625039719332943, 58.48430457764539 -24.475239759078743, 59.04883423412999 -24.30769032031075 M57.474853030382256 -24.774839679587142 C57.94960267409725 -24.633936477344264, 58.42435231781225 -24.493033275101386, 59.04883423412999 -24.30769032031075 M59.04883423412999 -24.30769032031075 C59.6292093940996 -24.09410689651277, 60.209584554069195 -23.88052347271479, 60.589651162472975 -23.740655447524983 M59.04883423412999 -24.30769032031075 C59.48361013446923 -24.147688769961544, 59.91838603480847 -23.98768721961234, 60.589651162472975 -23.740655447524983 M60.589651162472975 -23.740655447524983 C61.091330408165376 -23.51857692724303, 61.593009653857784 -23.296498406961074, 62.09097226814846 -23.07606512915071 M60.589651162472975 -23.740655447524983 C61.077256625940066 -23.52480697315026, 61.56486208940716 -23.30895849877553, 62.09097226814846 -23.07606512915071 M62.09097226814846 -23.07606512915071 C62.57050553913873 -22.825892928830807, 63.050038810128996 -22.57572072851091, 63.54662830070086 -22.316650309360316 M62.09097226814846 -23.07606512915071 C62.56185384703452 -22.830406511059902, 63.03273542592058 -22.58474789296909, 63.54662830070086 -22.316650309360316 M63.54662830070086 -22.316650309360316 C63.94146295733096 -22.077299220205155, 64.33629761396107 -21.837948131049995, 64.95063765725519 -21.46553158654227 M63.54662830070086 -22.316650309360316 C64.08501995765565 -21.990274122973755, 64.62341161461043 -21.663897936587194, 64.95063765725519 -21.46553158654227 M64.95063765725519 -21.46553158654227 C65.23211323223605 -21.26918641031687, 65.51358880721692 -21.072841234091474, 66.29723096220627 -20.52620639009304 M64.95063765725519 -21.46553158654227 C65.3427481610376 -21.192012273293788, 65.73485866482002 -20.918492960045306, 66.29723096220627 -20.52620639009304 M66.29723096220627 -20.52620639009304 C66.64173760848317 -20.251471507394097, 66.98624425476005 -19.97673662469515, 67.58087477482073 -19.50253460872946 M66.29723096220627 -20.52620639009304 C66.74128315219846 -20.172086585299315, 67.18533534219065 -19.81796678050559, 67.58087477482073 -19.50253460872946 M67.58087477482073 -19.50253460872946 C67.8266876541635 -19.279293855562734, 68.07250053350629 -19.05605310239601, 68.7962943273318 -18.398722729378047 M67.58087477482073 -19.50253460872946 C67.82569010121551 -19.280199806756297, 68.0705054276103 -19.057865004783135, 68.7962943273318 -18.398722729378047 M68.7962943273318 -18.398722729378047 C69.15139554646787 -18.03205156626776, 69.50649676560396 -17.665380403157474, 69.93849520009152 -17.219306551817983 M68.7962943273318 -18.398722729378047 C69.1115060974502 -18.073240697363172, 69.42671786756863 -17.747758665348293, 69.93849520009152 -17.219306551817983 M69.93849520009152 -17.219306551817983 C70.35428860620797 -16.730891957678544, 70.77008201232444 -16.242477363539102, 71.00278384471241 -15.969132550106815 M69.93849520009152 -17.219306551817983 C70.2025793475713 -16.909098285374547, 70.46666349505108 -16.598890018931108, 71.00278384471241 -15.969132550106815 M71.00278384471241 -15.969132550106815 C71.20415497026181 -15.699313587157551, 71.40552609581121 -15.429494624208287, 71.98478687086453 -14.653337957379076 M71.00278384471241 -15.969132550106815 C71.29016841252525 -15.584063410510339, 71.57755298033808 -15.198994270913865, 71.98478687086453 -14.653337957379076 M71.98478687086453 -14.653337957379076 C72.2144760508469 -14.300473696745303, 72.44416523082926 -13.94760943611153, 72.88046901747444 -13.277329655853325 M71.98478687086453 -14.653337957379076 C72.25918171842652 -14.231793786190378, 72.5335765659885 -13.810249615001682, 72.88046901747444 -13.277329655853325 M72.88046901747444 -13.277329655853325 C73.07239487720173 -12.936545857306813, 73.26432073692902 -12.5957620587603, 73.68614973447848 -11.846761958793394 M72.88046901747444 -13.277329655853325 C73.19701365607881 -12.715272596390834, 73.51355829468318 -12.153215536928341, 73.68614973447848 -11.846761958793394 M73.68614973447848 -11.846761958793394 C73.85158609668419 -11.503229812902147, 74.0170224588899 -11.1596976670109, 74.3985183069925 -10.367513375722318 M73.68614973447848 -11.846761958793394 C73.88750811542099 -11.428636972387103, 74.0888664963635 -11.010511985980814, 74.3985183069925 -10.367513375722318 M74.3985183069925 -10.367513375722318 C74.57628456121131 -9.92842729092513, 74.75405081543012 -9.489341206127941, 75.01464745974948 -8.845662456365755 M74.3985183069925 -10.367513375722318 C74.52478600562033 -10.055629718891716, 74.65105370424814 -9.743746062061115, 75.01464745974948 -8.845662456365755 M75.01464745974948 -8.845662456365755 C75.12485301037133 -8.513740896762735, 75.23505856099315 -8.181819337159716, 75.53200538590147 -7.287462812587326 M75.01464745974948 -8.845662456365755 C75.19438741163262 -8.304314358966007, 75.37412736351575 -7.762966261566259, 75.53200538590147 -7.287462812587326 M75.53200538590147 -7.287462812587326 C75.66516704009963 -6.7796597125037055, 75.79832869429781 -6.271856612420084, 75.94846615075696 -5.699317420956105 M75.53200538590147 -7.287462812587326 C75.63153813712596 -6.907901294401098, 75.73107088835044 -6.52833977621487, 75.94846615075696 -5.699317420956105 M75.94846615075696 -5.699317420956105 C76.06249096555477 -5.1138240961225, 76.17651578035257 -4.528330771288895, 76.26231842770261 -4.0877523115424355 M75.94846615075696 -5.699317420956105 C76.02655301574761 -5.298357872893905, 76.10463988073825 -4.897398324831705, 76.26231842770261 -4.0877523115424355 M76.26231842770261 -4.0877523115424355 C76.32894158198488 -3.5710362831590348, 76.39556473626715 -3.054320254775634, 76.47227253041135 -2.459389751060504 M76.26231842770261 -4.0877523115424355 C76.33928590897847 -3.4908077257151273, 76.41625339025434 -2.8938631398878187, 76.47227253041135 -2.459389751060504 M76.47227253041135 -2.459389751060504 C76.49520177325088 -2.1022482856829527, 76.51813101609044 -1.745106820305402, 76.57746571244013 -0.820921030554018 M76.47227253041135 -2.459389751060504 C76.5010868840538 -2.0105829345516746, 76.52990123769625 -1.5617761180428458, 76.57746571244013 -0.820921030554018 M76.57746571244013 -0.820921030554018 C76.57746571244013 -0.45068162152170255, 76.57746571244013 -0.0804422124893871, 76.57746571244013 0.8209210305540118 M76.57746571244013 -0.820921030554018 C76.57746571244013 -0.2859405049234488, 76.57746571244013 0.2490400207071204, 76.57746571244013 0.8209210305540118 M76.57746571244013 0.8209210305540118 C76.54187813431662 1.3752262856038038, 76.5062905561931 1.9295315406535956, 76.47227253041135 2.4593897510604865 M76.57746571244013 0.8209210305540118 C76.54512197396393 1.324700864716684, 76.51277823548772 1.8284806988793565, 76.47227253041135 2.4593897510604865 M76.47227253041135 2.4593897510604865 C76.42956925667916 2.7905879094121535, 76.38686598294697 3.1217860677638205, 76.26231842770261 4.087752311542418 M76.47227253041135 2.4593897510604865 C76.39223030943174 3.0801814108540055, 76.31218808845213 3.7009730706475246, 76.26231842770261 4.087752311542418 M76.26231842770261 4.087752311542418 C76.14250043809926 4.702992364614499, 76.02268244849593 5.318232417686579, 75.94846615075696 5.6993174209561 M76.26231842770261 4.087752311542418 C76.144616489094 4.6921268899840705, 76.0269145504854 5.296501468425723, 75.94846615075696 5.6993174209561 M75.94846615075696 5.6993174209561 C75.85271895847393 6.06444296222692, 75.7569717661909 6.429568503497739, 75.53200538590147 7.287462812587309 M75.94846615075696 5.6993174209561 C75.80307687567046 6.253749738971328, 75.65768760058397 6.808182056986556, 75.53200538590147 7.287462812587309 M75.53200538590147 7.287462812587309 C75.3524481262661 7.82826067004484, 75.17289086663074 8.369058527502371, 75.0146474597495 8.845662456365737 M75.53200538590147 7.287462812587309 C75.35864160631661 7.809606894929763, 75.18527782673175 8.331750977272216, 75.0146474597495 8.845662456365737 M75.0146474597495 8.845662456365737 C74.83634628847325 9.286069796636689, 74.658045117197 9.726477136907638, 74.3985183069925 10.36751337572231 M75.0146474597495 8.845662456365737 C74.83116534973621 9.298866815483832, 74.64768323972292 9.752071174601927, 74.3985183069925 10.36751337572231 M74.3985183069925 10.36751337572231 C74.21003630422963 10.758900287328203, 74.02155430146678 11.150287198934095, 73.68614973447848 11.846761958793389 M74.3985183069925 10.36751337572231 C74.25505942409028 10.66540881559715, 74.11160054118805 10.963304255471988, 73.68614973447848 11.846761958793389 M73.68614973447848 11.846761958793389 C73.47066529772238 12.22937639641915, 73.25518086096629 12.611990834044914, 72.88046901747444 13.27732965585332 M73.68614973447848 11.846761958793389 C73.47467368051022 12.222259106886568, 73.26319762654197 12.59775625497975, 72.88046901747444 13.27732965585332 M72.88046901747444 13.27732965585332 C72.60663710023096 13.69800901490485, 72.33280518298746 14.118688373956378, 71.98478687086454 14.653337957379062 M72.88046901747444 13.27732965585332 C72.62298348278621 13.672896581681652, 72.36549794809798 14.068463507509984, 71.98478687086454 14.653337957379062 M71.98478687086454 14.653337957379062 C71.67075473811613 15.0741124063461, 71.35672260536772 15.494886855313139, 71.00278384471243 15.969132550106808 M71.98478687086454 14.653337957379062 C71.6124854168845 15.152187988352118, 71.24018396290445 15.651038019325174, 71.00278384471243 15.969132550106808 M71.00278384471243 15.969132550106808 C70.67386453620983 16.355499885912803, 70.34494522770726 16.7418672217188, 69.93849520009154 17.21930655181797 M71.00278384471243 15.969132550106808 C70.74126877809718 16.276323027981913, 70.47975371148193 16.58351350585702, 69.93849520009154 17.21930655181797 M69.93849520009154 17.21930655181797 C69.67470547544833 17.49169110005125, 69.41091575080512 17.764075648284532, 68.79629432733181 18.398722729378044 M69.93849520009154 17.21930655181797 C69.48255953541559 17.69009755861012, 69.02662387073963 18.16088856540227, 68.79629432733181 18.398722729378044 M68.79629432733181 18.398722729378044 C68.31964075648249 18.83160689086101, 67.84298718563316 19.264491052343974, 67.58087477482076 19.50253460872944 M68.79629432733181 18.398722729378044 C68.46306876683238 18.701349366758432, 68.12984320633295 19.003976004138824, 67.58087477482076 19.50253460872944 M67.58087477482076 19.50253460872944 C67.2791871685432 19.74312244649142, 66.97749956226566 19.983710284253394, 66.29723096220629 20.526206390093037 M67.58087477482076 19.50253460872944 C67.29945657890732 19.726958131117698, 67.0180383829939 19.951381653505955, 66.29723096220629 20.526206390093037 M66.29723096220629 20.526206390093037 C65.83223938116726 20.850564387864743, 65.36724780012824 21.174922385636446, 64.9506376572552 21.465531586542262 M66.29723096220629 20.526206390093037 C65.9367662616241 20.777650960953782, 65.5763015610419 21.029095531814527, 64.9506376572552 21.465531586542262 M64.9506376572552 21.465531586542262 C64.515217108513 21.729486082004954, 64.07979655977078 21.99344057746765, 63.54662830070086 22.316650309360313 M64.9506376572552 21.465531586542262 C64.42673348145723 21.78312537671367, 63.90282930565926 22.100719166885074, 63.54662830070086 22.316650309360313 M63.54662830070086 22.316650309360313 C63.25276771008524 22.469957191257794, 62.95890711946961 22.623264073155273, 62.09097226814847 23.07606512915071 M63.54662830070086 22.316650309360313 C63.21108007485435 22.49170560385554, 62.87553184900784 22.666760898350766, 62.09097226814847 23.07606512915071 M62.09097226814847 23.07606512915071 C61.71112226500654 23.244213457691647, 61.33127226186461 23.41236178623258, 60.58965116247299 23.74065544752498 M62.09097226814847 23.07606512915071 C61.63108895901014 23.27964182815258, 61.171205649871816 23.483218527154452, 60.58965116247299 23.74065544752498 M60.58965116247299 23.74065544752498 C60.072077720620236 23.93112725852324, 59.55450427876748 24.121599069521505, 59.048834234130005 24.307690320310744 M60.58965116247299 23.74065544752498 C60.09117360572907 23.924099796282764, 59.592696048985154 24.107544145040546, 59.048834234130005 24.307690320310744 M59.048834234130005 24.307690320310744 C58.71247817519936 24.40751903303238, 58.376122116268704 24.507347745754014, 57.474853030382285 24.774839679587135 M59.048834234130005 24.307690320310744 C58.583317878786055 24.44585313103162, 58.1178015234421 24.58401594175249, 57.474853030382285 24.774839679587135 M57.474853030382285 24.774839679587135 C56.85632667219078 24.91601428458265, 56.23780031399928 25.057188889578168, 55.87417537761391 25.140183908433663 M57.474853030382285 24.774839679587135 C57.05070368354695 24.871649000169146, 56.62655433671161 24.968458320751157, 55.87417537761391 25.140183908433663 M55.87417537761391 25.140183908433663 C55.45268000355839 25.208328011765513, 55.03118462950288 25.276472115097363, 54.25337880364443 25.40222172904789 M55.87417537761391 25.140183908433663 C55.50418920737977 25.200000403151517, 55.13420303714562 25.25981689786937, 54.25337880364443 25.40222172904789 M54.25337880364443 25.40222172904789 C53.85548242625927 25.44060631403383, 53.457586048874106 25.47899089901977, 52.61912350925601 25.55987637181799 M54.25337880364443 25.40222172904789 C53.82223534397725 25.44381362007611, 53.39109188431006 25.485405511104332, 52.61912350925601 25.55987637181799 M52.61912350925601 25.55987637181799 C52.23898188930632 25.572066773669, 51.85884026935662 25.584257175520012, 50.97812500000001 25.6125 M52.61912350925601 25.55987637181799 C51.966109901287346 25.580817247211666, 51.31309629331869 25.60175812260534, 50.97812500000001 25.6125 M50.97812500000001 25.6125 C50.97812500000001 25.6125, 50.97812500000001 25.6125, 50.978125000000006 25.6125 M50.97812500000001 25.6125 C50.97812500000001 25.6125, 50.97812500000001 25.6125, 50.978125000000006 25.6125 M50.978125000000006 25.6125 C19.06722015069954 25.6125, -12.843684698600924 25.6125, -50.978125 25.6125 M50.978125000000006 25.6125 C22.923023477793908 25.6125, -5.132078044412189 25.6125, -50.978125 25.6125 M-50.978125 25.6125 C-51.477116650430695 25.596498308999013, -51.9761083008614 25.58049661799803, -52.619123509256006 25.55987637181799 M-50.978125 25.6125 C-51.444561730996206 25.59754228190097, -51.91099846199241 25.582584563801944, -52.619123509256006 25.55987637181799 M-52.619123509256006 25.55987637181799 C-53.20786266078619 25.503081413932296, -53.79660181231638 25.4462864560466, -54.253378803644424 25.40222172904789 M-52.619123509256006 25.55987637181799 C-53.236704006713154 25.500299123977516, -53.854284504170295 25.44072187613704, -54.253378803644424 25.40222172904789 M-54.253378803644424 25.40222172904789 C-54.69457353509883 25.330892786382584, -55.135768266553235 25.25956384371728, -55.8741753776139 25.140183908433663 M-54.253378803644424 25.40222172904789 C-54.749281709755195 25.322047992972376, -55.245184615865966 25.24187425689686, -55.8741753776139 25.140183908433663 M-55.8741753776139 25.140183908433663 C-56.21990590780073 25.061273171021075, -56.56563643798755 24.982362433608483, -57.474853030382256 24.774839679587142 M-55.8741753776139 25.140183908433663 C-56.41810779717226 25.01603488316022, -56.96204021673062 24.89188585788678, -57.474853030382256 24.774839679587142 M-57.474853030382256 24.774839679587142 C-57.92514435547123 24.641195577928134, -58.37543568056021 24.507551476269125, -59.04883423412998 24.30769032031076 M-57.474853030382256 24.774839679587142 C-58.012189070037685 24.615361163551842, -58.54952510969312 24.45588264751654, -59.04883423412998 24.30769032031076 M-59.04883423412998 24.30769032031076 C-59.46472428956778 24.154638935464117, -59.88061434500559 24.001587550617472, -60.589651162472975 23.740655447524983 M-59.04883423412998 24.30769032031076 C-59.48438433293798 24.14740385776844, -59.91993443174597 23.987117395226115, -60.589651162472975 23.740655447524983 M-60.589651162472975 23.740655447524983 C-61.008826057387274 23.555099155927888, -61.428000952301566 23.369542864330793, -62.09097226814846 23.076065129150713 M-60.589651162472975 23.740655447524983 C-60.93795634661623 23.58647107461095, -61.28626153075949 23.432286701696917, -62.09097226814846 23.076065129150713 M-62.09097226814846 23.076065129150713 C-62.58748499055899 22.817034759900718, -63.08399771296951 22.558004390650723, -63.54662830070085 22.316650309360316 M-62.09097226814846 23.076065129150713 C-62.651016101295404 22.78389062012315, -63.21105993444234 22.491716111095585, -63.54662830070085 22.316650309360316 M-63.54662830070085 22.316650309360316 C-64.0632662762069 22.003461332506802, -64.57990425171295 21.690272355653292, -64.95063765725517 21.46553158654228 M-63.54662830070085 22.316650309360316 C-63.90512454052579 22.099327782020687, -64.26362078035073 21.882005254681058, -64.95063765725517 21.46553158654228 M-64.95063765725517 21.46553158654228 C-65.30482805742149 21.21846369604156, -65.6590184575878 20.97139580554084, -66.29723096220627 20.52620639009304 M-64.95063765725517 21.46553158654228 C-65.28132427157476 21.23485891958575, -65.61201088589435 21.004186252629218, -66.29723096220627 20.52620639009304 M-66.29723096220627 20.52620639009304 C-66.68766936861648 20.214842150983248, -67.07810777502668 19.90347791187346, -67.58087477482073 19.502534608729462 M-66.29723096220627 20.52620639009304 C-66.79444538115644 20.129691122411653, -67.29165980010661 19.73317585473027, -67.58087477482073 19.502534608729462 M-67.58087477482073 19.502534608729462 C-67.88509959646235 19.226245675062227, -68.18932441810398 18.949956741394995, -68.7962943273318 18.39872272937806 M-67.58087477482073 19.502534608729462 C-68.05933779237154 19.06800715562755, -68.53780080992235 18.63347970252564, -68.7962943273318 18.39872272937806 M-68.7962943273318 18.39872272937806 C-69.25021143416069 17.93001604928967, -69.7041285409896 17.461309369201274, -69.93849520009152 17.219306551817976 M-68.7962943273318 18.39872272937806 C-69.08570973925524 18.099877555119882, -69.37512515117868 17.8010323808617, -69.93849520009152 17.219306551817976 M-69.93849520009152 17.219306551817976 C-70.20398308963225 16.90744937007457, -70.46947097917297 16.595592188331164, -71.00278384471241 15.969132550106817 M-69.93849520009152 17.219306551817976 C-70.2332484552839 16.87307260633367, -70.52800171047626 16.52683866084936, -71.00278384471241 15.969132550106817 M-71.00278384471241 15.969132550106817 C-71.28797249589633 15.587005738740976, -71.57316114708024 15.204878927375134, -71.98478687086453 14.65333795737908 M-71.00278384471241 15.969132550106817 C-71.39542721877501 15.443026199410182, -71.78807059283761 14.916919848713547, -71.98478687086453 14.65333795737908 M-71.98478687086453 14.65333795737908 C-72.310694656213 14.152656080589722, -72.63660244156146 13.651974203800364, -72.88046901747443 13.277329655853338 M-71.98478687086453 14.65333795737908 C-72.33784838401009 14.110940662896532, -72.69090989715565 13.568543368413984, -72.88046901747443 13.277329655853338 M-72.88046901747443 13.277329655853338 C-73.05007509611409 12.976176888750828, -73.21968117475375 12.675024121648319, -73.68614973447848 11.846761958793396 M-72.88046901747443 13.277329655853338 C-73.04995301501494 12.97639365610443, -73.21943701255543 12.675457656355523, -73.68614973447848 11.846761958793396 M-73.68614973447848 11.846761958793396 C-73.96174215683777 11.2744883970311, -74.23733457919708 10.702214835268803, -74.3985183069925 10.367513375722321 M-73.68614973447848 11.846761958793396 C-73.9573707677053 11.28356568009744, -74.22859180093212 10.720369401401488, -74.3985183069925 10.367513375722321 M-74.3985183069925 10.367513375722321 C-74.5721960388173 9.938526020284549, -74.74587377064209 9.509538664846776, -75.01464745974948 8.845662456365757 M-74.3985183069925 10.367513375722321 C-74.60096878542504 9.867456779880209, -74.80341926385759 9.367400184038095, -75.01464745974948 8.845662456365757 M-75.01464745974948 8.845662456365757 C-75.13101258125268 8.495189250662449, -75.24737770275586 8.144716044959143, -75.53200538590147 7.287462812587319 M-75.01464745974948 8.845662456365757 C-75.21245522614262 8.249896980377198, -75.41026299253575 7.654131504388638, -75.53200538590147 7.287462812587319 M-75.53200538590147 7.287462812587319 C-75.64132702435153 6.870572024879462, -75.75064866280157 6.4536812371716055, -75.94846615075696 5.699317420956109 M-75.53200538590147 7.287462812587319 C-75.67806224660467 6.7304847012821565, -75.82411910730788 6.173506589976994, -75.94846615075696 5.699317420956109 M-75.94846615075696 5.699317420956109 C-76.01202203241074 5.372971401204307, -76.07557791406451 5.046625381452504, -76.26231842770261 4.087752311542438 M-75.94846615075696 5.699317420956109 C-76.03904706308441 5.234203580437262, -76.12962797541186 4.769089739918414, -76.26231842770261 4.087752311542438 M-76.26231842770261 4.087752311542438 C-76.30970537617023 3.7202284968389607, -76.35709232463785 3.352704682135484, -76.47227253041135 2.4593897510605185 M-76.26231842770261 4.087752311542438 C-76.318790545019 3.6497657213174346, -76.37526266233539 3.211779131092431, -76.47227253041135 2.4593897510605185 M-76.47227253041135 2.4593897510605185 C-76.50144317522587 2.005033411953498, -76.53061382004041 1.5506770728464774, -76.57746571244013 0.8209210305540211 M-76.47227253041135 2.4593897510605185 C-76.50592132141168 1.9352826704151078, -76.53957011241201 1.4111755897696971, -76.57746571244013 0.8209210305540211 M-76.57746571244013 0.8209210305540211 C-76.57746571244013 0.2212510378957041, -76.57746571244013 -0.3784189547626129, -76.57746571244013 -0.8209210305540087 M-76.57746571244013 0.8209210305540211 C-76.57746571244013 0.36760399002735555, -76.57746571244013 -0.08571305049931, -76.57746571244013 -0.8209210305540087 M-76.57746571244013 -0.8209210305540087 C-76.55632635361043 -1.1501836077098266, -76.53518699478074 -1.4794461848656448, -76.47227253041135 -2.459389751060483 M-76.57746571244013 -0.8209210305540087 C-76.53656666174962 -1.4579567581781614, -76.49566761105912 -2.094992485802314, -76.47227253041135 -2.459389751060483 M-76.47227253041135 -2.459389751060483 C-76.4194922685662 -2.868743039289803, -76.36671200672107 -3.278096327519122, -76.26231842770261 -4.087752311542426 M-76.47227253041135 -2.459389751060483 C-76.40061436578539 -3.015156325394302, -76.32895620115943 -3.570922899728121, -76.26231842770261 -4.087752311542426 M-76.26231842770261 -4.087752311542426 C-76.14443938484627 -4.693036282865194, -76.02656034198992 -5.298320254187962, -75.94846615075696 -5.699317420956097 M-76.26231842770261 -4.087752311542426 C-76.18147650630723 -4.5028584919615176, -76.10063458491186 -4.91796467238061, -75.94846615075696 -5.699317420956097 M-75.94846615075696 -5.699317420956097 C-75.83341074395301 -6.138073552428314, -75.71835533714906 -6.576829683900531, -75.53200538590148 -7.2874628125873055 M-75.94846615075696 -5.699317420956097 C-75.85333804087892 -6.062082132704671, -75.75820993100089 -6.424846844453244, -75.53200538590148 -7.2874628125873055 M-75.53200538590148 -7.2874628125873055 C-75.38921494795356 -7.717524861119725, -75.24642451000565 -8.147586909652144, -75.0146474597495 -8.845662456365725 M-75.53200538590148 -7.2874628125873055 C-75.39216524265171 -7.708639043554552, -75.25232509940193 -8.129815274521796, -75.0146474597495 -8.845662456365725 M-75.0146474597495 -8.845662456365725 C-74.7959664412193 -9.385808800045169, -74.57728542268912 -9.925955143724613, -74.3985183069925 -10.367513375722307 M-75.0146474597495 -8.845662456365725 C-74.79652652315883 -9.384425386826102, -74.57840558656815 -9.923188317286481, -74.3985183069925 -10.367513375722307 M-74.3985183069925 -10.367513375722307 C-74.19649144337627 -10.787026480703792, -73.99446457976006 -11.206539585685277, -73.68614973447848 -11.846761958793385 M-74.3985183069925 -10.367513375722307 C-74.25321669502888 -10.66923528192121, -74.10791508306527 -10.970957188120114, -73.68614973447848 -11.846761958793385 M-73.68614973447848 -11.846761958793385 C-73.4204140798148 -12.318602522301646, -73.15467842515113 -12.790443085809907, -72.88046901747444 -13.277329655853329 M-73.68614973447848 -11.846761958793385 C-73.47036707897195 -12.22990591400848, -73.25458442346542 -12.613049869223575, -72.88046901747444 -13.277329655853329 M-72.88046901747444 -13.277329655853329 C-72.56227616747469 -13.766159320196824, -72.24408331747496 -14.254988984540319, -71.98478687086454 -14.65333795737907 M-72.88046901747444 -13.277329655853329 C-72.6529290729458 -13.62689211367966, -72.42538912841715 -13.976454571505991, -71.98478687086454 -14.65333795737907 M-71.98478687086454 -14.65333795737907 C-71.61049522823849 -15.154854659827848, -71.23620358561246 -15.656371362276627, -71.00278384471243 -15.969132550106808 M-71.98478687086454 -14.65333795737907 C-71.70657545351108 -15.026115911051182, -71.42836403615762 -15.398893864723293, -71.00278384471243 -15.969132550106808 M-71.00278384471243 -15.969132550106808 C-70.6513434813638 -16.38195439841929, -70.29990311801517 -16.794776246731768, -69.93849520009154 -17.21930655181797 M-71.00278384471243 -15.969132550106808 C-70.75652383464214 -16.25840357052691, -70.51026382457184 -16.547674590947008, -69.93849520009154 -17.21930655181797 M-69.93849520009154 -17.21930655181797 C-69.54710550957604 -17.62344854096642, -69.15571581906053 -18.02759053011487, -68.79629432733182 -18.398722729378033 M-69.93849520009154 -17.21930655181797 C-69.5649151391518 -17.605058636231664, -69.19133507821206 -17.99081072064536, -68.79629432733182 -18.398722729378033 M-68.79629432733182 -18.398722729378033 C-68.36773329704924 -18.78793051797717, -67.93917226676666 -19.17713830657631, -67.58087477482076 -19.502534608729437 M-68.79629432733182 -18.398722729378033 C-68.44466828948697 -18.71806019343358, -68.09304225164212 -19.037397657489127, -67.58087477482076 -19.502534608729437 M-67.58087477482076 -19.502534608729437 C-67.23890666212117 -19.775245078453704, -66.89693854942158 -20.047955548177967, -66.29723096220629 -20.526206390093034 M-67.58087477482076 -19.502534608729437 C-67.2272733607091 -19.78452232675466, -66.87367194659747 -20.06651004477989, -66.29723096220629 -20.526206390093034 M-66.29723096220629 -20.526206390093034 C-65.76479488716735 -20.89761074725398, -65.23235881212842 -21.269015104414933, -64.9506376572552 -21.46553158654226 M-66.29723096220629 -20.526206390093034 C-65.81330639887074 -20.863771216719197, -65.3293818355352 -21.201336043345357, -64.9506376572552 -21.46553158654226 M-64.9506376572552 -21.46553158654226 C-64.42226305448597 -21.785835375814788, -63.89388845171675 -22.106139165087317, -63.54662830070087 -22.31665030936031 M-64.9506376572552 -21.46553158654226 C-64.46347514081799 -21.76085236689122, -63.97631262438077 -22.056173147240184, -63.54662830070087 -22.31665030936031 M-63.54662830070087 -22.31665030936031 C-63.1909064118163 -22.502230190940647, -62.835184522931726 -22.687810072520982, -62.09097226814847 -23.07606512915071 M-63.54662830070087 -22.31665030936031 C-63.03240042309433 -22.584922663728964, -62.51817254548779 -22.85319501809762, -62.09097226814847 -23.07606512915071 M-62.09097226814847 -23.07606512915071 C-61.64163217535097 -23.274974659031894, -61.19229208255347 -23.473884188913082, -60.58965116247299 -23.740655447524976 M-62.09097226814847 -23.07606512915071 C-61.742468793801436 -23.230337279255885, -61.3939653194544 -23.384609429361056, -60.58965116247299 -23.740655447524976 M-60.58965116247299 -23.740655447524976 C-59.99642139582329 -23.958969485407916, -59.40319162917359 -24.177283523290857, -59.04883423413001 -24.307690320310744 M-60.58965116247299 -23.740655447524976 C-60.025749130115415 -23.94817660808581, -59.46184709775784 -24.155697768646643, -59.04883423413001 -24.307690320310744 M-59.04883423413001 -24.307690320310744 C-58.597896535413405 -24.44152626226955, -58.14695883669679 -24.57536220422836, -57.47485303038229 -24.774839679587135 M-59.04883423413001 -24.307690320310744 C-58.57272964628218 -24.448995662860003, -58.09662505843434 -24.590301005409263, -57.47485303038229 -24.774839679587135 M-57.47485303038229 -24.774839679587135 C-57.131760924169775 -24.853148213944912, -56.78866881795726 -24.931456748302693, -55.874175377613916 -25.14018390843366 M-57.47485303038229 -24.774839679587135 C-56.84758163159654 -24.918010283031563, -56.22031023281079 -25.061180886475995, -55.874175377613916 -25.14018390843366 M-55.874175377613916 -25.14018390843366 C-55.517049340600664 -25.197921276544182, -55.15992330358741 -25.255658644654705, -54.25337880364443 -25.40222172904789 M-55.874175377613916 -25.14018390843366 C-55.478043601023806 -25.20422742202494, -55.081911824433696 -25.268270935616222, -54.25337880364443 -25.40222172904789 M-54.25337880364443 -25.40222172904789 C-53.92095410836482 -25.434290339602327, -53.588529413085205 -25.46635895015676, -52.61912350925601 -25.55987637181799 M-54.25337880364443 -25.40222172904789 C-53.83749453466275 -25.442341584302543, -53.421610265681075 -25.48246143955719, -52.61912350925601 -25.55987637181799 M-52.61912350925601 -25.55987637181799 C-52.25375244027042 -25.571593110848713, -51.88838137128482 -25.58330984987944, -50.97812500000001 -25.6125 M-52.61912350925601 -25.55987637181799 C-52.273263781680065 -25.57096742010623, -51.92740405410412 -25.582058468394468, -50.97812500000001 -25.6125 M-50.97812500000001 -25.6125 C-50.97812500000001 -25.6125, -50.97812500000001 -25.6125, -50.978125000000006 -25.6125 M-50.97812500000001 -25.6125 C-50.97812500000001 -25.6125, -50.978125000000006 -25.6125, -50.978125000000006 -25.6125" stroke="#3a4a52" stroke-width="1.3" fill="none" stroke-dasharray="0 0"></path></g><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Columnar</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> file</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(Parquet</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> /</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> ORC)</tspan></tspan></text></g></g></g><g class="node default " id="gd10-flowchart-FOOTER-1" data-look="classic" transform="translate(761.53125, 182.5625)"><rect class="basic label-container" x="-137.9765625" y="-50.712500000000006" width="275.953125" height="101.42500000000001"></rect><g class="label" transform="translate(0, -35.712500000000006)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Footer</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> /</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> file</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> metadata</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">row-group</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> offsets,</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">per-column</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> min/max</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> stats,</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">indexes</tspan></tspan></text></g></g></g><g class="node default " id="gd10-flowchart-RG1-3" data-look="classic" transform="translate(344.328125, 182.5625)"><rect class="basic label-container" x="-111.1796875" y="-24.3125" width="222.359375" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Row</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> group</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> /</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> stripe</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> 1</tspan></tspan></text></g></g></g><g class="node default " id="gd10-flowchart-RG2-5" data-look="classic" transform="translate(1098.5695701111572, 383.01250000000005)"><rect class="basic label-container" x="-111.1796875" y="-24.3125" width="222.359375" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Row</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> group</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> /</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> stripe</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> 2</tspan></tspan></text></g></g></g><g class="node default " id="gd10-flowchart-RGN-7" data-look="classic" transform="translate(1061.58203125, 182.5625)"><rect class="basic label-container" x="-112.07421875" y="-24.3125" width="224.1484375" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Row</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> group</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> /</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> stripe</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> N</tspan></tspan></text></g></g></g><g class="node default " id="gd10-flowchart-CA-9" data-look="classic" transform="translate(103.4375, 383.01250000000005)"><rect class="basic label-container" x="-95.4375" y="-24.3125" width="190.875" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Column</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> chunk</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> A</tspan></tspan></text></g></g></g><g class="node default " id="gd10-flowchart-CB-11" data-look="classic" transform="translate(344.328125, 383.01250000000005)"><rect class="basic label-container" x="-95.453125" y="-24.3125" width="190.90625" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Column</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> chunk</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> B</tspan></tspan></text></g></g></g><g class="node default " id="gd10-flowchart-CC-13" data-look="classic" transform="translate(585.33203125, 383.01250000000005)"><rect class="basic label-container" x="-95.55078125" y="-24.3125" width="191.1015625" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Column</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> chunk</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> C</tspan></tspan></text></g></g></g><g class="node default " id="gd10-flowchart-READER-14" data-look="classic" transform="translate(480.1796875, 33.6125)"><g class="basic label-container outer-path"><path d="M-83.5703125 -16.8125 C-38.70218105523597 -16.8125, 6.165950389528064 -16.8125, 83.5703125 -16.8125 C83.5703125 -16.8125, 83.5703125 -16.8125, 83.5703125 -16.8125 C83.7902861621119 -16.80544587280883, 84.01025982422381 -16.79839174561766, 84.64749307342574 -16.77795691561503 C84.88173254883915 -16.75536011513608, 85.11597202425257 -16.732763314657138, 85.72024728082076 -16.674469607403328 C86.11396871183635 -16.610815779792027, 86.50769014285193 -16.547161952180726, 86.78416694504182 -16.502463326912288 C87.1423071339409 -16.420720165879214, 87.50044732283999 -16.338977004846143, 87.83488019197858 -16.26264488484368 C88.22589417853443 -16.146593986108204, 88.61690816509028 -16.03054308737273, 88.86806941552213 -15.955999746616866 C89.24194131725987 -15.818411430743403, 89.61581321899762 -15.68082311486994, 89.87948901953447 -15.58378798287999 C90.22772507304414 -15.429634212046762, 90.5759611265538 -15.275480441213535, 90.86498286391395 -15.147539091609422 C91.20272605018728 -14.971338687665462, 91.54046923646061 -14.7951382837215, 91.8205013430662 -14.649045713074486 C92.0612840350783 -14.503081830180589, 92.3020667270904 -14.357117947286692, 92.74211802660236 -14.090356263494073 C93.00791307089825 -13.904949146675275, 93.27370811519415 -13.719542029856475, 93.62604579388356 -13.47376651765502 C93.94766692057773 -13.217282227814046, 94.2692880472719 -12.960797937973071, 94.46865239611219 -12.801810175081075 C94.66717927106153 -12.62151331998536, 94.86570614601087 -12.441216464889642, 95.26647538202111 -12.077248448518045 C95.55212786293166 -11.782288809473075, 95.8377803438422 -11.487329170428103, 96.01623632582874 -11.303058717518391 C96.2187368511209 -11.06519007790392, 96.42123737641305 -10.827321438289449, 96.71485429899376 -10.48242229374996 C96.89076295700703 -10.246720717620603, 97.06667161502028 -10.011019141491246, 97.35945853041132 -9.61871134830398 C97.50626027533842 -9.393184446307863, 97.65306202026554 -9.167657544311746, 97.94740020302739 -8.715475054720704 C98.0891969960943 -8.46370049014812, 98.23099378916122 -8.211925925575537, 98.47626333839607 -7.776425004674043 C98.60788867846338 -7.503102169693152, 98.7395140185307 -7.229779334712261, 98.94387472445335 -6.80541995624525 C99.02995044572816 -6.592811260535608, 99.11602616700297 -6.380202564825966, 99.34831284571159 -5.806449977458242 C99.41707536184461 -5.5993482346846895, 99.48583787797764 -5.392246491911137, 99.68791577917885 -4.783620050234238 C99.7944042537889 -4.377533344149267, 99.90089272839896 -3.9714466380642954, 99.9612880235569 -3.7411332021405377 C100.01555633368994 -3.462476899218805, 100.06982464382298 -3.183820596297072, 100.16730623365544 -2.6832732352486945 C100.20090827301796 -2.4226624534261387, 100.2345103123805 -2.1620516716035834, 100.30512383645839 -1.6143871230729026 C100.33193474241963 -1.1967856213528014, 100.35874564838088 -0.7791841196327004, 100.37417450987407 -0.5388671479234525 C100.37417450987407 -0.15796068331365015, 100.37417450987407 0.22294578129615217, 100.37417450987407 0.5388671479234484 C100.34756758819762 0.9532914297547298, 100.32096066652117 1.3677157115860112, 100.30512383645839 1.6143871230728912 C100.26837617562487 1.8993947238513333, 100.23162851479134 2.1844023246297755, 100.16730623365544 2.683273235248683 C100.11476593643565 2.9530565570765384, 100.06222563921587 3.222839878904394, 99.9612880235569 3.7411332021405337 C99.87951847608166 4.052955925809723, 99.79774892860641 4.364778649478912, 99.68791577917887 4.7836200502342265 C99.55797508787394 5.174980709207058, 99.42803439656902 5.566341368179889, 99.3483128457116 5.806449977458231 C99.19466057550382 6.185974055536031, 99.04100830529602 6.565498133613829, 98.94387472445335 6.805419956245245 C98.84250936782631 7.0159072881524835, 98.74114401119927 7.226394620059723, 98.47626333839607 7.776425004674039 C98.32845691467082 8.038870277021571, 98.1806504909456 8.301315549369104, 97.94740020302739 8.7154750547207 C97.7259173393239 9.055732209845644, 97.50443447562043 9.395989364970587, 97.35945853041133 9.618711348303972 C97.12371270441017 9.934589278258958, 96.887966878409 10.250467208213944, 96.71485429899376 10.482422293749956 C96.56196045481049 10.662020103033806, 96.40906661062724 10.841617912317655, 96.01623632582874 11.303058717518383 C95.77661846538969 11.550483831413919, 95.53700060495062 11.797908945309457, 95.26647538202111 12.077248448518041 C95.10105700527713 12.227477041546514, 94.93563862853316 12.377705634574987, 94.4686523961122 12.801810175081064 C94.29908717345937 12.937033927826615, 94.12952195080655 13.072257680572166, 93.62604579388358 13.473766517655019 C93.4297107355884 13.610721355114043, 93.23337567729322 13.747676192573067, 92.74211802660236 14.090356263494066 C92.43714001040587 14.275235729162135, 92.1321619942094 14.460115194830205, 91.82050134306621 14.649045713074484 C91.52088284293387 14.805356492678717, 91.22126434280153 14.96166727228295, 90.86498286391395 15.14753909160942 C90.49514256354156 15.311256421661566, 90.12530226316916 15.474973751713712, 89.87948901953449 15.583787982879988 C89.55134309589879 15.70454871612559, 89.22319717226308 15.825309449371193, 88.86806941552213 15.955999746616863 C88.62099931297206 16.029328856156294, 88.37392921042198 16.102657965695723, 87.83488019197861 16.262644884843677 C87.44476729693591 16.351685607412627, 87.0546544018932 16.440726329981572, 86.78416694504183 16.502463326912284 C86.43527841978815 16.55886891800438, 86.08638989453446 16.61527450909647, 85.72024728082077 16.674469607403324 C85.31181841786905 16.713870248604703, 84.90338955491733 16.753270889806082, 84.64749307342574 16.77795691561503 C84.22484921499789 16.791510281528446, 83.80220535657003 16.805063647441862, 83.5703125 16.8125 C83.5703125 16.8125, 83.5703125 16.8125, 83.5703125 16.8125 C47.624740527590745 16.8125, 11.67916855518149 16.8125, -83.5703125 16.8125 C-83.8646346296088 16.803061662166716, -84.15895675921762 16.793623324333435, -84.64749307342572 16.77795691561503 C-84.93976220782373 16.749762063724713, -85.23203134222173 16.7215672118344, -85.72024728082076 16.674469607403324 C-86.07330456747492 16.61739004329723, -86.42636185412907 16.560310479191134, -86.78416694504182 16.502463326912284 C-87.09981173900793 16.430419462464297, -87.41545653297405 16.358375598016305, -87.83488019197858 16.26264488484368 C-88.18841440499932 16.15771778615808, -88.54194861802007 16.052790687472477, -88.86806941552211 15.95599974661687 C-89.13763581619847 15.856796819323478, -89.40720221687484 15.757593892030084, -89.87948901953447 15.58378798287999 C-90.23486771419539 15.426472376688027, -90.5902464088563 15.269156770496062, -90.86498286391394 15.147539091609424 C-91.08728027323642 15.03156667555417, -91.30957768255891 14.915594259498917, -91.8205013430662 14.649045713074488 C-92.03007443868808 14.522001270920288, -92.23964753430997 14.394956828766091, -92.74211802660234 14.090356263494078 C-92.9192664559431 13.966785187817871, -93.09641488528386 13.843214112141663, -93.62604579388356 13.473766517655022 C-93.84639274486402 13.29804568792674, -94.06673969584446 13.122324858198457, -94.46865239611219 12.801810175081076 C-94.66878289624152 12.620056950026486, -94.86891339637086 12.438303724971894, -95.26647538202111 12.077248448518052 C-95.41737495741164 11.921432247841787, -95.56827453280216 11.765616047165524, -96.01623632582874 11.303058717518388 C-96.28240361712821 10.990403471810112, -96.54857090842768 10.677748226101833, -96.71485429899374 10.482422293749961 C-96.87317509465949 10.270286850879074, -97.03149589032522 10.058151408008188, -97.35945853041132 9.618711348303982 C-97.51244763623339 9.383678998434165, -97.66543674205545 9.148646648564347, -97.94740020302737 8.715475054720711 C-98.07712624759978 8.485133326395944, -98.2068522921722 8.254791598071176, -98.47626333839607 7.776425004674045 C-98.59820812198322 7.523204052354947, -98.72015290557037 7.269983100035848, -98.94387472445335 6.8054199562452515 C-99.02963905607184 6.5935803990070205, -99.11540338769034 6.3817408417687895, -99.34831284571159 5.806449977458245 C-99.45616775197199 5.481608184147572, -99.56402265823237 5.156766390836899, -99.68791577917885 4.783620050234233 C-99.75310447580188 4.535027297050807, -99.8182931724249 4.286434543867381, -99.9612880235569 3.74113320214054 C-100.00961242810037 3.4929975981763475, -100.05793683264385 3.2448619942121555, -100.16730623365544 2.6832732352486963 C-100.21287729840796 2.329833056052735, -100.25844836316048 1.9763928768567738, -100.30512383645839 1.614387123072912 C-100.32459167548544 1.3111598160699738, -100.34405951451247 1.0079325090670352, -100.37417450987407 0.5388671479234546 C-100.37417450987407 0.23222500961126719, -100.37417450987407 -0.07441712870092021, -100.37417450987407 -0.5388671479234464 C-100.34795520149494 -0.9472540397731373, -100.32173589311581 -1.3556409316228282, -100.30512383645839 -1.614387123072889 C-100.26443586447795 -1.9299549990043687, -100.2237478924975 -2.2455228749358485, -100.16730623365544 -2.6832732352486883 C-100.1081631420061 -2.9869605109711386, -100.04902005035679 -3.2906477866935893, -99.9612880235569 -3.741133202140532 C-99.87554622176758 -4.068103853095184, -99.78980441997827 -4.395074504049836, -99.68791577917887 -4.783620050234225 C-99.59001861431538 -5.078470713008013, -99.49212144945191 -5.3733213757818, -99.3483128457116 -5.8064499774582226 C-99.26733181044439 -6.006474700230041, -99.18635077517717 -6.206499423001859, -98.94387472445335 -6.8054199562452435 C-98.84642962895697 -7.007766782034505, -98.7489845334606 -7.210113607823765, -98.47626333839607 -7.776425004674037 C-98.31975643717877 -8.054318855827598, -98.16324953596147 -8.33221270698116, -97.94740020302739 -8.715475054720706 C-97.80946823026969 -8.927375604797282, -97.671536257512 -9.13927615487386, -97.35945853041132 -9.618711348303977 C-97.13148803830454 -9.92417103918798, -96.90351754619776 -10.229630730071982, -96.71485429899376 -10.482422293749956 C-96.50750638859415 -10.725984947735668, -96.30015847819455 -10.96954760172138, -96.01623632582874 -11.303058717518383 C-95.85720746559431 -11.46726907222268, -95.69817860535989 -11.631479426926974, -95.26647538202113 -12.077248448518036 C-95.03097982438733 -12.291119283090039, -94.79548426675353 -12.504990117662041, -94.4686523961122 -12.80181017508106 C-94.19986005938713 -13.01616491075483, -93.93106772266205 -13.230519646428599, -93.62604579388358 -13.473766517655017 C-93.33647508999603 -13.675758505373233, -93.04690438610848 -13.877750493091451, -92.74211802660236 -14.090356263494064 C-92.47976587955705 -14.249395676785282, -92.21741373251173 -14.4084350900765, -91.82050134306621 -14.649045713074482 C-91.6050711488096 -14.761435507428533, -91.38964095455297 -14.873825301782585, -90.86498286391395 -15.14753909160942 C-90.5332501673645 -15.29438731587105, -90.20151747081506 -15.44123554013268, -89.87948901953449 -15.583787982879986 C-89.66931497393094 -15.66113397448967, -89.4591409283274 -15.738479966099357, -88.86806941552213 -15.955999746616863 C-88.53123624437194 -16.055970063740848, -88.19440307322174 -16.15594038086483, -87.83488019197861 -16.262644884843677 C-87.42306068081052 -16.356640000894338, -87.01124116964242 -16.450635116944998, -86.78416694504183 -16.502463326912284 C-86.42404002699355 -16.560685854196368, -86.06391310894529 -16.618908381480455, -85.72024728082077 -16.674469607403324 C-85.36816363815294 -16.708434692968957, -85.0160799954851 -16.74239977853459, -84.64749307342574 -16.77795691561503 C-84.30421423345639 -16.788965199861117, -83.96093539348706 -16.799973484107205, -83.5703125 -16.8125 C-83.5703125 -16.8125, -83.5703125 -16.8125, -83.5703125 -16.8125" stroke="none" stroke-width="0" fill="#17202c"></path><path d="M-83.5703125 -16.8125 C-23.97515064173576 -16.8125, 35.62001121652848 -16.8125, 83.5703125 -16.8125 M-83.5703125 -16.8125 C-25.923674106827114 -16.8125, 31.72296428634577 -16.8125, 83.5703125 -16.8125 M83.5703125 -16.8125 C83.5703125 -16.8125, 83.5703125 -16.8125, 83.5703125 -16.8125 M83.5703125 -16.8125 C83.5703125 -16.8125, 83.5703125 -16.8125, 83.5703125 -16.8125 M83.5703125 -16.8125 C83.8752611413546 -16.80272089061828, 84.1802097827092 -16.79294178123656, 84.64749307342574 -16.77795691561503 M83.5703125 -16.8125 C83.88809228052308 -16.802309420959443, 84.20587206104618 -16.79211884191889, 84.64749307342574 -16.77795691561503 M84.64749307342574 -16.77795691561503 C84.98331842358212 -16.745560247974517, 85.31914377373852 -16.713163580334008, 85.72024728082076 -16.674469607403328 M84.64749307342574 -16.77795691561503 C84.98035896196869 -16.74584574367709, 85.31322485051165 -16.713734571739156, 85.72024728082076 -16.674469607403328 M85.72024728082076 -16.674469607403328 C86.0637936415996 -16.618927696034422, 86.40734000237846 -16.563385784665517, 86.78416694504182 -16.502463326912288 M85.72024728082076 -16.674469607403328 C86.07280190334625 -16.617471310135336, 86.42535652587175 -16.560473012867348, 86.78416694504182 -16.502463326912288 M86.78416694504182 -16.502463326912288 C87.15769012265704 -16.41720909908814, 87.53121330027227 -16.33195487126399, 87.83488019197858 -16.26264488484368 M86.78416694504182 -16.502463326912288 C87.04234143964253 -16.4435366832657, 87.30051593424322 -16.384610039619115, 87.83488019197858 -16.26264488484368 M87.83488019197858 -16.26264488484368 C88.20505474018208 -16.15277902202274, 88.57522928838557 -16.0429131592018, 88.86806941552213 -15.955999746616866 M87.83488019197858 -16.26264488484368 C88.15015159238273 -16.169073988097082, 88.46542299278688 -16.075503091350484, 88.86806941552213 -15.955999746616866 M88.86806941552213 -15.955999746616866 C89.15764558521495 -15.849433039357137, 89.44722175490777 -15.742866332097408, 89.87948901953447 -15.58378798287999 M88.86806941552213 -15.955999746616866 C89.23574463118224 -15.820691868501507, 89.60341984684236 -15.685383990386146, 89.87948901953447 -15.58378798287999 M89.87948901953447 -15.58378798287999 C90.17677868398202 -15.452186667213628, 90.47406834842957 -15.320585351547265, 90.86498286391395 -15.147539091609422 M89.87948901953447 -15.58378798287999 C90.22658445747687 -15.430139128723232, 90.57367989541929 -15.276490274566472, 90.86498286391395 -15.147539091609422 M90.86498286391395 -15.147539091609422 C91.18517915296158 -14.980492892708783, 91.50537544200921 -14.813446693808142, 91.8205013430662 -14.649045713074486 M90.86498286391395 -15.147539091609422 C91.14498030968892 -15.00146460349554, 91.4249777554639 -14.85539011538166, 91.8205013430662 -14.649045713074486 M91.8205013430662 -14.649045713074486 C92.14092581139303 -14.454802517351578, 92.46135027971985 -14.260559321628667, 92.74211802660236 -14.090356263494073 M91.8205013430662 -14.649045713074486 C92.12605376437016 -14.463818039654694, 92.4316061856741 -14.278590366234903, 92.74211802660236 -14.090356263494073 M92.74211802660236 -14.090356263494073 C92.93787392610871 -13.953805422134746, 93.13362982561507 -13.817254580775417, 93.62604579388356 -13.47376651765502 M92.74211802660236 -14.090356263494073 C93.09528826909794 -13.84399999082254, 93.44845851159351 -13.597643718151009, 93.62604579388356 -13.47376651765502 M93.62604579388356 -13.47376651765502 C93.84352419459347 -13.30033328043217, 94.06100259530336 -13.126900043209321, 94.46865239611219 -12.801810175081075 M93.62604579388356 -13.47376651765502 C93.90049388558263 -13.254901467895458, 94.1749419772817 -13.036036418135895, 94.46865239611219 -12.801810175081075 M94.46865239611219 -12.801810175081075 C94.68117409914514 -12.608803587402681, 94.89369580217809 -12.41579699972429, 95.26647538202111 -12.077248448518045 M94.46865239611219 -12.801810175081075 C94.64730788442918 -12.639559987556769, 94.82596337274619 -12.477309800032463, 95.26647538202111 -12.077248448518045 M95.26647538202111 -12.077248448518045 C95.48289391173952 -11.853778548292052, 95.69931244145793 -11.630308648066059, 96.01623632582874 -11.303058717518391 M95.26647538202111 -12.077248448518045 C95.44652832200862 -11.891329005359653, 95.62658126199612 -11.70540956220126, 96.01623632582874 -11.303058717518391 M96.01623632582874 -11.303058717518391 C96.1834528873727 -11.106636629436974, 96.35066944891665 -10.910214541355554, 96.71485429899376 -10.48242229374996 M96.01623632582874 -11.303058717518391 C96.27400749548873 -11.000266034040697, 96.53177866514874 -10.697473350563003, 96.71485429899376 -10.48242229374996 M96.71485429899376 -10.48242229374996 C96.91771864129008 -10.210602556394658, 97.12058298358642 -9.938782819039357, 97.35945853041132 -9.61871134830398 M96.71485429899376 -10.48242229374996 C96.95137540090214 -10.165505564708374, 97.18789650281053 -9.84858883566679, 97.35945853041132 -9.61871134830398 M97.35945853041132 -9.61871134830398 C97.58360773981633 -9.274357970167424, 97.80775694922133 -8.930004592030867, 97.94740020302739 -8.715475054720704 M97.35945853041132 -9.61871134830398 C97.59064347358522 -9.26354919373936, 97.8218284167591 -8.908387039174741, 97.94740020302739 -8.715475054720704 M97.94740020302739 -8.715475054720704 C98.13458222344642 -8.383114423231813, 98.32176424386546 -8.050753791742924, 98.47626333839607 -7.776425004674043 M97.94740020302739 -8.715475054720704 C98.15464175168071 -8.347496699604331, 98.36188330033404 -7.9795183444879605, 98.47626333839607 -7.776425004674043 M98.47626333839607 -7.776425004674043 C98.65785166040675 -7.399352968651183, 98.83943998241745 -7.022280932628323, 98.94387472445335 -6.80541995624525 M98.47626333839607 -7.776425004674043 C98.57049479380663 -7.580751371283859, 98.6647262492172 -7.385077737893676, 98.94387472445335 -6.80541995624525 M98.94387472445335 -6.80541995624525 C99.02910148430966 -6.594908211652848, 99.11432824416597 -6.384396467060448, 99.34831284571159 -5.806449977458242 M98.94387472445335 -6.80541995624525 C99.04964858006925 -6.544156487875592, 99.15542243568515 -6.2828930195059325, 99.34831284571159 -5.806449977458242 M99.34831284571159 -5.806449977458242 C99.44058705559031 -5.528534759202296, 99.53286126546905 -5.25061954094635, 99.68791577917885 -4.783620050234238 M99.34831284571159 -5.806449977458242 C99.45853156936721 -5.474488742776288, 99.56875029302284 -5.142527508094333, 99.68791577917885 -4.783620050234238 M99.68791577917885 -4.783620050234238 C99.74994504277139 -4.547075584503023, 99.81197430636391 -4.3105311187718085, 99.9612880235569 -3.7411332021405377 M99.68791577917885 -4.783620050234238 C99.74969906563892 -4.548013601916269, 99.81148235209898 -4.3124071535983, 99.9612880235569 -3.7411332021405377 M99.9612880235569 -3.7411332021405377 C100.01764701084831 -3.4517417138753603, 100.07400599813971 -3.1623502256101834, 100.16730623365544 -2.6832732352486945 M99.9612880235569 -3.7411332021405377 C100.03630540186616 -3.35593481945103, 100.11132278017541 -2.9707364367615225, 100.16730623365544 -2.6832732352486945 M100.16730623365544 -2.6832732352486945 C100.20419713128585 -2.39715471815888, 100.24108802891628 -2.111036201069065, 100.30512383645839 -1.6143871230729026 M100.16730623365544 -2.6832732352486945 C100.19664134295131 -2.455755920422482, 100.22597645224718 -2.22823860559627, 100.30512383645839 -1.6143871230729026 M100.30512383645839 -1.6143871230729026 C100.32748600358057 -1.2660783197285028, 100.34984817070276 -0.9177695163841031, 100.37417450987407 -0.5388671479234525 M100.30512383645839 -1.6143871230729026 C100.33140504359514 -1.2050361081094938, 100.35768625073189 -0.7956850931460852, 100.37417450987407 -0.5388671479234525 M100.37417450987407 -0.5388671479234525 C100.37417450987407 -0.2468098854995972, 100.37417450987407 0.045247376924258065, 100.37417450987407 0.5388671479234484 M100.37417450987407 -0.5388671479234525 C100.37417450987407 -0.18920741165702504, 100.37417450987407 0.1604523246094024, 100.37417450987407 0.5388671479234484 M100.37417450987407 0.5388671479234484 C100.34763332747563 0.9522674874357464, 100.32109214507722 1.3656678269480444, 100.30512383645839 1.6143871230728912 M100.37417450987407 0.5388671479234484 C100.34930067548018 0.9262971964058561, 100.32442684108631 1.3137272448882638, 100.30512383645839 1.6143871230728912 M100.30512383645839 1.6143871230728912 C100.26890484950374 1.8952944336452555, 100.23268586254908 2.17620174421762, 100.16730623365544 2.683273235248683 M100.30512383645839 1.6143871230728912 C100.2687165958895 1.8967544915023709, 100.23230935532061 2.1791218599318505, 100.16730623365544 2.683273235248683 M100.16730623365544 2.683273235248683 C100.10566055938685 2.99981074380004, 100.04401488511824 3.316348252351397, 99.9612880235569 3.7411332021405337 M100.16730623365544 2.683273235248683 C100.08738659332619 3.093643697317438, 100.00746695299694 3.5040141593861938, 99.9612880235569 3.7411332021405337 M99.9612880235569 3.7411332021405337 C99.88227143373734 4.042457705129211, 99.80325484391777 4.343782208117887, 99.68791577917887 4.7836200502342265 M99.9612880235569 3.7411332021405337 C99.85992657779964 4.127668325141454, 99.75856513204239 4.514203448142375, 99.68791577917887 4.7836200502342265 M99.68791577917887 4.7836200502342265 C99.60406839364803 5.036155016186449, 99.52022100811719 5.2886899821386715, 99.3483128457116 5.806449977458231 M99.68791577917887 4.7836200502342265 C99.55975258861244 5.169627160188981, 99.43158939804601 5.555634270143736, 99.3483128457116 5.806449977458231 M99.3483128457116 5.806449977458231 C99.20188141700862 6.168138437413685, 99.05544998830563 6.529826897369138, 98.94387472445335 6.805419956245245 M99.3483128457116 5.806449977458231 C99.25152065490022 6.045528560112054, 99.15472846408883 6.284607142765875, 98.94387472445335 6.805419956245245 M98.94387472445335 6.805419956245245 C98.80815074987616 7.087253693482605, 98.67242677529899 7.369087430719965, 98.47626333839607 7.776425004674039 M98.94387472445335 6.805419956245245 C98.82197777880779 7.058541572055056, 98.70008083316223 7.311663187864866, 98.47626333839607 7.776425004674039 M98.47626333839607 7.776425004674039 C98.31123859218515 8.069443152139122, 98.14621384597422 8.362461299604206, 97.94740020302739 8.7154750547207 M98.47626333839607 7.776425004674039 C98.32502686837744 8.044960671545352, 98.17379039835879 8.313496338416666, 97.94740020302739 8.7154750547207 M97.94740020302739 8.7154750547207 C97.80786014146716 8.929846061030275, 97.66832007990693 9.14421706733985, 97.35945853041133 9.618711348303972 M97.94740020302739 8.7154750547207 C97.73043896853488 9.048785773150142, 97.51347773404237 9.382096491579583, 97.35945853041133 9.618711348303972 M97.35945853041133 9.618711348303972 C97.16478956121168 9.879550032323568, 96.97012059201204 10.140388716343166, 96.71485429899376 10.482422293749956 M97.35945853041133 9.618711348303972 C97.17084221058423 9.87144003357206, 96.98222589075712 10.12416871884015, 96.71485429899376 10.482422293749956 M96.71485429899376 10.482422293749956 C96.43988616463116 10.805415510502334, 96.16491803026857 11.128408727254712, 96.01623632582874 11.303058717518383 M96.71485429899376 10.482422293749956 C96.52467137646295 10.705821976269506, 96.33448845393212 10.929221658789059, 96.01623632582874 11.303058717518383 M96.01623632582874 11.303058717518383 C95.75702725482577 11.570713364789453, 95.49781818382282 11.838368012060524, 95.26647538202111 12.077248448518041 M96.01623632582874 11.303058717518383 C95.72059662124164 11.60833098497572, 95.42495691665454 11.913603252433058, 95.26647538202111 12.077248448518041 M95.26647538202111 12.077248448518041 C95.05063561205871 12.273268416790527, 94.83479584209631 12.469288385063015, 94.4686523961122 12.801810175081064 M95.26647538202111 12.077248448518041 C95.01374178963873 12.306774410155304, 94.76100819725634 12.536300371792567, 94.4686523961122 12.801810175081064 M94.4686523961122 12.801810175081064 C94.21188337166616 13.006576639166076, 93.95511434722013 13.211343103251087, 93.62604579388358 13.473766517655019 M94.4686523961122 12.801810175081064 C94.1523208460875 13.054076168289685, 93.8359892960628 13.306342161498307, 93.62604579388358 13.473766517655019 M93.62604579388358 13.473766517655019 C93.43496836666955 13.607053859271009, 93.24389093945554 13.740341200886999, 92.74211802660236 14.090356263494066 M93.62604579388358 13.473766517655019 C93.39875175886961 13.63231699708057, 93.17145772385564 13.790867476506122, 92.74211802660236 14.090356263494066 M92.74211802660236 14.090356263494066 C92.52701435311106 14.220753374453986, 92.31191067961977 14.351150485413909, 91.82050134306621 14.649045713074484 M92.74211802660236 14.090356263494066 C92.40783518156361 14.293000488620603, 92.07355233652487 14.49564471374714, 91.82050134306621 14.649045713074484 M91.82050134306621 14.649045713074484 C91.62393114421197 14.75159625990752, 91.42736094535773 14.854146806740555, 90.86498286391395 15.14753909160942 M91.82050134306621 14.649045713074484 C91.44619582023773 14.844320664579971, 91.07189029740925 15.039595616085458, 90.86498286391395 15.14753909160942 M90.86498286391395 15.14753909160942 C90.58085339066596 15.273314781014944, 90.29672391741798 15.399090470420466, 89.87948901953449 15.583787982879988 M90.86498286391395 15.14753909160942 C90.59211458476513 15.268329784438697, 90.3192463056163 15.389120477267973, 89.87948901953449 15.583787982879988 M89.87948901953449 15.583787982879988 C89.60221346118267 15.68582795146062, 89.32493790283085 15.78786792004125, 88.86806941552213 15.955999746616863 M89.87948901953449 15.583787982879988 C89.63153974039732 15.67503560962048, 89.38359046126013 15.766283236360973, 88.86806941552213 15.955999746616863 M88.86806941552213 15.955999746616863 C88.48940454776931 16.06838549171345, 88.11073968001648 16.18077123681004, 87.83488019197861 16.262644884843677 M88.86806941552213 15.955999746616863 C88.5432269078811 16.0524112977516, 88.21838440024008 16.14882284888634, 87.83488019197861 16.262644884843677 M87.83488019197861 16.262644884843677 C87.55522840081788 16.326473581277632, 87.27557660965714 16.390302277711587, 86.78416694504183 16.502463326912284 M87.83488019197861 16.262644884843677 C87.4622787160099 16.347688740281672, 87.0896772400412 16.432732595719667, 86.78416694504183 16.502463326912284 M86.78416694504183 16.502463326912284 C86.38800201121741 16.56651220110807, 85.991837077393 16.630561075303856, 85.72024728082077 16.674469607403324 M86.78416694504183 16.502463326912284 C86.56513262378249 16.537875097336965, 86.34609830252315 16.573286867761645, 85.72024728082077 16.674469607403324 M85.72024728082077 16.674469607403324 C85.29942695545593 16.715065638080784, 84.87860663009107 16.755661668758243, 84.64749307342574 16.77795691561503 M85.72024728082077 16.674469607403324 C85.43144840295764 16.702329687819315, 85.1426495250945 16.730189768235302, 84.64749307342574 16.77795691561503 M84.64749307342574 16.77795691561503 C84.3922690288674 16.78614145396055, 84.13704498430907 16.794325992306067, 83.5703125 16.8125 M84.64749307342574 16.77795691561503 C84.23357979992444 16.791230308662904, 83.81966652642316 16.80450370171078, 83.5703125 16.8125 M83.5703125 16.8125 C83.5703125 16.8125, 83.5703125 16.8125, 83.5703125 16.8125 M83.5703125 16.8125 C83.5703125 16.8125, 83.5703125 16.8125, 83.5703125 16.8125 M83.5703125 16.8125 C40.91190148843743 16.8125, -1.746509523125141 16.8125, -83.5703125 16.8125 M83.5703125 16.8125 C24.42082741827651 16.8125, -34.72865766344698 16.8125, -83.5703125 16.8125 M-83.5703125 16.8125 C-83.88166657125946 16.802515480948642, -84.19302064251893 16.792530961897288, -84.64749307342572 16.77795691561503 M-83.5703125 16.8125 C-83.79311401596884 16.805355189039723, -84.01591553193767 16.798210378079443, -84.64749307342572 16.77795691561503 M-84.64749307342572 16.77795691561503 C-84.89381381578688 16.754194649843484, -85.14013455814805 16.730432384071936, -85.72024728082076 16.674469607403324 M-84.64749307342572 16.77795691561503 C-85.0000710698859 16.743944140333596, -85.35264906634609 16.70993136505216, -85.72024728082076 16.674469607403324 M-85.72024728082076 16.674469607403324 C-86.03310431577759 16.623889308234045, -86.34596135073443 16.573309009064765, -86.78416694504182 16.502463326912284 M-85.72024728082076 16.674469607403324 C-86.09359553220979 16.614109557477676, -86.46694378359882 16.55374950755203, -86.78416694504182 16.502463326912284 M-86.78416694504182 16.502463326912284 C-87.03287687831737 16.445696907626132, -87.28158681159292 16.388930488339977, -87.83488019197858 16.26264488484368 M-86.78416694504182 16.502463326912284 C-87.02443438161492 16.447623852406025, -87.26470181818802 16.392784377899766, -87.83488019197858 16.26264488484368 M-87.83488019197858 16.26264488484368 C-88.1894373463258 16.15741418254191, -88.54399450067301 16.05218348024014, -88.86806941552211 15.95599974661687 M-87.83488019197858 16.26264488484368 C-88.23527706129467 16.143809195756724, -88.63567393061075 16.02497350666977, -88.86806941552211 15.95599974661687 M-88.86806941552211 15.95599974661687 C-89.27218807008795 15.807280346104752, -89.67630672465377 15.658560945592635, -89.87948901953447 15.58378798287999 M-88.86806941552211 15.95599974661687 C-89.21989332051352 15.826525297355506, -89.57171722550493 15.69705084809414, -89.87948901953447 15.58378798287999 M-89.87948901953447 15.58378798287999 C-90.11041713217008 15.481562957655278, -90.3413452448057 15.379337932430566, -90.86498286391394 15.147539091609424 M-89.87948901953447 15.58378798287999 C-90.20663306017761 15.438971020470444, -90.53377710082074 15.294154058060899, -90.86498286391394 15.147539091609424 M-90.86498286391394 15.147539091609424 C-91.12028803851092 15.014346545552947, -91.3755932131079 14.881153999496469, -91.8205013430662 14.649045713074488 M-90.86498286391394 15.147539091609424 C-91.11265944478419 15.018326378013835, -91.36033602565443 14.889113664418247, -91.8205013430662 14.649045713074488 M-91.8205013430662 14.649045713074488 C-92.12620375708642 14.463727113188643, -92.43190617110662 14.278408513302798, -92.74211802660234 14.090356263494078 M-91.8205013430662 14.649045713074488 C-92.10155521395419 14.47866920488631, -92.38260908484219 14.308292696698134, -92.74211802660234 14.090356263494078 M-92.74211802660234 14.090356263494078 C-93.03713451683726 13.884565530964231, -93.33215100707217 13.678774798434382, -93.62604579388356 13.473766517655022 M-92.74211802660234 14.090356263494078 C-93.08017841196384 13.854539973064114, -93.41823879732533 13.618723682634151, -93.62604579388356 13.473766517655022 M-93.62604579388356 13.473766517655022 C-93.95018660099842 13.215272849730056, -94.2743274081133 12.95677918180509, -94.46865239611219 12.801810175081076 M-93.62604579388356 13.473766517655022 C-93.88312509577533 13.268752615563878, -94.14020439766709 13.063738713472732, -94.46865239611219 12.801810175081076 M-94.46865239611219 12.801810175081076 C-94.74083140354426 12.554624401993173, -95.01301041097635 12.30743862890527, -95.26647538202111 12.077248448518052 M-94.46865239611219 12.801810175081076 C-94.6956240783089 12.595680498651655, -94.92259576050562 12.389550822222231, -95.26647538202111 12.077248448518052 M-95.26647538202111 12.077248448518052 C-95.46880153448005 11.868330084818156, -95.67112768693899 11.65941172111826, -96.01623632582874 11.303058717518388 M-95.26647538202111 12.077248448518052 C-95.50168766206738 11.834372458082942, -95.73689994211365 11.591496467647831, -96.01623632582874 11.303058717518388 M-96.01623632582874 11.303058717518388 C-96.29040216802579 10.98100791879537, -96.56456801022284 10.658957120072355, -96.71485429899374 10.482422293749961 M-96.01623632582874 11.303058717518388 C-96.17532757853593 11.116181079539805, -96.33441883124311 10.92930344156122, -96.71485429899374 10.482422293749961 M-96.71485429899374 10.482422293749961 C-96.89265446718503 10.244186266302195, -97.0704546353763 10.00595023885443, -97.35945853041132 9.618711348303982 M-96.71485429899374 10.482422293749961 C-96.92732550049404 10.197730240264228, -97.13979670199433 9.913038186778493, -97.35945853041132 9.618711348303982 M-97.35945853041132 9.618711348303982 C-97.52337407452625 9.36689305505682, -97.68728961864117 9.11507476180966, -97.94740020302737 8.715475054720711 M-97.35945853041132 9.618711348303982 C-97.53118126709806 9.354899110741773, -97.70290400378481 9.091086873179561, -97.94740020302737 8.715475054720711 M-97.94740020302737 8.715475054720711 C-98.11158135178142 8.423954799963818, -98.27576250053548 8.132434545206925, -98.47626333839607 7.776425004674045 M-97.94740020302737 8.715475054720711 C-98.05922176968944 8.516924539950745, -98.1710433363515 8.31837402518078, -98.47626333839607 7.776425004674045 M-98.47626333839607 7.776425004674045 C-98.61181786882304 7.494943121840114, -98.74737239925003 7.213461239006183, -98.94387472445335 6.8054199562452515 M-98.47626333839607 7.776425004674045 C-98.62825028009271 7.460820868241352, -98.78023722178938 7.145216731808658, -98.94387472445335 6.8054199562452515 M-98.94387472445335 6.8054199562452515 C-99.08148203556826 6.465527237335057, -99.21908934668316 6.125634518424863, -99.34831284571159 5.806449977458245 M-98.94387472445335 6.8054199562452515 C-99.06647927868374 6.502584336898365, -99.18908383291415 6.199748717551478, -99.34831284571159 5.806449977458245 M-99.34831284571159 5.806449977458245 C-99.44095578834329 5.527424194899957, -99.53359873097497 5.24839841234167, -99.68791577917885 4.783620050234233 M-99.34831284571159 5.806449977458245 C-99.44245035854574 5.522922787577584, -99.5365878713799 5.239395597696923, -99.68791577917885 4.783620050234233 M-99.68791577917885 4.783620050234233 C-99.76474693240507 4.4906295641501766, -99.84157808563131 4.19763907806612, -99.9612880235569 3.74113320214054 M-99.68791577917885 4.783620050234233 C-99.77457131569278 4.453164932759536, -99.8612268522067 4.12270981528484, -99.9612880235569 3.74113320214054 M-99.9612880235569 3.74113320214054 C-100.02609539945526 3.408361023946263, -100.0909027753536 3.075588845751986, -100.16730623365544 2.6832732352486963 M-99.9612880235569 3.74113320214054 C-100.03067807451245 3.384829956076259, -100.100068125468 3.028526710011978, -100.16730623365544 2.6832732352486963 M-100.16730623365544 2.6832732352486963 C-100.19651661241798 2.456723305808152, -100.22572699118052 2.230173376367608, -100.30512383645839 1.614387123072912 M-100.16730623365544 2.6832732352486963 C-100.22040849748251 2.271422563233978, -100.27351076130958 1.8595718912192598, -100.30512383645839 1.614387123072912 M-100.30512383645839 1.614387123072912 C-100.32978957158073 1.2301983887194459, -100.35445530670307 0.8460096543659797, -100.37417450987407 0.5388671479234546 M-100.30512383645839 1.614387123072912 C-100.31952654315582 1.3900533406049413, -100.33392924985324 1.1657195581369704, -100.37417450987407 0.5388671479234546 M-100.37417450987407 0.5388671479234546 C-100.37417450987407 0.23114485312386052, -100.37417450987407 -0.07657744167573355, -100.37417450987407 -0.5388671479234464 M-100.37417450987407 0.5388671479234546 C-100.37417450987407 0.2530339683004038, -100.37417450987407 -0.03279921132264696, -100.37417450987407 -0.5388671479234464 M-100.37417450987407 -0.5388671479234464 C-100.35936745827759 -0.7694989285755095, -100.34456040668111 -1.0001307092275726, -100.30512383645839 -1.614387123072889 M-100.37417450987407 -0.5388671479234464 C-100.35551176657115 -0.8295544391616207, -100.33684902326823 -1.1202417303997954, -100.30512383645839 -1.614387123072889 M-100.30512383645839 -1.614387123072889 C-100.25766774233799 -1.98244721780503, -100.21021164821758 -2.350507312537171, -100.16730623365544 -2.6832732352486883 M-100.30512383645839 -1.614387123072889 C-100.27320879909955 -1.8619138504911197, -100.2412937617407 -2.1094405779093504, -100.16730623365544 -2.6832732352486883 M-100.16730623365544 -2.6832732352486883 C-100.09666064688477 -3.0460233923660427, -100.02601506011409 -3.4087735494833966, -99.9612880235569 -3.741133202140532 M-100.16730623365544 -2.6832732352486883 C-100.09679081254141 -3.045355019229698, -100.02627539142738 -3.407436803210708, -99.9612880235569 -3.741133202140532 M-99.9612880235569 -3.741133202140532 C-99.8978766660469 -3.9829481909823636, -99.8344653085369 -4.224763179824195, -99.68791577917887 -4.783620050234225 M-99.9612880235569 -3.741133202140532 C-99.8955469176499 -3.9918325313394796, -99.8298058117429 -4.242531860538428, -99.68791577917887 -4.783620050234225 M-99.68791577917887 -4.783620050234225 C-99.58915445243763 -5.081073430898323, -99.4903931256964 -5.378526811562422, -99.3483128457116 -5.8064499774582226 M-99.68791577917887 -4.783620050234225 C-99.55820263762028 -5.17429536562619, -99.4284894960617 -5.564970681018154, -99.3483128457116 -5.8064499774582226 M-99.3483128457116 -5.8064499774582226 C-99.19695625403415 -6.180303685182159, -99.0455996623567 -6.554157392906096, -98.94387472445335 -6.8054199562452435 M-99.3483128457116 -5.8064499774582226 C-99.25048903067959 -6.048076691882111, -99.15266521564756 -6.289703406305998, -98.94387472445335 -6.8054199562452435 M-98.94387472445335 -6.8054199562452435 C-98.77490351345274 -7.156292291292732, -98.60593230245215 -7.507164626340221, -98.47626333839607 -7.776425004674037 M-98.94387472445335 -6.8054199562452435 C-98.79657364472146 -7.111293800046729, -98.64927256498956 -7.417167643848216, -98.47626333839607 -7.776425004674037 M-98.47626333839607 -7.776425004674037 C-98.35988386167229 -7.9830685502970145, -98.24350438494851 -8.189712095919992, -97.94740020302739 -8.715475054720706 M-98.47626333839607 -7.776425004674037 C-98.32823738113726 -8.039260081040611, -98.18021142387845 -8.302095157407186, -97.94740020302739 -8.715475054720706 M-97.94740020302739 -8.715475054720706 C-97.75015296868924 -9.018499774962772, -97.5529057343511 -9.321524495204837, -97.35945853041132 -9.618711348303977 M-97.94740020302739 -8.715475054720706 C-97.79912189847205 -8.943270348817551, -97.65084359391672 -9.171065642914398, -97.35945853041132 -9.618711348303977 M-97.35945853041132 -9.618711348303977 C-97.10217571217154 -9.963446885798353, -96.84489289393177 -10.308182423292731, -96.71485429899376 -10.482422293749956 M-97.35945853041132 -9.618711348303977 C-97.19321232800239 -9.841466114191343, -97.02696612559345 -10.064220880078711, -96.71485429899376 -10.482422293749956 M-96.71485429899376 -10.482422293749956 C-96.43817006380965 -10.807431340176185, -96.16148582862554 -11.132440386602415, -96.01623632582874 -11.303058717518383 M-96.71485429899376 -10.482422293749956 C-96.45157951106867 -10.791679840406582, -96.18830472314357 -11.100937387063206, -96.01623632582874 -11.303058717518383 M-96.01623632582874 -11.303058717518383 C-95.85715126916635 -11.46732709964836, -95.69806621250396 -11.631595481778337, -95.26647538202113 -12.077248448518036 M-96.01623632582874 -11.303058717518383 C-95.75975206037961 -11.567899779344426, -95.50326779493048 -11.832740841170468, -95.26647538202113 -12.077248448518036 M-95.26647538202113 -12.077248448518036 C-95.09563205798348 -12.232403835142375, -94.92478873394583 -12.387559221766715, -94.4686523961122 -12.80181017508106 M-95.26647538202113 -12.077248448518036 C-94.98896845851705 -12.329272894013599, -94.71146153501297 -12.581297339509161, -94.4686523961122 -12.80181017508106 M-94.4686523961122 -12.80181017508106 C-94.23550837193015 -12.987736330143202, -94.00236434774811 -13.173662485205343, -93.62604579388358 -13.473766517655017 M-94.4686523961122 -12.80181017508106 C-94.1665135594398 -13.04275785707519, -93.86437472276741 -13.283705539069317, -93.62604579388358 -13.473766517655017 M-93.62604579388358 -13.473766517655017 C-93.3756895440527 -13.64840419978965, -93.12533329422183 -13.823041881924285, -92.74211802660236 -14.090356263494064 M-93.62604579388358 -13.473766517655017 C-93.37153799511675 -13.65130014060971, -93.11703019634994 -13.8288337635644, -92.74211802660236 -14.090356263494064 M-92.74211802660236 -14.090356263494064 C-92.44733602216489 -14.269054846915402, -92.15255401772743 -14.447753430336741, -91.82050134306621 -14.649045713074482 M-92.74211802660236 -14.090356263494064 C-92.40277505334161 -14.296067968085394, -92.06343208008086 -14.501779672676724, -91.82050134306621 -14.649045713074482 M-91.82050134306621 -14.649045713074482 C-91.48082379563445 -14.826255271995777, -91.1411462482027 -15.003464830917071, -90.86498286391395 -15.14753909160942 M-91.82050134306621 -14.649045713074482 C-91.49550889994781 -14.818594062481761, -91.17051645682939 -14.98814241188904, -90.86498286391395 -15.14753909160942 M-90.86498286391395 -15.14753909160942 C-90.64757020376815 -15.243781226938545, -90.43015754362237 -15.340023362267667, -89.87948901953449 -15.583787982879986 M-90.86498286391395 -15.14753909160942 C-90.61261026216854 -15.259256956034873, -90.36023766042314 -15.370974820460326, -89.87948901953449 -15.583787982879986 M-89.87948901953449 -15.583787982879986 C-89.61983411886362 -15.679343386550455, -89.36017921819276 -15.774898790220922, -88.86806941552213 -15.955999746616863 M-89.87948901953449 -15.583787982879986 C-89.6574424992424 -15.665503154923005, -89.43539597895033 -15.747218326966024, -88.86806941552213 -15.955999746616863 M-88.86806941552213 -15.955999746616863 C-88.63084024499463 -16.026408119188098, -88.39361107446715 -16.09681649175933, -87.83488019197861 -16.262644884843677 M-88.86806941552213 -15.955999746616863 C-88.51107987343374 -16.06195236883235, -88.15409033134537 -16.167904991047838, -87.83488019197861 -16.262644884843677 M-87.83488019197861 -16.262644884843677 C-87.50086018291283 -16.33888277222868, -87.16684017384705 -16.415120659613684, -86.78416694504183 -16.502463326912284 M-87.83488019197861 -16.262644884843677 C-87.4559677196328 -16.34912918402165, -87.07705524728698 -16.43561348319962, -86.78416694504183 -16.502463326912284 M-86.78416694504183 -16.502463326912284 C-86.43862471656578 -16.55832791469229, -86.09308248808973 -16.614192502472292, -85.72024728082077 -16.674469607403324 M-86.78416694504183 -16.502463326912284 C-86.41923289723806 -16.56146303365539, -86.0542988494343 -16.620462740398494, -85.72024728082077 -16.674469607403324 M-85.72024728082077 -16.674469607403324 C-85.37327884645121 -16.70794123497636, -85.02631041208167 -16.741412862549396, -84.64749307342574 -16.77795691561503 M-85.72024728082077 -16.674469607403324 C-85.48605243798006 -16.69706210223166, -85.25185759513936 -16.719654597059996, -84.64749307342574 -16.77795691561503 M-84.64749307342574 -16.77795691561503 C-84.39388751450873 -16.786089552276223, -84.14028195559173 -16.794222188937415, -83.5703125 -16.8125 M-84.64749307342574 -16.77795691561503 C-84.37593864204723 -16.786665137680703, -84.10438421066874 -16.795373359746375, -83.5703125 -16.8125 M-83.5703125 -16.8125 C-83.5703125 -16.8125, -83.5703125 -16.8125, -83.5703125 -16.8125 M-83.5703125 -16.8125 C-83.5703125 -16.8125, -83.5703125 -16.8125, -83.5703125 -16.8125" stroke="#3a4a52" stroke-width="1.3" fill="none" stroke-dasharray="0 0"></path></g><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Reader</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> with</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> predicate</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="gd10-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><defs><filter id="gd10-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><linearGradient id="gd10-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#3a4a52" stop-opacity="1"></stop><stop offset="100%" stop-color="hsl(200, 0%, 0%)" stop-opacity="1"></stop></linearGradient></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg id="gd11" width="100%" xmlns="http://www.w3.org/2000/svg" class="flowchart" viewBox="-8 -17.3125 1232.421875 904.5421875" role="graphics-document document" aria-roledescription="flowchart-v2" style="max-width: 1232.421875px;"><style>#gd11{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px;fill:#151b1e;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#gd11 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#gd11 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#gd11 .error-icon{fill:#eef1f6;}#gd11 .error-text{fill:#110e09;stroke:#110e09;}#gd11 .edge-thickness-normal{stroke-width:1px;}#gd11 .edge-thickness-thick{stroke-width:3.5px;}#gd11 .edge-pattern-solid{stroke-dasharray:0;}#gd11 .edge-thickness-invisible{stroke-width:0;fill:none;}#gd11 .edge-pattern-dashed{stroke-dasharray:3;}#gd11 .edge-pattern-dotted{stroke-dasharray:2;}#gd11 .marker{fill:#4f5f60;stroke:#4f5f60;}#gd11 .marker.cross{stroke:#4f5f60;}#gd11 svg{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px;}#gd11 p{margin:0;}#gd11 .label{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#151b1e;}#gd11 .cluster-label text{fill:#151b1e;}#gd11 .cluster-label span{color:#151b1e;}#gd11 .cluster-label span p{background-color:transparent;}#gd11 .label text,#gd11 span{fill:#151b1e;color:#151b1e;}#gd11 .node rect,#gd11 .node circle,#gd11 .node ellipse,#gd11 .node polygon,#gd11 .node path{fill:#ffffff;stroke:#9aa8a3;stroke-width:1px;}#gd11 .rough-node .label text,#gd11 .node .label text,#gd11 .image-shape .label,#gd11 .icon-shape .label{text-anchor:middle;}#gd11 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#gd11 .rough-node .label,#gd11 .node .label,#gd11 .image-shape .label,#gd11 .icon-shape .label{text-align:center;}#gd11 .node.clickable{cursor:pointer;}#gd11 .root .anchor path{fill:#4f5f60!important;stroke-width:0;stroke:#4f5f60;}#gd11 .arrowheadPath{fill:rgba(255, 255, 255, 0);}#gd11 .edgePath .path{stroke:#4f5f60;stroke-width:1px;}#gd11 .flowchart-link{stroke:#4f5f60;fill:none;}#gd11 .edgeLabel{background-color:#eef1f6;text-align:center;}#gd11 .edgeLabel p{background-color:#eef1f6;}#gd11 .edgeLabel rect{opacity:0.5;background-color:#eef1f6;fill:#eef1f6;}#gd11 .labelBkg{background-color:rgba(238, 241, 246, 0.5);}#gd11 .cluster rect{fill:#f2f5f9;stroke:#dbe2df;stroke-width:1px;}#gd11 .cluster text{fill:#151b1e;}#gd11 .cluster span{color:#151b1e;}#gd11 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:12px;background:#eef1f6;border:1px solid hsl(217.5, 0%, 84.9019607843%);border-radius:2px;pointer-events:none;z-index:100;}#gd11 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#151b1e;}#gd11 rect.text{fill:none;stroke-width:0;}#gd11 .icon-shape,#gd11 .image-shape{background-color:#eef1f6;text-align:center;}#gd11 .icon-shape p,#gd11 .image-shape p{background-color:#eef1f6;padding:2px;}#gd11 .icon-shape .label rect,#gd11 .image-shape .label rect{opacity:0.5;background-color:#eef1f6;fill:#eef1f6;}#gd11 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#gd11 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#gd11 .node .neo-node{stroke:#9aa8a3;}#gd11 [data-look="neo"].node rect,#gd11 [data-look="neo"].cluster rect,#gd11 [data-look="neo"].node polygon{stroke:url(#gd11-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd11 [data-look="neo"].swimlane.cluster rect{filter:none;}#gd11 [data-look="neo"].node path{stroke:url(#gd11-gradient);stroke-width:1px;}#gd11 [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd11 [data-look="neo"].node .neo-line path{stroke:#9aa8a3;filter:none;}#gd11 [data-look="neo"].node circle{stroke:url(#gd11-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd11 [data-look="neo"].node circle .state-start{fill:#000000;}#gd11 [data-look="neo"].icon-shape .icon{fill:url(#gd11-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd11 [data-look="neo"].icon-shape .icon-neo path{stroke:url(#gd11-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd11 :root{--mermaid-font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;}</style><g><marker id="gd11_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></path></marker><marker id="gd11_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></path></marker><marker id="gd11_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></path></marker><marker id="gd11_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></polygon></marker><marker id="gd11_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></circle></marker><marker id="gd11_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></circle></marker><marker id="gd11_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></circle></marker><marker id="gd11_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></circle></marker><marker id="gd11_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width:2;stroke-dasharray:1,0"></path></marker><marker id="gd11_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width:2;stroke-dasharray:1,0"></path></marker><marker id="gd11_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width:2.5"></path></marker><marker id="gd11_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width:2.5;stroke-dasharray:1,0"></path></marker><g class="root"><g class="clusters"><g class="cluster " id="gd11-CONTAINER" data-look="classic"><rect x="8" y="8" width="1208.421875" height="116.225"></rect><g class="cluster-label " transform="translate(470.10546875, 8)"><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Requested</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> container</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> /</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> pod</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> memory</tspan></tspan></text></g></g></g></g><g class="edgePaths"><path d="M169.66,99.225L169.66,103.392C169.66,107.558,169.66,115.892,169.66,124.225C169.66,132.558,169.66,140.892,214.197,151.139C258.734,161.386,347.808,173.546,392.345,179.627L436.882,185.707" id="gd11-L_HEAP_SUM_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_HEAP_SUM_0" data-points="W3sieCI6MTY5LjY2MDE1NjI1LCJ5Ijo5OS4yMjV9LHsieCI6MTY5LjY2MDE1NjI1LCJ5IjoxMjQuMjI1fSx7IngiOjE2OS42NjAxNTYyNSwieSI6MTQ5LjIyNX0seyJ4Ijo0NDAuODQ1NzAzMTI1LCJ5IjoxODYuMjQ3OTU3MjgzOTE4ODh9XQ==" data-look="classic" marker-end="url(#gd11_flowchart-v2-pointEnd)" style=";"></path><path d="M448.961,99.225L448.961,103.392C448.961,107.558,448.961,115.892,448.961,124.225C448.961,132.558,448.961,140.892,458.835,148.979C468.71,157.066,488.459,164.908,498.333,168.828L508.208,172.749" id="gd11-L_OVER_SUM_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_OVER_SUM_0" data-points="W3sieCI6NDQ4Ljk2MDkzNzUsInkiOjk5LjIyNX0seyJ4Ijo0NDguOTYwOTM3NSwieSI6MTI0LjIyNX0seyJ4Ijo0NDguOTYwOTM3NSwieSI6MTQ5LjIyNX0seyJ4Ijo1MTEuOTI1NTg3MTU1ODM5OTMsInkiOjE3NC4yMjQ5OTk5OTk5OTk5N31d" data-look="classic" marker-end="url(#gd11_flowchart-v2-pointEnd)" style=";"></path><path d="M741.684,99.225L741.684,103.392C741.684,107.558,741.684,115.892,741.684,124.225C741.684,132.558,741.684,140.892,731.809,148.979C721.935,157.066,702.186,164.908,692.311,168.828L682.437,172.749" id="gd11-L_OFF_SUM_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_OFF_SUM_0" data-points="W3sieCI6NzQxLjY4MzU5Mzc1LCJ5Ijo5OS4yMjV9LHsieCI6NzQxLjY4MzU5Mzc1LCJ5IjoxMjQuMjI1fSx7IngiOjc0MS42ODM1OTM3NSwieSI6MTQ5LjIyNX0seyJ4Ijo2NzguNzE4OTQ0MDk0MTYwMSwieSI6MTc0LjIyNDk5OTk5OTk5OTk3fV0=" data-look="classic" marker-end="url(#gd11_flowchart-v2-pointEnd)" style=";"></path><path d="M1056.594,99.225L1056.594,103.392C1056.594,107.558,1056.594,115.892,1056.594,124.225C1056.594,132.558,1056.594,140.892,1006.123,151.417C955.652,161.942,854.71,174.659,804.239,181.018L753.767,187.376" id="gd11-L_PY_SUM_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_PY_SUM_0" data-points="W3sieCI6MTA1Ni41OTM3NSwieSI6OTkuMjI1fSx7IngiOjEwNTYuNTkzNzUsInkiOjEyNC4yMjV9LHsieCI6MTA1Ni41OTM3NSwieSI6MTQ5LjIyNX0seyJ4Ijo3NDkuNzk4ODI4MTI1LCJ5IjoxODcuODc2MDM0MTU1MzM2NTh9XQ==" data-look="classic" marker-end="url(#gd11_flowchart-v2-pointEnd)" style=";"></path><path d="M595.322,240.45L595.322,244.617C595.322,248.783,595.322,257.117,595.322,264.783C595.322,272.45,595.322,279.45,595.322,282.95L595.322,286.45" id="gd11-L_SUM_GRANT_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_SUM_GRANT_0" data-points="W3sieCI6NTk1LjMyMjI2NTYyNSwieSI6MjQwLjQ1fSx7IngiOjU5NS4zMjIyNjU2MjUsInkiOjI2NS40NX0seyJ4Ijo1OTUuMzIyMjY1NjI1LCJ5IjoyOTAuNDV9XQ==" data-look="classic" marker-end="url(#gd11_flowchart-v2-pointEnd)" style=";"></path><path d="M595.322,374.275L595.322,378.442C595.322,382.608,595.322,390.942,595.322,398.608C595.322,406.275,595.322,413.275,595.322,416.775L595.322,420.275" id="gd11-L_GRANT_CHK_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_GRANT_CHK_0" data-points="W3sieCI6NTk1LjMyMjI2NTYyNSwieSI6Mzc0LjI3NTAwMDAwMDAwMDAzfSx7IngiOjU5NS4zMjIyNjU2MjUsInkiOjM5OS4yNzV9LHsieCI6NTk1LjMyMjI2NTYyNTAwMDEsInkiOjQyNC4yNzQ5OTk5OTk5OTk5fV0=" data-look="classic" marker-end="url(#gd11_flowchart-v2-pointEnd)" style=";"></path><path d="M524.286,669.343L509.68,687.235C495.074,705.126,465.862,740.909,451.256,764.186C436.65,787.463,436.65,798.234,436.65,803.619L436.65,809.005" id="gd11-L_CHK_OOM_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_CHK_OOM_0" data-points="W3sieCI6NTI0LjI4NTg1MzgzMjYxNTksInkiOjY2OS4zNDMyNzU3MDc2MTYyfSx7IngiOjQzNi42NTAzOTA2MjUsInkiOjc3Ni42OTIxODc1fSx7IngiOjQzNi42NTAzOTA2MjUsInkiOjgxMy4wMDQ2ODc1fV0=" data-look="classic" marker-end="url(#gd11_flowchart-v2-pointEnd)" style=";"></path><path d="M666.359,669.343L680.965,687.235C695.57,705.126,724.782,740.909,739.388,765.653C753.994,790.396,753.994,804.101,753.994,810.953L753.994,817.805" id="gd11-L_CHK_OK_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_CHK_OK_0" data-points="W3sieCI6NjY2LjM1ODY3NzQxNzM4NDEsInkiOjY2OS4zNDMyNzU3MDc2MTY0fSx7IngiOjc1My45OTQxNDA2MjUsInkiOjc3Ni42OTIxODc1fSx7IngiOjc1My45OTQxNDA2MjUsInkiOjgyMS44MDQ2ODc1fV0=" data-look="classic" marker-end="url(#gd11_flowchart-v2-pointEnd)" style=";"></path></g><g class="edgeLabels"><g class="edgeLabel"><g class="label" data-id="L_HEAP_SUM_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_OVER_SUM_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_OFF_SUM_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_PY_SUM_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_SUM_GRANT_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_GRANT_CHK_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel" transform="translate(436.650390625, 776.6921875)"><g class="label" data-id="L_CHK_OOM_0" transform="translate(0, -10.4609375)"><g><rect class="background" x="-15.9765625" y="-0.8515625" width="31.953125" height="22.625"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Yes</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(753.994140625, 776.6921875)"><g class="label" data-id="L_CHK_OK_0" transform="translate(0, -10.4609375)"><g><rect class="background" x="-12.87890625" y="-0.8515625" width="25.7578125" height="22.625"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">No</tspan></tspan></text></g></g></g></g><g class="nodes"><g class="node default " id="gd11-flowchart-HEAP-0" data-look="classic" transform="translate(169.66015625, 66.1125)"><rect class="basic label-container" x="-126.66015625" y="-33.1125" width="253.3203125" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">executorMemory</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (heap)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">8192</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> MB</tspan></tspan></text></g></g></g><g class="node default " id="gd11-flowchart-OVER-1" data-look="classic" transform="translate(448.9609375, 66.1125)"><rect class="basic label-container" x="-102.640625" y="-33.1125" width="205.28125" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">memoryOverhead</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">819</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> MB</tspan></tspan></text></g></g></g><g class="node default " id="gd11-flowchart-OFF-2" data-look="classic" transform="translate(741.68359375, 66.1125)"><rect class="basic label-container" x="-140.08203125" y="-33.1125" width="280.1640625" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">spark.memory.offHeap.size</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">1024</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> MB</tspan></tspan></text></g></g></g><g class="node default " id="gd11-flowchart-PY-3" data-look="classic" transform="translate(1056.59375, 66.1125)"><rect class="basic label-container" x="-124.828125" y="-33.1125" width="249.65625" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">pyspark.memory</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">512</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> MB</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (only</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> when</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> set)</tspan></tspan></text></g></g></g><g class="node default " id="gd11-flowchart-SUM-5" data-look="classic" transform="translate(595.322265625, 207.33749999999998)"><rect class="basic label-container" x="-154.4765625" y="-33.1125" width="308.953125" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Sum</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> of</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> terms</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> =</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> requested</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> size</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">=</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> 10,547</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> MB</tspan></tspan></text></g></g></g><g class="node default " id="gd11-flowchart-GRANT-13" data-look="classic" transform="translate(595.322265625, 332.3625)"><rect class="basic label-container" x="-141.35546875" y="-41.9125" width="282.7109375" height="83.825"></rect><g class="label" transform="translate(0, -26.9125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Resource</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> manager</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> grants</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> a</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">container</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> of</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> that</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> size</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(YARN</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> /</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Kubernetes)</tspan></tspan></text></g></g></g><g class="node default " id="gd11-flowchart-CHK-15" data-look="classic" transform="translate(595.322265625, 582.32734375)"><polygon points="158.05234375,0 316.1046875,-158.05234375 158.05234375,-316.1046875 0,-158.05234375" class="label-container" transform="translate(-157.55234375, 158.05234375)"></polygon><g class="label" transform="translate(0, -35.712500000000006)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Actual</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> runtime</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> footprint</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">></tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> container</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> limit?</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(native</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> /</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Python</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> use</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> spills</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">past</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> overhead</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> budget)</tspan></tspan></text></g></g></g><g class="node default " id="gd11-flowchart-OOM-17" data-look="classic" transform="translate(436.650390625, 846.1171875)"><rect class="basic label-container" x="-159.76171875" y="-33.1125" width="319.5234375" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">OOMKilled</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> resource</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> manager</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(YARN</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> /</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Kubernetes</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> kubelet)</tspan></tspan></text></g></g></g><g class="node default " id="gd11-flowchart-OK-19" data-look="classic" transform="translate(753.994140625, 846.1171875)"><rect class="basic label-container" x="-107.58203125" y="-24.3125" width="215.1640625" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Runs</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> within</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> budget</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="gd11-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><defs><filter id="gd11-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><linearGradient id="gd11-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#9aa8a3" stop-opacity="1"></stop><stop offset="100%" stop-color="hsl(214.2857142857, 0%, 86.2745098039%)" stop-opacity="1"></stop></linearGradient></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg id="gd12" width="100%" xmlns="http://www.w3.org/2000/svg" class="flowchart" viewBox="-8 -17.3125 1232.421875 904.5421875" role="graphics-document document" aria-roledescription="flowchart-v2" style="max-width: 1232.421875px;"><style>#gd12{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px;fill:#f4f4f5;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#gd12 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#gd12 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#gd12 .error-icon{fill:#1a232f;}#gd12 .error-text{fill:#e5dcd0;stroke:#e5dcd0;}#gd12 .edge-thickness-normal{stroke-width:1px;}#gd12 .edge-thickness-thick{stroke-width:3.5px;}#gd12 .edge-pattern-solid{stroke-dasharray:0;}#gd12 .edge-thickness-invisible{stroke-width:0;fill:none;}#gd12 .edge-pattern-dashed{stroke-dasharray:3;}#gd12 .edge-pattern-dotted{stroke-dasharray:2;}#gd12 .marker{fill:#a9b5b4;stroke:#a9b5b4;}#gd12 .marker.cross{stroke:#a9b5b4;}#gd12 svg{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px;}#gd12 p{margin:0;}#gd12 .label{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#f4f4f5;}#gd12 .cluster-label text{fill:#f4f4f5;}#gd12 .cluster-label span{color:#f4f4f5;}#gd12 .cluster-label span p{background-color:transparent;}#gd12 .label text,#gd12 span{fill:#f4f4f5;color:#f4f4f5;}#gd12 .node rect,#gd12 .node circle,#gd12 .node ellipse,#gd12 .node polygon,#gd12 .node path{fill:#17202c;stroke:#3a4a52;stroke-width:1px;}#gd12 .rough-node .label text,#gd12 .node .label text,#gd12 .image-shape .label,#gd12 .icon-shape .label{text-anchor:middle;}#gd12 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#gd12 .rough-node .label,#gd12 .node .label,#gd12 .image-shape .label,#gd12 .icon-shape .label{text-align:center;}#gd12 .node.clickable{cursor:pointer;}#gd12 .root .anchor path{fill:#a9b5b4!important;stroke-width:0;stroke:#a9b5b4;}#gd12 .arrowheadPath{fill:rgba(255, 255, 255, 0);}#gd12 .edgePath .path{stroke:#a9b5b4;stroke-width:1px;}#gd12 .flowchart-link{stroke:#a9b5b4;fill:none;}#gd12 .edgeLabel{background-color:#11171a;text-align:center;}#gd12 .edgeLabel p{background-color:#11171a;}#gd12 .edgeLabel rect{opacity:0.5;background-color:#11171a;fill:#11171a;}#gd12 .labelBkg{background-color:rgba(17, 23, 26, 0.5);}#gd12 .cluster rect{fill:#11171a;stroke:#233035;stroke-width:1px;}#gd12 .cluster text{fill:#f4f4f5;}#gd12 .cluster span{color:#f4f4f5;}#gd12 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:12px;background:#1a232f;border:1px solid hsl(214.2857142857, 0%, 4.3137254902%);border-radius:2px;pointer-events:none;z-index:100;}#gd12 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#f4f4f5;}#gd12 rect.text{fill:none;stroke-width:0;}#gd12 .icon-shape,#gd12 .image-shape{background-color:#11171a;text-align:center;}#gd12 .icon-shape p,#gd12 .image-shape p{background-color:#11171a;padding:2px;}#gd12 .icon-shape .label rect,#gd12 .image-shape .label rect{opacity:0.5;background-color:#11171a;fill:#11171a;}#gd12 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#gd12 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#gd12 .node .neo-node{stroke:#3a4a52;}#gd12 [data-look="neo"].node rect,#gd12 [data-look="neo"].cluster rect,#gd12 [data-look="neo"].node polygon{stroke:url(#gd12-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd12 [data-look="neo"].swimlane.cluster rect{filter:none;}#gd12 [data-look="neo"].node path{stroke:url(#gd12-gradient);stroke-width:1px;}#gd12 [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd12 [data-look="neo"].node .neo-line path{stroke:#3a4a52;filter:none;}#gd12 [data-look="neo"].node circle{stroke:url(#gd12-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd12 [data-look="neo"].node circle .state-start{fill:#000000;}#gd12 [data-look="neo"].icon-shape .icon{fill:url(#gd12-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd12 [data-look="neo"].icon-shape .icon-neo path{stroke:url(#gd12-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd12 :root{--mermaid-font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;}</style><g><marker id="gd12_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></path></marker><marker id="gd12_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></path></marker><marker id="gd12_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></path></marker><marker id="gd12_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></polygon></marker><marker id="gd12_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></circle></marker><marker id="gd12_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></circle></marker><marker id="gd12_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></circle></marker><marker id="gd12_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></circle></marker><marker id="gd12_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width:2;stroke-dasharray:1,0"></path></marker><marker id="gd12_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width:2;stroke-dasharray:1,0"></path></marker><marker id="gd12_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width:2.5"></path></marker><marker id="gd12_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width:2.5;stroke-dasharray:1,0"></path></marker><g class="root"><g class="clusters"><g class="cluster " id="gd12-CONTAINER" data-look="classic"><rect x="8" y="8" width="1208.421875" height="116.225"></rect><g class="cluster-label " transform="translate(470.10546875, 8)"><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Requested</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> container</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> /</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> pod</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> memory</tspan></tspan></text></g></g></g></g><g class="edgePaths"><path d="M169.66,99.225L169.66,103.392C169.66,107.558,169.66,115.892,169.66,124.225C169.66,132.558,169.66,140.892,214.197,151.139C258.734,161.386,347.808,173.546,392.345,179.627L436.882,185.707" id="gd12-L_HEAP_SUM_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_HEAP_SUM_0" data-points="W3sieCI6MTY5LjY2MDE1NjI1LCJ5Ijo5OS4yMjV9LHsieCI6MTY5LjY2MDE1NjI1LCJ5IjoxMjQuMjI1fSx7IngiOjE2OS42NjAxNTYyNSwieSI6MTQ5LjIyNX0seyJ4Ijo0NDAuODQ1NzAzMTI1LCJ5IjoxODYuMjQ3OTU3MjgzOTE4ODh9XQ==" data-look="classic" marker-end="url(#gd12_flowchart-v2-pointEnd)" style=";"></path><path d="M448.961,99.225L448.961,103.392C448.961,107.558,448.961,115.892,448.961,124.225C448.961,132.558,448.961,140.892,458.835,148.979C468.71,157.066,488.459,164.908,498.333,168.828L508.208,172.749" id="gd12-L_OVER_SUM_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_OVER_SUM_0" data-points="W3sieCI6NDQ4Ljk2MDkzNzUsInkiOjk5LjIyNX0seyJ4Ijo0NDguOTYwOTM3NSwieSI6MTI0LjIyNX0seyJ4Ijo0NDguOTYwOTM3NSwieSI6MTQ5LjIyNX0seyJ4Ijo1MTEuOTI1NTg3MTU1ODM5OTMsInkiOjE3NC4yMjQ5OTk5OTk5OTk5N31d" data-look="classic" marker-end="url(#gd12_flowchart-v2-pointEnd)" style=";"></path><path d="M741.684,99.225L741.684,103.392C741.684,107.558,741.684,115.892,741.684,124.225C741.684,132.558,741.684,140.892,731.809,148.979C721.935,157.066,702.186,164.908,692.311,168.828L682.437,172.749" id="gd12-L_OFF_SUM_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_OFF_SUM_0" data-points="W3sieCI6NzQxLjY4MzU5Mzc1LCJ5Ijo5OS4yMjV9LHsieCI6NzQxLjY4MzU5Mzc1LCJ5IjoxMjQuMjI1fSx7IngiOjc0MS42ODM1OTM3NSwieSI6MTQ5LjIyNX0seyJ4Ijo2NzguNzE4OTQ0MDk0MTYwMSwieSI6MTc0LjIyNDk5OTk5OTk5OTk3fV0=" data-look="classic" marker-end="url(#gd12_flowchart-v2-pointEnd)" style=";"></path><path d="M1056.594,99.225L1056.594,103.392C1056.594,107.558,1056.594,115.892,1056.594,124.225C1056.594,132.558,1056.594,140.892,1006.123,151.417C955.652,161.942,854.71,174.659,804.239,181.018L753.767,187.376" id="gd12-L_PY_SUM_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_PY_SUM_0" data-points="W3sieCI6MTA1Ni41OTM3NSwieSI6OTkuMjI1fSx7IngiOjEwNTYuNTkzNzUsInkiOjEyNC4yMjV9LHsieCI6MTA1Ni41OTM3NSwieSI6MTQ5LjIyNX0seyJ4Ijo3NDkuNzk4ODI4MTI1LCJ5IjoxODcuODc2MDM0MTU1MzM2NTh9XQ==" data-look="classic" marker-end="url(#gd12_flowchart-v2-pointEnd)" style=";"></path><path d="M595.322,240.45L595.322,244.617C595.322,248.783,595.322,257.117,595.322,264.783C595.322,272.45,595.322,279.45,595.322,282.95L595.322,286.45" id="gd12-L_SUM_GRANT_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_SUM_GRANT_0" data-points="W3sieCI6NTk1LjMyMjI2NTYyNSwieSI6MjQwLjQ1fSx7IngiOjU5NS4zMjIyNjU2MjUsInkiOjI2NS40NX0seyJ4Ijo1OTUuMzIyMjY1NjI1LCJ5IjoyOTAuNDV9XQ==" data-look="classic" marker-end="url(#gd12_flowchart-v2-pointEnd)" style=";"></path><path d="M595.322,374.275L595.322,378.442C595.322,382.608,595.322,390.942,595.322,398.608C595.322,406.275,595.322,413.275,595.322,416.775L595.322,420.275" id="gd12-L_GRANT_CHK_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_GRANT_CHK_0" data-points="W3sieCI6NTk1LjMyMjI2NTYyNSwieSI6Mzc0LjI3NTAwMDAwMDAwMDAzfSx7IngiOjU5NS4zMjIyNjU2MjUsInkiOjM5OS4yNzV9LHsieCI6NTk1LjMyMjI2NTYyNTAwMDEsInkiOjQyNC4yNzQ5OTk5OTk5OTk5fV0=" data-look="classic" marker-end="url(#gd12_flowchart-v2-pointEnd)" style=";"></path><path d="M524.286,669.343L509.68,687.235C495.074,705.126,465.862,740.909,451.256,764.186C436.65,787.463,436.65,798.234,436.65,803.619L436.65,809.005" id="gd12-L_CHK_OOM_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_CHK_OOM_0" data-points="W3sieCI6NTI0LjI4NTg1MzgzMjYxNTksInkiOjY2OS4zNDMyNzU3MDc2MTYyfSx7IngiOjQzNi42NTAzOTA2MjUsInkiOjc3Ni42OTIxODc1fSx7IngiOjQzNi42NTAzOTA2MjUsInkiOjgxMy4wMDQ2ODc1fV0=" data-look="classic" marker-end="url(#gd12_flowchart-v2-pointEnd)" style=";"></path><path d="M666.359,669.343L680.965,687.235C695.57,705.126,724.782,740.909,739.388,765.653C753.994,790.396,753.994,804.101,753.994,810.953L753.994,817.805" id="gd12-L_CHK_OK_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_CHK_OK_0" data-points="W3sieCI6NjY2LjM1ODY3NzQxNzM4NDEsInkiOjY2OS4zNDMyNzU3MDc2MTY0fSx7IngiOjc1My45OTQxNDA2MjUsInkiOjc3Ni42OTIxODc1fSx7IngiOjc1My45OTQxNDA2MjUsInkiOjgyMS44MDQ2ODc1fV0=" data-look="classic" marker-end="url(#gd12_flowchart-v2-pointEnd)" style=";"></path></g><g class="edgeLabels"><g class="edgeLabel"><g class="label" data-id="L_HEAP_SUM_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_OVER_SUM_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_OFF_SUM_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_PY_SUM_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_SUM_GRANT_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_GRANT_CHK_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel" transform="translate(436.650390625, 776.6921875)"><g class="label" data-id="L_CHK_OOM_0" transform="translate(0, -10.4609375)"><g><rect class="background" x="-15.9765625" y="-0.8515625" width="31.953125" height="22.625"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Yes</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(753.994140625, 776.6921875)"><g class="label" data-id="L_CHK_OK_0" transform="translate(0, -10.4609375)"><g><rect class="background" x="-12.87890625" y="-0.8515625" width="25.7578125" height="22.625"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">No</tspan></tspan></text></g></g></g></g><g class="nodes"><g class="node default " id="gd12-flowchart-HEAP-0" data-look="classic" transform="translate(169.66015625, 66.1125)"><rect class="basic label-container" x="-126.66015625" y="-33.1125" width="253.3203125" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">executorMemory</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (heap)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">8192</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> MB</tspan></tspan></text></g></g></g><g class="node default " id="gd12-flowchart-OVER-1" data-look="classic" transform="translate(448.9609375, 66.1125)"><rect class="basic label-container" x="-102.640625" y="-33.1125" width="205.28125" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">memoryOverhead</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">819</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> MB</tspan></tspan></text></g></g></g><g class="node default " id="gd12-flowchart-OFF-2" data-look="classic" transform="translate(741.68359375, 66.1125)"><rect class="basic label-container" x="-140.08203125" y="-33.1125" width="280.1640625" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">spark.memory.offHeap.size</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">1024</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> MB</tspan></tspan></text></g></g></g><g class="node default " id="gd12-flowchart-PY-3" data-look="classic" transform="translate(1056.59375, 66.1125)"><rect class="basic label-container" x="-124.828125" y="-33.1125" width="249.65625" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">pyspark.memory</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">512</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> MB</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (only</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> when</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> set)</tspan></tspan></text></g></g></g><g class="node default " id="gd12-flowchart-SUM-5" data-look="classic" transform="translate(595.322265625, 207.33749999999998)"><rect class="basic label-container" x="-154.4765625" y="-33.1125" width="308.953125" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Sum</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> of</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> terms</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> =</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> requested</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> size</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">=</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> 10,547</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> MB</tspan></tspan></text></g></g></g><g class="node default " id="gd12-flowchart-GRANT-13" data-look="classic" transform="translate(595.322265625, 332.3625)"><rect class="basic label-container" x="-141.35546875" y="-41.9125" width="282.7109375" height="83.825"></rect><g class="label" transform="translate(0, -26.9125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Resource</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> manager</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> grants</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> a</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">container</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> of</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> that</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> size</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(YARN</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> /</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Kubernetes)</tspan></tspan></text></g></g></g><g class="node default " id="gd12-flowchart-CHK-15" data-look="classic" transform="translate(595.322265625, 582.32734375)"><polygon points="158.05234375,0 316.1046875,-158.05234375 158.05234375,-316.1046875 0,-158.05234375" class="label-container" transform="translate(-157.55234375, 158.05234375)"></polygon><g class="label" transform="translate(0, -35.712500000000006)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Actual</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> runtime</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> footprint</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">></tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> container</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> limit?</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(native</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> /</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Python</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> use</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> spills</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">past</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> overhead</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> budget)</tspan></tspan></text></g></g></g><g class="node default " id="gd12-flowchart-OOM-17" data-look="classic" transform="translate(436.650390625, 846.1171875)"><rect class="basic label-container" x="-159.76171875" y="-33.1125" width="319.5234375" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">OOMKilled</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> resource</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> manager</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(YARN</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> /</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> Kubernetes</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> kubelet)</tspan></tspan></text></g></g></g><g class="node default " id="gd12-flowchart-OK-19" data-look="classic" transform="translate(753.994140625, 846.1171875)"><rect class="basic label-container" x="-107.58203125" y="-24.3125" width="215.1640625" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Runs</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> within</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> budget</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="gd12-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><defs><filter id="gd12-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><linearGradient id="gd12-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#3a4a52" stop-opacity="1"></stop><stop offset="100%" stop-color="hsl(200, 0%, 0%)" stop-opacity="1"></stop></linearGradient></svg>
|
package/export-template/docs/assets/contributor-guide_architecture_board-widgets.md.B-OsL91z.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as o,o as t,c as d,a5 as a}from"./chunks/framework.DSg0KOwT.js";const p=JSON.parse('{"title":"Board widgets","description":"","frontmatter":{},"headers":[],"relativePath":"contributor-guide/architecture/board-widgets.md","filePath":"contributor-guide/architecture/board-widgets.md"}'),i={name:"contributor-guide/architecture/board-widgets.md"};function c(n,e,r,s,l,g){return t(),d("div",null,[...e[0]||(e[0]=[a('<h1 id="board-widgets" tabindex="-1">Board widgets <a class="header-anchor" href="#board-widgets" aria-label="Permalink to "Board widgets""></a></h1><h2 id="board-widgets-beyond-the-fixed-six" tabindex="-1">Beyond the fixed six <a class="header-anchor" href="#board-widgets-beyond-the-fixed-six" aria-label="Permalink to "Beyond the fixed six {#board-widgets-beyond-the-fixed-six}""></a></h2><p>(Components below live in <code>src/view/widgets/</code>, one file per widget name, e.g. <code>JobFailures.tsx</code>, <code>MemoryUtilization.tsx</code>.)</p><p>Six extra cards render in the Findings tab's active grid alongside the fixed spec §5 six: Incomplete Run, Job Failures, Caching Opportunities, Config Audit, Plan Advisor, and Autoscaling Churn, all <code>region: 'action'</code> in <code>detector-registry.tsx</code>:</p><ul><li><p><strong>Incomplete Run</strong> (tag <code>INCMP</code>, <code>IncompleteRun.tsx</code>): app-level "the capture never finished" caveat (DETECTORS entry <code>incompleteRun</code>). Fires whenever <code>app.startTime</code> was observed but <code>app.endTime</code> was not, i.e. no <code>SparkListenerApplicationEnd</code> in the log: an in-flight job, a rotated-away log, or a capture cut short. Order 5, ahead of every other detector, so its card is first among the Findings tab's <code>action</code>-region active widgets when present. The Findings tab's recommendation rollup (rendered by <code>FixTheseFirst.tsx</code>) excludes <code>incompleteRun</code> from that list outright (see <a href="./widget-rendering.html#widget-rendering-order-fixed-spec-§5">Widget rendering order</a>): it's a pipeline-completeness caveat, not an addressable fix, so it never competes with other findings for a ranked slot there. Self-gates to <code>null</code> (no card in the DOM) once the run completed normally. Unrelated to <code>evidence-availability.ts</code>'s own <code>trustworthy</code> gate (see <a href="./worker-protocol.html#evidence-availability-contract-v1">Evidence-availability contract</a>): that ledger only downgrades <em>absence</em> conclusions for individual evidence categories, never becomes a <code>DETECTORS</code> finding itself, and this card does not read it. No <code>docAnchor</code> is set, the same deviation as Autoscaling Churn below: this is a tool-specific signal with no upstream <code>spark-tuning-reference</code> section.</p></li><li><p><strong>Job Failures</strong> (tag <code>JOBS</code>): app-level job-failure-rate rollup (DETECTORS entry <code>jobFailureRate</code> in <code>packages/core/src/detectors.ts</code>), computed from <code>app.jobs</code> (<code>SparkListenerJobEnd</code> results): ≥10% info, ≥30% warning, ≥50% critical. Complements the per-stage, task-level Failed Tasks card (tag <code>FAIL</code>).</p></li><li><p><strong>Caching Opportunities</strong> (tag <code>CACHE</code>, <code>CachingOpportunity.tsx</code>): app-level SQL relation-reuse detector (DETECTORS entry <code>cachingOpportunity</code>), computed from <code>ctx.sql</code>. It walks each execution's <code>planTree</code> and keys every scan by its stable pre-AQE identity via <code>scanRelationId</code> (<code>plan-summary.ts</code>): <code>parquet:<db.table></code>, <code>delta:<db.table></code>, <code>jdbc:<schema.table></code>. That dedupes relations within one execution (self-joins count once) and flags any relation scanned by <code>>= minExecutions</code> (2) distinct executions. Relation identity comes from the catalog-qualified scan name (nodeName, e.g. <code>Scan parquet spark_catalog.db.t</code>), not the <code>Location:</code> path, since Spark truncates that path at ~100 chars and points it at <code>_delta_log</code> for Delta tables; internal Delta-log metadata scans are dropped. Read bytes come from the scan's <code>size of files read</code> metric (<code>0</code>/unknown for JDBC). Findings carry <code>executionReuse</code> (<code>value</code> = distinct-execution count), <code>relation</code>, <code>format</code>, <code>executionIds</code>, <code>totalReadBytes</code>, and a size-aware <code>recommendation</code> (<code>confidence:'low'</code>, <code>validationRequired</code>). Renders nothing when clean (no card in the DOM). One row per relation: name + format badge, reuse count, <code>Data read</code> (<code>formatBytes</code>, em-dash when unknown), recommendation, sorted by <code>totalReadBytes</code> then reuse count descending. Rows reveal 6 initially, then up to 30 more per click. Pure-RDD-API apps (no SQL executions) produce no finding: a deliberate trade-off replacing the former RDD-lineage heuristic, which surfaced only internal query-engine RDDs on DataFrame/SQL workloads.</p><p>It also detects composite reuse. When the same join/union subtree (not just a leaf scan) recurs across <code>>= minExecutions</code> distinct SQL executions, the detector emits one <code>variant:'composite'</code> finding recommending caching the derived join/union result instead of two independent leaf-relation rows, and suppresses the leaf findings for relations fully covered by it. A relation reused beyond the composite's executions keeps a residual leaf finding for just the uncovered executions. Composite identity is structural: an anchor plan-shape fingerprint (<code>findCompositeCandidates</code>/<code>computePlanShapes</code>'s <code>opts.includeDetail</code> path, <code>detectors.ts</code>) folds the join/union node's own normalized <code>detail</code> (join type, columns, literals, with expr ids, <code>plan_id=</code>, codegen-stage numbers, and AQE's BuildLeft/BuildRight stripped, and commutative equality operands canonicalized) plus its children's detail-free shapes. Descendant nodes never contribute detail text, only structural shape, so a shared join reused across differently-filtered pre-join scans still matches (a deliberate trade-off) while a different join <em>condition</em> on the same tables does not collide. Nested composites (an inner join reused both standalone and inside an outer join) dedupe one level at a time: an inner composite fully covered by a qualifying outer composite's execution set is suppressed entirely, and a superset recomputes a residual finding over just its extra executions. Reuse via pure projection/aggregation with no join/union underneath stays leaf-level, not modeled as composite. <code>variant:'composite'</code> findings carry <code>operator</code> (<code>'join'</code>|<code>'union'</code>), <code>relations</code> (leaf relations under the composite, for display), and <code>format:'derived'</code> (a sentinel: composites have no scan storage format). They render a <code>JOIN</code>/<code>UNION</code> operator badge (styled distinct from the format badges) plus a low-confidence marker (<code>confidence:'low'</code>, <code>validationRequired</code>) in <code>CachingOpportunity.tsx</code>.</p></li><li><p><strong>Autoscaling Churn</strong> (tag <code>CHRN</code>, <code>AutoscalingChurn.tsx</code>): app-level short-lived-executor detector (DETECTORS entry <code>autoscalingChurn</code> in <code>packages/core/src/detectors.ts</code>; reuses the same <code>executorsAdded</code>/<code>executorsRemoved</code> matching logic as <code>utilization</code>). For each added executor, finds its matching removal event (falling back to <code>app.endTime</code> for an executor still alive when the log ends) and flags it short-lived if its lifetime is under 2 minutes (<code>thresholds.shortLivedMs</code>). Warns above 30% short-lived, escalates to critical above 60% (<code>confidence: 'low'</code>: these percentages are an unvalidated design-spike estimate, not yet checked against real autoscaling-heavy logs). Returns no finding below 5 total executors (noise floor) or when <code>app.endTime</code> is missing (truncated/still-running log). The widget itself is unchanged apart from a finding-driven verdict banner (impact dot + <code>CHRN</code> tag + recommendation) above its existing add/remove chart. The chart's muted scale-down bar coloring is untouched. No <code>docAnchor</code> is set yet: the upstream <code>shuffle-works/spark-tuning-reference</code> docs repo has no <code>bottleneck-autoscaling-churn</code> section (verified 2026-08-19), so the <code>CHRN</code> tag currently renders with no docs-panel link (a tracked follow-up).</p></li><li><p><strong>Config Audit</strong> (tag <code>CFG</code>): static Spark-config sanity findings derived from <code>app.config</code>/<code>app.resources</code> (parsed from <code>SparkListenerEnvironmentUpdate</code>): dynamic-allocation vs. shuffle-service mismatch, inverted/missing autoscaling bounds, non-Kryo serializer, low executor <code>memoryOverhead</code>. Computed outside the runtime bottleneck catalog: its findings live in the separate <code>configFindings</code> stream, not <code>catalog</code>. But <code>FixTheseFirst</code>/<code>Alerts</code> both merge <code>catalog</code> and <code>configFindings</code> (neither reads <code>region</code> any more), so a Config Audit finding is still eligible for a row in the Findings tab's recommendation rollup and still gets its own card in the active grid, alongside genuine bottleneck-catalog findings.</p></li><li><p><strong>Plan Advisor</strong> (tag <code>PLAN</code>): SQL-plan-level findings computed from <code>appModel.sql</code>'s resolved <code>planTree</code> (DETECTORS entries <code>duplicatePlanSubtree</code>, <code>smallFiles</code>, <code>broadcastSizing</code> in <code>packages/core/src/detectors.ts</code>): repeated plan subtrees (≥3 nodes, ≥2 occurrences, critical if the repeated root is an <code>Exchange</code>), small-files read/write (>100 files averaging ❤️ MiB), and broadcast-join sizing in both directions (missed- broadcast info finding, over-broadcast warning at >1 GB). Each of the four emitted types now renders as its own card (<code>DuplicatePlanSubtree.tsx</code>, <code>SmallFiles.tsx</code>, <code>UnderBroadcast.tsx</code>, <code>OverBroadcast.tsx</code>; the 2026-09 widget/finding-type 1:1 mapping redesign split what used to be one shared <code>PlanFindings.tsx</code> card): all four still share the <code>PLAN</code> tag and the same <code>--plan-aggregate</code> badge tint (<code>src/view/plan-finding-shared.ts</code>). Their <code>docAnchor</code>s (<code>#bottleneck-duplicate-plan-subtree</code>, <code>#bottleneck-small-files</code>, <code>#bottleneck-broadcast-sizing</code>) are not yet live in the vendored docs site, so <code>npm run update-docs</code> will abort until upstream <code>spark-tuning-reference</code> adds them.</p></li></ul><p><code>detector-registry.tsx</code>'s <code>REGISTRY</code> still carries <code>region: 'reference'</code> on four entries, each its own component now: <code>memoryUtilization</code> (<code>MemoryUtilization</code>), <code>utilization</code> (<code>ExecutorUtilization</code>), <code>cacheUtilization</code> (<code>CacheUtilization</code>), and <code>coreLocality</code> (<code>CoreUsageArea</code>). <code>broadcastSizing</code> is gone from <code>REGISTRY</code> entirely (the 2026-09 widget/finding-type 1:1 mapping redesign dropped it): it never backed a real <code>Finding</code> (the <code>broadcastSizing</code> <code>DETECTORS</code> entry only ever emits <code>underBroadcast</code>/<code>overBroadcast</code>, both <code>region: 'action'</code>, each now its own Plan Advisor card), so there is no key left for it to occupy or a clean-check line for it to render. Autoscaling Churn, the other executor-provisioning-lifecycle detector alongside <code>utilization</code>/<code>memoryUtilization</code>, was deliberately given <code>action</code> rather than <code>reference</code> (see "Beyond the fixed six" above).</p><p><code>region</code> decides one thing (see <a href="./widget-rendering.html#widget-rendering-order-fixed-spec-§5">Widget rendering order</a>): whether a widget always mounts. <code>isAlwaysMountedType()</code> flags exactly one of the four <code>reference</code>-region types: Core Usage by Locality. That one mounts unconditionally from <code>appModel</code> in its own small grid inside the Findings tab, regardless of finding state. Memory Utilization, Executor Utilization, and Cache Storage are <code>reference</code> too, but all three are excluded by product decision, not a component-sharing constraint (<code>ALWAYS_MOUNTED_EXCEPTIONS</code> in <code>src/view/detector-registry.tsx</code> carries <code>cacheUtilization</code>, <code>memoryUtilization</code>, and <code>utilization</code>): a clean run on any of them isn't evidence worth surfacing unconditionally, so each collapses to an ordinary <code>CleanCheckRow</code> like any other action-region type on a clean run. Every other <code>REGISTRY</code> widget still renders unconditionally as either an active card or a clean-check line, and <code>region</code> still sets <code>orderedWidgets()</code>'s sort order within the active grid (<code>action</code> components first, <code>reference</code> ones after). The Full app report tab is structural-only and reads no <code>REGISTRY</code> entry. So Core Usage by Locality, the one widget still tagged <code>region: 'reference'</code> and exempt from <code>ALWAYS_MOUNTED_EXCEPTIONS</code>, renders in the Findings tab's always-visible grid rather than inside a separate Reference region (Memory Utilization, Executor Utilization, and Cache Storage all render through the ordinary active/clean paths instead):</p><ul><li><strong>Memory Utilization</strong> (tag <code>MEM</code>): app-level card combining three sub-findings from the <code>memoryUtilization</code> DETECTORS entry (<code>packages/core/src/detectors.ts</code>): idle-cores rate (busy-core-time from the worker's run-aggregates sweep vs. peak-cores × wall-clock), per-executor memory bands (peak heap vs. allocated, gated on <code>spark.eventLog.logStageExecutorMetrics</code>: a distinct <code>dataUnavailable</code> finding renders when that config was off), and an unverified memory-waste model (<code>confidence:'low'</code>, a 1.5× buffer). The driver-memory half of the original spec is dropped: the worker only extracts <em>allocated</em> <code>spark.driver.memory</code>, never a driver actual-usage metric, so there is nothing to band against. The separate <code>utilization</code> DETECTORS entry (an <code>avgUtilization</code> info finding: active-executor-time fraction below 60%) has its own card, <strong>Executor Utilization</strong> (tag <code>UTIL</code>, <code>ExecutorUtilization.tsx</code>): a <code>reference</code>-region widget in its own right that renders only with an active finding, split out of this same combined widget in the 2026-09 widget/finding-type 1:1 mapping redesign (it used to render inline here; the former <code>ExecutorTimeline.tsx</code> never owned this type, despite the tag's letters).</li><li><strong>Cache Storage</strong> (tag <code>CSTOR</code>): app-level card driven by the <code>cacheUtilization</code> DETECTORS entry (<code>packages/core/src/detectors.ts</code>), evaluating two per-RDD proxies over <code>ctx.app.rddInfo</code> storage snapshots since Spark event logs carry no runtime block-access/read-count data: partial caching (<code>numCachedPartitions / numPartitions < 0.90</code>, <code>< 0.50</code> for the warning tier) and disk spillover for <code>MEMORY_AND_DISK*</code> RDDs (<code>diskSize / (memorySize + diskSize) > 0.15</code>, <code>> 0.40</code> for the warning tier; <code>DISK_ONLY</code> RDDs are never flagged). Every finding carries <code>confidence: 'medium'</code>, because the ratio is a point-in-time storage snapshot from stage-submission events, not a runtime read-count. The existing RDD table (ported from the legacy <code>src/widgets/cache-utilization.js</code> canvas widget) still renders unconditionally; flagged rows get an inline <code>CSTOR</code> tag next to the RDD name, and every flagged RDD's recommendation renders below the table, worst-first.</li><li><strong>Core Usage by Locality</strong> (tag <code>LOCAL</code>, <code>CoreUsageArea.tsx</code>): app-level non-local-task-ratio threshold (DETECTORS entry <code>coreLocality</code>; the other half of a wasted-cores-ratio check, the idle-core half already covered by Memory Utilization's <code>idleCores</code> variant above). Sums <code>RACK_LOCAL</code> + <code>ANY</code> task counts against total task count across every stage's <code>stage.localityStats</code> (pure reducer <code>computeCoreLocalityRatio</code>, <code>packages/core/src/core-locality-ratio.ts</code>). <code>NO_PREF</code> stays in the denominator only, since it's what shuffle-read stages legitimately report with no locality problem. Below 50 total tasks or below a 15% non-local ratio: no finding; 15%-35%: warning; >= 35%: critical (<code>confidence:'low'</code>, unvalidated design-spike thresholds, same convention as the memory-waste model above). The widget's always-rendered stacked-area chart (<code>packages/core/src/core-usage-locality.ts</code>) is unaffected. The finding only adds a threshold/impact-band section above it, a per-stage non-local breakdown below it (shown whenever any non-local tasks exist at all, independent of whether the aggregate crossed threshold), and a one-line cross-reference to Memory Utilization when its <code>idleCores</code> finding also fired (idle-core ratio itself is not duplicated here).</li></ul><p>Documented ALL-CAPS tag vocabulary: <code>SKEW</code>, <code>SHFL</code>, <code>SPILL</code>, <code>GC</code>, <code>COLD</code>, <code>UTIL</code>, <code>MEM</code> (Memory Utilization), <code>CSTOR</code> (Cache Storage), <code>LOCAL</code> (Core Usage by Locality), plus <code>FAIL</code> (Failed Tasks), <code>JOBS</code> (Job Failures), <code>CFG</code> (Config Audit), <code>PLAN</code> (Plan Advisor), <code>SFAIL</code> (stage failed outright), <code>PART</code> (partition sizing), <code>SLOW</code> (stage overall slowness), <code>SHAPE</code> (stage shape smells), <code>CACHE</code> (caching opportunity) and <code>CHRN</code> (autoscaling churn).</p><p>ETL Phase Attribution (<code>packages/core/src/etl-phases.ts</code> + <code>EtlPhases.tsx</code>), What-If Executor Scaling (<code>packages/core/src/scaling-sim.ts</code> + <code>ScalingSim.tsx</code>, design spike: makespan predictions are unvalidated and carry a Model Error indicator), and Compute Efficiency (<code>packages/core/src/efficiency-model.ts</code> + <code>EfficiencyModel.tsx</code>, design spike: driver-vs-executor waste split, two theoretical floors, and the §6 right-sizing copy) are main-thread report modules, not <code>DETECTORS</code> entries: descriptive lenses with no impact-band threshold, rendered unconditionally into the Full app report tab rather than participating in the bottleneck catalog. <code>packages/core/src/job-groups.ts</code> (<code>checkConcurrentJobGroups</code>) is likewise a report helper: it flags when concurrent SQL-execution job groups make wall-clock-based estimates unreliable, and both the scaling simulator and the efficiency model gate their precision on it, showing a caveat banner rather than suppressing the estimate.</p><h2 id="confidence-metadata" tabindex="-1">Confidence metadata <a class="header-anchor" href="#confidence-metadata" aria-label="Permalink to "Confidence metadata""></a></h2><p>Best-effort (non-deterministic) findings carry a <code>confidence</code> + <code>validationRequired</code> marker, rendered inline by each consuming widget (e.g. <code>Spill.tsx</code>, <code>DuplicatePlanSubtree.tsx</code>, <code>SmallFiles.tsx</code>, <code>UnderBroadcast.tsx</code>, <code>OverBroadcast.tsx</code>, <code>EfficiencyModel.tsx</code>) when <code>confidence</code> is present and not <code>'high'</code>. There is no shared helper: each widget renders its own muted "N confidence: verify" text, with the <code>title</code> attribute carrying <code>validationRequired</code> as a tooltip. Spill classification is <code>medium</code> when classified (skew/volume) and <code>low</code> when unclassified; plan-summary warnings are <code>low</code>. Deterministic detectors stay unmarked, treated as high confidence.</p><h2 id="visual-system" tabindex="-1">Visual system <a class="header-anchor" href="#visual-system" aria-label="Permalink to "Visual system""></a></h2><p>Tailwind CSS v4 + shadcn/ui (Base UI primitives). The design tokens (colors, including the telemetry-console dark palette) are defined as CSS variables in an <code>@theme inline</code> block and consumed via Tailwind utility classes; there is no more hand-authored BEM CSS. Theme polarity is unchanged from the legacy app: dark = bare <code>:root</code> (no attribute), light = <code>:root[data-theme="light"]</code>, toggled by <code>src/theme/ThemeProvider.tsx</code> and persisted to <code>localStorage</code>. <code>index.html</code>'s inline FOUC-prevention script still runs before React mounts. Mono is still the typeface for numerics (<code>--font-mono</code>), applied via a <code>.num</code>-equivalent Tailwind utility per call site rather than one global class. Charts are Recharts (<code>src/view/charts/ChartTheme.tsx</code>'s <code>CHART_COLORS</code>, read from the same CSS tokens) instead of Chart.js. React re-renders on theme toggle, so chart colors update live with the theme, unlike the old Chart.js canvases, which were built once per parse. <code>ChartFrame</code> can also expose the underlying rows through a toggleable accessible table and copy them to the clipboard as TSV.</p><h2 id="templating-xss-safe" tabindex="-1">Templating (XSS-safe) <a class="header-anchor" href="#templating-xss-safe" aria-label="Permalink to "Templating (XSS-safe)""></a></h2><p>JSX auto-escapes every interpolated value by default. The hand-rolled auto-escaping <code> html</code> `` tagged template (<code>src/widgets/utils.js</code>) and its <code>no-raw-innerhtml</code> guard test are gone, and no <code>.innerHTML</code> assignment is left anywhere in the view layer.</p><p>One Base UI-specific gotcha carried no equivalent in the legacy app: <code>WidgetCard.tsx</code> passes <code>aria-expanded={String(open) as 'true' | 'false'}</code> rather than the raw boolean, because Base UI's <code>Collapsible.Trigger</code> otherwise overrides a boolean <code>aria-expanded</code> prop with its own internal state via prop merging. The explicit <code>String()</code> cast keeps the rendered attribute in sync with this app's own <code>open</code> state.</p>',17)])])}const u=o(i,[["render",c]]);export{p as __pageData,u as default};
|
package/export-template/docs/assets/contributor-guide_architecture_board-widgets.md.B-OsL91z.lean.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as o,o as t,c as d,a5 as a}from"./chunks/framework.DSg0KOwT.js";const p=JSON.parse('{"title":"Board widgets","description":"","frontmatter":{},"headers":[],"relativePath":"contributor-guide/architecture/board-widgets.md","filePath":"contributor-guide/architecture/board-widgets.md"}'),i={name:"contributor-guide/architecture/board-widgets.md"};function c(n,e,r,s,l,g){return t(),d("div",null,[...e[0]||(e[0]=[a("",17)])])}const u=o(i,[["render",c]]);export{p as __pageData,u as default};
|