<mxfile host="Electron" modified="2023-11-11T12:35:34.541Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/22.0.3 Chrome/114.0.5735.289 Electron/25.8.4 Safari/537.36" etag="RGqq2IGLfByPrKIF3G2n" version="22.0.3" type="device">
  <diagram id="hoKJ5BJR2aLAShJr--zo" name="Page-1">
    <mxGraphModel dx="2726" dy="5869" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="850" pageHeight="1100" background="none" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="VQF1JSIRZ9NdE11qddYY-39" value="" style="group;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" vertex="1" connectable="0" parent="1">
          <mxGeometry x="7805" y="-400" width="1000" height="890" as="geometry" />
        </mxCell>
        <mxCell id="node10" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.base.BaseDistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; implements: &lt;br&gt; var_type: &lt;br&gt; provenance: &lt;br&gt; privacy: &lt;br&gt; unique: &lt;br&gt; version: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; fit(cls, series: Union[Sequence, pl.Series],             *args, **kwargs): &lt;br&gt; _to_series(values: Union[Sequence, pl.Series, pd.Series]): &lt;br&gt; _fit(cls, values: pl.Series): &lt;br&gt; draw(self): &lt;br&gt; draw_reset(self): &lt;br&gt; _params_formatted(self): &lt;br&gt; __str__(self): &lt;br&gt; _param_dict(self): &lt;br&gt; to_dict(self): &lt;br&gt; _param_schema(cls): &lt;br&gt; schema(cls): &lt;br&gt; from_dict(cls, dist_dict: dict): &lt;br&gt; information_criterion(self, values: Iterable): &lt;br&gt; matches_name(cls, name: str): &lt;br&gt; default_distribution(cls): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-39" vertex="1">
          <mxGeometry x="60" width="400" height="530" as="geometry" />
        </mxCell>
        <mxCell id="node30" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.base.ScipyDistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; n_par(self): &lt;br&gt; __getattr__(self, attr: str): &lt;br&gt; _fit(cls, values): &lt;br&gt; _param_dict(self): &lt;br&gt; draw(self): &lt;br&gt; information_criterion(self, values): &lt;br&gt; _information_criterion(self, values): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-39" vertex="1">
          <mxGeometry x="630" y="690" width="370" height="200" as="geometry" />
        </mxCell>
        <mxCell id="node33" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.base.UniqueDistributionMixin&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; key_set: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, *args, **kwargs): &lt;br&gt; draw_reset(self): &lt;br&gt; draw(self): &lt;br&gt; information_criterion(self, values): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-39" vertex="1">
          <mxGeometry y="690" width="420" height="160" as="geometry" />
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-23" value="" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;edgeStyle=orthogonalEdgeStyle;curved=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="VQF1JSIRZ9NdE11qddYY-39" source="node30" target="node10">
          <mxGeometry width="160" relative="1" as="geometry">
            <mxPoint x="7403" y="516" as="sourcePoint" />
            <mxPoint x="7879" y="-123" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-25" value="" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;edgeStyle=orthogonalEdgeStyle;curved=1;entryX=0.378;entryY=0.998;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="VQF1JSIRZ9NdE11qddYY-39" source="node33" target="node10">
          <mxGeometry width="160" relative="1" as="geometry">
            <mxPoint x="8424" y="360" as="sourcePoint" />
            <mxPoint x="7978" y="-123" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-21" value="" style="group;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" vertex="1" connectable="0" parent="1">
          <mxGeometry x="6990" y="-200" width="430" height="390" as="geometry" />
        </mxCell>
        <mxCell id="node17" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.regex.RegexDistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; regex_model: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, regex_data: Union[str, dict, RegexModel]): &lt;br&gt; _fit(cls, values, count_thres: Optional[int] = None, method: str = &quot;auto&quot;): &lt;br&gt; draw(self): &lt;br&gt; _param_dict(self): &lt;br&gt; _params_formatted(self): &lt;br&gt; _param_schema(cls): &lt;br&gt; default_distribution(cls): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-21" vertex="1">
          <mxGeometry x="20" width="390" height="230" as="geometry" />
        </mxCell>
        <mxCell id="node16" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.regex.UniqueRegexDistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-21" vertex="1">
          <mxGeometry y="360" width="430" height="30" as="geometry" />
        </mxCell>
        <mxCell id="edge38" value="" style="html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;startSize=16;endArrow=block;exitX=0.5;exitY=0;exitDx=0;exitDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;startFill=0;endFill=0;curved=1;endSize=16;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="VQF1JSIRZ9NdE11qddYY-21" source="node16" target="node17" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="8530" y="330" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-18" value="" style="group;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" vertex="1" connectable="0" parent="1">
          <mxGeometry x="6110" y="510" width="880" height="510" as="geometry" />
        </mxCell>
        <mxCell id="node18" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.faker.FakerDistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; faker_type: &lt;br&gt; fake: &lt;br&gt; locale: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, faker_type: str, locale: str = &quot;en_US&quot;): &lt;br&gt; _fit(cls, values, faker_type: str = &quot;city&quot;, locale: str = &quot;en_US&quot;): &lt;br&gt; draw(self): &lt;br&gt; information_criterion(self, values: Iterable): &lt;br&gt; default_distribution(cls): &lt;br&gt; _param_dict(self): &lt;br&gt; _param_schema(cls): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-18" vertex="1">
          <mxGeometry x="500" y="50" width="380" height="270" as="geometry" />
        </mxCell>
        <mxCell id="node32" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.faker.FreeTextDistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; avg_sentences: &lt;br&gt; avg_words: &lt;br&gt; fake: &lt;br&gt; locale: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, locale: str, avg_sentences: Optional[float], avg_words: float): &lt;br&gt; _fit(cls, values, max_values: int = 50): &lt;br&gt; detect_language(cls, values: Iterable): &lt;br&gt; draw(self): &lt;br&gt; information_criterion(self, values): &lt;br&gt; default_distribution(cls): &lt;br&gt; _param_dict(self): &lt;br&gt; _param_schema(cls): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-18" vertex="1">
          <mxGeometry width="400" height="320" as="geometry" />
        </mxCell>
        <mxCell id="node35" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.faker.UniqueFakerDistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-18" vertex="1">
          <mxGeometry x="200" y="480" width="420" height="30" as="geometry" />
        </mxCell>
        <mxCell id="edge37" value="" style="html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;startSize=16;endArrow=block;entryX=0.514;entryY=1.000;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;startFill=0;endFill=0;curved=1;endSize=16;" parent="VQF1JSIRZ9NdE11qddYY-18" source="node35" target="node18" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry" />
        </mxCell>
        <mxCell id="33q9nGtoRvC6PXM8Uq3w-3" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;rounded=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;curved=1;" parent="1" source="node21" target="node10" edge="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="7840" y="-1109.0697674418604" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="node4" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.categorical.MultinoulliDistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; probs: &lt;br&gt; labels: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, labels: Union[npt.NDArray[np.str_], list[str]],                  probs: Union[npt.NDArray[np.float_], list[float]]): &lt;br&gt; _fit(cls, values: pl.Series): &lt;br&gt; _param_dict(self): &lt;br&gt; _param_schema(cls): &lt;br&gt; draw(self): &lt;br&gt; information_criterion(self,                               values: Union[pd.Series, pl.Series, npt.NDArray[np.str_]]                               ): &lt;br&gt; _log_like_int(             self,             series: pl.Series,             labels: npt.NDArray[np.int_],             counts: npt.NDArray[np.int_],             alpha: float = 1.0,             ): &lt;br&gt; default_distribution(cls): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="1" vertex="1">
          <mxGeometry x="6520" y="-480" width="450" height="270" as="geometry" />
        </mxCell>
        <mxCell id="node36" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.continuous.ExponentialDistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; par: &lt;br&gt; dist: &lt;br&gt; dist_class: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, rate: float): &lt;br&gt; _fit(cls, values): &lt;br&gt; default_distribution(cls): &lt;br&gt; _param_schema(cls): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="1" vertex="1">
          <mxGeometry x="8070" y="1550" width="470" height="210" as="geometry" />
        </mxCell>
        <mxCell id="node3" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.continuous.LogNormalDistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; par: &lt;br&gt; dist: &lt;br&gt; dist_class: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, mu: float, sigma: float): &lt;br&gt; _fit(cls, values): &lt;br&gt; default_distribution(cls): &lt;br&gt; _param_schema(cls): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="1" vertex="1">
          <mxGeometry x="7600" y="1550" width="460" height="210" as="geometry" />
        </mxCell>
        <mxCell id="node22" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.continuous.NormalDistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; par: &lt;br&gt; dist: &lt;br&gt; implements: &lt;br&gt; dist_class: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, mean: float, std_dev: float): &lt;br&gt; default_distribution(cls): &lt;br&gt; _param_schema(cls): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="1" vertex="1">
          <mxGeometry x="10490" y="1550" width="430" height="210" as="geometry" />
        </mxCell>
        <mxCell id="node25" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.continuous.TruncatedNormalDistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; par: &lt;br&gt; dist: &lt;br&gt; dist_class: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, lower_bound: float, upper_bound: float,                  mu: float, sigma: float): &lt;br&gt; _fit(cls, values): &lt;br&gt; _fit_with_bounds(cls, values, lower_bound, upper_bound): &lt;br&gt; default_distribution(cls): &lt;br&gt; _param_schema(cls): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="1" vertex="1">
          <mxGeometry x="9050" y="1540" width="510" height="230" as="geometry" />
        </mxCell>
        <mxCell id="node12" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.continuous.UniformDistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; par: &lt;br&gt; dist: &lt;br&gt; dist_class: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, min_val: float, max_val: float): &lt;br&gt; _fit(cls, values): &lt;br&gt; _information_criterion(self, values): &lt;br&gt; default_distribution(cls): &lt;br&gt; _param_schema(cls): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="1" vertex="1">
          <mxGeometry x="10030" y="1540" width="440" height="230" as="geometry" />
        </mxCell>
        <mxCell id="node14" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.datetime.BaseUniformDistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; par: &lt;br&gt; start: &lt;br&gt; end: &lt;br&gt; precision_possibilities: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, start: Any, end: Any, precision: str = &quot;microseconds&quot;): &lt;br&gt; _fit(cls, values): &lt;br&gt; _get_precision(cls, values): &lt;br&gt; round(self, time_obj: Any): &lt;br&gt; draw(self): &lt;br&gt; fromisoformat(self, dt_obj: str): &lt;br&gt; minimum_delta(self): &lt;br&gt; information_criterion(self, values): &lt;br&gt; _param_dict(self): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="1" vertex="1">
          <mxGeometry x="6690" y="1480" width="460" height="340" as="geometry" />
        </mxCell>
        <mxCell id="node2" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.datetime.UniformDateDistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; precision_possibilities: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, start: Any, end: Any): &lt;br&gt; fromisoformat(self, dt_obj: str): &lt;br&gt; round(self, time_obj): &lt;br&gt; _param_dict(self): &lt;br&gt; default_distribution(cls): &lt;br&gt; _fit(cls, values): &lt;br&gt; _param_schema(cls): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="1" vertex="1">
          <mxGeometry x="6695" y="2070" width="450" height="230" as="geometry" />
        </mxCell>
        <mxCell id="node43" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.datetime.UniformDateTimeDistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; fromisoformat(self, dt_obj: str): &lt;br&gt; default_distribution(cls): &lt;br&gt; _param_schema(cls): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="1" vertex="1">
          <mxGeometry x="6190" y="2070" width="490" height="120" as="geometry" />
        </mxCell>
        <mxCell id="node42" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.datetime.UniformTimeDistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; fromisoformat(self, dt_obj: str): &lt;br&gt; default_distribution(cls): &lt;br&gt; draw(self): &lt;br&gt; _param_schema(cls): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="1" vertex="1">
          <mxGeometry x="7260" y="2060" width="460" height="140" as="geometry" />
        </mxCell>
        <mxCell id="node46" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.discrete.DiscreteUniformDistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; par: &lt;br&gt; dist: &lt;br&gt; dist_class: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, low: int, high: int): &lt;br&gt; _information_criterion(self, values): &lt;br&gt; _fit(cls, values): &lt;br&gt; default_distribution(cls): &lt;br&gt; _param_schema(cls): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="1" vertex="1">
          <mxGeometry x="8560" y="1540" width="480" height="230" as="geometry" />
        </mxCell>
        <mxCell id="node7" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.discrete.PoissonDistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; par: &lt;br&gt; dist: &lt;br&gt; dist_class: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, mu: float): &lt;br&gt; _information_criterion(self, values): &lt;br&gt; _fit(cls, values): &lt;br&gt; default_distribution(cls): &lt;br&gt; _param_schema(cls): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="1" vertex="1">
          <mxGeometry x="7170" y="1540" width="410" height="230" as="geometry" />
        </mxCell>
        <mxCell id="node24" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.discrete.UniqueKeyDistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; par: &lt;br&gt; key_set: &lt;br&gt; last_key: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, low: int, consecutive: int): &lt;br&gt; _fit(cls, values): &lt;br&gt; draw_reset(self): &lt;br&gt; draw(self): &lt;br&gt; _information_criterion(self, values): &lt;br&gt; default_distribution(cls): &lt;br&gt; _param_schema(cls): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="1" vertex="1">
          <mxGeometry x="9580" y="1520" width="430" height="270" as="geometry" />
        </mxCell>
        <mxCell id="node28" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.na.NADistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; _fit(cls, values: pl.Series): &lt;br&gt; default_distribution(cls): &lt;br&gt; draw(self): &lt;br&gt; _param_dict(self): &lt;br&gt; _param_schema(cls): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="1" vertex="1">
          <mxGeometry x="9120" y="-170" width="330" height="150" as="geometry" />
        </mxCell>
        <mxCell id="node8" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.metaframe.MetaFrame&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; meta_vars: &lt;br&gt; n_rows: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, meta_vars: List[MetaVar],                  n_rows: Optional[int] = None): &lt;br&gt; n_columns(self): &lt;br&gt; fit_dataframe(             cls,             df: pl.DataFrame,             spec: Optional[dict[str, dict]] = None,             dist_providers: Union[str, list[str], BaseDistributionProvider,                                   list[BaseDistributionProvider]] = &quot;builtin&quot;,             privacy: Optional[BasePrivacy] = None,             progress_bar: bool = True): &lt;br&gt; to_dict(self): &lt;br&gt; __getitem__(self, key: Union[int, str]): &lt;br&gt; __str__(self): &lt;br&gt; descriptions(self): &lt;br&gt; descriptions(             self, new_descriptions: Union[dict[str, str], Sequence[str]]): &lt;br&gt; export(self, fp: Union[pathlib.Path, str],                validate: bool = True): &lt;br&gt; to_json(self, fp: Union[pathlib.Path, str],                 validate: bool = True): &lt;br&gt; from_json(cls, fp: Union[pathlib.Path, str],                   validate: bool = True): &lt;br&gt; synthesize(self, n: Optional[int] = None): &lt;br&gt; __repr__(self): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="1" vertex="1">
          <mxGeometry x="7710" y="-2150" width="380" height="390" as="geometry" />
        </mxCell>
        <mxCell id="node21" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.var.MetaVar&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; var_type: &lt;br&gt; series: &lt;br&gt; name: &lt;br&gt; dtype: &lt;br&gt; description: &lt;br&gt; prop_missing: &lt;br&gt; distribution: &lt;br&gt; dtype: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self,  # pylint: disable=too-many-arguments                  var_type: str,                  series: Optional[Union[pl.Series, pd.Series]] = None,                  name: Optional[str] = None,                  distribution: Optional[BaseDistribution] = None,                  prop_missing: Optional[float] = None,                  dtype: Optional[str] = None,                  description: Optional[str] = None): &lt;br&gt; detect(cls,                series_or_dataframe: Union[pd.Series,                                           pl.Series,                                           pl.DataFrame],                description: Optional[str] = None,                prop_missing: Optional[float] = None): &lt;br&gt; get_var_type(series: pl.Series): &lt;br&gt; to_dict(self): &lt;br&gt; __str__(self): &lt;br&gt; fit(self,  # pylint: disable=too-many-arguments             dist: Optional[Union[str, BaseDistribution, type]] = None,             dist_providers: Union[str, type,                                   BaseDistributionProvider] = &quot;builtin&quot;,             privacy: BasePrivacy = BasicPrivacy(),             unique: Optional[bool] = None,             fit_kwargs: Optional[dict] = None): &lt;br&gt; draw(self): &lt;br&gt; draw_series(self, n: int): &lt;br&gt; from_dict(cls,                   var_dict: Dict[str, Any],                   distribution_providers: Union[                       None, str, type[BaseDistributionProvider],                       BaseDistributionProvider] = None): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="1" vertex="1">
          <mxGeometry x="7730" y="-1690" width="340" height="440" as="geometry" />
        </mxCell>
        <mxCell id="edge8" value="" style="html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;startSize=12;endArrow=block;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;startFill=0;endFill=0;endSize=16;curved=1;" parent="1" source="node2" target="node14" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry" />
        </mxCell>
        <mxCell id="edge45" value="" style="html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;startSize=12;endArrow=block;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;startFill=0;endFill=0;endSize=16;curved=1;" parent="1" source="node43" target="node14" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry" />
        </mxCell>
        <mxCell id="edge32" value="" style="html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;startSize=12;endArrow=block;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;startFill=0;endFill=0;endSize=16;curved=1;" parent="1" source="node42" target="node14" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry" />
        </mxCell>
        <mxCell id="edge6" value="" style="html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;startSize=16;endArrow=block;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;startFill=0;endFill=0;curved=1;endSize=16;" parent="1" source="node35" target="node33" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry" />
        </mxCell>
        <mxCell id="edge40" value="" style="html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;startSize=16;endArrow=block;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;startFill=0;endFill=0;curved=1;endSize=16;" parent="1" source="node16" target="node33" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry" />
        </mxCell>
        <mxCell id="33q9nGtoRvC6PXM8Uq3w-2" value="" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;" parent="1" source="node8" target="node21" edge="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="7660" y="-1720" as="sourcePoint" />
            <mxPoint x="7820" y="-1720" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="33q9nGtoRvC6PXM8Uq3w-6" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;rounded=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;curved=1;" parent="1" source="node37" target="node10" edge="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="7908" y="-1245" as="sourcePoint" />
            <mxPoint x="7908" y="-1130" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-2" value="" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;edgeStyle=orthogonalEdgeStyle;curved=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="node4" target="node10">
          <mxGeometry width="160" relative="1" as="geometry">
            <mxPoint x="7102" y="-840" as="sourcePoint" />
            <mxPoint x="7968" y="-133" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-9" value="" style="group;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" vertex="1" connectable="0" parent="1">
          <mxGeometry x="8350" y="-1110" width="1030" height="590" as="geometry" />
        </mxCell>
        <mxCell id="node19" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.legacy.regex.base.RegexDistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; re_list: &lt;br&gt; implements: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, re_list: Union[Sequence[Union[BaseRegexElement, Tuple[str, float]]], str]): &lt;br&gt; all_regex_classes(cls): &lt;br&gt; _unpack_regex(self, regex_str: str): &lt;br&gt; _fit(cls, values, mode: str = &quot;fast&quot;): &lt;br&gt; _fit_slow(cls, values): &lt;br&gt; _fit_fast(cls, values): &lt;br&gt; __add__(self, other: RegexDistribution): &lt;br&gt; draw(self): &lt;br&gt; regex_string(self): &lt;br&gt; _param_dict(self): &lt;br&gt; _param_schema(cls): &lt;br&gt; default_distribution(cls): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-9" vertex="1">
          <mxGeometry x="20" width="470" height="370" as="geometry" />
        </mxCell>
        <mxCell id="node9" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.legacy.regex.base.UniqueRegexDistribution&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; key_set: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, re_list: Sequence[Union[BaseRegexElement, Tuple[str, float]]]): &lt;br&gt; draw_reset(self): &lt;br&gt; draw(self): &lt;br&gt; information_criterion(self, values): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-9" vertex="1">
          <mxGeometry y="430" width="530" height="160" as="geometry" />
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-5" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.legacy.regex.optimizer.RegexOptimizer&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; spans: &lt;br&gt; left_cum_dist: &lt;br&gt; values: &lt;br&gt; cur_solution: &lt;br&gt; right_cum_dist: &lt;br&gt; max_len: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, values: Sequence[str], spans: Sequence[Sequence[Tuple[int, int]]]): &lt;br&gt; optimize(self): &lt;br&gt; optimize_round(self): &lt;br&gt; energy(self): &lt;br&gt; energy_move(dist: npt.NDArray[np.int_], len_src: int, len_dst: int): &lt;br&gt; _check_integrity(self): &lt;br&gt; energy_from_values(values: Sequence[str]): &lt;br&gt; set_span(self, i_val: int, i_span: int): &lt;br&gt; new_values(self): &lt;br&gt; statistics(self): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" vertex="1" parent="VQF1JSIRZ9NdE11qddYY-9">
          <mxGeometry x="540" width="490" height="410" as="geometry" />
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-3" value="" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;" edge="1" parent="VQF1JSIRZ9NdE11qddYY-9" source="node9" target="node19">
          <mxGeometry width="160" relative="1" as="geometry">
            <mxPoint x="16448" y="-1765" as="sourcePoint" />
            <mxPoint x="16448" y="-1858" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-10" value="" style="group;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" vertex="1" connectable="0" parent="1">
          <mxGeometry x="6670" y="-1820" width="400" height="410" as="geometry" />
        </mxCell>
        <mxCell id="node1" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.privacy.BasePrivacy&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; name: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self): &lt;br&gt; to_dict(self): &lt;br&gt; is_compatible(self, dist: Union[BaseDistribution, Type[BaseDistribution]]): &lt;br&gt; fit_kwargs(self): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-10" vertex="1">
          <mxGeometry width="400" height="160" as="geometry" />
        </mxCell>
        <mxCell id="node6" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.privacy.BasicPrivacy&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; name: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; to_dict(self): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-10" vertex="1">
          <mxGeometry x="70" y="310" width="260" height="100" as="geometry" />
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-1" value="" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;" edge="1" parent="VQF1JSIRZ9NdE11qddYY-10" source="node6" target="node1">
          <mxGeometry width="160" relative="1" as="geometry">
            <mxPoint x="7092" y="-850" as="sourcePoint" />
            <mxPoint x="7092" y="-975" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-11" value="" style="group;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" vertex="1" connectable="0" parent="1">
          <mxGeometry x="6620" y="-1140" width="900" height="470" as="geometry" />
        </mxCell>
        <mxCell id="node27" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.provider.DistributionProviderList&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; dist_packages: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(             self,             dist_providers: Union[                 None, str, type[BaseDistributionProvider], BaseDistributionProvider,                 list[Union[str, type[BaseDistributionProvider], BaseDistributionProvider]]]): &lt;br&gt; fit(self, series: pl.Series,             var_type: str,             dist: Optional[Union[str, BaseDistribution, type]] = None,             privacy: BasePrivacy = BasicPrivacy(),             unique: Optional[bool] = None,             fit_kwargs: Optional[dict] = None): &lt;br&gt; _find_best_fit(self, series: pl.Series, var_type: str,                        unique: Optional[bool],                        privacy: BasePrivacy): &lt;br&gt; find_distribution(self,  # pylint: disable=too-many-branches                           dist_name: str,                           privacy: BasePrivacy = BasicPrivacy(),                           var_type: Optional[str] = None,                           version: Optional[str] = None): &lt;br&gt; _fit_distribution(self, series: pl.Series,                           dist: Union[str, Type[BaseDistribution], BaseDistribution],                           privacy: BasePrivacy,                           **fit_kwargs): &lt;br&gt; get_distributions(self, privacy: Optional[BasePrivacy] = None,                           var_type: Optional[str] = None,                           use_legacy: bool = False): &lt;br&gt; from_dict(self, var_dict: dict[str, Any]): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-11" vertex="1">
          <mxGeometry y="10" width="460" height="230" as="geometry" />
        </mxCell>
        <mxCell id="node37" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.provider.BaseDistributionProvider&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; name: &lt;br&gt; version: &lt;br&gt; distributions: &lt;br&gt; legacy_distributions: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self): &lt;br&gt; get_dist_list(self, var_type: str,                       use_legacy: bool = False): &lt;br&gt; all_var_types(self): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-11" vertex="1">
          <mxGeometry x="530" width="360" height="210" as="geometry" />
        </mxCell>
        <mxCell id="node26" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.provider.BuiltinDistributionProvider&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; name: &lt;br&gt; version: &lt;br&gt; distributions: &lt;br&gt; legacy_distributions: &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-11" vertex="1">
          <mxGeometry x="530" y="330" width="370" height="140" as="geometry" />
        </mxCell>
        <mxCell id="33q9nGtoRvC6PXM8Uq3w-7" value="" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;" parent="VQF1JSIRZ9NdE11qddYY-11" source="node26" target="node37" edge="1">
          <mxGeometry width="160" relative="1" as="geometry">
            <mxPoint x="14580" y="-2185" as="sourcePoint" />
            <mxPoint x="14290" y="-2195" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-14" value="" style="group;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" vertex="1" connectable="0" parent="1">
          <mxGeometry x="3290" y="-1200" width="2950" height="1300" as="geometry" />
        </mxCell>
        <mxCell id="node45" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.legacy.regex.element.AlphaNumericRegex&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; regex_str: &lt;br&gt; match_str: &lt;br&gt; base_regex: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; _draw(self): &lt;br&gt; __str__(self): &lt;br&gt; digit_options(self): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-14" vertex="1">
          <mxGeometry x="2430" y="970" width="520" height="180" as="geometry" />
        </mxCell>
        <mxCell id="node29" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.legacy.regex.element.AnyRegex&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; all_char: &lt;br&gt; all_char_set: &lt;br&gt; extra_char: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, min_digit: int, max_digit: int,  # pylint: disable=super-init-not-called                  extra_char: Optional[set[str]] = None,                  frac_used: float = 1.0): &lt;br&gt; _prepare_regex(self): &lt;br&gt; fit_start(cls, values: Sequence[str]): &lt;br&gt; all_spans(cls, values: Sequence[str]): &lt;br&gt; n_param(self): &lt;br&gt; digit_options(self): &lt;br&gt; _draw(self): &lt;br&gt; from_string(cls, regex_str: str, frac_used: float = 1.0): &lt;br&gt; __str__(self): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-14" vertex="1">
          <mxGeometry x="1970" y="980" width="440" height="320" as="geometry" />
        </mxCell>
        <mxCell id="node41" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.legacy.regex.element.BaseRegexClass&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; match_regex: &lt;br&gt; min_digit: &lt;br&gt; max_digit: &lt;br&gt; regex_str: &lt;br&gt; match_str: &lt;br&gt; base_regex: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, min_digit: int, max_digit: int, frac_used: float = 1.0): &lt;br&gt; _prepare_regex(self): &lt;br&gt; digit_options(self): &lt;br&gt; fit_start(cls, values: Sequence[str]): &lt;br&gt; fit(cls, values: Sequence[str]): &lt;br&gt; from_string(cls, regex_str: str, frac_used: float = 1.0): &lt;br&gt; all_spans(cls, values: Sequence[str]): &lt;br&gt; information_budget(self, regex_stat: dict): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-14" vertex="1">
          <mxGeometry x="1470" y="380" width="490" height="370" as="geometry" />
        </mxCell>
        <mxCell id="node0" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.legacy.regex.element.BaseRegexElement&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; frac_used: &lt;br&gt; frac_used: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, frac_used: float): &lt;br&gt; information_budget(self, regex_stat: Dict): &lt;br&gt; n_param(self): &lt;br&gt; fit(cls, values: Sequence[str]): &lt;br&gt; fit_start(cls, values: Sequence[str]): &lt;br&gt; _draw(self): &lt;br&gt; draw(self): &lt;br&gt; from_string(cls, regex_str: str, frac_used: float = 1.0                     ): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-14" vertex="1">
          <mxGeometry x="1130" width="510" height="270" as="geometry" />
        </mxCell>
        <mxCell id="node15" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.legacy.regex.element.DigitRegex&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; regex_str: &lt;br&gt; match_str: &lt;br&gt; base_regex: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; _draw(self): &lt;br&gt; __str__(self): &lt;br&gt; digit_options(self): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-14" vertex="1">
          <mxGeometry x="510" y="980" width="450" height="180" as="geometry" />
        </mxCell>
        <mxCell id="node20" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.legacy.regex.element.LettersRegex&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; regex_str: &lt;br&gt; match_str: &lt;br&gt; base_regex: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; _draw(self): &lt;br&gt; __str__(self): &lt;br&gt; digit_options(self): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-14" vertex="1">
          <mxGeometry x="1490" y="980" width="460" height="180" as="geometry" />
        </mxCell>
        <mxCell id="node38" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.legacy.regex.element.LowercaseRegex&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; regex_str: &lt;br&gt; match_str: &lt;br&gt; base_regex: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; _draw(self): &lt;br&gt; __str__(self): &lt;br&gt; digit_options(self): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-14" vertex="1">
          <mxGeometry y="980" width="490" height="180" as="geometry" />
        </mxCell>
        <mxCell id="node11" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.legacy.regex.element.SingleRegex&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; character_selection: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; __init__(self, character_selection: list[str], frac_used: float = 1.0): &lt;br&gt; _draw(self): &lt;br&gt; n_param(self): &lt;br&gt; information_budget(self, regex_stat): &lt;br&gt; fit_start(cls, values: Sequence[str]): &lt;br&gt; fit(cls, values): &lt;br&gt; __str__(self): &lt;br&gt; from_string(cls, regex_str, frac_used=1.0): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-14" vertex="1">
          <mxGeometry x="920" y="410" width="460" height="250" as="geometry" />
        </mxCell>
        <mxCell id="node39" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;metasyn.distribution.legacy.regex.element.UppercaseRegex&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; regex_str: &lt;br&gt; match_str: &lt;br&gt; base_regex: &lt;/p&gt;&lt;hr size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0 0 0 4px;line-height:1.6;&quot;&gt; _draw(self): &lt;br&gt; __str__(self): &lt;br&gt; digit_options(self): &lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;fontSize=14;fontFamily=Courier New;html=1;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;whiteSpace=wrap;" parent="VQF1JSIRZ9NdE11qddYY-14" vertex="1">
          <mxGeometry x="980" y="980" width="490" height="180" as="geometry" />
        </mxCell>
        <mxCell id="edge25" value="" style="html=1;rounded=0;dashed=0;startArrow=none;startSize=0;endArrow=block;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;endFill=0;startFill=0;endSize=16;jumpStyle=arc;" parent="VQF1JSIRZ9NdE11qddYY-14" source="node29" target="node41" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry" />
        </mxCell>
        <mxCell id="edge10" value="" style="html=1;rounded=0;dashed=0;startArrow=none;startSize=0;endArrow=block;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;endFill=0;startFill=0;endSize=16;jumpStyle=arc;" parent="VQF1JSIRZ9NdE11qddYY-14" source="node45" target="node41" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry" />
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-13" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;rounded=0;fontFamily=Helvetica;fontSize=12;fontColor=#333333;entryX=0.75;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="VQF1JSIRZ9NdE11qddYY-14" source="node41" target="node0">
          <mxGeometry width="160" relative="1" as="geometry">
            <mxPoint x="1908" y="1320" as="sourcePoint" />
            <mxPoint x="2144" y="1184" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="edge27" value="" style="html=1;rounded=0;dashed=0;startArrow=none;startSize=0;endArrow=block;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;endFill=0;startFill=0;endSize=16;jumpStyle=arc;" parent="VQF1JSIRZ9NdE11qddYY-14" source="node15" target="node41" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry" />
        </mxCell>
        <mxCell id="edge36" value="" style="html=1;rounded=0;dashed=0;startArrow=none;startSize=0;endArrow=block;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;endFill=0;startFill=0;endSize=16;jumpStyle=arc;" parent="VQF1JSIRZ9NdE11qddYY-14" source="node20" target="node41" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry" />
        </mxCell>
        <mxCell id="edge43" value="" style="html=1;rounded=0;dashed=0;startArrow=none;startSize=0;endArrow=block;exitX=0.500;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;endFill=0;startFill=0;endSize=16;jumpStyle=arc;" parent="VQF1JSIRZ9NdE11qddYY-14" source="node38" target="node41" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry" />
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-12" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;rounded=0;fontFamily=Helvetica;fontSize=12;fontColor=#333333;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="VQF1JSIRZ9NdE11qddYY-14" source="node11" target="node0">
          <mxGeometry width="160" relative="1" as="geometry">
            <mxPoint x="1370" y="1480" as="sourcePoint" />
            <mxPoint x="1530" y="1480" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="edge31" value="" style="html=1;rounded=0;dashed=0;startArrow=none;startSize=0;endArrow=block;exitX=0.308;exitY=0.000;exitDx=0;exitDy=0;entryX=0.500;entryY=1.000;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;endFill=0;startFill=0;endSize=16;jumpStyle=arc;" parent="VQF1JSIRZ9NdE11qddYY-14" source="node39" target="node41" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry" />
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-15" value="" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;edgeStyle=orthogonalEdgeStyle;curved=1;entryX=0;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="node32" target="node10">
          <mxGeometry width="160" relative="1" as="geometry">
            <mxPoint x="6956" y="-20" as="sourcePoint" />
            <mxPoint x="7760" y="-130" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-17" value="" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;exitX=0.477;exitY=0.001;exitDx=0;exitDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;edgeStyle=orthogonalEdgeStyle;curved=1;exitPerimeter=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="node18" target="node10">
          <mxGeometry width="160" relative="1" as="geometry">
            <mxPoint x="7398" y="90" as="sourcePoint" />
            <mxPoint x="7978" y="-123" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-20" value="" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;edgeStyle=orthogonalEdgeStyle;curved=1;entryX=0;entryY=0.75;entryDx=0;entryDy=0;" edge="1" parent="1" source="node17" target="node10">
          <mxGeometry width="160" relative="1" as="geometry">
            <mxPoint x="7883" y="136" as="sourcePoint" />
            <mxPoint x="7879" y="-123" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-22" value="" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;edgeStyle=orthogonalEdgeStyle;curved=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="node28" target="node10">
          <mxGeometry width="160" relative="1" as="geometry">
            <mxPoint x="8493" y="80" as="sourcePoint" />
            <mxPoint x="8077" y="-123" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-26" value="" style="html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;startSize=16;endArrow=block;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;startFill=0;endFill=0;curved=1;endSize=16;" edge="1" parent="1" source="node14" target="node30">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="9175" y="700" as="sourcePoint" />
            <mxPoint x="7930" y="539" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-27" value="" style="html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;startSize=16;endArrow=block;exitX=0.5;exitY=0;exitDx=0;exitDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;startFill=0;endFill=0;curved=1;endSize=16;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="node7" target="node30">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="6928" y="1490" as="sourcePoint" />
            <mxPoint x="8364" y="540" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-28" value="" style="html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;startSize=16;endArrow=block;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;startFill=0;endFill=0;curved=1;endSize=16;" edge="1" parent="1" source="node3" target="node30">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="7380" y="1548" as="sourcePoint" />
            <mxPoint x="8418" y="552" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-29" value="" style="html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;startSize=16;endArrow=block;exitX=0.5;exitY=0;exitDx=0;exitDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;startFill=0;endFill=0;curved=1;endSize=16;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="node36" target="node30">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="7834" y="1559" as="sourcePoint" />
            <mxPoint x="8350" y="550" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-30" value="" style="html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;startSize=16;endArrow=block;exitX=0.5;exitY=0;exitDx=0;exitDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;startFill=0;endFill=0;curved=1;endSize=16;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="node46" target="node30">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="8316" y="1559" as="sourcePoint" />
            <mxPoint x="8370" y="550" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-31" value="" style="html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;startSize=16;endArrow=block;exitX=0.5;exitY=0;exitDx=0;exitDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;startFill=0;endFill=0;curved=1;endSize=16;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="node25" target="node30">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="8806" y="1548" as="sourcePoint" />
            <mxPoint x="8374" y="550" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-32" value="" style="html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;startSize=16;endArrow=block;exitX=0.5;exitY=0;exitDx=0;exitDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;startFill=0;endFill=0;curved=1;endSize=16;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="node24" target="node30">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="9317" y="1548" as="sourcePoint" />
            <mxPoint x="9520" y="670" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-33" value="" style="html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;startSize=16;endArrow=block;exitX=0.5;exitY=0;exitDx=0;exitDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;startFill=0;endFill=0;curved=1;endSize=16;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="node12" target="node30">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="9807" y="1525" as="sourcePoint" />
            <mxPoint x="9435" y="590" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="VQF1JSIRZ9NdE11qddYY-34" value="" style="html=1;rounded=0;edgeStyle=orthogonalEdgeStyle;dashed=0;startArrow=none;startSize=16;endArrow=block;exitX=0.5;exitY=0;exitDx=0;exitDy=0;labelBackgroundColor=none;fontColor=default;fontFamily=Courier New;startFill=0;endFill=0;curved=1;endSize=16;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="node22" target="node30">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="10261" y="1548" as="sourcePoint" />
            <mxPoint x="9344" y="590" as="targetPoint" />
          </mxGeometry>
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
