math-exercises 1.3.47 → 1.3.52

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.
Files changed (145) hide show
  1. package/lib/exercises/calculLitteral/equation/equationSimpleSquare.d.ts.map +1 -1
  2. package/lib/exercises/calculLitteral/equation/equationSimpleSquare.js +21 -21
  3. package/lib/exercises/calculLitteral/equation/equationType1Exercise.d.ts.map +1 -1
  4. package/lib/exercises/calculLitteral/equation/equationType1Exercise.js +13 -11
  5. package/lib/exercises/calculLitteral/equation/equationType2Exercise.d.ts.map +1 -1
  6. package/lib/exercises/calculLitteral/equation/equationType2Exercise.js +4 -7
  7. package/lib/exercises/calculLitteral/equation/firstDegreeEquation.d.ts.map +1 -1
  8. package/lib/exercises/calculLitteral/equation/firstDegreeEquation.js +10 -4
  9. package/lib/exercises/complex/addComplex.d.ts +4 -0
  10. package/lib/exercises/complex/addComplex.d.ts.map +1 -0
  11. package/lib/exercises/complex/addComplex.js +70 -0
  12. package/lib/exercises/complex/conjugateComplex.ts.d.ts +4 -0
  13. package/lib/exercises/complex/conjugateComplex.ts.d.ts.map +1 -0
  14. package/lib/exercises/complex/conjugateComplex.ts.js +73 -0
  15. package/lib/exercises/complex/conjugateDivideComplex.d.ts +4 -0
  16. package/lib/exercises/complex/conjugateDivideComplex.d.ts.map +1 -0
  17. package/lib/exercises/complex/conjugateDivideComplex.js +65 -0
  18. package/lib/exercises/complex/conjugateMultiplyComplex.d.ts +4 -0
  19. package/lib/exercises/complex/conjugateMultiplyComplex.d.ts.map +1 -0
  20. package/lib/exercises/complex/conjugateMultiplyComplex.js +69 -0
  21. package/lib/exercises/complex/divideComplex.d.ts +4 -0
  22. package/lib/exercises/complex/divideComplex.d.ts.map +1 -0
  23. package/lib/exercises/complex/divideComplex.js +61 -0
  24. package/lib/exercises/complex/inverseComplex.d.ts +4 -0
  25. package/lib/exercises/complex/inverseComplex.d.ts.map +1 -0
  26. package/lib/exercises/complex/inverseComplex.js +73 -0
  27. package/lib/exercises/complex/linearCombinaisonComplex.d.ts +4 -0
  28. package/lib/exercises/complex/linearCombinaisonComplex.d.ts.map +1 -0
  29. package/lib/exercises/complex/linearCombinaisonComplex.js +67 -0
  30. package/lib/exercises/complex/mutiplyComplex.d.ts +4 -0
  31. package/lib/exercises/complex/mutiplyComplex.d.ts.map +1 -0
  32. package/lib/exercises/complex/mutiplyComplex.js +67 -0
  33. package/lib/exercises/complex/reAndIm.d.ts +4 -0
  34. package/lib/exercises/complex/reAndIm.d.ts.map +1 -0
  35. package/lib/exercises/complex/reAndIm.js +79 -0
  36. package/lib/exercises/exercise.d.ts +3 -2
  37. package/lib/exercises/exercise.d.ts.map +1 -1
  38. package/lib/exercises/exercises.d.ts.map +1 -1
  39. package/lib/exercises/exercises.js +39 -8
  40. package/lib/exercises/functions/affines/template.d.ts +4 -0
  41. package/lib/exercises/functions/affines/template.d.ts.map +1 -0
  42. package/lib/exercises/functions/affines/template.js +51 -0
  43. package/lib/exercises/functions/basics/inverseImageFunctionGeogebra.js +2 -2
  44. package/lib/exercises/functions/trinoms/alphaBetaFromDevForm.d.ts +4 -0
  45. package/lib/exercises/functions/trinoms/alphaBetaFromDevForm.d.ts.map +1 -0
  46. package/lib/exercises/functions/trinoms/alphaBetaFromDevForm.js +63 -0
  47. package/lib/exercises/functions/trinoms/alphaBetaInCanonicalForm.d.ts +4 -0
  48. package/lib/exercises/functions/trinoms/alphaBetaInCanonicalForm.d.ts.map +1 -0
  49. package/lib/exercises/functions/trinoms/alphaBetaInCanonicalForm.js +91 -0
  50. package/lib/exercises/functions/trinoms/canonicalFromDevForm.d.ts +4 -0
  51. package/lib/exercises/functions/trinoms/canonicalFromDevForm.d.ts.map +1 -0
  52. package/lib/exercises/functions/trinoms/canonicalFromDevForm.js +58 -0
  53. package/lib/exercises/functions/trinoms/extremumFromCanonicalForm.d.ts +4 -0
  54. package/lib/exercises/functions/trinoms/extremumFromCanonicalForm.d.ts.map +1 -0
  55. package/lib/exercises/functions/trinoms/extremumFromCanonicalForm.js +84 -0
  56. package/lib/exercises/functions/trinoms/extremumTypeFromAlgebricForm.d.ts +4 -0
  57. package/lib/exercises/functions/trinoms/extremumTypeFromAlgebricForm.d.ts.map +1 -0
  58. package/lib/exercises/functions/trinoms/extremumTypeFromAlgebricForm.js +59 -0
  59. package/lib/exercises/functions/trinoms/variationsFromAlgebricForm.d.ts +4 -0
  60. package/lib/exercises/functions/trinoms/variationsFromAlgebricForm.d.ts.map +1 -0
  61. package/lib/exercises/functions/trinoms/variationsFromAlgebricForm.js +59 -0
  62. package/lib/exercises/probaStat/averageWithTable.d.ts +4 -0
  63. package/lib/exercises/probaStat/averageWithTable.d.ts.map +1 -0
  64. package/lib/exercises/probaStat/averageWithTable.js +76 -0
  65. package/lib/exercises/probaStat/median.d.ts +2 -2
  66. package/lib/exercises/probaStat/median.d.ts.map +1 -1
  67. package/lib/exercises/probaStat/median.js +7 -7
  68. package/lib/exercises/probaStat/medianList.d.ts +2 -2
  69. package/lib/exercises/probaStat/medianList.d.ts.map +1 -1
  70. package/lib/exercises/probaStat/medianList.js +7 -7
  71. package/lib/exercises/probaStat/probabilityTree.js +6 -6
  72. package/lib/exercises/probaStat/quartiles.js +1 -1
  73. package/lib/exercises/sequences/arithmetic/arithmeticSum.d.ts +1 -0
  74. package/lib/exercises/sequences/arithmetic/arithmeticSum.d.ts.map +1 -0
  75. package/lib/exercises/sequences/arithmetic/arithmeticSum.js +1 -0
  76. package/lib/index.d.ts.map +1 -1
  77. package/lib/math/complex/complex.d.ts +19 -0
  78. package/lib/math/complex/complex.d.ts.map +1 -0
  79. package/lib/math/complex/complex.js +63 -0
  80. package/lib/math/polynomials/trinom.d.ts +24 -0
  81. package/lib/math/polynomials/trinom.d.ts.map +1 -0
  82. package/lib/math/polynomials/trinom.js +67 -0
  83. package/lib/tree/nodes/complex/complexNode.d.ts +15 -0
  84. package/lib/tree/nodes/complex/complexNode.d.ts.map +1 -0
  85. package/lib/tree/nodes/complex/complexNode.js +43 -0
  86. package/lib/tree/nodes/expression/expressionNode.d.ts +1 -0
  87. package/lib/tree/nodes/expression/expressionNode.d.ts.map +1 -0
  88. package/lib/tree/nodes/expression/expressionNode.js +1 -0
  89. package/lib/tree/nodes/functions/cosNode.d.ts +1 -0
  90. package/lib/tree/nodes/functions/cosNode.d.ts.map +1 -1
  91. package/lib/tree/nodes/functions/cosNode.js +4 -0
  92. package/lib/tree/nodes/functions/expNode.d.ts +1 -0
  93. package/lib/tree/nodes/functions/expNode.d.ts.map +1 -1
  94. package/lib/tree/nodes/functions/expNode.js +4 -0
  95. package/lib/tree/nodes/functions/logNode.d.ts +1 -0
  96. package/lib/tree/nodes/functions/logNode.d.ts.map +1 -1
  97. package/lib/tree/nodes/functions/logNode.js +4 -0
  98. package/lib/tree/nodes/functions/oppositeNode.d.ts +1 -0
  99. package/lib/tree/nodes/functions/oppositeNode.d.ts.map +1 -1
  100. package/lib/tree/nodes/functions/oppositeNode.js +4 -0
  101. package/lib/tree/nodes/functions/sinNode.d.ts +1 -0
  102. package/lib/tree/nodes/functions/sinNode.d.ts.map +1 -1
  103. package/lib/tree/nodes/functions/sinNode.js +4 -0
  104. package/lib/tree/nodes/functions/sqrtNode.d.ts +1 -0
  105. package/lib/tree/nodes/functions/sqrtNode.d.ts.map +1 -1
  106. package/lib/tree/nodes/functions/sqrtNode.js +4 -0
  107. package/lib/tree/nodes/node.d.ts +1 -0
  108. package/lib/tree/nodes/node.d.ts.map +1 -1
  109. package/lib/tree/nodes/numbers/constantNode.d.ts +1 -0
  110. package/lib/tree/nodes/numbers/constantNode.d.ts.map +1 -1
  111. package/lib/tree/nodes/numbers/constantNode.js +4 -0
  112. package/lib/tree/nodes/numbers/numberNode.d.ts +1 -0
  113. package/lib/tree/nodes/numbers/numberNode.d.ts.map +1 -1
  114. package/lib/tree/nodes/numbers/numberNode.js +3 -0
  115. package/lib/tree/nodes/operators/addNode.d.ts +1 -0
  116. package/lib/tree/nodes/operators/addNode.d.ts.map +1 -1
  117. package/lib/tree/nodes/operators/addNode.js +4 -0
  118. package/lib/tree/nodes/operators/divideNode.d.ts +1 -0
  119. package/lib/tree/nodes/operators/divideNode.d.ts.map +1 -1
  120. package/lib/tree/nodes/operators/divideNode.js +4 -0
  121. package/lib/tree/nodes/operators/equalNode.d.ts +1 -0
  122. package/lib/tree/nodes/operators/equalNode.d.ts.map +1 -1
  123. package/lib/tree/nodes/operators/equalNode.js +4 -0
  124. package/lib/tree/nodes/operators/fractionNode.d.ts +1 -0
  125. package/lib/tree/nodes/operators/fractionNode.d.ts.map +1 -1
  126. package/lib/tree/nodes/operators/fractionNode.js +4 -0
  127. package/lib/tree/nodes/operators/multiplyNode.d.ts +1 -0
  128. package/lib/tree/nodes/operators/multiplyNode.d.ts.map +1 -1
  129. package/lib/tree/nodes/operators/multiplyNode.js +9 -0
  130. package/lib/tree/nodes/operators/powerNode.d.ts +1 -0
  131. package/lib/tree/nodes/operators/powerNode.d.ts.map +1 -1
  132. package/lib/tree/nodes/operators/powerNode.js +4 -0
  133. package/lib/tree/nodes/operators/substractNode.d.ts +1 -0
  134. package/lib/tree/nodes/operators/substractNode.d.ts.map +1 -1
  135. package/lib/tree/nodes/operators/substractNode.js +4 -0
  136. package/lib/tree/nodes/variables/variableNode.d.ts +1 -0
  137. package/lib/tree/nodes/variables/variableNode.d.ts.map +1 -1
  138. package/lib/tree/nodes/variables/variableNode.js +3 -2
  139. package/lib/tree/parsers/simplify.d.ts +1 -0
  140. package/lib/tree/parsers/simplify.d.ts.map +1 -1
  141. package/lib/tree/parsers/simplify.js +10 -1
  142. package/lib/utils/diceFlip.d.ts +2 -0
  143. package/lib/utils/diceFlip.d.ts.map +1 -0
  144. package/lib/utils/diceFlip.js +12 -0
  145. package/package.json +1 -1
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAlphaBetaInCanonicalFormQuestion = exports.alphaBetaInCanonicalForm = void 0;
4
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
+ const trinom_1 = require("../../../math/polynomials/trinom");
6
+ const randint_1 = require("../../../math/utils/random/randint");
7
+ const oppositeNode_1 = require("../../../tree/nodes/functions/oppositeNode");
8
+ const numberNode_1 = require("../../../tree/nodes/numbers/numberNode");
9
+ const simplify_1 = require("../../../tree/parsers/simplify");
10
+ const coinFlip_1 = require("../../../utils/coinFlip");
11
+ const shuffle_1 = require("../../../utils/shuffle");
12
+ const uuid_1 = require("uuid");
13
+ exports.alphaBetaInCanonicalForm = {
14
+ id: 'alphaInCanonicalForm',
15
+ connector: '=',
16
+ instruction: '',
17
+ label: 'Identifier $\\alpha$ et $\\beta$ dans la forme canonique',
18
+ levels: ['1reSpé'],
19
+ isSingleStep: true,
20
+ sections: ['Second degré'],
21
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getAlphaBetaInCanonicalFormQuestion, nb),
22
+ };
23
+ function getAlphaBetaInCanonicalFormQuestion() {
24
+ const trinom = trinom_1.TrinomConstructor.randomCanonical();
25
+ const param = (0, coinFlip_1.coinFlip)() ? '\\alpha' : '\\beta';
26
+ const alpha = trinom.getAlpha();
27
+ const beta = trinom.getBeta();
28
+ const alphaTex = trinom.getAlphaNode().toTex();
29
+ const betaTex = trinom.getBetaNode().toTex();
30
+ const answer = param === '\\alpha' ? alphaTex : betaTex;
31
+ const getPropositions = (n) => {
32
+ const res = [];
33
+ res.push({
34
+ id: (0, uuid_1.v4)() + '',
35
+ statement: answer,
36
+ isRightAnswer: true,
37
+ format: 'tex',
38
+ });
39
+ if (beta !== alpha)
40
+ res.push({
41
+ id: (0, uuid_1.v4)() + '',
42
+ statement: param === '\\alpha' ? betaTex : alphaTex,
43
+ isRightAnswer: false,
44
+ format: 'tex',
45
+ });
46
+ if (alpha !== 0 && (param === '\\alpha' || beta !== -alpha))
47
+ res.push({
48
+ id: (0, uuid_1.v4)() + '',
49
+ statement: (0, simplify_1.simplifyNode)(new oppositeNode_1.OppositeNode(new numberNode_1.NumberNode(alpha))).toTex(),
50
+ isRightAnswer: false,
51
+ format: 'tex',
52
+ });
53
+ if (!res.some((prop) => prop.statement === trinom.a.toString())) {
54
+ res.push({
55
+ id: (0, uuid_1.v4)() + '',
56
+ statement: trinom.a.toString(),
57
+ isRightAnswer: false,
58
+ format: 'tex',
59
+ });
60
+ }
61
+ const missing = n - res.length;
62
+ for (let i = 0; i < missing; i++) {
63
+ let isDuplicate;
64
+ let proposition;
65
+ do {
66
+ const wrongAnswer = (0, randint_1.randint)(-10, 11);
67
+ proposition = {
68
+ id: (0, uuid_1.v4)() + '',
69
+ statement: wrongAnswer.toString(),
70
+ isRightAnswer: false,
71
+ format: 'tex',
72
+ };
73
+ isDuplicate = res.some((p) => p.statement === proposition.statement);
74
+ } while (isDuplicate);
75
+ res.push(proposition);
76
+ }
77
+ return (0, shuffle_1.shuffle)(res);
78
+ };
79
+ const question = {
80
+ instruction: `Soit $f$ la fonction définie par $f(x) = ${trinom
81
+ .getCanonicalForm()
82
+ .toTex()}$. Que vaut $${param}$ ?`,
83
+ answer: answer,
84
+ keys: ['x', '\\alpha', '\\beta'],
85
+ getPropositions,
86
+ answerFormat: 'tex',
87
+ startStatement: param,
88
+ };
89
+ return question;
90
+ }
91
+ exports.getAlphaBetaInCanonicalFormQuestion = getAlphaBetaInCanonicalFormQuestion;
@@ -0,0 +1,4 @@
1
+ import { Exercise, Question } from '../../../exercises/exercise';
2
+ export declare const canonicalFromDevForm: Exercise;
3
+ export declare function getCanonicalFromDevFormQuestion(): Question;
4
+ //# sourceMappingURL=canonicalFromDevForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonicalFromDevForm.d.ts","sourceRoot":"","sources":["../../../../src/exercises/functions/trinoms/canonicalFromDevForm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAQ3E,eAAO,MAAM,oBAAoB,EAAE,QASlC,CAAC;AAEF,wBAAgB,+BAA+B,IAAI,QAAQ,CA8C1D"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCanonicalFromDevFormQuestion = exports.canonicalFromDevForm = void 0;
4
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
+ const integer_1 = require("../../../math/numbers/integer/integer");
6
+ const trinom_1 = require("../../../math/polynomials/trinom");
7
+ const discreteSet_1 = require("../../../math/sets/discreteSet");
8
+ const shuffle_1 = require("../../../utils/shuffle");
9
+ const uuid_1 = require("uuid");
10
+ exports.canonicalFromDevForm = {
11
+ id: 'canonicalFromDevForm',
12
+ connector: '\\iff',
13
+ instruction: '',
14
+ label: 'Déterminer la forme canonique à partir de la forme développée',
15
+ levels: ['1reSpé'],
16
+ isSingleStep: false,
17
+ sections: ['Second degré'],
18
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getCanonicalFromDevFormQuestion, nb),
19
+ };
20
+ function getCanonicalFromDevFormQuestion() {
21
+ const trinom = trinom_1.TrinomConstructor.randomCanonical();
22
+ const getPropositions = (n) => {
23
+ const res = [];
24
+ res.push({
25
+ id: (0, uuid_1.v4)() + '',
26
+ statement: trinom.getCanonicalForm().toTex(),
27
+ isRightAnswer: true,
28
+ format: 'tex',
29
+ });
30
+ const missing = n - res.length;
31
+ for (let i = 0; i < missing; i++) {
32
+ let isDuplicate;
33
+ let proposition;
34
+ do {
35
+ proposition = {
36
+ id: (0, uuid_1.v4)() + '',
37
+ statement: trinom_1.TrinomConstructor.randomCanonical(new discreteSet_1.DiscreteSet([new integer_1.Integer(trinom.a), new integer_1.Integer(-trinom.a)]))
38
+ .getCanonicalForm()
39
+ .toTex(),
40
+ isRightAnswer: false,
41
+ format: 'tex',
42
+ };
43
+ isDuplicate = res.some((p) => p.statement === proposition.statement);
44
+ } while (isDuplicate);
45
+ res.push(proposition);
46
+ }
47
+ return (0, shuffle_1.shuffle)(res);
48
+ };
49
+ const question = {
50
+ answer: trinom.getCanonicalForm().toTex(),
51
+ keys: ['x', '=', '\\alpha', '\\beta'],
52
+ instruction: `Déterminer la forme canonique de la fonction $f$ définie par $f(x) = ${trinom.toTree().toTex()}$`,
53
+ getPropositions,
54
+ answerFormat: 'tex',
55
+ };
56
+ return question;
57
+ }
58
+ exports.getCanonicalFromDevFormQuestion = getCanonicalFromDevFormQuestion;
@@ -0,0 +1,4 @@
1
+ import { Exercise, Question } from '../../../exercises/exercise';
2
+ export declare const extremumFromCanonicalForm: Exercise;
3
+ export declare function getExtremumFromCanonicalFormQuestion(): Question;
4
+ //# sourceMappingURL=extremumFromCanonicalForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extremumFromCanonicalForm.d.ts","sourceRoot":"","sources":["../../../../src/exercises/functions/trinoms/extremumFromCanonicalForm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAO3E,eAAO,MAAM,yBAAyB,EAAE,QASvC,CAAC;AAEF,wBAAgB,oCAAoC,IAAI,QAAQ,CAmE/D"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getExtremumFromCanonicalFormQuestion = exports.extremumFromCanonicalForm = void 0;
4
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
+ const trinom_1 = require("../../../math/polynomials/trinom");
6
+ const randint_1 = require("../../../math/utils/random/randint");
7
+ const shuffle_1 = require("../../../utils/shuffle");
8
+ const uuid_1 = require("uuid");
9
+ exports.extremumFromCanonicalForm = {
10
+ id: 'extremumFromCanonicalForm',
11
+ connector: '=',
12
+ instruction: '',
13
+ label: "Déterminer les coordonnées du sommet d'une parabole à partir de la forme canonique",
14
+ levels: ['1reSpé'],
15
+ isSingleStep: true,
16
+ sections: ['Second degré'],
17
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getExtremumFromCanonicalFormQuestion, nb),
18
+ };
19
+ function getExtremumFromCanonicalFormQuestion() {
20
+ const trinom = trinom_1.TrinomConstructor.randomCanonical();
21
+ const answer = trinom.getSommet();
22
+ const getPropositions = (n) => {
23
+ const res = [];
24
+ res.push({
25
+ id: (0, uuid_1.v4)() + '',
26
+ statement: answer,
27
+ isRightAnswer: true,
28
+ format: 'tex',
29
+ });
30
+ const alpha = trinom.getAlpha();
31
+ const beta = trinom.getBeta();
32
+ if (alpha !== beta) {
33
+ res.push({
34
+ id: (0, uuid_1.v4)(),
35
+ statement: `S\\left(${beta}; ${alpha}\\right)`,
36
+ isRightAnswer: false,
37
+ format: 'tex',
38
+ });
39
+ }
40
+ if (alpha !== 0) {
41
+ res.push({
42
+ id: (0, uuid_1.v4)(),
43
+ statement: `S\\left(${-alpha}; ${beta}\\right)`,
44
+ isRightAnswer: false,
45
+ format: 'tex',
46
+ });
47
+ }
48
+ if (beta !== 0) {
49
+ res.push({
50
+ id: (0, uuid_1.v4)(),
51
+ statement: `S\\left(${alpha}; ${-beta}\\right)`,
52
+ isRightAnswer: false,
53
+ format: 'tex',
54
+ });
55
+ }
56
+ const missing = n - res.length;
57
+ for (let i = 0; i < missing; i++) {
58
+ let isDuplicate;
59
+ let proposition;
60
+ do {
61
+ proposition = {
62
+ id: (0, uuid_1.v4)() + '',
63
+ statement: `S\\left(${(0, randint_1.randint)(-10, 11)}; ${(0, randint_1.randint)(-10, 11)} \\right)`,
64
+ isRightAnswer: false,
65
+ format: 'tex',
66
+ };
67
+ isDuplicate = res.some((p) => p.statement === proposition.statement);
68
+ } while (isDuplicate);
69
+ res.push(proposition);
70
+ }
71
+ return (0, shuffle_1.shuffle)(res);
72
+ };
73
+ const question = {
74
+ answer: answer,
75
+ instruction: `Soit $f$ la fonction définie par $${trinom
76
+ .getCanonicalForm()
77
+ .toTex()}$. Quelles sont les coordonnées du sommet $S$ de la parabole représentative de $f$ ?`,
78
+ keys: ['S', '=', 'semicolon'],
79
+ getPropositions,
80
+ answerFormat: 'tex',
81
+ };
82
+ return question;
83
+ }
84
+ exports.getExtremumFromCanonicalFormQuestion = getExtremumFromCanonicalFormQuestion;
@@ -0,0 +1,4 @@
1
+ import { Exercise, Question } from '../../../exercises/exercise';
2
+ export declare const extremumTypeFromAlgebricForm: Exercise;
3
+ export declare function getExtremumTypeFromAlgebricFormQuestion(): Question;
4
+ //# sourceMappingURL=extremumTypeFromAlgebricForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extremumTypeFromAlgebricForm.d.ts","sourceRoot":"","sources":["../../../../src/exercises/functions/trinoms/extremumTypeFromAlgebricForm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAO3E,eAAO,MAAM,4BAA4B,EAAE,QAQ1C,CAAC;AAEF,wBAAgB,uCAAuC,IAAI,QAAQ,CA6ClE"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getExtremumTypeFromAlgebricFormQuestion = exports.extremumTypeFromAlgebricForm = void 0;
4
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
+ const trinom_1 = require("../../../math/polynomials/trinom");
6
+ const coinFlip_1 = require("../../../utils/coinFlip");
7
+ const shuffle_1 = require("../../../utils/shuffle");
8
+ const uuid_1 = require("uuid");
9
+ exports.extremumTypeFromAlgebricForm = {
10
+ id: 'extremumTypeFromAlgebricForm',
11
+ instruction: '',
12
+ label: "Déterminer le type d'extremum d'une fonction du second degré via sa forme algébrique",
13
+ levels: ['1reSpé'],
14
+ isSingleStep: true,
15
+ sections: ['Second degré'],
16
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getExtremumTypeFromAlgebricFormQuestion, nb),
17
+ };
18
+ function getExtremumTypeFromAlgebricFormQuestion() {
19
+ const isDevForm = (0, coinFlip_1.coinFlip)();
20
+ const trinom = isDevForm ? trinom_1.TrinomConstructor.random() : trinom_1.TrinomConstructor.randomCanonical();
21
+ const answer = trinom.a > 0 ? 'Un minimum' : 'Un maximum';
22
+ const getPropositions = (n) => {
23
+ const res = [];
24
+ res.push({
25
+ id: (0, uuid_1.v4)(),
26
+ statement: answer,
27
+ isRightAnswer: true,
28
+ format: 'raw',
29
+ });
30
+ res.push({
31
+ id: (0, uuid_1.v4)(),
32
+ statement: trinom.a < 0 ? 'Un minimum' : 'Un maximum',
33
+ isRightAnswer: false,
34
+ format: 'raw',
35
+ });
36
+ res.push({
37
+ id: (0, uuid_1.v4)(),
38
+ statement: "Ni l'un ni l'autre",
39
+ isRightAnswer: false,
40
+ format: 'raw',
41
+ });
42
+ res.push({
43
+ id: (0, uuid_1.v4)(),
44
+ statement: 'On ne peut pas savoir',
45
+ isRightAnswer: false,
46
+ format: 'raw',
47
+ });
48
+ return (0, shuffle_1.shuffle)(res);
49
+ };
50
+ const question = {
51
+ answer: answer,
52
+ instruction: `La fonction $f$ définie par $f(x) = ${isDevForm ? trinom.toTree().toTex() : trinom.getCanonicalForm().toTex()}$ admet-elle un maximum ou un minimum ?`,
53
+ questionType: 'QCM',
54
+ getPropositions,
55
+ answerFormat: 'raw',
56
+ };
57
+ return question;
58
+ }
59
+ exports.getExtremumTypeFromAlgebricFormQuestion = getExtremumTypeFromAlgebricFormQuestion;
@@ -0,0 +1,4 @@
1
+ import { Exercise, Question } from '../../../exercises/exercise';
2
+ export declare const variationsFromAlgebricForm: Exercise;
3
+ export declare function getVariationsFromAlgebricFormQuestion(): Question;
4
+ //# sourceMappingURL=variationsFromAlgebricForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variationsFromAlgebricForm.d.ts","sourceRoot":"","sources":["../../../../src/exercises/functions/trinoms/variationsFromAlgebricForm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAO3E,eAAO,MAAM,0BAA0B,EAAE,QAQxC,CAAC;AAEF,wBAAgB,qCAAqC,IAAI,QAAQ,CA6ChE"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getVariationsFromAlgebricFormQuestion = exports.variationsFromAlgebricForm = void 0;
4
+ const getDistinctQuestions_1 = require("../../../exercises/utils/getDistinctQuestions");
5
+ const trinom_1 = require("../../../math/polynomials/trinom");
6
+ const coinFlip_1 = require("../../../utils/coinFlip");
7
+ const shuffle_1 = require("../../../utils/shuffle");
8
+ const uuid_1 = require("uuid");
9
+ exports.variationsFromAlgebricForm = {
10
+ id: 'variationsFromAlgebricForm',
11
+ instruction: '',
12
+ label: "Déterminer les variations d'une fonction du second degré via sa forme algébrique",
13
+ levels: ['1reSpé'],
14
+ isSingleStep: true,
15
+ sections: ['Second degré'],
16
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getVariationsFromAlgebricFormQuestion, nb),
17
+ };
18
+ function getVariationsFromAlgebricFormQuestion() {
19
+ const isDevForm = (0, coinFlip_1.coinFlip)();
20
+ const trinom = isDevForm ? trinom_1.TrinomConstructor.random() : trinom_1.TrinomConstructor.randomCanonical();
21
+ const answer = trinom.a > 0 ? 'Décroissante puis croissante' : 'Croissante puis décroissante';
22
+ const getPropositions = (n) => {
23
+ const res = [];
24
+ res.push({
25
+ id: (0, uuid_1.v4)(),
26
+ statement: answer,
27
+ isRightAnswer: true,
28
+ format: 'raw',
29
+ });
30
+ res.push({
31
+ id: (0, uuid_1.v4)(),
32
+ statement: trinom.a < 0 ? 'Décroissante puis croissante' : 'Croissante puis décroissante',
33
+ isRightAnswer: false,
34
+ format: 'raw',
35
+ });
36
+ res.push({
37
+ id: (0, uuid_1.v4)(),
38
+ statement: 'Constante',
39
+ isRightAnswer: false,
40
+ format: 'raw',
41
+ });
42
+ res.push({
43
+ id: (0, uuid_1.v4)(),
44
+ statement: 'On ne peut pas savoir',
45
+ isRightAnswer: false,
46
+ format: 'raw',
47
+ });
48
+ return (0, shuffle_1.shuffle)(res);
49
+ };
50
+ const question = {
51
+ answer: answer,
52
+ instruction: `Quelles sont les variations de la fonction $f$ définie par $f(x) = ${isDevForm ? trinom.toTree().toTex() : trinom.getCanonicalForm().toTex()}$ ?`,
53
+ questionType: 'QCM',
54
+ getPropositions,
55
+ answerFormat: 'raw',
56
+ };
57
+ return question;
58
+ }
59
+ exports.getVariationsFromAlgebricFormQuestion = getVariationsFromAlgebricFormQuestion;
@@ -0,0 +1,4 @@
1
+ import { Exercise, Question } from '../exercise';
2
+ export declare const averageWithTable: Exercise;
3
+ export declare function getAverageWithTableQuestion(): Question;
4
+ //# sourceMappingURL=averageWithTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"averageWithTable.d.ts","sourceRoot":"","sources":["../../../src/exercises/probaStat/averageWithTable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI9D,eAAO,MAAM,gBAAgB,EAAE,QAU9B,CAAC;AAEF,wBAAgB,2BAA2B,IAAI,QAAQ,CAsEtD"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAverageWithTableQuestion = exports.averageWithTable = void 0;
4
+ const randint_1 = require("../../math/utils/random/randint");
5
+ const round_1 = require("../../math/utils/round");
6
+ const shuffle_1 = require("../../utils/shuffle");
7
+ const getDistinctQuestions_1 = require("../utils/getDistinctQuestions");
8
+ const uuid_1 = require("uuid");
9
+ exports.averageWithTable = {
10
+ id: 'averageWithTable',
11
+ connector: '=',
12
+ instruction: '',
13
+ label: "Calcul de la moyenne d'un tableau d'effectifs",
14
+ levels: ['3ème', '2nde'],
15
+ isSingleStep: false,
16
+ sections: ['Statistiques'],
17
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getAverageWithTableQuestion, nb),
18
+ keys: [],
19
+ };
20
+ function getAverageWithTableQuestion() {
21
+ const getRandomUniqueValues = (count, min, max) => {
22
+ const uniqueValues = new Set();
23
+ while (uniqueValues.size < count) {
24
+ uniqueValues.add((0, randint_1.randint)(min, max));
25
+ }
26
+ return Array.from(uniqueValues).sort((a, b) => a - b);
27
+ };
28
+ const randomValeurs = getRandomUniqueValues(5, 1, 20);
29
+ const randomEffectives = [1, 2, 3, 4, 5].map((el) => (0, randint_1.randint)(1, 6));
30
+ const sumEffectives = randomEffectives.reduce((sum, value) => sum + value, 0);
31
+ let average = 0;
32
+ for (let i = 0; i < randomValeurs.length; i++)
33
+ average += randomValeurs[i] * randomEffectives[i];
34
+ average /= sumEffectives;
35
+ average = (0, round_1.round)(average, 2);
36
+ const getPropositions = (n) => {
37
+ const res = [];
38
+ res.push({
39
+ id: (0, uuid_1.v4)() + '',
40
+ statement: average + '',
41
+ isRightAnswer: true,
42
+ format: 'tex',
43
+ });
44
+ for (let i = 0; i < n - 1; i++) {
45
+ let isDuplicate;
46
+ let proposition;
47
+ do {
48
+ proposition = {
49
+ id: (0, uuid_1.v4)() + '',
50
+ statement: (0, round_1.round)(average + (0, randint_1.randint)(-average, 20 - average, [0]) + (0, randint_1.randint)(1, 100) / 100, 2) + '',
51
+ isRightAnswer: false,
52
+ format: 'tex',
53
+ };
54
+ isDuplicate = res.some((p) => p.statement === proposition.statement);
55
+ } while (isDuplicate);
56
+ res.push(proposition);
57
+ }
58
+ return (0, shuffle_1.shuffle)(res);
59
+ };
60
+ const question = {
61
+ instruction: `On considère le tableau d'effectifs suivant :
62
+
63
+ | | | | | | |
64
+ |-|-|-|-|-|-|
65
+ |Valeur|${randomValeurs[0]}|${randomValeurs[1]}|${randomValeurs[2]}|${randomValeurs[3]}|${randomValeurs[4]}|
66
+ |Effectif|${randomEffectives[0]}|${randomEffectives[1]}|${randomEffectives[2]}|${randomEffectives[3]}|${randomEffectives[4]}|
67
+
68
+ Calculer la moyenne de cette série de valeurs.`,
69
+ answer: average + '',
70
+ keys: [],
71
+ getPropositions,
72
+ answerFormat: 'tex',
73
+ };
74
+ return question;
75
+ }
76
+ exports.getAverageWithTableQuestion = getAverageWithTableQuestion;
@@ -1,4 +1,4 @@
1
1
  import { Exercise, Question } from '../exercise';
