'''
Created on 20-Jan-2022

@author: bthakur
'''

import inspect
import traceback
import random
import numpy as np
from sympy import (latex, Symbol, symbols,
                   Eq, Rational,
                   UnevaluatedExpr as ueval,
                   )

from xv.util import toIntOrFloat, listAttr
from xv.km.storeddata import BaseStoredQuestions
from xv.km import CustomLogarithm as Log
from xv.km.util import latex_log, latex_fraction, latex_exponent

# _grade11_stored_questions
# Grade11StoredQuestions

class Grade11StoredQuestions(BaseStoredQuestions):
    _QUESTION_KEYWORDS = None
    
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        pass
       
    def get_question_complex_number(self):
        keywords = [
            'grade11',
            'grade 11',
            'complex_number',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        What type of number is $12 i+360$ ?
		Choose all answers that apply:
		(A) Real
		(B) Imaginary
		(C) Complex
		"""
        
        soln_s = rf"""
        We can write any complex number in the form $a+b i$, where $a$ and $b$ are both real numbers. $a$ is called the real part and $b$ is called the imaginary part.
		A real number is a complex number where the imaginary part is zero.
		An imaginary number is a complex number where the real part is zero.
		$\displaystyle 12 i+360=\overbrace{{360}}^{{a}}+\overbrace{{12}}^{{b}} i$
		Both the real and the imaginary parts are nonzero.
		In conclusion, $12 i+360$ is complex.
		
        
        {hint_s.strip()}
        """
        
        answer_s = rf"""
        $12 i+360$ is complex.
		
		"""

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_function_domain(self):
        keywords = [
            'grade11',
            'grade 11',
            'function_domain',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        $g(x)=\sqrt{{x+3}}$
		What is the domain of $g$ ?
		Choose 1 answer:
		(A) All real values of $x$ such that $x \neq-3$
		(B) All real values of $x$ such that $x \geq-3$
		(C) All real values of $x$ such that $x \neq 3$
		(D) All real values of $x$ such that $x \geq 3$
		(E) All real values of $x$
		"""
        
        soln_s = rf"""
        $g$ is a square root function.
		Square root functions are defined for all real numbers except those which result in a negative expression below the square root.
		
		The expression below the square root in $g(x)=\sqrt{{x+3}}$ is $x+3$. We want that to be greater than or equal to zero:
		$x+3 \geq 0$
		$x \geq-3$
		The domain of $g$ is all real values of $x$ such that $x \geq-3$.
		
		
        
        {hint_s.strip()}
        """
        
        answer_s = rf"""
        The domain of $g$ is all real values of $x$ such that $x \geq-3$.
		
		"""

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_circle_equation(self):
        keywords = [
            'grade11',
            'grade 11',
            'circle_equation',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        A circle has a radius of $\sqrt{{45}}$ units and is centered at $(-2.4,-4.8)$.
		Write the equation of this circle.
		
        """
        
        soln_s = rf"""
        The strategy
		The equation of a circle with center $(h, k)$ and radius $r$ is given below.
		$(x-h)^{{2}}+(y-k)^{{2}}=r^{{2}}$
		We can find the equation of our circle by substituting the given center and radius in this equation.
		
        Writing the equation of the circle
		We are given that the center of this circle is $C=(-2.4,-4.8)$ and its radius is $\sqrt{{45}}$. Therefore, the standard equation of this circle can be written as follows.
		$(x-(-2.4))^{{2}}+(y-(-4.8))^{{2}}=(\sqrt{{45}})^{{2}}$
		We can simplify this equation by removing double negative signs and evaluating the expression on the right hand side of the equation.
		$(x+2.4)^{{2}}+(y+4.8)^{{2}}=45$
		
        Summary
		The equation of this circle is given below.
		$(x+2.4)^{{2}}+(y+4.8)^{{2}}=45$
		
		
        
        {hint_s.strip()}
        """
        
        answer_s = rf"""
        $(x+2.4)^{{2}}+(y+4.8)^{{2}}=45$
		
		"""

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_set_natural_integer(self):
        keywords = [
            'grade11',
            'grade 11',
            'set_natural_integer',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        Let $\mathbb{{N}}$ be the set of natural numbers and $\mathbb{{Z}}$ be the set of integers.
		What is $\mathbb{{N}}-\mathbb{{Z}}$ ?
		Note: $\emptyset$ denotes the empty set.
		Choose 1 answer:
		(A) Set of non-positive integers
		(B) $\{{0\}}$
		(C) $\emptyset$
		(D) $\mathbb{{N}}$
		
        """
        
        soln_s = rf"""
        - is the difference of the sets. To find $\mathbb{{N}}-\mathbb{{Z}}$, start with $\mathbb{{N}}$. Then remove all those elements, which are also present in $\mathbb{{Z}}$.
		What are we left with?
		$\begin{{aligned}} \mathbb{{N}} &=\{{1,2,3, \ldots\}} \\ \mathbb{{Z}} &=\{{-2,-1,0,1,2,3 \ldots\}} \\ \mathbb{{N}}-\mathbb{{Z}} &=\emptyset \end{{aligned}}$
		$\mathbb{{Z}}$ contains all natural numbers. Hence $\mathbb{{N}}-\mathbb{{Z}}$ is empty.
		The correct choice is $\emptyset$.
		
		
        
        {hint_s.strip()}
        """
        
        answer_s = rf"""
        $\emptyset$
		
		"""

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_limit_derivative(self):
        keywords = [
            'grade11',
            'grade 11',
            'limit_derivative',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        Which derivative is described by the following expression?
		$\displaystyle \lim _{{h \rightarrow 0}} \frac{{\log (1+h)-0}}{{h}}$
		Choose 1 answer:
		(A) $f^{{\prime}}(0)$, where $\displaystyle f(x)=\frac{{\log (x+1)}}{{x}}$
		(B) $f^{{\prime}}(1)$, where $f(x)=\log (1+x)$
		(C) $f^{{\prime}}(1)$, where $f(x)=\log (x)$
		(D) $f^{{\prime}}(0)$, where $f(x)=\log (x)$
		
        """
        
        soln_s = rf"""
        The derivative of function $f$ at the point where $x=t$ is defined by the following two equivalent limit expressions:
		- $\displaystyle \lim _{{x \rightarrow t}} \frac{{f(x)-f(t)}}{{x-t}}$
		- $\displaystyle \lim _{{h \rightarrow 0}} \frac{{f(t+h)-f(t)}}{{h}}$
		The expression given in this problem is of the same form as the second expression.
		The numerator in the quotient expression, $\log (1+h)-0$, is equivalent to $\log (1+h)-\log (1)$
		This tells us that $f(x)=\log (x)$ and that $t=1$.
		In conclusion, the expression describes $f^{{\prime}}(1)$, where $f(x)=\log (x)$.
		
		
        
        {hint_s.strip()}
        """
        
        answer_s = rf"""
        $f^{{\prime}}(1)$, where $f(x)=\log (x)$.
		"""

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_function_input(self):
        keywords = [
            'grade11',
            'grade 11',
            'function_input',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        $h(x)=x-11$
		$h(?)=-5$
		
        """
        
        soln_s = rf"""
        We need to solve an equation with the function's formula $x-11$ on one side and the given output $-5$ on the other side.
		$x-11=-5$
		$x=6$
		Therefore, $h(6)=-5$.
		
		
        
        {hint_s.strip()}
        """
        
        answer_s = rf"""
        $h(6)=-5$
		"""

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_formula_of_arithmetic_sequence(self):
        keywords = [
            'grade11',
            'grade 11',
            'formula_of_arithmetic_sequence',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        Complete the recursive formula of the arithmetic sequence $4,22,40,58, \ldots$
		$b(1)=?$
		$b(n)=b(n-1)+?$
		
        """
        
        soln_s = rf"""
        The first term is 4 and the common difference is 18 .
		This is the recursive formula of $4,22,40,58, \ldots$
		$\left\{{\begin{{array}}{{l}} b(1)=4 \\ b(n)=b(n-1)+18 \end{{array}}\right.$
		
		
        
        {hint_s.strip()}
        """
        
        answer_s = rf"""
        $\left\{{\begin{{array}}{{l}} b(1)=4 \\ b(n)=b(n-1)+18 \end{{array}}\right.$
		"""

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_graph_circle(self):
        keywords = [
            'grade11',
            'grade 11',
            'graph_circle',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        TODO graph_circle
        
        
        Graph the circle $x^{{2}}+y^{{2}}-10 x-10 y+25=0$.
		
        """
        
        soln_s = rf"""
        Add solution 
        
        {hint_s.strip()}
        """
        
        answer_s = rf"""
        """

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_trignometric_values(self):
        keywords = [
            'grade11',
            'grade 11',
            'trignometric_values',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        Find the following trigonometric values. Express your answers exactly.
		$\begin{{aligned}} &\cos \left(225^{{\circ}}\right)= \\ &\sin \left(225^{{\circ}}\right)= \end{{aligned}}$
		
        """
        
        soln_s = rf"""
        Fix solution

        Strategy
		- Draw the desired angle on the unit circle and find a corresponding right triangle.
		- Solve the right triangle using the known trigonometric values of the special angles $0^{{\circ}}$, $30^{{\circ}}, 45^{{\circ}}$, or their complementary angles (as necessary).
		- Determine the sign of the trigonometric values of the angle in question.
		Drawing $225^{{\circ}}$ and finding a corresponding right triangle
		In the following drawing, $A$ is the intersection point of the unit circle with the line that forms an angle of $225^{{\circ}}$ with the positive $x$-axis. This means that the coordinates of $A$ are $\left(\cos \left(225^{{\circ}}\right), \sin \left(225^{{\circ}}\right)\right)$
		If we draw a vertical line from $A$ to the $x$-axis, we obtain the right triangle $\triangle A O B$. We can use this triangle to find the coordinates of $A$.
		
		Solving $\triangle A O B$
		$\displaystyle B O=\cos \left(45^{{\circ}}\right)=\frac{{\sqrt{{2}}}}{{2}}$
		$\displaystyle A B=\sin \left(45^{{\circ}}\right)=\frac{{\sqrt{{2}}}}{{2}}$
		Relating $\triangle A O B$ back to the unit circle
		
		We now know that $A$ is $\frac{{\sqrt{{2}}}}{{2}}$ units below the $x$-axis and $\frac{{\sqrt{{2}}}}{{2}}$ units to the left of the $y$-axis. Therefore, its coordinates are $\displaystyle \left(-\frac{{\sqrt{{2}}}}{{2}},-\frac{{\sqrt{{2}}}}{{2}}\right)$.
		Summary
		$\displaystyle \cos \left(225^{{\circ}}\right)=-\frac{{\sqrt{{2}}}}{{2}}$
		$\displaystyle \sin \left(225^{{\circ}}\right)=-\frac{{\sqrt{{2}}}}{{2}}$
		
        {hint_s.strip()}
        """
        
        answer_s = rf"""
        $\displaystyle \cos \left(225^{{\circ}}\right)=-\frac{{\sqrt{{2}}}}{{2}}$
		$\displaystyle \sin \left(225^{{\circ}}\right)=-\frac{{\sqrt{{2}}}}{{2}}$
		"""

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_set_domain(self):
        keywords = [
            'grade11',
            'grade 11',
            'set_domain',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        Let $A=[0,1]$, i.e. the set of all real numbers from 0 to 1 . A relation $R$ on $A$ is given by $R=\{{(x, y): x+y=2, x, y \in A\}}$.
		Find the domain of $R$.
		Choose 1 answer:
		(A) $\{{1\}}$
		(B) $A$
		(c) $\left(\frac{{1}}{{2}}, 1\right]$
		
        """
        
        soln_s = rf"""
        Domain is the set of all first elements of ordered pairs in the relation.
		In this case, $0 \leq x \leq 1$ and $0 \leq y \leq 1$. What possible combinations of $x$ and $y$ will satisfy the relation $x+y=2$ ?
		The only possible pair is $(1,1)$.
		If we choose $x<1$, we need to have $y>1$, but then $y$ will not belong to $A$. Similarly, if we choose $y<1$, we need to have $x>1$, but then $x$ will not belong to $A$.
		The domain is $\{{1\}}$.
		
        {hint_s.strip()}
        """
        
        answer_s = rf"""
        The domain is $\{{1\}}$.
		"""

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_derivative(self):
        keywords = [
            'grade11',
            'grade 11',
            'derivative',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        Let $\displaystyle h(x)=\frac{{1}}{{x^{{2}}}}+\frac{{1}}{{x}}+x$.
		$h^{{\prime}}(x)=-2 x^{{-3}}-x^{{-2}}+1$
		
        """
        
        soln_s = rf"""
        The strategy
		We can first rewrite each rational term of $h$ as a negative power of $x$.
		Then, the derivatives of these terms can be found using the power rule:
		$\displaystyle \frac{{d}}{{d x}}\left(x^{{n}}\right)=n \cdot x^{{n-1}}$
		(Remember that this applies even when $n$ is negative.)
		Rewriting rational terms as negative powers
		$\displaystyle \begin{{aligned}} h(x) &=\frac{{1}}{{x^{{2}}}}+\frac{{1}}{{x}}+x \\ &=x^{{-2}}+x^{{-1}}+x \end{{aligned}}$
		
		Differentiating using the power rule
		$\displaystyle \begin{{aligned}} & h^{{\prime}}(x) \\ =& \frac{{d}}{{d x}}\left(x^{{-2}}+x^{{-1}}+x\right) \\ =& \frac{{d}}{{d x}}\left(x^{{-2}}\right)+\frac{{d}}{{d x}}\left(x^{{-1}}\right)+\frac{{d}}{{d x}}(x) \\ =&-2 x^{{-3}}+(-1) x^{{-2}}+1 x^{{0}} \\ =&-\frac{{2}}{{x^{{3}}}}-\frac{{1}}{{x^{{2}}}}+1 \end{{aligned}}$
		In conclusion, $\displaystyle h^{{\prime}}(x)=-\frac{{2}}{{x^{{3}}}}-\frac{{1}}{{x^{{2}}}}+1$.
		
        {hint_s.strip()}
        """
        
        answer_s = rf"""
		$h^{{\prime}}(x)=-2 x^{{-3}}-x^{{-2}}+1$

		"""

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_set_relation(self):
        keywords = [
            'grade11',
            'grade 11',
            'set_relation',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        The following diagram shows a relation between the sets A and B.
        Let us denote the elements of $A$ by $x$ and those of $B$ by $y$.
		Identify the relationship between $x$ and $y$.
		Choose 1 answer:
		(A) $y=x^{{3}}+x^{{2}}-x-1$
		(B) $y=x^{{3}}+1$
		(C) $y=7 x-5$
		
        """
        
        soln_s = rf"""
        Numbers on the right appear to be close to the cube of the numbers on the left. Can we find the relation now?
		All the three pairs satisfy $y=x^{{3}}+1$. See that
		$\begin{{array}}{{r}} 2=1^{{3}}+1 \\ 9=2^{{3}}+1 \\ 28=3^{{3}}+1 \end{{array}}$
		Thus the relationship is $y=x^{{3}}+1$.
		
		
        {hint_s.strip()}
        """
        
        answer_s = rf"""
		$y=x^{{3}}+1$

		"""

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_mean_absolute_deviation(self):
        keywords = [
            'grade11',
            'grade 11',
            'mean_absolute_deviation',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        The following table shows the number of classes that each teacher in the math department at Wilburton High School teaches.
		Teacher - Number of classes 
		Mr. Linn - 3 classes 
		Mrs. Ross - 7 classes 
		Mr. Riley - 4 classes 
		Ms. Moss - 2 classes 
		Find the mean absolute deviation (MAD) of the data set.
		
        """
        
        soln_s = rf"""
        The mean absolute deviation (MAD) is the mean of the distances from the mean.
		First, let's find the mean.
		$\displaystyle \frac{{3+7+4+2}}{{4}}=\frac{{16}}{{4}}=4$ classes
		Next, let's find the distance each data point is from the mean.
		Data point - Distance from the mean
		3 $\qquad 4-3=1$ 
		7 $\qquad 7-4=3$ 
		4 $\qquad 4-4=0$ 
		2 $\qquad 4-2=2$
		Finally, we find the mean of the distances from the mean. $\displaystyle \frac{{1+3+0+2}}{{4}}=\frac{{6}}{{4}}=1.5$ classes
		The mean absolute deviation of the number of classes is $1.5$ classes.
		
		
        {hint_s.strip()}
        """
        
        answer_s = rf"""
		$1.5$ classes
		"""

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_limit(self):
        keywords = [
            'grade11',
            'grade 11',
            'limit',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        Find $\displaystyle \lim _{{x \rightarrow-3}} \frac{{x+3}}{{4-\sqrt{{2 x+22}}}}$
		Choose 1 answer:
		$-3$
		$-4$
		$\displaystyle -\frac{{3}}{{4}}$
		The limit doesn't exist
		
        """
        
        soln_s = rf"""
        Substituting $x=-3$ into $\displaystyle \frac{{x+3}}{{4-\sqrt{{2 x+22}}}}$ results in the indeterminate form $\displaystyle \frac{{0}}{{0}}$. This doesn't necessarily mean the limit doesn't exist, but it does mean we have to work a little before we find it.
		Since we have a rational expression with a square root on our hands, let's try to re-write it using the method of rationalization.
		$\displaystyle \frac{{x+3}}{{4-\sqrt{{2 x+22}}}}$
		$\displaystyle =\frac{{x+3}}{{4-\sqrt{{2 x+22}}}} \cdot \frac{{4+\sqrt{{2 x+22}}}}{{4+\sqrt{{2 x+22}}}} \quad$ Rationalize the denominator
		$\displaystyle =\frac{{(x+3)(4+\sqrt{{2 x+22}})}}{{4^{{2}}-(2 x+22)}}$
		$\displaystyle =\frac{{(x+3)(4+\sqrt{{2 x+22}})}}{{-2(x+3)}} \quad$ Cancel out common factors
		$\displaystyle =\frac{{4+\sqrt{{2 x+22}}}}{{-2}}$, for $x \neq-3$
		This means that the two expressions have the same value for all $x$-values (in their domains) except for $-3$.
		
		We can now use the following theorem:
		If $f(x)=g(x)$ for all $x$-values in a given interval except for $x=c$, then $\displaystyle \lim _{{x \rightarrow c}} f(x)=\lim _{{x \rightarrow c}} g(x)$
		In our case, $\displaystyle \frac{{x+3}}{{4-\sqrt{{2 x+22}}}}=\frac{{4+\sqrt{{2 x+22}}}}{{-2}}$ for all $x$-values in the interval $(-3.5,-2.5)$ except for $x=-3$.
		Therefore, $\displaystyle \lim _{{x \rightarrow-3}} \frac{{x+3}}{{4-\sqrt{{2 x+22}}}}=\lim _{{x \rightarrow-3}} \frac{{4+\sqrt{{2 x+22}}}}{{-2}}=-4$.
		(The last limit was found using direct substitution.)
		In conclusion, $\displaystyle \lim _{{x \rightarrow-3}} \frac{{x+3}}{{4-\sqrt{{2 x+22}}}}=-4$.
		
		
        {hint_s.strip()}
        """
        
        answer_s = rf"""
		$1.5$ classes
		"""

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_combination(self):
        keywords = [
            'grade11',
            'grade 11',
            'combination',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        Simon is creating a flower arrangement. A client asked him to select 4 of the 7 available flower options to create the arrangement.
        How many different groups of 4 flowers can Simon choose?
        """
        
        soln_s = rf"""
        Strategy and formula
		We can find the number of different groups using the combination formula for selecting $r$ objects from $n$ total objects:
		$\displaystyle n \mathrm{{C}} r=\frac{{n !}}{{(n-r) ! \cdot r !}}$
		What we need to do is figure out what $n$ and $r$ are.
		Substitute values
		A client asked him to select 4 of the 7 available flower options to create the arrangement.
		$\displaystyle {{ }}_{{7}} \mathrm{{C}}_{{4}}=\frac{{7 !}}{{(7-4) ! \cdot 4 !}}$
		$\displaystyle =\frac{{7 !}}{{3 ! \cdot 4 !}}$
		$\displaystyle \begin{{aligned}} &=\frac{{7 \cdot 6 \cdot 5 \cdot 4 \cdot 3 \cdot 2 \cdot 1}}{{(3 \cdot 2 \cdot 1) \cdot(4 \cdot 3 \cdot 2 \cdot 1)}} \\ &=35 \end{{aligned}}$
		
        Answer
        There are 35 different groups of 4 flowers Simon could choose.
        {hint_s.strip()}
        """
        
        answer_s = rf"""
        There are 35 different groups of 4 flowers Simon could choose.
		"""

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_step_differentiation(self):
        keywords = [
            'grade11',
            'grade 11',
            'step_differentiation',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        Maya tried to find the derivative of $-7 x+12$ using basic differentiation rules. Here is her work:
		$\displaystyle \begin{{aligned}} & \frac{{d}}{{d x}}(-7 x+12) \\ \text {{ Step 1 }} \quad &=\frac{{d}}{{d x}}(-7 x)+\frac{{d}}{{d x}}(12) \\ \text {{ Step 2 }} \quad &=\frac{{d}}{{d x}}(-7 x)+0 \\ \text {{ Step 3 }} \quad &=\frac{{d}}{{d x}}(-7) \frac{{d}}{{d x}}(x) \\ \text {{ Step 4 }} \quad &=0 \cdot 1 \\ \text {{ Step 5 }} \quad &=0 \end{{aligned}}$
		At which step did Maya make a mistake, if at all?
		Choose 1 answer:
		(A) Step 1
		(B) Step 2
		(C) Step 3
		(D) Maya did not make a mistake
		"""
        
        soln_s = rf"""
        Let's analyze Maya's work, step-by-step, to see if she made any mistakes.
		
		Step 1
		In Step 1, Maya wrote $\displaystyle \frac{{d}}{{d x}}(-7 x+12)$ as the sum of two separate derivatives $\displaystyle \frac{{d}}{{d x}}(-7 x)+\frac{{d}}{{d x}}(12)$, using the sum rule.
		This step is perfectly fine.
		
		Step 2
		In Step 2, $\displaystyle \frac{{d}}{{d x}}(-7 x)$ was kept as it is, and $\displaystyle \frac{{d}}{{d x}}(12)$ was rewritten as 0 , using the constant rule. Indeed, according to the constant rule, the derivative of a constant number is equal to zero.
		This step is perfectly fine.
		
		Step 3
		In Step 3, $\displaystyle \frac{{d}}{{d x}}(-7 x)$ was rewritten as $\displaystyle \frac{{d}}{{d x}}(-7) \frac{{d}}{{d x}}(x)$, supposedly using the constant multiple rule.
		The problem is that according to the constant multiple rule, $\displaystyle \frac{{d}}{{d x}}(-7 x)$ should be rewritten as
		$\displaystyle -7 \frac{{d}}{{d x}}(x)$, and not as $\displaystyle \frac{{d}}{{d x}}(-7) \frac{{d}}{{d x}}(x)$
		Therefore, Maya made a mistake in this step.
		Summary
		Maya made a mistake at Step $3 .$
		
        {hint_s.strip()}
        """
        
        answer_s = rf"""
        Maya made a mistake at Step $3 .$
		"""

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_explicit_formula(self):
        keywords = [
            'grade11',
            'grade 11',
            'explicit_formula',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        Divya and Miguel were asked to find an explicit formula for the sequence $80,40,20,10, \ldots$, where the first term should be $h(1)$.
		Divya said the formula is $\displaystyle h(n)=80 \cdot\left(\frac{{1}}{{2}}\right)^{{n-1}}$, and
		Miguel said the formula is $\displaystyle h(n)=160 \cdot\left(\frac{{1}}{{2}}\right)^{{n}}$.
		Which one of them is right?
		Choose 1 answer:
		(A) Only Divya
		(B) Only Miguel
		(C) Both Divya and Miguel
		(D) Neither Divya nor Miguel
		"""
        
        soln_s = rf"""
        In a geometric sequence, the ratio between successive terms is constant. This means that we can move from any term to the next one by multiplying by a constant value. Let's calculate this ratio over the first few terms:
		$\displaystyle \frac{{10}}{{20}}=\frac{{20}}{{40}}=\frac{{40}}{{80}}=\frac{{1}}{{2}}$
		We see that the constant ratio between successive terms is $\displaystyle \frac{{1}}{{2}}$. In other words, we can find any term by starting with the first term and multiplying by $\frac{{1}}{{2}}$ repeatedly until we get to the desired term
		Let's look at the first few terms expressed as products:
		$\displaystyle h(n) \quad 80 \cdot\left(\frac{{1}}{{2}}\right)^{{0}} \quad 80 \cdot\left(\frac{{1}}{{2}}\right)^{{1}} \quad 80 \cdot\left(\frac{{1}}{{2}}\right)^{{2}} \quad 80 \cdot\left(\frac{{1}}{{2}}\right)^{{3}}$
		We can see that every term is the product of the first term, 80 , and a power of the constant ratio, $\displaystyle \frac{{1}}{{2}}$. Note that this power is always one less than the term number $n$. This is because the first term is the product of itself and planely 1 , which is like taking the constant ratio to the zeroth power.
		
		Thus, we arrive at the following explicit formula (Note that 80 is the first term and $\displaystyle \frac{{1}}{{2}}$ is the constant ratio):
		$\displaystyle h(n)=80 \cdot\left(\frac{{1}}{{2}}\right)^{{n-1}}$
		So Divya is definitely right. What about Miguel? We can see that in Miguel's formula, the constant ratio is taken to the $n^{{\text {{th }}}}$ power. Let's expand the power in Divya's formula to arrive at a similar expression form:
		$\displaystyle h(n)=80 \cdot\left(\frac{{1}}{{2}}\right)^{{n-1}}$
		$\displaystyle =80 \cdot\left(\frac{{1}}{{2}}\right)^{{n}} \cdot\left(\frac{{1}}{{2}}\right)^{{-1}}$
		$\displaystyle =80 \cdot 2 \cdot\left(\frac{{1}}{{2}}\right)^{{n}}$
		$\displaystyle =160 \cdot\left(\frac{{1}}{{2}}\right)^{{n}}$
		We obtained Miguel's formula, which means it's also a correct explicit formula for $h(n)$.
		Both Divya and Miguel got a correct explicit formula.
		
        {hint_s.strip()}
        """
        
        answer_s = rf"""
        Both Divya and Miguel got a correct explicit formula.
		"""

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_complex_division(self):
        keywords = [
            'grade11',
            'grade 11',
            'complex_division',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        Divide the following complex numbers.
		$\displaystyle \frac{{-20+4 i}}{{3+2 i}}$
		
		"""
        
        soln_s = rf"""
        We can divide complex numbers by multiplying both numerator and denominator by the denominator's complex conjugate, which is $3-2 i$.
		$\displaystyle \frac{{-20+4 i}}{{3+2 i}}=\frac{{-20+4 i}}{{3+2 i}} \cdot \frac{{3-2 i}}{{3-2 i}}$
		We can simplify the denominator using the fact $(a+b) \cdot(a-b)=a^{{2}}-b^{{2}}$.
		$\displaystyle =\frac{{(-20+4 i) \cdot(3-2 i)}}{{3^{{2}}-(2 i)^{{2}}}}$
		Evaluate the squares in the denominator and subtract them.
		$\displaystyle \begin{{aligned}} &=\frac{{(-20+4 i) \cdot(3-2 i)}}{{(3)^{{2}}-(2 i)^{{2}}}} \\ &=\frac{{(-20+4 i) \cdot(3-2 i)}}{{9+4}} \\ &=\frac{{(-20+4 i) \cdot(3-2 i)}}{{13}} \end{{aligned}}$
		The denominator now doesn't contain any imaginary unit multiples, so it is a real number.
		Note that when a complex number, $a+b i$ is multiplied by its conjugate, the product is always $a^{{2}}+b^{{2}}$
		Now, we can multiply out the two factors in the numerator.
		$\displaystyle \begin{{aligned}} &\frac{{(-20+4 i) \cdot(3-2 i)}}{{13}} \\ &=\frac{{-20 \cdot 3+4 \cdot 3 i+-20 \cdot-2 i+4 \cdot-2 i^{{2}}}}{{13}} \\ &=\frac{{-60+12 i+40 i-8 i^{{2}}}}{{13}} \end{{aligned}}$
		
		Finally, simplify the fraction.
		$\displaystyle \frac{{-60+12 i+40 i+8}}{{13}}=\frac{{-52+52 i}}{{13}}=-4+4 i$
		
        {hint_s.strip()}
        """
        
        answer_s = rf"""
        $-4+4 i$
		"""

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_word_problem(self):
        keywords = [
            'grade11',
            'grade 11',
            'word_problem',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        Nour drove from the Dead Sea up to Amman, and her altitude increased at a constant rate. When she began driving, her altitude was 400 meters below sea level. When she arrived in Amman 2 hours later, her altitude was 1000 meters above sea level.
		Let $y$ represent Nour's altitude (in meters) relative to sea level after $x$ hours.
		Complete the equation for the relationship between the altitude and number of hours.
		
		"""
        
        soln_s = rf"""
        Nour's altitude increased at a constant rate, so we are dealing with a linear relationship.
		Let's interpret the meaning of the given information in terms of the line representing this relationship.
		
		Nour's initial altitude was 400 meters below sea level. This corresponds to the point $(0,-400)$. which is also the $y$-intercept.
		
		Then 2 hours later, Nour's altitude was 1000 meters above sea level, which corresponds to the point $(2,1000)$.
		Let's use the slope formula with the points $(0,-400)$ and $(2,1000)$.
		$\displaystyle m=\frac{{1000-(-400)}}{{2-0}}=\frac{{1400}}{{2}}=700$
		This means that Nour's altitude increased at 700 meters per hour.
		Now we know the slope of the line is 700 and the $y$-intercept is $(0,-400)$, so we can write the equation of that line:
		$y=700 x-400$
		
        {hint_s.strip()}
        """
        
        answer_s = rf"""
        $y=700 x-400$
		"""

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_line_equation_from_points(self):
        keywords = [
            'grade11',
            'grade 11',
            'line_equation_from_points',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        Complete the point-slope equation of the line through $(-8,-1)$ and $(-6,5)$.
		Use exact numbers.
		
		"""
        
        soln_s = rf"""
        The general point-slope form is $y-y_{{1}}=m\left(x-x_{{1}}\right)$. where $m$ is the slope and $\left(x_{{1}}, y_{{1}}\right)$ is a point on the line.
		Let's find the slope between $(-6,5)$ and $(-8,-1)$ :
		Slope $\displaystyle =\frac{{5-(-1)}}{{-6-(-8)}}$
		$\displaystyle \begin{{aligned}} &=\frac{{6}}{{2}} \\ &=3 \end{{aligned}}$
		The incomplete equation starts with $y-5$, so we need to use the point $(-6,5)$ :
		$y-5=3(x-(-6))$
		

        {hint_s.strip()}
        """
        
        answer_s = rf"""
		$y-5=3(x-(-6))$
		"""

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_foci_ellipse(self):
        keywords = [
            'grade11',
            'grade 11',
            'foci_ellipse',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        TODO foci_ellipse

        Plot the foci of this ellipse.
		
		"""
        
        soln_s = rf"""
        The strategy
		The foci of an ellipse are always located on its major axis, and are the same distance away from the center of the ellipse.
		
		In order to find the foci, we need to know the distance between a focus and the center, which is also known as the focal length.
		
		We can find this distance by using the formula $f^{{2}}=p^{{2}}-q^{{2}}$, where $f$ represents the distance between a focus and the center, $p$ represents the major radius, and $q$ represents the minor radius of the ellipse.
		Finding the focal length
		We can see that the major radius of our ellipse is $8.5$ units, and its minor radius is $7.5$ units.
		
		So $p=8.5$ and $q=7.5$, and we can find the focal length, $f$ using the following formula.
		$\begin{{aligned}} &f^{{2}}=p^{{2}}-q^{{2}} \\ &f^{{2}}=8.5^{{2}}-7.5^{{2}} \\ &f^{{2}}=16 \\ &f=4 \end{{aligned}}$
		Therefore, each focus is 4 units away from the center of the ellipse.
		Finding the foci
		Note that the major radius corresponds to the major axis, which is horizontal in this case. So the foci lie 4 units to the right and left of the center.
		Therefore, the foci lie at $(1 \pm 4,2)$, which is to say $(5,2)$ and $(-3,2)$.
		
		Summary
		The foci of the ellipse are located at $(5,2)$ and $(-3,2)$.
		

        {hint_s.strip()}
        """
        
        answer_s = rf"""
		$y-5=3(x-(-6))$
		"""

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_cartesian_product(self):
        keywords = [
            'grade11',
            'grade 11',
            'cartesian_product',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        $A=\{{\sqrt{{2}}, \sqrt{{3}}\}}$
		Find the cartesian product $A \times A$.
		Choose 1 answer:
		(A) $\{{(\sqrt{{2}}, 1),(\sqrt{{2}}, 2),(\sqrt{{3}}, 1),(\sqrt{{3}}, 2)\}}$
		(B) $\{{\sqrt{{2}}, \sqrt{{3}}\}}$
		(c) $\{{(\sqrt{{2}}, \sqrt{{2}}),(\sqrt{{2}}, \sqrt{{3}}),(\sqrt{{3}}, \sqrt{{2}}),(\sqrt{{3}}, \sqrt{{3}})\}}$
		(D) $\{{(\sqrt{{2}}, \sqrt{{2}}),(\sqrt{{3}}, \sqrt{{3}})\}}$
		
		"""
        
        soln_s = rf"""
        The cartesian product $A \times A$ is the set of all possible ordered pairs of elements, where both the elements are taken from $A$ itself.
		To form the ordered pairs, take the first element of $A$, and pair it with all elements of $A$ one-by-one. Then take the second element of $A$, and pair it with all elements of $A$ one-by-one.
		Continue in this fashion till all elements of $A$ are covered.
		We write down set $A$ twice. $A=\{{\sqrt{{2}}, \sqrt{{3}}\}}$ and $A=\{{\sqrt{{2}}, \sqrt{{3}}\}}$.
		$A \times A=\{{(\sqrt{{2}}, \sqrt{{2}}),(\sqrt{{2}}, \sqrt{{3}}),(\sqrt{{3}}, \sqrt{{2}}),(\sqrt{{3}}, \sqrt{{3}})\}}$
		As a check, verify that the number of elements in $A \times A$ is equal to the square of the number of elements in $A$.
		The cartesian product $A \times A$ is $\{{(\sqrt{{2}}, \sqrt{{2}}),(\sqrt{{2}}, \sqrt{{3}}),(\sqrt{{3}}, \sqrt{{2}}),(\sqrt{{3}}, \sqrt{{3}})\}}$.
		

        {hint_s.strip()}
        """
        
        answer_s = rf"""
		The cartesian product $A \times A$ is $\{{(\sqrt{{2}}, \sqrt{{2}}),(\sqrt{{2}}, \sqrt{{3}}),(\sqrt{{3}}, \sqrt{{2}}),(\sqrt{{3}}, \sqrt{{3}})\}}$.
		"""

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_inequality(self):
        keywords = [
            'grade11',
            'grade 11',
            'inequality',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        Which of the $n$-values satisfy the following inequality?
        $3 n-7<26$
        Choose all answers that apply:
        A) $n=10$
        B) $n=11$
        (C) $n=12$
		"""
        
        soln_s = rf"""
        Let's plug in $n=10$ and see if the inequality is true.
		$\begin{{aligned}} 3 n-7 &<26 \\ 3(10)-7 &<26 \\ 30-7 &<26 \\ 23 &<26 \end{{aligned}}$
		Yes, $n=10$ is a solution!
		Now let's try $n=11 .$
		$\begin{{aligned}} 3 n-7 &<26 \\ 3(11)-7 &<26 \\ 33-7 &<26 \\ 26 &<26 \end{{aligned}}$
		No, $n=11$ is not a solution.
		Let's try $n=12$.
		$\begin{{array}}{{rl}} 3 n-7 & <26 \\ 3(12)-7 & <26 \\ 36-7 & ? 26 \\ 29 & <26 \end{{array}}$
		No, $n=12$ is not a solution.
		The following $n$-value satisfies the inequality $3 n-7<26$ :
		$n=10$

        {hint_s.strip()}
        """
        
        answer_s = rf"""
		$n=10$
        """

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_slope_between_points(self):
        keywords = [
            'grade11',
            'grade 11',
            'slope_between_points',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        TODO slope_between_points
        
        What is the slope of the line that contains these points?
		"""
        
        soln_s = rf"""
        $\displaystyle \text {{ Slope }}=\frac{{\text {{ Rise }}}}{{\text {{ Run }}}}=\frac{{\text {{ Change in }} y}}{{\text {{ Change in }} x}}$
		We can calculate the change in $x$ and change in $y$ by picking any two pairs of corresponding $x$ and $y$-values.
		
		So the slope is:
		$\displaystyle \frac{{\text {{ Change in }} y}}{{\text {{ Change in }} x}}=\frac{{3}}{{4}}$
		The slope is $\displaystyle \frac{{3}}{{4}}$
		
        {hint_s.strip()}
        """
        
        answer_s = rf"""
		The slope is $\displaystyle \frac{{3}}{{4}}$
		"""

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_limit_1(self):
        keywords = [
            'grade11',
            'grade 11',
            'limit_1',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        TODO slope_between_points
        
        What is a reasonable estimate for $\displaystyle \lim _{{x \rightarrow-5}} g(x)$ ?
		Choose 1 answer:
		(A) $-8$
		(B) 2
		(C) $-5$
		D) The limit doesn't exist
		
        """
        
        soln_s = rf"""
        $\lim _{{x \rightarrow-5}} g(x)$ represents the limit of $g$ as $x$ approaches $-5$.
		The function $g$ has a vertical asymptote at $x=-5$.
		If we approach $x=-5$ from the left, the $y$-values get closer and closer to $\infty$. If we approach $x=-5$ from the right, the $y$-values get closer and closer to $-\infty$.
		The function does not approach a specific value as $x$ approaches $-5$.
		The limit $\displaystyle \lim _{{x \rightarrow-5}} g(x)$ doesn't exist.
		
        {hint_s.strip()}
        """
        
        answer_s = rf"""
		The limit doesn't exist
        
        """

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass

    def get_question_ellipse_equation(self):
        keywords = [
            'grade11',
            'grade 11',
            'ellipse_equation',
            ]
        
        
        hint_s = rf"""
        <b>See the following managers for more detailed explanation:</b>
        
        
        """
        
        prob_s = rf"""
        Write an equation for an ellipse centered at the origin, which has foci at $(0, \pm 6)$ and vertices at $(0, \pm 10)$
        """
        
        soln_s = rf"""
        The strategy
		In order to find the equation of the ellipse, we perform the following steps.
		1. Find the focal length, $f$, and the major radius, $p$, using the given information about the center, the foci, and the vertices.
		2. Find the minor radius, $q$, using the equation $f^{{2}}=p^{{2}}-q^{{2}}$.
		3. Match the major and minor radii to the vertical and horizontal radii by determining the axis along which the foci lie.
		4. Substitute all the values we found in the standard equation of an ellipse.
		Finding the focal length and major radius
		The focal length is 6 units, since the foci are at $(0, \pm 6)$.
		The major radius is 10 units, since the vertices are at $(0, \pm 10)$.
		
		Finding the minor radius
		We've found that the focal length, $f$, is 6 units, and the major radius, $p$, is 10 units. Let's substitute these values into the equation to find the minor radius, $q$.
		$\begin{{aligned}} &f^{{2}}=p^{{2}}-q^{{2}} \\ &6^{{2}}=10^{{2}}-q^{{2}} \end{{aligned}}$
		$100-36=q^{{2}}$
		$8=q$
		Therefore, the minor radius is 8 units.
		Matching the major and minor radii with the vertical and horizontal radii
		Since the foci are located on the $y$-axis, the major radius is the vertical radius.
		In consequence, the minor radius is the horizontal radius.
		This means that the vertical radius is 10 units and the horizontal radius is 8 units.
		
		Writing the equation
		Our ellipse is centered at $(0,0)$, has a horizontal radius of 8 units and a vertical radius of 10 units. So it can be represented by the equation below.
		$\displaystyle \frac{{(x-0)^{{2}}}}{{8^{{2}}}}+\frac{{(y-0)^{{2}}}}{{10^{{2}}}}=1$
		$\displaystyle \frac{{x^{{2}}}}{{64}}+\frac{{y^{{2}}}}{{100}}=1 \quad \text {{ (Simplify terms) }}$
		Summary
		The ellipse in question can be represented by the following equation.
		$\displaystyle \frac{{x^{{2}}}}{{64}}+\frac{{y^{{2}}}}{{100}}=1$
		
        {hint_s.strip()}
        """
        
        answer_s = rf"""
		$\displaystyle \frac{{x^{{2}}}}{{64}}+\frac{{y^{{2}}}}{{100}}=1$
		
        """

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass


    def get_question_SAMPLE(self):
        keywords = [
            'grade11',
            'grade 11',
            ]
        
        hint_s = rf"""
        <b>:</b>
        
        """
        
        prob_s = rf"""

        """
        
        soln_s = rf"""

        
        {hint_s.strip()}

        """
        
        answer_s = rf"""
        
        
        """

        result = {
            'keywords': keywords,
            'prob_s': prob_s.strip(),
            'soln_s': soln_s.strip(),
            'answer_s': answer_s.strip(),
            }
        return result
        pass
    
    
    pass
#class Grade11StoredQuestions:
