@stevenvo780/st-lang 4.14.0 → 4.15.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 -6
- package/dist/ast/nodes.d.ts +50 -0
- package/dist/ast/nodes.d.ts.map +1 -1
- package/dist/format/stnb/__tests__/executor.test.d.ts +2 -0
- package/dist/format/stnb/__tests__/executor.test.d.ts.map +1 -0
- package/dist/format/stnb/__tests__/executor.test.js +140 -0
- package/dist/format/stnb/__tests__/executor.test.js.map +1 -0
- package/dist/format/stnb/__tests__/parser.test.d.ts +2 -0
- package/dist/format/stnb/__tests__/parser.test.d.ts.map +1 -0
- package/dist/format/stnb/__tests__/parser.test.js +119 -0
- package/dist/format/stnb/__tests__/parser.test.js.map +1 -0
- package/dist/format/stnb/__tests__/renderer.test.d.ts +2 -0
- package/dist/format/stnb/__tests__/renderer.test.d.ts.map +1 -0
- package/dist/format/stnb/__tests__/renderer.test.js +109 -0
- package/dist/format/stnb/__tests__/renderer.test.js.map +1 -0
- package/dist/format/stnb/__tests__/roundtrip.test.d.ts +2 -0
- package/dist/format/stnb/__tests__/roundtrip.test.d.ts.map +1 -0
- package/dist/format/stnb/__tests__/roundtrip.test.js +91 -0
- package/dist/format/stnb/__tests__/roundtrip.test.js.map +1 -0
- package/dist/format/stnb/__tests__/serializer.test.d.ts +2 -0
- package/dist/format/stnb/__tests__/serializer.test.d.ts.map +1 -0
- package/dist/format/stnb/__tests__/serializer.test.js +60 -0
- package/dist/format/stnb/__tests__/serializer.test.js.map +1 -0
- package/dist/format/stnb/executor.d.ts +29 -0
- package/dist/format/stnb/executor.d.ts.map +1 -0
- package/dist/format/stnb/executor.js +139 -0
- package/dist/format/stnb/executor.js.map +1 -0
- package/dist/format/stnb/index.d.ts +19 -0
- package/dist/format/stnb/index.d.ts.map +1 -0
- package/dist/format/stnb/index.js +28 -0
- package/dist/format/stnb/index.js.map +1 -0
- package/dist/format/stnb/parser.d.ts +14 -0
- package/dist/format/stnb/parser.d.ts.map +1 -0
- package/dist/format/stnb/parser.js +123 -0
- package/dist/format/stnb/parser.js.map +1 -0
- package/dist/format/stnb/renderer-html.d.ts +11 -0
- package/dist/format/stnb/renderer-html.d.ts.map +1 -0
- package/dist/format/stnb/renderer-html.js +180 -0
- package/dist/format/stnb/renderer-html.js.map +1 -0
- package/dist/format/stnb/renderer-markdown.d.ts +13 -0
- package/dist/format/stnb/renderer-markdown.d.ts.map +1 -0
- package/dist/format/stnb/renderer-markdown.js +92 -0
- package/dist/format/stnb/renderer-markdown.js.map +1 -0
- package/dist/format/stnb/serializer.d.ts +14 -0
- package/dist/format/stnb/serializer.d.ts.map +1 -0
- package/dist/format/stnb/serializer.js +21 -0
- package/dist/format/stnb/serializer.js.map +1 -0
- package/dist/format/stnb/types.d.ts +45 -0
- package/dist/format/stnb/types.d.ts.map +1 -0
- package/dist/format/stnb/types.js +7 -0
- package/dist/format/stnb/types.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/logic/profile-bridge/index.d.ts.map +1 -1
- package/dist/logic/profile-bridge/index.js +20 -3
- package/dist/logic/profile-bridge/index.js.map +1 -1
- package/dist/logic/profiles/classical/propositional.d.ts.map +1 -1
- package/dist/logic/profiles/classical/propositional.js.map +1 -1
- package/dist/logic/profiles/ctl/check.d.ts.map +1 -1
- package/dist/logic/profiles/ctl/check.js +21 -11
- package/dist/logic/profiles/ctl/check.js.map +1 -1
- package/dist/logic/profiles/ctl/witness.d.ts.map +1 -1
- package/dist/logic/profiles/ctl/witness.js +2 -0
- package/dist/logic/profiles/ctl/witness.js.map +1 -1
- package/dist/logic/profiles/description-logic/types.d.ts +15 -0
- package/dist/logic/profiles/description-logic/types.d.ts.map +1 -1
- package/dist/logic/profiles/description-logic/types.js +13 -0
- package/dist/logic/profiles/description-logic/types.js.map +1 -1
- package/dist/logic/profiles/dl-hybrid/__tests__/differential.test.d.ts +2 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/differential.test.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/differential.test.js +141 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/differential.test.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/examples.test.d.ts +2 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/examples.test.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/examples.test.js +55 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/examples.test.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/parser.test.d.ts +2 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/parser.test.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/parser.test.js +149 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/parser.test.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/tableau.test.d.ts +2 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/tableau.test.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/tableau.test.js +105 -0
- package/dist/logic/profiles/dl-hybrid/__tests__/tableau.test.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/ast.d.ts +160 -0
- package/dist/logic/profiles/dl-hybrid/ast.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/ast.js +261 -0
- package/dist/logic/profiles/dl-hybrid/ast.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/differential.d.ts +61 -0
- package/dist/logic/profiles/dl-hybrid/differential.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/differential.js +291 -0
- package/dist/logic/profiles/dl-hybrid/differential.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/index.d.ts +10 -0
- package/dist/logic/profiles/dl-hybrid/index.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/index.js +90 -0
- package/dist/logic/profiles/dl-hybrid/index.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/parser.d.ts +8 -0
- package/dist/logic/profiles/dl-hybrid/parser.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/parser.js +410 -0
- package/dist/logic/profiles/dl-hybrid/parser.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/profile.d.ts +23 -0
- package/dist/logic/profiles/dl-hybrid/profile.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/profile.js +122 -0
- package/dist/logic/profiles/dl-hybrid/profile.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/semantics.d.ts +16 -0
- package/dist/logic/profiles/dl-hybrid/semantics.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/semantics.js +181 -0
- package/dist/logic/profiles/dl-hybrid/semantics.js.map +1 -0
- package/dist/logic/profiles/dl-hybrid/tableau.d.ts +38 -0
- package/dist/logic/profiles/dl-hybrid/tableau.d.ts.map +1 -0
- package/dist/logic/profiles/dl-hybrid/tableau.js +289 -0
- package/dist/logic/profiles/dl-hybrid/tableau.js.map +1 -0
- package/dist/logic/profiles/hybrid-logic/types.d.ts +17 -0
- package/dist/logic/profiles/hybrid-logic/types.d.ts.map +1 -1
- package/dist/logic/profiles/hybrid-logic/types.js +17 -0
- package/dist/logic/profiles/hybrid-logic/types.js.map +1 -1
- package/dist/logic/profiles/intuitionistic-nj/kripke.d.ts.map +1 -1
- package/dist/logic/profiles/intuitionistic-nj/kripke.js +8 -5
- package/dist/logic/profiles/intuitionistic-nj/kripke.js.map +1 -1
- package/dist/logic/profiles/ltl-sat/tableau.d.ts +31 -0
- package/dist/logic/profiles/ltl-sat/tableau.d.ts.map +1 -1
- package/dist/logic/profiles/ltl-sat/tableau.js +18 -0
- package/dist/logic/profiles/ltl-sat/tableau.js.map +1 -1
- package/dist/logic/profiles/ltl-sat/types.d.ts +15 -0
- package/dist/logic/profiles/ltl-sat/types.d.ts.map +1 -1
- package/dist/logic/profiles/ltl-sat/types.js +2 -1
- package/dist/logic/profiles/ltl-sat/types.js.map +1 -1
- package/dist/logic/profiles/modal-frame-axioms/formula.d.ts +10 -0
- package/dist/logic/profiles/modal-frame-axioms/formula.d.ts.map +1 -1
- package/dist/logic/profiles/modal-frame-axioms/formula.js +10 -0
- package/dist/logic/profiles/modal-frame-axioms/formula.js.map +1 -1
- package/dist/logic/profiles/mu-calculus/check.d.ts.map +1 -1
- package/dist/logic/profiles/mu-calculus/check.js +7 -4
- package/dist/logic/profiles/mu-calculus/check.js.map +1 -1
- package/dist/logic/profiles/natural-deduction-nk/formula.d.ts +8 -0
- package/dist/logic/profiles/natural-deduction-nk/formula.d.ts.map +1 -1
- package/dist/logic/profiles/natural-deduction-nk/formula.js +8 -0
- package/dist/logic/profiles/natural-deduction-nk/formula.js.map +1 -1
- package/dist/logic/profiles/quantum/index.d.ts.map +1 -1
- package/dist/logic/profiles/quantum/index.js +11 -8
- package/dist/logic/profiles/quantum/index.js.map +1 -1
- package/dist/logic/profiles/sequent-lj/index.d.ts +90 -0
- package/dist/logic/profiles/sequent-lj/index.d.ts.map +1 -0
- package/dist/logic/profiles/sequent-lj/index.js +903 -0
- package/dist/logic/profiles/sequent-lj/index.js.map +1 -0
- package/dist/logic/profiles/shared/tableau-engine.d.ts.map +1 -1
- package/dist/logic/profiles/shared/tableau-engine.js +0 -17
- package/dist/logic/profiles/shared/tableau-engine.js.map +1 -1
- package/dist/namespaces/proof-systems.d.ts +1 -1
- package/dist/namespaces/proof-systems.d.ts.map +1 -1
- package/dist/namespaces/proof-systems.js.map +1 -1
- package/dist/namespaces/semantics.d.ts +1 -1
- package/dist/namespaces/semantics.d.ts.map +1 -1
- package/dist/namespaces/semantics.js.map +1 -1
- package/dist/proof-systems/distributed-exchange/index.d.ts +29 -0
- package/dist/proof-systems/distributed-exchange/index.d.ts.map +1 -1
- package/dist/proof-systems/distributed-exchange/index.js +18 -0
- package/dist/proof-systems/distributed-exchange/index.js.map +1 -1
- package/dist/proof-systems/fol-prover/types.d.ts +16 -0
- package/dist/proof-systems/fol-prover/types.d.ts.map +1 -1
- package/dist/proof-systems/fol-prover/types.js +7 -0
- package/dist/proof-systems/fol-prover/types.js.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/index.d.ts +3 -3
- package/dist/proof-systems/fol-prover-advanced/index.d.ts.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/index.js.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/ordering.js +1 -1
- package/dist/proof-systems/fol-prover-advanced/prover.d.ts.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/prover.js +19 -12
- package/dist/proof-systems/fol-prover-advanced/prover.js.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/resolve.d.ts.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/resolve.js +7 -7
- package/dist/proof-systems/fol-prover-advanced/resolve.js.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/subsumption.d.ts.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/subsumption.js.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/types.d.ts +12 -0
- package/dist/proof-systems/fol-prover-advanced/types.d.ts.map +1 -1
- package/dist/proof-systems/fol-prover-advanced/unify.js +2 -2
- package/dist/proof-systems/fol-prover-equality/term-utils.d.ts +46 -0
- package/dist/proof-systems/fol-prover-equality/term-utils.d.ts.map +1 -1
- package/dist/proof-systems/fol-prover-equality/term-utils.js +46 -0
- package/dist/proof-systems/fol-prover-equality/term-utils.js.map +1 -1
- package/dist/proof-systems/proof-nets/correctness.d.ts.map +1 -1
- package/dist/proof-systems/proof-nets/correctness.js +24 -12
- package/dist/proof-systems/proof-nets/correctness.js.map +1 -1
- package/dist/proof-systems/proof-nets/types.d.ts +18 -0
- package/dist/proof-systems/proof-nets/types.d.ts.map +1 -1
- package/dist/proof-systems/proof-nets/types.js +6 -0
- package/dist/proof-systems/proof-nets/types.js.map +1 -1
- package/dist/proof-systems/tableau-framework/TableauProver.d.ts.map +1 -1
- package/dist/proof-systems/tableau-framework/TableauProver.js +5 -5
- package/dist/proof-systems/tableau-framework/TableauProver.js.map +1 -1
- package/dist/proof-systems/tableau-framework/propositional.d.ts.map +1 -1
- package/dist/proof-systems/tableau-framework/propositional.js +21 -21
- package/dist/proof-systems/tableau-framework/propositional.js.map +1 -1
- package/dist/reasoning/ban-logic/terms.d.ts +24 -0
- package/dist/reasoning/ban-logic/terms.d.ts.map +1 -1
- package/dist/reasoning/ban-logic/terms.js +24 -0
- package/dist/reasoning/ban-logic/terms.js.map +1 -1
- package/dist/reasoning/bayesian/factor.js +8 -8
- package/dist/reasoning/bayesian/factor.js.map +1 -1
- package/dist/reasoning/bayesian/inference.d.ts.map +1 -1
- package/dist/reasoning/bayesian/inference.js +11 -5
- package/dist/reasoning/bayesian/inference.js.map +1 -1
- package/dist/reasoning/combinatorics/generators.js.map +1 -1
- package/dist/reasoning/combinatorics/index.d.ts +3 -3
- package/dist/reasoning/combinatorics/index.d.ts.map +1 -1
- package/dist/reasoning/combinatorics/index.js.map +1 -1
- package/dist/reasoning/combinatorics/set-partitions.js.map +1 -1
- package/dist/reasoning/combinatorics/special-numbers.d.ts.map +1 -1
- package/dist/reasoning/combinatorics/special-numbers.js.map +1 -1
- package/dist/reasoning/constructive-analysis/cauchy.js +2 -2
- package/dist/reasoning/constructive-analysis/compact.js +1 -1
- package/dist/reasoning/constructive-analysis/continuity.d.ts.map +1 -1
- package/dist/reasoning/constructive-analysis/continuity.js +4 -4
- package/dist/reasoning/constructive-analysis/continuity.js.map +1 -1
- package/dist/reasoning/constructive-analysis/index.d.ts.map +1 -1
- package/dist/reasoning/constructive-analysis/index.js.map +1 -1
- package/dist/reasoning/constructive-analysis/ivt.d.ts.map +1 -1
- package/dist/reasoning/constructive-analysis/ivt.js +2 -2
- package/dist/reasoning/constructive-analysis/ivt.js.map +1 -1
- package/dist/reasoning/constructive-reals/index.d.ts.map +1 -1
- package/dist/reasoning/constructive-reals/index.js +4 -8
- package/dist/reasoning/constructive-reals/index.js.map +1 -1
- package/dist/reasoning/dl-hybrid/__tests__/invariant.test.d.ts +2 -0
- package/dist/reasoning/dl-hybrid/__tests__/invariant.test.d.ts.map +1 -0
- package/dist/reasoning/dl-hybrid/__tests__/invariant.test.js +74 -0
- package/dist/reasoning/dl-hybrid/__tests__/invariant.test.js.map +1 -0
- package/dist/reasoning/dl-hybrid/index.d.ts +3 -0
- package/dist/reasoning/dl-hybrid/index.d.ts.map +1 -0
- package/dist/reasoning/dl-hybrid/index.js +16 -0
- package/dist/reasoning/dl-hybrid/index.js.map +1 -0
- package/dist/reasoning/dl-hybrid/invariant-search.d.ts +39 -0
- package/dist/reasoning/dl-hybrid/invariant-search.d.ts.map +1 -0
- package/dist/reasoning/dl-hybrid/invariant-search.js +188 -0
- package/dist/reasoning/dl-hybrid/invariant-search.js.map +1 -0
- package/dist/reasoning/galois-fields/index.d.ts +64 -0
- package/dist/reasoning/galois-fields/index.d.ts.map +1 -1
- package/dist/reasoning/galois-fields/index.js +56 -6
- package/dist/reasoning/galois-fields/index.js.map +1 -1
- package/dist/reasoning/graph-theory/index.d.ts +31 -0
- package/dist/reasoning/graph-theory/index.d.ts.map +1 -1
- package/dist/reasoning/graph-theory/index.js +28 -10
- package/dist/reasoning/graph-theory/index.js.map +1 -1
- package/dist/reasoning/hoare-logic/index.d.ts +34 -0
- package/dist/reasoning/hoare-logic/index.d.ts.map +1 -1
- package/dist/reasoning/hoare-logic/index.js +26 -0
- package/dist/reasoning/hoare-logic/index.js.map +1 -1
- package/dist/reasoning/hyperreal/index.d.ts +30 -0
- package/dist/reasoning/hyperreal/index.d.ts.map +1 -1
- package/dist/reasoning/hyperreal/index.js +25 -0
- package/dist/reasoning/hyperreal/index.js.map +1 -1
- package/dist/reasoning/information-theory/index.d.ts +34 -0
- package/dist/reasoning/information-theory/index.d.ts.map +1 -1
- package/dist/reasoning/information-theory/index.js +27 -44
- package/dist/reasoning/information-theory/index.js.map +1 -1
- package/dist/reasoning/lemma-rag/__tests__/benchmarks.test.d.ts +2 -0
- package/dist/reasoning/lemma-rag/__tests__/benchmarks.test.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/benchmarks.test.js +72 -0
- package/dist/reasoning/lemma-rag/__tests__/benchmarks.test.js.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/embedding.test.d.ts +2 -0
- package/dist/reasoning/lemma-rag/__tests__/embedding.test.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/embedding.test.js +102 -0
- package/dist/reasoning/lemma-rag/__tests__/embedding.test.js.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/integration.test.d.ts +2 -0
- package/dist/reasoning/lemma-rag/__tests__/integration.test.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/integration.test.js +40 -0
- package/dist/reasoning/lemma-rag/__tests__/integration.test.js.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/query.test.d.ts +2 -0
- package/dist/reasoning/lemma-rag/__tests__/query.test.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/query.test.js +136 -0
- package/dist/reasoning/lemma-rag/__tests__/query.test.js.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/retrieval.test.d.ts +2 -0
- package/dist/reasoning/lemma-rag/__tests__/retrieval.test.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/__tests__/retrieval.test.js +147 -0
- package/dist/reasoning/lemma-rag/__tests__/retrieval.test.js.map +1 -0
- package/dist/reasoning/lemma-rag/benchmarks.d.ts +30 -0
- package/dist/reasoning/lemma-rag/benchmarks.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/benchmarks.js +177 -0
- package/dist/reasoning/lemma-rag/benchmarks.js.map +1 -0
- package/dist/reasoning/lemma-rag/embedding.d.ts +26 -0
- package/dist/reasoning/lemma-rag/embedding.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/embedding.js +243 -0
- package/dist/reasoning/lemma-rag/embedding.js.map +1 -0
- package/dist/reasoning/lemma-rag/index-store.d.ts +35 -0
- package/dist/reasoning/lemma-rag/index-store.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/index-store.js +105 -0
- package/dist/reasoning/lemma-rag/index-store.js.map +1 -0
- package/dist/reasoning/lemma-rag/index.d.ts +9 -0
- package/dist/reasoning/lemma-rag/index.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/index.js +34 -0
- package/dist/reasoning/lemma-rag/index.js.map +1 -0
- package/dist/reasoning/lemma-rag/query.d.ts +48 -0
- package/dist/reasoning/lemma-rag/query.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/query.js +92 -0
- package/dist/reasoning/lemma-rag/query.js.map +1 -0
- package/dist/reasoning/lemma-rag/retrieval.d.ts +33 -0
- package/dist/reasoning/lemma-rag/retrieval.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/retrieval.js +123 -0
- package/dist/reasoning/lemma-rag/retrieval.js.map +1 -0
- package/dist/reasoning/lemma-rag/types.d.ts +52 -0
- package/dist/reasoning/lemma-rag/types.d.ts.map +1 -0
- package/dist/reasoning/lemma-rag/types.js +13 -0
- package/dist/reasoning/lemma-rag/types.js.map +1 -0
- package/dist/reasoning/lemma-synthesis/index.d.ts +36 -0
- package/dist/reasoning/lemma-synthesis/index.d.ts.map +1 -1
- package/dist/reasoning/lemma-synthesis/index.js +12 -0
- package/dist/reasoning/lemma-synthesis/index.js.map +1 -1
- package/dist/reasoning/linear-algebra/index.d.ts +38 -0
- package/dist/reasoning/linear-algebra/index.d.ts.map +1 -1
- package/dist/reasoning/linear-algebra/index.js +34 -5
- package/dist/reasoning/linear-algebra/index.js.map +1 -1
- package/dist/reasoning/markov-logic/grounding.js +1 -1
- package/dist/reasoning/markov-logic/grounding.js.map +1 -1
- package/dist/reasoning/markov-logic/inference.js +1 -1
- package/dist/reasoning/markov-logic/inference.js.map +1 -1
- package/dist/reasoning/order-theory/index.d.ts +121 -0
- package/dist/reasoning/order-theory/index.d.ts.map +1 -0
- package/dist/reasoning/order-theory/index.js +562 -0
- package/dist/reasoning/order-theory/index.js.map +1 -0
- package/dist/reasoning/peano-arithmetic/index.d.ts +114 -0
- package/dist/reasoning/peano-arithmetic/index.d.ts.map +1 -0
- package/dist/reasoning/peano-arithmetic/index.js +650 -0
- package/dist/reasoning/peano-arithmetic/index.js.map +1 -0
- package/dist/reasoning/polynomial-ring/index.d.ts +80 -0
- package/dist/reasoning/polynomial-ring/index.d.ts.map +1 -1
- package/dist/reasoning/polynomial-ring/index.js +75 -0
- package/dist/reasoning/polynomial-ring/index.js.map +1 -1
- package/dist/reasoning/proof-mining/__tests__/extractor.test.d.ts +2 -0
- package/dist/reasoning/proof-mining/__tests__/extractor.test.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/extractor.test.js +263 -0
- package/dist/reasoning/proof-mining/__tests__/extractor.test.js.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/generalizer.test.d.ts +2 -0
- package/dist/reasoning/proof-mining/__tests__/generalizer.test.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/generalizer.test.js +123 -0
- package/dist/reasoning/proof-mining/__tests__/generalizer.test.js.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/integration.test.d.ts +2 -0
- package/dist/reasoning/proof-mining/__tests__/integration.test.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/integration.test.js +128 -0
- package/dist/reasoning/proof-mining/__tests__/integration.test.js.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/persistence.test.d.ts +2 -0
- package/dist/reasoning/proof-mining/__tests__/persistence.test.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/persistence.test.js +119 -0
- package/dist/reasoning/proof-mining/__tests__/persistence.test.js.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/ranker.test.d.ts +2 -0
- package/dist/reasoning/proof-mining/__tests__/ranker.test.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/__tests__/ranker.test.js +93 -0
- package/dist/reasoning/proof-mining/__tests__/ranker.test.js.map +1 -0
- package/dist/reasoning/proof-mining/extractor.d.ts +73 -0
- package/dist/reasoning/proof-mining/extractor.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/extractor.js +170 -0
- package/dist/reasoning/proof-mining/extractor.js.map +1 -0
- package/dist/reasoning/proof-mining/generalizer.d.ts +46 -0
- package/dist/reasoning/proof-mining/generalizer.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/generalizer.js +245 -0
- package/dist/reasoning/proof-mining/generalizer.js.map +1 -0
- package/dist/reasoning/proof-mining/index.d.ts +62 -0
- package/dist/reasoning/proof-mining/index.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/index.js +235 -0
- package/dist/reasoning/proof-mining/index.js.map +1 -0
- package/dist/reasoning/proof-mining/persistence.d.ts +35 -0
- package/dist/reasoning/proof-mining/persistence.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/persistence.js +126 -0
- package/dist/reasoning/proof-mining/persistence.js.map +1 -0
- package/dist/reasoning/proof-mining/ranker.d.ts +29 -0
- package/dist/reasoning/proof-mining/ranker.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/ranker.js +71 -0
- package/dist/reasoning/proof-mining/ranker.js.map +1 -0
- package/dist/reasoning/proof-mining/statistics.d.ts +11 -0
- package/dist/reasoning/proof-mining/statistics.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/statistics.js +44 -0
- package/dist/reasoning/proof-mining/statistics.js.map +1 -0
- package/dist/reasoning/proof-mining/types.d.ts +117 -0
- package/dist/reasoning/proof-mining/types.d.ts.map +1 -0
- package/dist/reasoning/proof-mining/types.js +24 -0
- package/dist/reasoning/proof-mining/types.js.map +1 -0
- package/dist/reasoning/separation-logic/index.d.ts +30 -0
- package/dist/reasoning/separation-logic/index.d.ts.map +1 -1
- package/dist/reasoning/separation-logic/index.js +21 -0
- package/dist/reasoning/separation-logic/index.js.map +1 -1
- package/dist/reasoning/set-theory/hf-functions.js +3 -3
- package/dist/reasoning/set-theory/hf-sets.js +1 -1
- package/dist/reasoning/set-theory/index.d.ts +3 -3
- package/dist/reasoning/set-theory/index.d.ts.map +1 -1
- package/dist/reasoning/set-theory/zfc-axioms.js +4 -4
- package/dist/reasoning/tactic-dsl/tactics.d.ts +87 -0
- package/dist/reasoning/tactic-dsl/tactics.d.ts.map +1 -1
- package/dist/reasoning/tactic-dsl/tactics.js +86 -36
- package/dist/reasoning/tactic-dsl/tactics.js.map +1 -1
- package/dist/reasoning/topology/index.d.ts +81 -0
- package/dist/reasoning/topology/index.d.ts.map +1 -1
- package/dist/reasoning/topology/index.js +69 -45
- package/dist/reasoning/topology/index.js.map +1 -1
- package/dist/runtime/countermodel-min/minimize.js +0 -0
- package/dist/runtime/countermodel-min/minimize.js.map +1 -1
- package/dist/runtime/csp-hoare/semantics.d.ts +12 -0
- package/dist/runtime/csp-hoare/semantics.d.ts.map +1 -1
- package/dist/runtime/csp-hoare/semantics.js +12 -0
- package/dist/runtime/csp-hoare/semantics.js.map +1 -1
- package/dist/runtime/symbolic-diff/constructors.d.ts +20 -0
- package/dist/runtime/symbolic-diff/constructors.d.ts.map +1 -1
- package/dist/runtime/symbolic-diff/constructors.js +20 -0
- package/dist/runtime/symbolic-diff/constructors.js.map +1 -1
- package/dist/runtime/term-rewriting/term-utils.d.ts.map +1 -1
- package/dist/runtime/term-rewriting/term-utils.js +33 -2
- package/dist/runtime/term-rewriting/term-utils.js.map +1 -1
- package/dist/runtime/typecheck/checker.js +2 -2
- package/dist/runtime/typecheck/checker.js.map +1 -1
- package/dist/runtime/typecheck/levenshtein.js +1 -1
- package/dist/runtime/typecheck/levenshtein.js.map +1 -1
- package/dist/semantics/categorical/fin-set.d.ts.map +1 -1
- package/dist/semantics/categorical/fin-set.js +8 -1
- package/dist/semantics/categorical/fin-set.js.map +1 -1
- package/dist/semantics/categorical/free.d.ts.map +1 -1
- package/dist/semantics/categorical/free.js +8 -2
- package/dist/semantics/categorical/free.js.map +1 -1
- package/dist/semantics/categorical/limits.d.ts.map +1 -1
- package/dist/semantics/categorical/limits.js +13 -4
- package/dist/semantics/categorical/limits.js.map +1 -1
- package/dist/semantics/categorical/monoidal.d.ts.map +1 -1
- package/dist/semantics/categorical/monoidal.js +3 -1
- package/dist/semantics/categorical/monoidal.js.map +1 -1
- package/dist/semantics/text-layer/compiler.d.ts +46 -0
- package/dist/semantics/text-layer/compiler.d.ts.map +1 -1
- package/dist/semantics/text-layer/compiler.js +46 -11
- package/dist/semantics/text-layer/compiler.js.map +1 -1
- package/dist/solver/cdcl-v2/index.d.ts +8 -0
- package/dist/solver/cdcl-v2/index.d.ts.map +1 -1
- package/dist/solver/cdcl-v2/index.js +8 -0
- package/dist/solver/cdcl-v2/index.js.map +1 -1
- package/dist/solver/smt-z3/z3-wasm-backend.d.ts +0 -1
- package/dist/solver/smt-z3/z3-wasm-backend.d.ts.map +1 -1
- package/dist/solver/smt-z3/z3-wasm-backend.js +2 -3
- package/dist/solver/smt-z3/z3-wasm-backend.js.map +1 -1
- package/dist/tests/agora-integration-fixtures.test.js +7 -2
- package/dist/tests/agora-integration-fixtures.test.js.map +1 -1
- package/dist/tests/coverage-90/coverage-90-cdcl-v2-deep.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-cdcl-v2-deep.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-cdcl-v2-deep.test.js +123 -0
- package/dist/tests/coverage-90/coverage-90-cdcl-v2-deep.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-certificate-rules.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-certificate-rules.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-certificate-rules.test.js +172 -0
- package/dist/tests/coverage-90/coverage-90-certificate-rules.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-extra.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-extra.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-extra.test.js +326 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-extra.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-features.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-features.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-features.test.js +418 -0
- package/dist/tests/coverage-90/coverage-90-interpreter-features.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-modal-temporal.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-modal-temporal.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-modal-temporal.test.js +162 -0
- package/dist/tests/coverage-90/coverage-90-modal-temporal.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-nk-prover.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-nk-prover.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-nk-prover.test.js +104 -0
- package/dist/tests/coverage-90/coverage-90-nk-prover.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-parser-deep.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-parser-deep.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-parser-deep.test.js +262 -0
- package/dist/tests/coverage-90/coverage-90-parser-deep.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-sat-engines.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-sat-engines.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-sat-engines.test.js +101 -0
- package/dist/tests/coverage-90/coverage-90-sat-engines.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-sequent-lk.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-sequent-lk.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-sequent-lk.test.js +219 -0
- package/dist/tests/coverage-90/coverage-90-sequent-lk.test.js.map +1 -0
- package/dist/tests/coverage-90/coverage-90-smt-lib-parser.test.d.ts +2 -0
- package/dist/tests/coverage-90/coverage-90-smt-lib-parser.test.d.ts.map +1 -0
- package/dist/tests/coverage-90/coverage-90-smt-lib-parser.test.js +154 -0
- package/dist/tests/coverage-90/coverage-90-smt-lib-parser.test.js.map +1 -0
- package/dist/tests/coverage-95/first-order.test.js.map +1 -1
- package/dist/tests/coverage-95/fol-prover.test.js.map +1 -1
- package/dist/tests/integration/cross-modules.test.js +43 -19
- package/dist/tests/integration/cross-modules.test.js.map +1 -1
- package/dist/tests/logic/ctl/check.test.js.map +1 -1
- package/dist/tests/logic/profile-bridge/translations.test.js +3 -3
- package/dist/tests/logic/profile-bridge/translations.test.js.map +1 -1
- package/dist/tests/logic/profiles/sequent-lj/lj.test.d.ts +2 -0
- package/dist/tests/logic/profiles/sequent-lj/lj.test.d.ts.map +1 -0
- package/dist/tests/logic/profiles/sequent-lj/lj.test.js +400 -0
- package/dist/tests/logic/profiles/sequent-lj/lj.test.js.map +1 -0
- package/dist/tests/logic/sequent-g3/prover.test.js.map +1 -1
- package/dist/tests/logic/substructural/prover.test.js.map +1 -1
- package/dist/tests/proof-systems/fol-prover-advanced/prover.test.js +40 -13
- package/dist/tests/proof-systems/fol-prover-advanced/prover.test.js.map +1 -1
- package/dist/tests/proof-systems/higher-order-unify/ho-unify.test.js.map +1 -1
- package/dist/tests/proof-systems/tableau-framework/tableau.test.js +8 -8
- package/dist/tests/proof-systems/tableau-framework/tableau.test.js.map +1 -1
- package/dist/tests/properties/agm.property.test.js +1 -1
- package/dist/tests/properties/agm.property.test.js.map +1 -1
- package/dist/tests/properties/anti-unification.property.test.js.map +1 -1
- package/dist/tests/properties/argumentation.property.test.js.map +1 -1
- package/dist/tests/properties/bisimulation.property.test.js.map +1 -1
- package/dist/tests/properties/cdcl.property.test.js.map +1 -1
- package/dist/tests/properties/coinduction.property.test.js.map +1 -1
- package/dist/tests/properties/constructive-reals.property.test.js.map +1 -1
- package/dist/tests/properties/csp.property.test.js +1 -3
- package/dist/tests/properties/csp.property.test.js.map +1 -1
- package/dist/tests/properties/generators.d.ts +1 -1
- package/dist/tests/properties/generators.d.ts.map +1 -1
- package/dist/tests/properties/generators.js +22 -30
- package/dist/tests/properties/generators.js.map +1 -1
- package/dist/tests/properties/intuit-nj.property.test.js +3 -1
- package/dist/tests/properties/intuit-nj.property.test.js.map +1 -1
- package/dist/tests/properties/lambda-calc.property.test.js.map +1 -1
- package/dist/tests/properties/mln.property.test.js +1 -3
- package/dist/tests/properties/mln.property.test.js.map +1 -1
- package/dist/tests/properties/planning.property.test.js.map +1 -1
- package/dist/tests/properties/profile-bridge.property.test.js.map +1 -1
- package/dist/tests/properties/theorem-cache.property.test.js.map +1 -1
- package/dist/tests/protocol-text-layer.test.js.map +1 -1
- package/dist/tests/reasoning/combinatorics/combinatorics.test.js +1 -1
- package/dist/tests/reasoning/constructive-analysis/constructive-analysis.test.js +9 -9
- package/dist/tests/reasoning/constructive-analysis/constructive-analysis.test.js.map +1 -1
- package/dist/tests/reasoning/linear-algebra/linear-algebra.test.js +80 -38
- package/dist/tests/reasoning/linear-algebra/linear-algebra.test.js.map +1 -1
- package/dist/tests/reasoning/order-theory/order-theory.test.d.ts +2 -0
- package/dist/tests/reasoning/order-theory/order-theory.test.d.ts.map +1 -0
- package/dist/tests/reasoning/order-theory/order-theory.test.js +211 -0
- package/dist/tests/reasoning/order-theory/order-theory.test.js.map +1 -0
- package/dist/tests/reasoning/peano-arithmetic/peano.test.d.ts +2 -0
- package/dist/tests/reasoning/peano-arithmetic/peano.test.d.ts.map +1 -0
- package/dist/tests/reasoning/peano-arithmetic/peano.test.js +159 -0
- package/dist/tests/reasoning/peano-arithmetic/peano.test.js.map +1 -0
- package/dist/tests/reasoning/set-theory/hf-functions.test.js +11 -11
- package/dist/tests/reasoning/set-theory/zfc-axioms.test.js +1 -1
- package/dist/tests/semantics/text-layer-v2/claim-graph.test.js.map +1 -1
- package/dist/tests/solver/smt-lib/emitter.test.js.map +1 -1
- package/dist/tests/solver/smt-z3/z3-wasm-backend.test.js.map +1 -1
- package/dist/tests/tooling/test-harness/test-harness.test.js +9 -6
- package/dist/tests/tooling/test-harness/test-harness.test.js.map +1 -1
- package/dist/tooling/lsp/types.d.ts +13 -0
- package/dist/tooling/lsp/types.d.ts.map +1 -1
- package/dist/tooling/lsp/types.js +1 -0
- package/dist/tooling/lsp/types.js.map +1 -1
- package/dist/tooling/test-harness/combinators.d.ts.map +1 -1
- package/dist/tooling/test-harness/combinators.js +4 -4
- package/dist/tooling/test-harness/combinators.js.map +1 -1
- package/dist/tooling/test-harness/coverage.js +1 -1
- package/dist/tooling/test-harness/generators.d.ts.map +1 -1
- package/dist/tooling/test-harness/generators.js.map +1 -1
- package/dist/tooling/test-harness/index.d.ts +1 -1
- package/dist/tooling/test-harness/index.d.ts.map +1 -1
- package/dist/tooling/test-harness/index.js.map +1 -1
- package/dist/tooling/test-harness/snapshot.d.ts.map +1 -1
- package/dist/tooling/test-harness/snapshot.js +2 -2
- package/dist/tooling/test-harness/snapshot.js.map +1 -1
- package/dist/type-theory/cubical/types.d.ts +25 -0
- package/dist/type-theory/cubical/types.d.ts.map +1 -1
- package/dist/type-theory/cubical/types.js +20 -0
- package/dist/type-theory/cubical/types.js.map +1 -1
- package/dist/type-theory/curry-howard/types.d.ts +27 -0
- package/dist/type-theory/curry-howard/types.d.ts.map +1 -1
- package/dist/type-theory/curry-howard/types.js +18 -0
- package/dist/type-theory/curry-howard/types.js.map +1 -1
- package/dist/type-theory/hindley-milner/substitution.d.ts +39 -0
- package/dist/type-theory/hindley-milner/substitution.d.ts.map +1 -1
- package/dist/type-theory/hindley-milner/substitution.js +37 -0
- package/dist/type-theory/hindley-milner/substitution.js.map +1 -1
- package/dist/type-theory/hindley-milner/types.d.ts +25 -0
- package/dist/type-theory/hindley-milner/types.d.ts.map +1 -1
- package/dist/type-theory/hindley-milner/types.js +22 -2
- package/dist/type-theory/hindley-milner/types.js.map +1 -1
- package/dist/type-theory/hol/rules.d.ts +36 -0
- package/dist/type-theory/hol/rules.d.ts.map +1 -1
- package/dist/type-theory/hol/rules.js +36 -0
- package/dist/type-theory/hol/rules.js.map +1 -1
- package/dist/type-theory/hott/types.d.ts +32 -0
- package/dist/type-theory/hott/types.d.ts.map +1 -1
- package/dist/type-theory/hott/types.js +31 -1
- package/dist/type-theory/hott/types.js.map +1 -1
- package/dist/type-theory/lambda-cube/types.d.ts +17 -0
- package/dist/type-theory/lambda-cube/types.d.ts.map +1 -1
- package/dist/type-theory/lambda-cube/types.js +13 -0
- package/dist/type-theory/lambda-cube/types.js.map +1 -1
- package/dist/type-theory/mltt/types.d.ts +19 -0
- package/dist/type-theory/mltt/types.d.ts.map +1 -1
- package/dist/type-theory/mltt/types.js +15 -1
- package/dist/type-theory/mltt/types.js.map +1 -1
- package/dist/type-theory/nbe/types.d.ts +21 -0
- package/dist/type-theory/nbe/types.d.ts.map +1 -1
- package/dist/type-theory/nbe/types.js +13 -1
- package/dist/type-theory/nbe/types.js.map +1 -1
- package/dist/type-theory/refinement-types/types.d.ts +38 -0
- package/dist/type-theory/refinement-types/types.d.ts.map +1 -1
- package/dist/type-theory/refinement-types/types.js +35 -0
- package/dist/type-theory/refinement-types/types.js.map +1 -1
- package/dist/type-theory/system-f/types.d.ts +30 -0
- package/dist/type-theory/system-f/types.d.ts.map +1 -1
- package/dist/type-theory/system-f/types.js +24 -3
- package/dist/type-theory/system-f/types.js.map +1 -1
- package/dist/types/index.d.ts +42 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +26 -1
|
@@ -60,6 +60,7 @@ exports.findIsomorphism = findIsomorphism;
|
|
|
60
60
|
// ------------------------------------------------------------
|
|
61
61
|
// Construcción
|
|
62
62
|
// ------------------------------------------------------------
|
|
63
|
+
/** Crea un grafo vacío (dirigido o no según el flag). */
|
|
63
64
|
function makeGraph(directed = false) {
|
|
64
65
|
return {
|
|
65
66
|
vertices: new Set(),
|
|
@@ -67,15 +68,17 @@ function makeGraph(directed = false) {
|
|
|
67
68
|
directed,
|
|
68
69
|
};
|
|
69
70
|
}
|
|
71
|
+
/** Añade el vértice `v` al grafo `G` (sin aristas). */
|
|
70
72
|
function addVertex(G, v) {
|
|
71
73
|
G.vertices.add(v);
|
|
72
74
|
}
|
|
75
|
+
/** Añade la arista `e` al grafo `G`, incluyendo sus extremos como vértices si es necesario. */
|
|
73
76
|
function addEdge(G, e) {
|
|
74
77
|
G.vertices.add(e.from);
|
|
75
78
|
G.vertices.add(e.to);
|
|
76
79
|
G.edges.push({ from: e.from, to: e.to, weight: e.weight });
|
|
77
80
|
}
|
|
78
|
-
|
|
81
|
+
/** Devuelve los vecinos salientes de `v` (en no dirigido, ambos extremos cuentan). */
|
|
79
82
|
function neighbors(G, v) {
|
|
80
83
|
const out = [];
|
|
81
84
|
for (const e of G.edges) {
|
|
@@ -86,6 +89,7 @@ function neighbors(G, v) {
|
|
|
86
89
|
}
|
|
87
90
|
return out;
|
|
88
91
|
}
|
|
92
|
+
/** Grado de entrada de `v` (en grafo no dirigido, igual al grado total). */
|
|
89
93
|
function inDegree(G, v) {
|
|
90
94
|
if (!G.directed)
|
|
91
95
|
return degreeUndirected(G, v);
|
|
@@ -95,6 +99,7 @@ function inDegree(G, v) {
|
|
|
95
99
|
d++;
|
|
96
100
|
return d;
|
|
97
101
|
}
|
|
102
|
+
/** Grado de salida de `v` (en grafo no dirigido, igual al grado total). */
|
|
98
103
|
function outDegree(G, v) {
|
|
99
104
|
if (!G.directed)
|
|
100
105
|
return degreeUndirected(G, v);
|
|
@@ -134,6 +139,7 @@ function buildAdjacency(G) {
|
|
|
134
139
|
// ------------------------------------------------------------
|
|
135
140
|
// Recorridos
|
|
136
141
|
// ------------------------------------------------------------
|
|
142
|
+
/** BFS desde `start`; devuelve los vértices en orden de visita. Llama `visit` por cada uno si se proporciona. */
|
|
137
143
|
function bfs(G, start, visit) {
|
|
138
144
|
if (!G.vertices.has(start))
|
|
139
145
|
return [];
|
|
@@ -157,6 +163,7 @@ function bfs(G, start, visit) {
|
|
|
157
163
|
}
|
|
158
164
|
return order;
|
|
159
165
|
}
|
|
166
|
+
/** DFS desde `start`; devuelve los vértices en orden de visita. Llama `visit` por cada uno si se proporciona. */
|
|
160
167
|
function dfs(G, start, visit) {
|
|
161
168
|
if (!G.vertices.has(start))
|
|
162
169
|
return [];
|
|
@@ -182,7 +189,7 @@ function dfs(G, start, visit) {
|
|
|
182
189
|
}
|
|
183
190
|
return order;
|
|
184
191
|
}
|
|
185
|
-
|
|
192
|
+
/** Orden topológico vía Kahn. Devuelve `'has-cycle'` si el grafo no es un DAG. */
|
|
186
193
|
function topologicalSort(G) {
|
|
187
194
|
if (!G.directed) {
|
|
188
195
|
// Para no dirigidos no tiene sentido salvo aristas-cero; devolver vértices.
|
|
@@ -219,6 +226,7 @@ function topologicalSort(G) {
|
|
|
219
226
|
// ------------------------------------------------------------
|
|
220
227
|
// Conectividad
|
|
221
228
|
// ------------------------------------------------------------
|
|
229
|
+
/** Componentes conexos (débiles en dirigido) del grafo. Cada componente es una lista de vértices. */
|
|
222
230
|
function connectedComponents(G) {
|
|
223
231
|
const adj = buildAdjacency(G);
|
|
224
232
|
const seen = new Set();
|
|
@@ -251,13 +259,13 @@ function connectedComponents(G) {
|
|
|
251
259
|
}
|
|
252
260
|
return comps;
|
|
253
261
|
}
|
|
262
|
+
/** Devuelve `true` si el grafo tiene un solo componente conexo. */
|
|
254
263
|
function isConnected(G) {
|
|
255
264
|
if (G.vertices.size <= 1)
|
|
256
265
|
return true;
|
|
257
266
|
return connectedComponents(G).length === 1;
|
|
258
267
|
}
|
|
259
|
-
|
|
260
|
-
// el componente conexo.
|
|
268
|
+
/** Componentes fuertemente conexos (Tarjan, iterativo). En no dirigido cada SCC = componente conexo. */
|
|
261
269
|
function stronglyConnectedComponents(G) {
|
|
262
270
|
if (!G.directed)
|
|
263
271
|
return connectedComponents(G);
|
|
@@ -328,7 +336,7 @@ function stronglyConnectedComponents(G) {
|
|
|
328
336
|
}
|
|
329
337
|
return result;
|
|
330
338
|
}
|
|
331
|
-
|
|
339
|
+
/** Puntos de articulación (corte) del grafo no dirigido, detectados vía DFS lowlink. */
|
|
332
340
|
function articulationPoints(G) {
|
|
333
341
|
if (G.vertices.size === 0)
|
|
334
342
|
return [];
|
|
@@ -392,7 +400,7 @@ function articulationPoints(G) {
|
|
|
392
400
|
}
|
|
393
401
|
return Array.from(isArt);
|
|
394
402
|
}
|
|
395
|
-
|
|
403
|
+
/** Puentes del grafo no dirigido (DFS lowlink): aristas cuya eliminación desconecta el grafo. */
|
|
396
404
|
function bridges(G) {
|
|
397
405
|
const adj = buildAdjacency(G);
|
|
398
406
|
const disc = new Map();
|
|
@@ -509,6 +517,10 @@ class MinHeap {
|
|
|
509
517
|
}
|
|
510
518
|
}
|
|
511
519
|
}
|
|
520
|
+
/**
|
|
521
|
+
* Dijkstra: caminos mínimos desde `start` (pesos no negativos).
|
|
522
|
+
* @throws si hay aristas con peso negativo.
|
|
523
|
+
*/
|
|
512
524
|
function dijkstra(G, start) {
|
|
513
525
|
// Validar pesos no negativos.
|
|
514
526
|
for (const e of G.edges) {
|
|
@@ -545,6 +557,7 @@ function dijkstra(G, start) {
|
|
|
545
557
|
}
|
|
546
558
|
return { distances: dist, predecessors: pred };
|
|
547
559
|
}
|
|
560
|
+
/** Bellman-Ford: caminos mínimos desde `start` con detección de ciclos negativos. */
|
|
548
561
|
function bellmanFord(G, start) {
|
|
549
562
|
const dist = new Map();
|
|
550
563
|
const pred = new Map();
|
|
@@ -591,6 +604,7 @@ function bellmanFord(G, start) {
|
|
|
591
604
|
}
|
|
592
605
|
return { distances: dist, predecessors: pred, negativeCycle };
|
|
593
606
|
}
|
|
607
|
+
/** Floyd-Warshall: distancias mínimas entre todos los pares de vértices O(n³). */
|
|
594
608
|
function floydWarshall(G) {
|
|
595
609
|
const verts = Array.from(G.vertices);
|
|
596
610
|
const idx = new Map();
|
|
@@ -683,6 +697,7 @@ class DSU {
|
|
|
683
697
|
// ------------------------------------------------------------
|
|
684
698
|
// MST
|
|
685
699
|
// ------------------------------------------------------------
|
|
700
|
+
/** Kruskal: árbol generador mínimo en grafo no dirigido (DSU + ordenación por peso). */
|
|
686
701
|
function kruskal(G) {
|
|
687
702
|
if (G.directed) {
|
|
688
703
|
throw new Error('kruskal: requiere grafo no dirigido');
|
|
@@ -703,6 +718,7 @@ function kruskal(G) {
|
|
|
703
718
|
}
|
|
704
719
|
return { edges: result, totalWeight: total };
|
|
705
720
|
}
|
|
721
|
+
/** Prim: árbol generador mínimo en grafo no dirigido (cola de prioridad). */
|
|
706
722
|
function prim(G, start) {
|
|
707
723
|
if (G.directed) {
|
|
708
724
|
throw new Error('prim: requiere grafo no dirigido');
|
|
@@ -739,7 +755,7 @@ function prim(G, start) {
|
|
|
739
755
|
// ------------------------------------------------------------
|
|
740
756
|
// Bipartite matching
|
|
741
757
|
// ------------------------------------------------------------
|
|
742
|
-
|
|
758
|
+
/** Emparejamiento bipartito máximo vía DFS-aumento (algoritmo de Kuhn). */
|
|
743
759
|
function bipartiteMaximumMatching(G, leftPartition) {
|
|
744
760
|
const adj = buildAdjacency(G);
|
|
745
761
|
const matchR = new Map(); // right → left
|
|
@@ -769,7 +785,7 @@ function bipartiteMaximumMatching(G, leftPartition) {
|
|
|
769
785
|
out.push({ left: l, right: r });
|
|
770
786
|
return out;
|
|
771
787
|
}
|
|
772
|
-
|
|
788
|
+
/** Hopcroft-Karp: emparejamiento bipartito máximo con BFS por niveles + DFS de aumento (O(E√V)). */
|
|
773
789
|
function hopcroftKarp(G, leftPartition) {
|
|
774
790
|
const adj = buildAdjacency(G);
|
|
775
791
|
const pairL = new Map();
|
|
@@ -855,7 +871,7 @@ function hopcroftKarp(G, leftPartition) {
|
|
|
855
871
|
// ------------------------------------------------------------
|
|
856
872
|
// Coloreo
|
|
857
873
|
// ------------------------------------------------------------
|
|
858
|
-
|
|
874
|
+
/** Coloreo greedy: ordena por grado descendente y asigna el primer color disponible. */
|
|
859
875
|
function greedyColoring(G) {
|
|
860
876
|
const order = Array.from(G.vertices).sort((a, b) => degreeUndirected(G, b) - degreeUndirected(G, a));
|
|
861
877
|
const color = new Map();
|
|
@@ -873,7 +889,7 @@ function greedyColoring(G) {
|
|
|
873
889
|
}
|
|
874
890
|
return color;
|
|
875
891
|
}
|
|
876
|
-
|
|
892
|
+
/** Número cromático χ(G) por backtracking con poda (intenta k = 1, 2, …). Solo apto para grafos pequeños. */
|
|
877
893
|
function chromaticNumber(G) {
|
|
878
894
|
const verts = Array.from(G.vertices);
|
|
879
895
|
if (verts.length === 0)
|
|
@@ -940,9 +956,11 @@ function signatureMultiset(sigs) {
|
|
|
940
956
|
arr.sort();
|
|
941
957
|
return arr.join('||');
|
|
942
958
|
}
|
|
959
|
+
/** Devuelve `true` si los grafos `g1` y `g2` son isomorfos (estructuralmente equivalentes). */
|
|
943
960
|
function areIsomorphic(g1, g2) {
|
|
944
961
|
return findIsomorphism(g1, g2) !== null;
|
|
945
962
|
}
|
|
963
|
+
/** Busca un isomorfismo entre `g1` y `g2`; devuelve el mapeo de vértices o `null` si no existe. */
|
|
946
964
|
function findIsomorphism(g1, g2) {
|
|
947
965
|
if (g1.directed !== g2.directed)
|
|
948
966
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/reasoning/graph-theory/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/reasoning/graph-theory/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,qEAAqE;AACrE,+DAA+D;AAC/D,EAAE;AACF,kEAAkE;AAClE,qEAAqE;AACrE,gEAAgE;AAChE,mBAAmB;AACnB,EAAE;AACF,mCAAmC;AACnC,yDAAyD;AACzD,qDAAqD;AACrD,6DAA6D;AAC7D,sEAAsE;AACtE,uEAAuE;AACvE,cAAc;AACd,gEAAgE;AAChE,0CAA0C;AAC1C,0DAA0D;AAC1D,sEAAsE;AACtE,mDAAmD;AACnD,EAAE;AACF,gBAAgB;AAChB,qEAAqE;AACrE,uEAAuE;AACvE,qEAAqE;AACrE,0BAA0B;AAC1B,qEAAqE;AACrE,4CAA4C;AAC5C,oEAAoE;AACpE,oEAAoE;AACpE,sCAAsC;;AAgCtC,8BAMC;AAGD,8BAEC;AAGD,0BAIC;AAGD,8BAOC;AAGD,4BAKC;AAGD,8BAKC;AAwCD,kBAoBC;AAGD,kBAoBC;AAGD,0CA2BC;AAOD,kDAyBC;AAGD,kCAGC;AAGD,kEAmEC;AAGD,gDAwDC;AAGD,0BAkDC;AA+DD,4BAkCC;AAGD,kCA4CC;AAGD,sCA0CC;AA8CD,0BAkBC;AAGD,oBAgCC;AAOD,4DA2BC;AAGD,oCA8EC;AAOD,wCAgBC;AAGD,0CAuCC;AA0BD,sCAEC;AAGD,0CAyFC;AA18BD,+DAA+D;AAC/D,eAAe;AACf,+DAA+D;AAE/D,yDAAyD;AACzD,SAAgB,SAAS,CAAI,QAAQ,GAAG,KAAK;IAC3C,OAAO;QACL,QAAQ,EAAE,IAAI,GAAG,EAAK;QACtB,KAAK,EAAE,EAAE;QACT,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,uDAAuD;AACvD,SAAgB,SAAS,CAAI,CAAW,EAAE,CAAI;IAC5C,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,+FAA+F;AAC/F,SAAgB,OAAO,CAAI,CAAW,EAAE,CAAU;IAChD,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,sFAAsF;AACtF,SAAgB,SAAS,CAAI,CAAW,EAAE,CAAI;IAC5C,MAAM,GAAG,GAAQ,EAAE,CAAC;IACpB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aAC5B,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,4EAA4E;AAC5E,SAAgB,QAAQ,CAAI,CAAW,EAAE,CAAI;IAC3C,IAAI,CAAC,CAAC,CAAC,QAAQ;QAAE,OAAO,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK;QAAE,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC;YAAE,CAAC,EAAE,CAAC;IAC7C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,2EAA2E;AAC3E,SAAgB,SAAS,CAAI,CAAW,EAAE,CAAI;IAC5C,IAAI,CAAC,CAAC,CAAC,QAAQ;QAAE,OAAO,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK;QAAE,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;YAAE,CAAC,EAAE,CAAC;IAC/C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,gBAAgB,CAAI,CAAW,EAAE,CAAI;IAC5C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;YAAE,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE;YAAE,CAAC,EAAE,CAAC;IACzC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAWD,SAAS,cAAc,CAAI,CAAW;IACpC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoB,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;QAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;QACxB,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC;YAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxB,IAAI,CAAC;gBAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+DAA+D;AAC/D,aAAa;AACb,+DAA+D;AAE/D,iHAAiH;AACjH,SAAgB,GAAG,CAAI,CAAW,EAAE,KAAQ,EAAE,KAAsB;IAClE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAQ,EAAE,CAAC;IACtB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACjC,MAAM,KAAK,GAAQ,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,OAAO,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,IAAI,KAAK;YAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,KAAK,MAAM,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACb,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iHAAiH;AACjH,SAAgB,GAAG,CAAI,CAAW,EAAE,KAAQ,EAAE,KAAsB;IAClE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAQ,EAAE,CAAC;IACtB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAK,CAAC;IAC1B,MAAM,KAAK,GAAQ,CAAC,KAAK,CAAC,CAAC;IAC3B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAO,CAAC;QAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,SAAS;QAC1B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACZ,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,IAAI,KAAK;YAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,wEAAwE;QACxE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,kFAAkF;AAClF,SAAgB,eAAe,CAAI,CAAW;IAC5C,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAChB,4EAA4E;QAC5E,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAa,CAAC;IACnC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;QAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACxB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,KAAK,GAAQ,EAAE,CAAC;IACtB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK;QAAE,IAAI,CAAC,KAAK,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,KAAK,GAAQ,EAAE,CAAC;IACtB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,OAAO,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,KAAK,MAAM,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACpC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAClB,IAAI,EAAE,KAAK,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI;QAAE,OAAO,WAAW,CAAC;IACzD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+DAA+D;AAC/D,eAAe;AACf,+DAA+D;AAE/D,qGAAqG;AACrG,SAAgB,mBAAmB,CAAI,CAAW;IAChD,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAK,CAAC;IAC1B,MAAM,KAAK,GAAU,EAAE,CAAC;IACxB,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAS;QAC9B,MAAM,IAAI,GAAQ,EAAE,CAAC;QACrB,MAAM,KAAK,GAAQ,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAO,CAAC;YAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,SAAS;YAC1B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACb,yEAAyE;YACzE,gEAAgE;YAChE,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9B,KAAK,MAAM,EAAE,EAAE,EAAE,IAAI,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7D,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACf,uDAAuD;gBACvD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK;oBAAE,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;wBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,mEAAmE;AACnE,SAAgB,WAAW,CAAI,CAAW;IACxC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7C,CAAC;AAED,wGAAwG;AACxG,SAAgB,2BAA2B,CAAI,CAAW;IACxD,IAAI,CAAC,CAAC,CAAC,QAAQ;QAAE,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAa,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAa,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAK,CAAC;IAC7B,MAAM,KAAK,GAAQ,EAAE,CAAC;IACtB,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,IAAI,OAAO,GAAG,CAAC,CAAC;IAIhB,MAAM,SAAS,GAAY,EAAE,CAAC;IAE9B,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAS;QAC/B,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACtC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC5B,OAAO,EAAE,CAAC;QACV,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEnB,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAClB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/B,KAAK,CAAC,IAAI,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClB,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;oBACtB,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;oBACxB,OAAO,EAAE,CAAC;oBACV,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACd,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACf,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;gBACpC,CAAC;qBAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1B,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC/B,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC7B,IAAI,EAAE,GAAG,EAAE;wBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,qDAAqD;gBACrD,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBACd,MAAM,IAAI,GAAQ,EAAE,CAAC;oBACrB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACxB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAO,CAAC;wBAC3B,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBAClB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACb,IAAI,CAAC,KAAK,CAAC;4BAAE,MAAM;oBACrB,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC;gBACD,SAAS,CAAC,GAAG,EAAE,CAAC;gBAChB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzB,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC/C,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACtC,IAAI,EAAE,GAAG,EAAE;wBAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,wFAAwF;AACxF,SAAgB,kBAAkB,CAAI,CAAW;IAC/C,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAa,CAAC;IAClC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAa,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAe,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAK,CAAC;IAC3B,IAAI,KAAK,GAAG,CAAC,CAAC;IAGd,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAS;QAC9B,MAAM,IAAI,GAAG,KAAK,CAAC;QACnB,MAAM,KAAK,GAAY,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACtB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACrB,KAAK,EAAE,CAAC;QACR,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEvB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAClB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/B,KAAK,CAAC,IAAI,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjB,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACjB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACjB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;oBACnB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;oBAClB,KAAK,EAAE,CAAC;oBACR,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC7C,CAAC;qBAAM,IAAI,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/B,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC5B,IAAI,EAAE,GAAG,EAAE;wBAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,EAAE,CAAC;gBACZ,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;oBACd,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC3B,IAAI,EAAE,GAAG,EAAE;wBAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC5B,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE;wBAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC3C,CAAC;qBAAM,CAAC;oBACN,OAAO;oBACP,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC;wBAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,iGAAiG;AACjG,SAAgB,OAAO,CAAI,CAAW;IACpC,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAa,CAAC;IAClC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAa,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAe,CAAC;IACtC,MAAM,GAAG,GAA8B,EAAE,CAAC;IAC1C,IAAI,KAAK,GAAG,CAAC,CAAC;IAGd,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAS;QAC9B,MAAM,KAAK,GAAY,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACvB,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtB,KAAK,EAAE,CAAC;QACR,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAExB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAClB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/B,KAAK,CAAC,IAAI,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACjB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;oBACnB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;oBAClB,KAAK,EAAE,CAAC;oBACR,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;gBAChC,CAAC;qBAAM,IAAI,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/B,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC5B,IAAI,EAAE,GAAG,EAAE;wBAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,EAAE,CAAC;gBACZ,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;oBACd,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC3B,IAAI,EAAE,GAAG,EAAE;wBAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC5B,IAAI,EAAE,GAAG,EAAE;wBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+DAA+D;AAC/D,kBAAkB;AAClB,+DAA+D;AAE/D,+DAA+D;AAC/D,MAAM,OAAO;IACH,IAAI,GAAuB,EAAE,CAAC;IACtC,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IACD,IAAI,CAAC,IAAiB;QACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,GAAG;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAiB,CAAC;QAC5C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACO,MAAM,CAAC,CAAS;QACtB,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;gBACvB,GAAG,GAAG,MAAM,CAAC;YACf,CAAC;;gBAAM,MAAM;QACf,CAAC;IACH,CAAC;IACO,QAAQ,CAAC,CAAS;QACxB,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3B,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YACtB,IAAI,IAAI,GAAG,GAAG,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAE,IAAI,GAAG,CAAC,CAAC;YAC5D,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAE,IAAI,GAAG,CAAC,CAAC;YAC5D,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;gBACtB,GAAG,GAAG,IAAI,CAAC;YACb,CAAC;;gBAAM,MAAM;QACf,CAAC;IACH,CAAC;CACF;AAED;;;GAGG;AACH,SAAgB,QAAQ,CACtB,CAAW,EACX,KAAQ;IAER,8BAA8B;IAC9B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAa,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAQ,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;QAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC3E,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACnB,MAAM,IAAI,GAAG,IAAI,OAAO,EAAK,CAAC;IAC9B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACtB,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG;YAAE,MAAM;QAChB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;YAAE,SAAS;QAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,KAAK,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;YAClC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;YACtB,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACjB,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AACjD,CAAC;AAED,qFAAqF;AACrF,SAAgB,WAAW,CACzB,CAAW,EACX,KAAQ;IAER,MAAM,IAAI,GAAG,IAAI,GAAG,EAAa,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAQ,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;QAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IACjG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAEnB,0EAA0E;IAC1E,MAAM,MAAM,GAA8C,EAAE,CAAC;IAC7D,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;YACxC,IAAI,EAAE,KAAK,QAAQ;gBAAE,SAAS;YAC9B,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;YACzB,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACnB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBACvB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO;YAAE,MAAM;IACtB,CAAC;IACD,wDAAwD;IACxD,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;QACxC,IAAI,EAAE,KAAK,QAAQ;YAAE,SAAS;QAC9B,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC;YACjD,aAAa,GAAG,IAAI,CAAC;YACrB,MAAM;QACR,CAAC;IACH,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AAChE,CAAC;AAED,kFAAkF;AAClF,SAAgB,aAAa,CAAI,CAAW;IAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAa,CAAC;IACjC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,MAAM,CAAC,GAAe,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;YAAE,SAAS;QACjD,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;QACxB,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;gBAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;YAC9B,IAAI,GAAG,KAAK,QAAQ;gBAAE,SAAS;YAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC;gBACvC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;oBAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAqB,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAa,CAAC;QACjC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACpB,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC;QACnC,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+DAA+D;AAC/D,2CAA2C;AAC3C,+DAA+D;AAE/D,MAAM,GAAG;IACC,MAAM,GAAG,IAAI,GAAG,EAAQ,CAAC;IACzB,IAAI,GAAG,IAAI,GAAG,EAAa,CAAC;IACpC,GAAG,CAAC,CAAI;QACN,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IACD,IAAI,CAAC,CAAI;QACP,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,OAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAO,KAAK,GAAG,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAM,CAAC;YACpC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACzB,GAAG,GAAG,EAAE,CAAC;QACX,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,KAAK,CAAC,CAAI,EAAE,CAAI;QACd,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,KAAK,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,GAAG,GAAG,GAAG;YAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;aAClC,IAAI,GAAG,GAAG,GAAG;YAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;aACvC,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,+DAA+D;AAC/D,MAAM;AACN,+DAA+D;AAE/D,wFAAwF;AACxF,SAAgB,OAAO,CAAI,CAAW;IACpC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAK,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;QAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK;SACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;SAC/D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AAC/C,CAAC;AAED,6EAA6E;AAC7E,SAAgB,IAAI,CAClB,CAAW,EACX,KAAS;IAET,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;IAChE,MAAM,IAAI,GACR,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAW,CAAC;IACjG,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClC,+CAA+C;IAC/C,MAAM,IAAI,GAAG,IAAI,OAAO,EAAsB,CAAC;IAC/C,KAAK,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG;YAAE,MAAM;QAChB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;QACnB,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,SAAS;QAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QACnD,KAAK,IAAI,CAAC,CAAC;QACX,KAAK,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AAC/C,CAAC;AAED,+DAA+D;AAC/D,qBAAqB;AACrB,+DAA+D;AAE/D,2EAA2E;AAC3E,SAAgB,wBAAwB,CACtC,CAAW,EACX,aAAqB;IAErB,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAQ,CAAC,CAAC,eAAe;IAC/C,MAAM,OAAO,GAAG,CAAC,CAAI,EAAE,OAAe,EAAW,EAAE;QACjD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,KAAK,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;YAC7B,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,SAAS;YACnC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,SAAS;YAC7B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACf,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;gBACvD,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,SAAS;QACjC,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,EAAK,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,GAAG,GAAiC,EAAE,CAAC;IAC7C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM;QAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,oGAAoG;AACpG,SAAgB,YAAY,CAAI,CAAW,EAAE,aAAqB;IAChE,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAe,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAe,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAa,CAAC;IACnC,MAAM,IAAI,GAAQ,EAAE,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACb,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACrC,MAAM,SAAS,GAAG,GAAY,EAAE;QAC9B,MAAM,KAAK,GAAQ,EAAE,CAAC;QACtB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC1B,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QACD,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,OAAO,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACxB,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;YAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9B,KAAK,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;gBAC7B,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;oBAAE,SAAS;gBACnC,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;oBACpC,KAAK,GAAG,IAAI,CAAC;gBACf,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;wBACnC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;wBACtB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,CAAI,EAAW,EAAE;QACnC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,KAAK,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;YAC7B,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,SAAS;YACnC,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YAChC,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;YACvD,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACxD,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChB,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAClB,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,OAAO,SAAS,EAAE,EAAE,CAAC;QACnB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI;gBAAE,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAiC,EAAE,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+DAA+D;AAC/D,UAAU;AACV,+DAA+D;AAE/D,wFAAwF;AACxF,SAAgB,cAAc,CAAI,CAAW;IAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CACvC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAC1D,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,GAAG,EAAa,CAAC;IACnC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,SAAS;gBAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6GAA6G;AAC7G,SAAgB,eAAe,CAAI,CAAW;IAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACjC,8BAA8B;IAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAa,CAAC;IACjC,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,EAAK,CAAC,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE;YAAE,SAAS;QAC9B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAW,EAAE;QACtC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAS,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAa,CAAC;QACnC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAW,EAAE;YACjC,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACpC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;YAC/B,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClC,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAW,CAAC,CAAC;gBAC1C,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,IAAI,CAAC;oBAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChD,CAAC;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBAAE,SAAS;gBAC1B,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACb,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAChB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QACF,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC;AACtB,CAAC;AAED,+DAA+D;AAC/D,gCAAgC;AAChC,+DAA+D;AAE/D,sEAAsE;AACtE,0EAA0E;AAC1E,qEAAqE;AACrE,SAAS,gBAAgB,CAAI,CAAW;IACtC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAa,CAAC;IACjC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACrE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,iBAAiB,CAAC,IAA0B;IACnD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACtC,GAAG,CAAC,IAAI,EAAE,CAAC;IACX,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,+FAA+F;AAC/F,SAAgB,aAAa,CAAS,EAAa,EAAE,EAAa;IAChE,OAAO,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC;AAC1C,CAAC;AAED,mGAAmG;AACnG,SAAgB,eAAe,CAAS,EAAa,EAAE,EAAa;IAClE,IAAI,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,QAAQ,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAErD,gCAAgC;IAChC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;SACjC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SACnC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;SACjC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SACnC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnF,6BAA6B;IAC7B,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAClC,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,iBAAiB,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAErE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAEvC,oDAAoD;IACpD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAe,CAAC;IACpC,KAAK,MAAM,CAAC,IAAI,MAAM;QAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,EAAM,CAAC,CAAC;IACnD,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,EAAE,CAAC,QAAQ;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAe,CAAC;IACpC,KAAK,MAAM,CAAC,IAAI,MAAM;QAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,EAAM,CAAC,CAAC;IACnD,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,EAAE,CAAC,QAAQ;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,0DAA0D;IAC1D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAM,CAAC;IAE3B,gDAAgD;IAChD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAY,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,GAAS,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;QACD,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,8EAA8E;IAC9E,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACzC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,CAAC,CAAK,EAAE,CAAK,EAAW,EAAE;QAC3C,sEAAsE;QACtE,oCAAoC;QACpC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;YAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;YAC9C,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;YAChC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAChB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;gBACjD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;gBACjD,IAAI,OAAO,KAAK,OAAO;oBAAE,OAAO,KAAK,CAAC;YACxC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,CAAS,EAAW,EAAE;QACvC,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACpC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,SAAS;YAC1B,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAE,SAAS;YAChC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACZ,IAAI,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YAClC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,IAAI,SAAS,CAAC,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IACjC,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
/** Operadores binarios del lenguaje IMP: aritméticos, relacionales y lógicos. */
|
|
1
2
|
export type ImpBinop = '+' | '-' | '*' | '/' | '%' | '<' | '<=' | '>' | '>=' | '==' | '!=' | '&&' | '||';
|
|
3
|
+
/** Expresión del lenguaje IMP: constante, booleano, variable o aplicación de operador. */
|
|
2
4
|
export type ImpExpr = {
|
|
3
5
|
kind: 'const';
|
|
4
6
|
value: number;
|
|
@@ -17,6 +19,7 @@ export type ImpExpr = {
|
|
|
17
19
|
kind: 'not';
|
|
18
20
|
arg: ImpExpr;
|
|
19
21
|
};
|
|
22
|
+
/** Sentencia del lenguaje IMP: skip, asignación, secuencia, condicional y bucle while con invariante opcional. */
|
|
20
23
|
export type ImpStmt = {
|
|
21
24
|
kind: 'skip';
|
|
22
25
|
} | {
|
|
@@ -38,38 +41,65 @@ export type ImpStmt = {
|
|
|
38
41
|
invariant?: ImpExpr;
|
|
39
42
|
body: ImpStmt;
|
|
40
43
|
};
|
|
44
|
+
/** Tripleta de Hoare {P} stmt {Q}: precondición, comando y postcondición. */
|
|
41
45
|
export interface HoareTriple {
|
|
42
46
|
pre: ImpExpr;
|
|
43
47
|
stmt: ImpStmt;
|
|
44
48
|
post: ImpExpr;
|
|
45
49
|
}
|
|
50
|
+
/** Constructor de literal numérico IMP. */
|
|
46
51
|
export declare const num: (n: number) => ImpExpr;
|
|
52
|
+
/** Constructor de literal booleano IMP. */
|
|
47
53
|
export declare const bool: (b: boolean) => ImpExpr;
|
|
54
|
+
/** Constructor de referencia a variable IMP por nombre. */
|
|
48
55
|
export declare const v: (name: string) => ImpExpr;
|
|
56
|
+
/** Constructor de operación binaria IMP. */
|
|
49
57
|
export declare const binop: (op: ImpBinop, left: ImpExpr, right: ImpExpr) => ImpExpr;
|
|
58
|
+
/** Constructor de negación de expresión IMP. */
|
|
50
59
|
export declare const not: (arg: ImpExpr) => ImpExpr;
|
|
60
|
+
/** Constructor de conjunción lógica IMP: `left && right`. */
|
|
51
61
|
export declare const and: (left: ImpExpr, right: ImpExpr) => ImpExpr;
|
|
62
|
+
/** Constructor de disyunción lógica IMP: `left || right`. */
|
|
52
63
|
export declare const or: (left: ImpExpr, right: ImpExpr) => ImpExpr;
|
|
64
|
+
/** Constructor de igualdad IMP: `left == right`. */
|
|
53
65
|
export declare const eq: (left: ImpExpr, right: ImpExpr) => ImpExpr;
|
|
66
|
+
/** Constructor de menor estricto IMP: `left < right`. */
|
|
54
67
|
export declare const lt: (left: ImpExpr, right: ImpExpr) => ImpExpr;
|
|
68
|
+
/** Constructor de menor o igual IMP: `left <= right`. */
|
|
55
69
|
export declare const le: (left: ImpExpr, right: ImpExpr) => ImpExpr;
|
|
70
|
+
/** Instrucción `skip` (no-op). */
|
|
56
71
|
export declare const skip: () => ImpStmt;
|
|
72
|
+
/** Instrucción de asignación: `varName := expr`. */
|
|
57
73
|
export declare const assign: (varName: string, expr: ImpExpr) => ImpStmt;
|
|
74
|
+
/** Secuencia de instrucciones (asociativa a la derecha). Con 0 args devuelve `skip`. */
|
|
58
75
|
export declare function seq(...stmts: ImpStmt[]): ImpStmt;
|
|
76
|
+
/** Instrucción condicional `if cond then then_ else else_`. */
|
|
59
77
|
export declare const ifS: (cond: ImpExpr, then_: ImpStmt, else_: ImpStmt) => ImpStmt;
|
|
78
|
+
/** Instrucción `while cond body` con invariante opcional para verificación. */
|
|
60
79
|
export declare const whileS: (cond: ImpExpr, body: ImpStmt, invariant?: ImpExpr) => ImpStmt;
|
|
80
|
+
/** Sustitución sintáctica `expr[replacement/varName]` en expresiones IMP. */
|
|
61
81
|
export declare function substitute(expr: ImpExpr, varName: string, replacement: ImpExpr): ImpExpr;
|
|
82
|
+
/** Variables libres en la expresión IMP `expr`. Acumula en `acc` (o devuelve un nuevo Set). */
|
|
62
83
|
export declare function freeVars(expr: ImpExpr, acc?: Set<string>): Set<string>;
|
|
84
|
+
/** Variables mencionadas en la instrucción IMP `stmt` (asignadas y/o leídas). */
|
|
63
85
|
export declare function stmtVars(stmt: ImpStmt, acc?: Set<string>): Set<string>;
|
|
86
|
+
/** Estado concreto de IMP: mapa de variables a valores enteros (variables no definidas = 0). */
|
|
64
87
|
export type State = Record<string, number>;
|
|
88
|
+
/** Evalúa la expresión IMP `expr` en el estado `state`. Devuelve un número o booleano. */
|
|
65
89
|
export declare function evalExpr(expr: ImpExpr, state: State): number | boolean;
|
|
90
|
+
/** Error de ejecución en IMP (e.g. timeout por bucle infinito). */
|
|
66
91
|
export type ExecError = {
|
|
67
92
|
error: string;
|
|
68
93
|
};
|
|
94
|
+
/** Ejecuta `stmt` sobre `state` con un límite de `maxSteps` pasos. Devuelve el estado final o un error. */
|
|
69
95
|
export declare function execStmt(stmt: ImpStmt, state: State, maxSteps?: number): State | ExecError;
|
|
96
|
+
/** Precondición más débil `wp(stmt, post)`. Para while requiere invariant anotado; sin él devuelve `false`. */
|
|
70
97
|
export declare function wp(stmt: ImpStmt, post: ImpExpr): ImpExpr;
|
|
98
|
+
/** Postcondición más fuerte aproximada `sp(stmt, pre)`. Para x := E cuando E no menciona x; sino devuelve `true`. */
|
|
71
99
|
export declare function spExtension(stmt: ImpStmt, pre: ImpExpr): ImpExpr;
|
|
100
|
+
/** Genera las condiciones de verificación (VCs) para la tripla de Hoare: pre, wp global y VCs de loops. */
|
|
72
101
|
export declare function generateVCs(triple: HoareTriple): ImpExpr[];
|
|
102
|
+
/** Resultado de `verifyTriple`: validez, lista de VCs y fallos con contraejemplo. */
|
|
73
103
|
export interface VerificationResult {
|
|
74
104
|
valid: boolean;
|
|
75
105
|
vcs: ImpExpr[];
|
|
@@ -78,6 +108,7 @@ export interface VerificationResult {
|
|
|
78
108
|
state?: State;
|
|
79
109
|
}>;
|
|
80
110
|
}
|
|
111
|
+
/** Opciones para `verifyTriple`: tamaño de muestreo, rango de enteros, semilla y estados extra. */
|
|
81
112
|
export interface VerifyOptions {
|
|
82
113
|
samples?: number;
|
|
83
114
|
/** Rango de muestreo entero para variables (inclusive en ambos extremos). */
|
|
@@ -87,6 +118,7 @@ export interface VerifyOptions {
|
|
|
87
118
|
/** Estados explícitos extra que el caller quiere verificar siempre. */
|
|
88
119
|
seedStates?: State[];
|
|
89
120
|
}
|
|
121
|
+
/** Verifica la tripla `{pre} stmt {post}` por muestreo aleatorio de estados. */
|
|
90
122
|
export declare function verifyTriple(triple: HoareTriple, opts?: VerifyOptions): VerificationResult;
|
|
91
123
|
/**
|
|
92
124
|
* Swap x ↔ y vía variable temporal `t`.
|
|
@@ -125,6 +157,8 @@ export declare function programGCD(): ImpStmt;
|
|
|
125
157
|
* para discutir el invariant `i ≤ n` y la post `found == 1 ∨ i == n`.
|
|
126
158
|
*/
|
|
127
159
|
export declare function programLinearSearch(): ImpStmt;
|
|
160
|
+
/** Calcula el factorial de `n` en enteros (JavaScript). Solo para tests. */
|
|
128
161
|
export declare function factorial(n: number): number;
|
|
162
|
+
/** Máximo común divisor de `a` y `b` (Euclides). Solo para tests. */
|
|
129
163
|
export declare function gcd(a: number, b: number): number;
|
|
130
164
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/reasoning/hoare-logic/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/reasoning/hoare-logic/index.ts"],"names":[],"mappings":"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"}
|