2
- export declare const median: Exercise;
3
- export declare function getMedian(): Question;
2
+ export declare const medianWithTable: Exercise;
3
+ export declare function getMedianWithTable(): Question;
4
4
  //# sourceMappingURL=median.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"median.d.ts","sourceRoot":"","sources":["../../../src/exercises/probaStat/median.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI9D,eAAO,MAAM,MAAM,EAAE,QAUpB,CAAC;AAEF,wBAAgB,SAAS,IAAI,QAAQ,CA8EpC"}
1
+ {"version":3,"file":"median.d.ts","sourceRoot":"","sources":["../../../src/exercises/probaStat/median.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI9D,eAAO,MAAM,eAAe,EAAE,QAU7B,CAAC;AAEF,wBAAgB,kBAAkB,IAAI,QAAQ,CA8E7C"}
@@ -1,22 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getMedian = exports.median = void 0;
3
+ exports.getMedianWithTable = exports.medianWithTable = void 0;
4
4
  const randint_1 = require("../../math/utils/random/randint");
5
5
  const shuffle_1 = require("../../utils/shuffle");
6
6
  const getDistinctQuestions_1 = require("../utils/getDistinctQuestions");
7
7
  const uuid_1 = require("uuid");
8
- exports.median = {
9
- id: 'median',
8
+ exports.medianWithTable = {
9
+ id: 'medianWithTable',
10
10
  connector: '=',
11
11
  instruction: '',
12
- label: "Calcul de la moyenne d'une série de valeurs",
12
+ label: "Calcul de la médiane d'un tableau d'effectifs",
13
13
  levels: ['3ème', '2nde'],
14
14
  isSingleStep: false,
15
15
  sections: ['Statistiques'],
16
- generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getMedian, nb),
16
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getMedianWithTable, nb),
17
17
  keys: [],
18
18
  };
19
- function getMedian() {
19
+ function getMedianWithTable() {
20
20
  const getRandomUniqueValues = (count, min, max) => {
21
21
  const uniqueValues = new Set();
22
22
  while (uniqueValues.size < count) {
@@ -79,4 +79,4 @@ Calculer la médiane de cette série de valeurs.`,
79
79
  };
80
80
  return question;
81
81
  }
82
- exports.getMedian = getMedian;
82
+ exports.getMedianWithTable = getMedianWithTable;
@@ -1,4 +1,4 @@
1
1
  import { Exercise, Question } from '../exercise';
2
- export declare const medianList: Exercise;
3
- export declare function getMedian(): Question;
2
+ export declare const medianWithList: Exercise;
3
+ export declare function getMedianList(): Question;
4
4
  //# sourceMappingURL=medianList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"medianList.d.ts","sourceRoot":"","sources":["../../../src/exercises/probaStat/medianList.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI9D,eAAO,MAAM,UAAU,EAAE,QAUxB,CAAC;AAEF,wBAAgB,SAAS,IAAI,QAAQ,CA4DpC"}
1
+ {"version":3,"file":"medianList.d.ts","sourceRoot":"","sources":["../../../src/exercises/probaStat/medianList.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAe,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI9D,eAAO,MAAM,cAAc,EAAE,QAU5B,CAAC;AAEF,wBAAgB,aAAa,IAAI,QAAQ,CA4DxC"}
@@ -1,22 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getMedian = exports.medianList = void 0;
3
+ exports.getMedianList = exports.medianWithList = void 0;
4
4
  const randint_1 = require("../../math/utils/random/randint");
5
5
  const shuffle_1 = require("../../utils/shuffle");
6
6
  const getDistinctQuestions_1 = require("../utils/getDistinctQuestions");
7
7
  const uuid_1 = require("uuid");
8
- exports.medianList = {
9
- id: 'medianList',
8
+ exports.medianWithList = {
9
+ id: 'medianWithList',
10
10
  connector: '=',
11
11
  instruction: '',
12
12
  label: "Calcul de la médiane d'une liste de valeurs",
13
13
  levels: ['3ème', '2nde'],
14
14
  isSingleStep: false,
15
- sections: ['Probabilités'],
16
- generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getMedian, nb),
15
+ sections: ['Statistiques'],
16
+ generator: (nb) => (0, getDistinctQuestions_1.getDistinctQuestions)(getMedianList, nb),
17
17
  keys: ['f', 'cap', 'underscore'],
18
18
  };
19
- function getMedian() {
19
+ function getMedianList() {
20
20
  let randomValeurs = [];
21
21
  const length = (0, randint_1.randint)(6, 10);
22
22
  for (let i = 0; i < length; i++)
@@ -64,4 +64,4 @@ function getMedian() {
64
64
  };
65
65
  return question;
66
66
  }
67
- exports.getMedian = getMedian;
67
+ exports.getMedianList = getMedianList;
@@ -83,12 +83,12 @@ function getProbabilityTree() {
83
83
  'Segment(B,BD)',
84
84
  'ShowAxes(false)',
85
85
  'ShowGrid(false)',
86
- `Text("\\scriptsize${A / pgcd(A, A + B)}/${(A + B) / pgcd(A, A + B)}", (0.3, 2.1), true, true)`,
87
- `Text("\\scriptsize${AC / pgcd(AC, AC + AD)}/${(AC + AD) / pgcd(AC, AC + AD)}", (2.8, 3.5), true, true)`,
88
- `Text("\\scriptsize${AD / pgcd(AD, AC + AD)}/${(AC + AD) / pgcd(AD, AC + AD)}", (2.8, 1.4), true, true)`,
89
- `Text("\\scriptsize${B / pgcd(B, A + B)}/${(A + B) / pgcd(B, A + B)}", (0.3, -1.2), true, true)`,
90
- `Text("\\scriptsize${BC / pgcd(BC, BC + BD)}/${(BC + BD) / pgcd(BC, BC + BD)}", (2.8, -0.6), true, true)`,
91
- `Text("\\scriptsize${BD / pgcd(BD, BC + BD)}/${(BC + BD) / pgcd(BD, BC + BD)}", (2.8, -2.5), true, true)`,
86
+ `Text("\\scriptsize ${A / pgcd(A, A + B)}/${(A + B) / pgcd(A, A + B)}", (0.3, 2.1), true, true)`,
87
+ `Text("\\scriptsize ${AC / pgcd(AC, AC + AD)}/${(AC + AD) / pgcd(AC, AC + AD)}", (2.8, 3.5), true, true)`,
88
+ `Text("\\scriptsize ${AD / pgcd(AD, AC + AD)}/${(AC + AD) / pgcd(AD, AC + AD)}", (2.8, 1.4), true, true)`,
89
+ `Text("\\scriptsize ${B / pgcd(B, A + B)}/${(A + B) / pgcd(B, A + B)}", (0.3, -1.2), true, true)`,
90
+ `Text("\\scriptsize ${BC / pgcd(BC, BC + BD)}/${(BC + BD) / pgcd(BC, BC + BD)}", (2.8, -0.6), true, true)`,
91
+ `Text("\\scriptsize ${BD / pgcd(BD, BC + BD)}/${(BC + BD) / pgcd(BD, BC + BD)}", (2.8, -2.5), true, true)`,
92
92
  'Text("A", (1.85 , 2.5))',
93
93
  'Text("B", (1.85 , -2.8))',
94
94
  'Text("C", (5.5 , 2.85))',
@@ -9,7 +9,7 @@ exports.quartiles = {
9
9
  id: 'quartiles',
10
10
  connector: '=',
11
11
  instruction: '',
12
- label: "Calcul des quartiles d'une série de valeurs",
12
+ label: "Calcul des quartiles d'un tableau d'effectifs",
13
13
  levels: ['3ème', '2nde'],
14
14
  isSingleStep: false,
15
15
  sections: ['Statistiques'],
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=arithmeticSum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arithmeticSum.d.ts","sourceRoot":"","sources":["../../../../src/exercises/sequences/arithmetic/arithmeticSum.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ "use strict";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAG7D,QAAA,MAAM,gBAAgB,YAAiB,CAAC;AAExC,QAAA,MAAM,4BAA4B;aACT,WAAW;UAAQ,QAAQ,EAAE;GAkBrD,CAAC;AACF,OAAO,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAS7D,QAAA,MAAM,gBAAgB,YAAiB,CAAC;AAExC,QAAA,MAAM,4BAA4B;aACT,WAAW;UAAQ,QAAQ,EAAE;GAkBrD,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { ComplexNode } from '../../tree/nodes/complex/complexNode';
2
+ import { AddNode } from '../../tree/nodes/operators/addNode';
3
+ export declare abstract class ComplexConstructor {
4
+ static random(): Complex;
5
+ static randomNotReal(): Complex;
6
+ }
7
+ export declare class Complex {
8
+ re: number;
9
+ im: number;
10
+ constructor(re: number, im: number);
11
+ moduleSquared(): number;
12
+ inverseNode(): AddNode;
13
+ divideNode(z: Complex): AddNode;
14
+ multiply(z: Complex): Complex;
15
+ opposite(): Complex;
16
+ conjugate(): Complex;
17
+ toTree(): ComplexNode;
18
+ }
19
+ //# sourceMappingURL=complex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"complex.d.ts","sourceRoot":"","sources":["../../../src/math/complex/complex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAO7D,8BAAsB,kBAAkB;IACtC,MAAM,CAAC,MAAM;IAQb,MAAM,CAAC,aAAa;CAQrB;AACD,qBAAa,OAAO;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;gBACC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAIlC,aAAa;IAIb,WAAW;IAQX,UAAU,CAAC,CAAC,EAAE,OAAO;IAOrB,QAAQ,CAAC,CAAC,EAAE,OAAO;IAGnB,QAAQ;IAGR,SAAS;IAGT,MAAM;CAGP"}