> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kinetica.com/llms.txt
> Use this file to discover all available pages before exploring further.

# createJoinTable

<div className="kinetica-doxygen">
  <div id="a3446363f962c29930fd54ab38b8d2f24" />

  <h2 className="memtitle"><span className="permalink"><a href="#a3446363f962c29930fd54ab38b8d2f24">◆ </a></span>createJoinTable() <span className="overload">\[1/4]</span></h2>

  <div className="memitem">
    <div className="memproto">
      <table className="memname">
        <tr>
          <td className="memname"><a className="el" href="/content/api/cpp/structgpudb_1_1CreateJoinTableResponse">CreateJoinTableResponse</a> gpudb::GPUdb::createJoinTable </td>
          <td>(</td>
          <td className="paramtype">const <a className="el" href="/content/api/cpp/structgpudb_1_1CreateJoinTableRequest">CreateJoinTableRequest</a> &</td>
          <td className="paramname"><span className="paramname"><span className="em">request\_</span></span></td>
          <td>)</td>
          <td> const</td>
        </tr>
      </table>
    </div>

    <div className="memdoc">
      <p>Creates a table that is the result of a SQL JOIN. </p>
      <p>For join details and examples see: <a href="/content/concepts/joins/" target="_top">Joins</a>. For limitations, see <a href="/content/concepts/joins/#limitations-cautions" target="_top">Join Limitations and Cautions</a>.</p>

      <div className="dl params">
        <div className="dt">Parameters</div>

        <div className="dd">
          <table className="params">
            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">request\_</td>
              <td><a className="el" href="/content/api/cpp/structgpudb_1_1CreateJoinTableRequest">Request</a> object containing the parameters for the operation.</td>
            </tr>
          </table>
        </div>
      </div>

      <div className="dl section return">
        <div className="dt">Returns</div>
        <div className="dd"><a className="el" href="/content/api/cpp/structgpudb_1_1CreateJoinTableResponse">Response</a> object containing the result of the operation. </div>
      </div>
    </div>
  </div>

  <div id="afeec38b18c4d2e97b552f92ab195df27" />

  <h2 className="memtitle"><span className="permalink"><a href="#afeec38b18c4d2e97b552f92ab195df27">◆ </a></span>createJoinTable() <span className="overload">\[2/4]</span></h2>

  <div className="memitem">
    <div className="memproto">
      <table className="memname">
        <tr>
          <td className="memname"><a className="el" href="/content/api/cpp/structgpudb_1_1CreateJoinTableResponse">CreateJoinTableResponse</a> & gpudb::GPUdb::createJoinTable </td>
          <td>(</td>
          <td className="paramtype">const <a className="el" href="/content/api/cpp/structgpudb_1_1CreateJoinTableRequest">CreateJoinTableRequest</a> &</td>
          <td className="paramname"><span className="paramname"><span className="em">request\_</span></span>, </td>
        </tr>

        <tr>
          <td className="paramkey" />

          <td />

          <td className="paramtype"><a className="el" href="/content/api/cpp/structgpudb_1_1CreateJoinTableResponse">CreateJoinTableResponse</a> &</td>
          <td className="paramname"><span className="paramname"><span className="em">response\_</span></span> ) const</td>
        </tr>
      </table>
    </div>

    <div className="memdoc">
      <p>Creates a table that is the result of a SQL JOIN. </p>
      <p>For join details and examples see: <a href="/content/concepts/joins/" target="_top">Joins</a>. For limitations, see <a href="/content/concepts/joins/#limitations-cautions" target="_top">Join Limitations and Cautions</a>.</p>

      <div className="dl params">
        <div className="dt">Parameters</div>

        <div className="dd">
          <table className="params">
            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">request\_</td>
              <td><a className="el" href="/content/api/cpp/structgpudb_1_1CreateJoinTableRequest">Request</a> object containing the parameters for the operation. </td>
            </tr>

            <tr>
              <td className="paramdir">\[out]</td>
              <td className="paramname">response\_</td>
              <td><a className="el" href="/content/api/cpp/structgpudb_1_1CreateJoinTableResponse">Response</a> object containing the results of the operation.</td>
            </tr>
          </table>
        </div>
      </div>

      <div className="dl section return">
        <div className="dt">Returns</div>
        <div className="dd"><a className="el" href="/content/api/cpp/structgpudb_1_1CreateJoinTableResponse">Response</a> object containing the result of the operation (initially passed in by reference). </div>
      </div>
    </div>
  </div>

  <div id="a8c4a3b0823d2f0bd9cdd744139ee0e17" />

  <h2 className="memtitle"><span className="permalink"><a href="#a8c4a3b0823d2f0bd9cdd744139ee0e17">◆ </a></span>createJoinTable() <span className="overload">\[3/4]</span></h2>

  <div className="memitem">
    <div className="memproto">
      <table className="memname">
        <tr>
          <td className="memname"><a className="el" href="/content/api/cpp/structgpudb_1_1CreateJoinTableResponse">CreateJoinTableResponse</a> gpudb::GPUdb::createJoinTable </td>
          <td>(</td>
          <td className="paramtype">const std::string &</td>
          <td className="paramname"><span className="paramname"><span className="em">joinTableName</span></span>, </td>
        </tr>

        <tr>
          <td className="paramkey" />

          <td />

          <td className="paramtype">const std::vector\< std::string > &</td>
          <td className="paramname"><span className="paramname"><span className="em">tableNames</span></span>, </td>
        </tr>

        <tr>
          <td className="paramkey" />

          <td />

          <td className="paramtype">const std::vector\< std::string > &</td>
          <td className="paramname"><span className="paramname"><span className="em">columnNames</span></span>, </td>
        </tr>

        <tr>
          <td className="paramkey" />

          <td />

          <td className="paramtype">const std::vector\< std::string > &</td>
          <td className="paramname"><span className="paramname"><span className="em">expressions</span></span>, </td>
        </tr>

        <tr>
          <td className="paramkey" />

          <td />

          <td className="paramtype">const std::map\< std::string, std::string > &</td>
          <td className="paramname"><span className="paramname"><span className="em">options</span></span> ) const</td>
        </tr>
      </table>
    </div>

    <div className="memdoc">
      <p>Creates a table that is the result of a SQL JOIN. </p>
      <p>For join details and examples see: <a href="/content/concepts/joins/" target="_top">Joins</a>. For limitations, see <a href="/content/concepts/joins/#limitations-cautions" target="_top">Join Limitations and Cautions</a>.</p>

      <div className="dl params">
        <div className="dt">Parameters</div>

        <div className="dd">
          <table className="params">
            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">joinTableName</td>
              <td>Name of the join table to be created, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">tableNames</td>
              <td>The list of table names composing the join, each in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Corresponds to a SQL statement FROM clause. </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">columnNames</td>
              <td>List of member table columns or column expressions to be included in the join. Columns can be prefixed with 'table\_id.column\_name', where 'table\_id' is the table name or alias. Columns can be aliased via the syntax 'column\_name as alias'. Wild cards '<span className="em">' can be used to include all columns across member tables or 'table\_id.</span>' for all of a single table's columns. Columns and column expressions composing the join must be uniquely named or aliased–therefore, the '\*' wild card cannot be used if column names aren't unique across all tables. </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">expressions</td>
              <td>An optional list of expressions to combine and filter the joined tables. Corresponds to a SQL statement WHERE clause. For details see: <a href="/content/concepts/expressions/" target="_top">expressions</a>. The default value is an empty vector. </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">options</td>

              <td>
                Optional parameters.

                <ul>
                  <li>
                    <a className="el" href="/content/api/cpp/namespacegpudb#a7593270978b9443ff37e1c02c99eb019">create\_join\_table\_create\_temp\_table</a>: If <a className="el" href="/content/api/cpp/namespacegpudb#ab7e6ed428d4b494c517b78753fd1f8e7">true</a>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <span className="em arg">joinTableName</span>. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in <a className="el" href="/content/api/cpp/namespacegpudb#a79e60033da729f59de1afef5b8d8ac30">qualified\_join\_table\_name</a>. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#ab7e6ed428d4b494c517b78753fd1f8e7">create\_join\_table\_true</a> </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#ae135f2e5fc0d24d2e21c6bbc43f82748">create\_join\_table\_false</a> </li>
                    </ul>

                    The default value is <a className="el" href="/content/api/cpp/namespacegpudb#ae135f2e5fc0d24d2e21c6bbc43f82748">create\_join\_table\_false</a>.
                  </li>

                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#ad1d4cd0b01da8ce9b9e3b0b633480741">create\_join\_table\_collection\_name</a>: \[DEPRECATED–please specify the containing schema for the join as part of <span className="em arg">joinTableName</span> and use <a className="el" href="#a33d9a0a8e738d14b688f9f869f9640ad">createSchema</a> to create the schema if non-existent] Name of a schema for the join. If the schema is non-existent, it will be automatically created. The default value is ''. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#ae0bc574081e06d2c4458db00b7eeca06">create\_join\_table\_max\_query\_dimensions</a>: No longer used. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a907c41d66f9b54f0df1e0e0f4ef512df">create\_join\_table\_strategy\_definition</a>: The <a href="/content/rm/concepts/#tier-strategies" target="_top">tier strategy</a> for the table and its columns. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a4ef5fbbf2e86ef89d2a36c445be51523">create\_join\_table\_ttl</a>: Sets the <a href="/content/concepts/ttl/" target="_top">TTL</a> of the join table specified in <span className="em arg">joinTableName</span>. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a6ab3222e9f04dd96dcaef4433e929f3f">create\_join\_table\_view\_id</a>: View this projection is part of. The default value is ''. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#afe43c787a7446c27873464bb374161b1">create\_join\_table\_no\_count</a>: Return a count of 0 for the join table for logging and for <a className="el" href="#a0ba64d599891431a9d2aff56dca5a9ab">showTable</a>; optimization needed for large overlapped equi-join stencils. The default value is 'false'. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a97a8410473ed65b55275b7438df6519b">create\_join\_table\_chunk\_size</a>: Maximum number of records per joined-chunk for this table. Defaults to the gpudb.conf file chunk size. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a83e7283d83f28c997748ec402ca983bd">create\_join\_table\_enable\_virtual\_chunking</a>: Collect chunks with accumulated size less than chunk\_size into a single chunk. The default value is 'false'. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a7b70527fe34feed9e0b3ea25614f195d">create\_join\_table\_max\_virtual\_chunk\_size</a>: Maximum number of records per virtual-chunk. When set, enables virtual chunking. Defaults to chunk\_size if virtual chunking otherwise enabled. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a3196efbc454b15e9ae621b09f07129d8">create\_join\_table\_min\_virtual\_chunk\_size</a>: Minimum number of records per virtual-chunk. When set, enables virtual chunking. Defaults to chunk\_size if virtual chunking otherwise enabled. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#ada0f55eb8d263c63df66980725228d36">create\_join\_table\_enable\_sparse\_virtual\_chunking</a>: Materialize virtual chunks with only non-deleted values. The default value is 'false'. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a46bbecdb272cf034da7a534cf308a11b">create\_join\_table\_enable\_equi\_join\_lazy\_result\_store</a>: Allow using the lazy result store to cache computation of one side of a multichunk equi-join. Reduces computation but also reduces parallelism to the number of chunks on the other side of the equi-join. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a514d92702f85ce608f02811a0bf82a3f">create\_join\_table\_enable\_predicate\_equi\_join\_lazy\_result\_store</a>: Allow using the lazy result store to cache computation of one side of a multichunk predicate-equi-join. Reduces computation but also reduces parallelism to the number of chunks on the other side of the equi-join. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a7ce421562b5bfc67d5fb7339c08602cf">create\_join\_table\_enable\_pk\_equi\_join</a>: Use equi-join to do primary key joins rather than using primary key index. </li>
                </ul>

                The default value is an empty map.
              </td>
            </tr>
          </table>
        </div>
      </div>

      <div className="dl section return">
        <div className="dt">Returns</div>
        <div className="dd"><a className="el" href="/content/api/cpp/structgpudb_1_1CreateJoinTableResponse">Response</a> object containing the result of the operation. </div>
      </div>
    </div>
  </div>

  <div id="a4a344735f4a950fbb09a2fb84f703569" />

  <h2 className="memtitle"><span className="permalink"><a href="#a4a344735f4a950fbb09a2fb84f703569">◆ </a></span>createJoinTable() <span className="overload">\[4/4]</span></h2>

  <div className="memitem">
    <div className="memproto">
      <table className="memname">
        <tr>
          <td className="memname"><a className="el" href="/content/api/cpp/structgpudb_1_1CreateJoinTableResponse">CreateJoinTableResponse</a> & gpudb::GPUdb::createJoinTable </td>
          <td>(</td>
          <td className="paramtype">const std::string &</td>
          <td className="paramname"><span className="paramname"><span className="em">joinTableName</span></span>, </td>
        </tr>

        <tr>
          <td className="paramkey" />

          <td />

          <td className="paramtype">const std::vector\< std::string > &</td>
          <td className="paramname"><span className="paramname"><span className="em">tableNames</span></span>, </td>
        </tr>

        <tr>
          <td className="paramkey" />

          <td />

          <td className="paramtype">const std::vector\< std::string > &</td>
          <td className="paramname"><span className="paramname"><span className="em">columnNames</span></span>, </td>
        </tr>

        <tr>
          <td className="paramkey" />

          <td />

          <td className="paramtype">const std::vector\< std::string > &</td>
          <td className="paramname"><span className="paramname"><span className="em">expressions</span></span>, </td>
        </tr>

        <tr>
          <td className="paramkey" />

          <td />

          <td className="paramtype">const std::map\< std::string, std::string > &</td>
          <td className="paramname"><span className="paramname"><span className="em">options</span></span>, </td>
        </tr>

        <tr>
          <td className="paramkey" />

          <td />

          <td className="paramtype"><a className="el" href="/content/api/cpp/structgpudb_1_1CreateJoinTableResponse">CreateJoinTableResponse</a> &</td>
          <td className="paramname"><span className="paramname"><span className="em">response\_</span></span> ) const</td>
        </tr>
      </table>
    </div>

    <div className="memdoc">
      <p>Creates a table that is the result of a SQL JOIN. </p>
      <p>For join details and examples see: <a href="/content/concepts/joins/" target="_top">Joins</a>. For limitations, see <a href="/content/concepts/joins/#limitations-cautions" target="_top">Join Limitations and Cautions</a>.</p>

      <div className="dl params">
        <div className="dt">Parameters</div>

        <div className="dd">
          <table className="params">
            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">joinTableName</td>
              <td>Name of the join table to be created, in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a> and meeting <a href="/content/concepts/tables/#table-naming-criteria" target="_top">table naming criteria</a>. </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">tableNames</td>
              <td>The list of table names composing the join, each in \[schema\_name.]table\_name format, using standard <a href="/content/concepts/tables/#table-name-resolution" target="_top">name resolution rules</a>. Corresponds to a SQL statement FROM clause. </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">columnNames</td>
              <td>List of member table columns or column expressions to be included in the join. Columns can be prefixed with 'table\_id.column\_name', where 'table\_id' is the table name or alias. Columns can be aliased via the syntax 'column\_name as alias'. Wild cards '<span className="em">' can be used to include all columns across member tables or 'table\_id.</span>' for all of a single table's columns. Columns and column expressions composing the join must be uniquely named or aliased–therefore, the '\*' wild card cannot be used if column names aren't unique across all tables. </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">expressions</td>
              <td>An optional list of expressions to combine and filter the joined tables. Corresponds to a SQL statement WHERE clause. For details see: <a href="/content/concepts/expressions/" target="_top">expressions</a>. The default value is an empty vector. </td>
            </tr>

            <tr>
              <td className="paramdir">\[in]</td>
              <td className="paramname">options</td>

              <td>
                Optional parameters.

                <ul>
                  <li>
                    <a className="el" href="/content/api/cpp/namespacegpudb#a7593270978b9443ff37e1c02c99eb019">create\_join\_table\_create\_temp\_table</a>: If <a className="el" href="/content/api/cpp/namespacegpudb#ab7e6ed428d4b494c517b78753fd1f8e7">true</a>, a unique temporary table name will be generated in the sys\_temp schema and used in place of <span className="em arg">joinTableName</span>. This is always allowed even if the caller does not have permission to create tables. The generated name is returned in <a className="el" href="/content/api/cpp/namespacegpudb#a79e60033da729f59de1afef5b8d8ac30">qualified\_join\_table\_name</a>. Supported values:

                    <ul>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#ab7e6ed428d4b494c517b78753fd1f8e7">create\_join\_table\_true</a> </li>
                      <li> <a className="el" href="/content/api/cpp/namespacegpudb#ae135f2e5fc0d24d2e21c6bbc43f82748">create\_join\_table\_false</a> </li>
                    </ul>

                    The default value is <a className="el" href="/content/api/cpp/namespacegpudb#ae135f2e5fc0d24d2e21c6bbc43f82748">create\_join\_table\_false</a>.
                  </li>

                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#ad1d4cd0b01da8ce9b9e3b0b633480741">create\_join\_table\_collection\_name</a>: \[DEPRECATED–please specify the containing schema for the join as part of <span className="em arg">joinTableName</span> and use <a className="el" href="#a33d9a0a8e738d14b688f9f869f9640ad">createSchema</a> to create the schema if non-existent] Name of a schema for the join. If the schema is non-existent, it will be automatically created. The default value is ''. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#ae0bc574081e06d2c4458db00b7eeca06">create\_join\_table\_max\_query\_dimensions</a>: No longer used. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a907c41d66f9b54f0df1e0e0f4ef512df">create\_join\_table\_strategy\_definition</a>: The <a href="/content/rm/concepts/#tier-strategies" target="_top">tier strategy</a> for the table and its columns. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a4ef5fbbf2e86ef89d2a36c445be51523">create\_join\_table\_ttl</a>: Sets the <a href="/content/concepts/ttl/" target="_top">TTL</a> of the join table specified in <span className="em arg">joinTableName</span>. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a6ab3222e9f04dd96dcaef4433e929f3f">create\_join\_table\_view\_id</a>: View this projection is part of. The default value is ''. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#afe43c787a7446c27873464bb374161b1">create\_join\_table\_no\_count</a>: Return a count of 0 for the join table for logging and for <a className="el" href="#a0ba64d599891431a9d2aff56dca5a9ab">showTable</a>; optimization needed for large overlapped equi-join stencils. The default value is 'false'. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a97a8410473ed65b55275b7438df6519b">create\_join\_table\_chunk\_size</a>: Maximum number of records per joined-chunk for this table. Defaults to the gpudb.conf file chunk size. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a83e7283d83f28c997748ec402ca983bd">create\_join\_table\_enable\_virtual\_chunking</a>: Collect chunks with accumulated size less than chunk\_size into a single chunk. The default value is 'false'. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a7b70527fe34feed9e0b3ea25614f195d">create\_join\_table\_max\_virtual\_chunk\_size</a>: Maximum number of records per virtual-chunk. When set, enables virtual chunking. Defaults to chunk\_size if virtual chunking otherwise enabled. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a3196efbc454b15e9ae621b09f07129d8">create\_join\_table\_min\_virtual\_chunk\_size</a>: Minimum number of records per virtual-chunk. When set, enables virtual chunking. Defaults to chunk\_size if virtual chunking otherwise enabled. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#ada0f55eb8d263c63df66980725228d36">create\_join\_table\_enable\_sparse\_virtual\_chunking</a>: Materialize virtual chunks with only non-deleted values. The default value is 'false'. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a46bbecdb272cf034da7a534cf308a11b">create\_join\_table\_enable\_equi\_join\_lazy\_result\_store</a>: Allow using the lazy result store to cache computation of one side of a multichunk equi-join. Reduces computation but also reduces parallelism to the number of chunks on the other side of the equi-join. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a514d92702f85ce608f02811a0bf82a3f">create\_join\_table\_enable\_predicate\_equi\_join\_lazy\_result\_store</a>: Allow using the lazy result store to cache computation of one side of a multichunk predicate-equi-join. Reduces computation but also reduces parallelism to the number of chunks on the other side of the equi-join. </li>
                  <li> <a className="el" href="/content/api/cpp/namespacegpudb#a7ce421562b5bfc67d5fb7339c08602cf">create\_join\_table\_enable\_pk\_equi\_join</a>: Use equi-join to do primary key joins rather than using primary key index. </li>
                </ul>

                The default value is an empty map.
              </td>
            </tr>

            <tr>
              <td className="paramdir">\[out]</td>
              <td className="paramname">response\_</td>
              <td><a className="el" href="/content/api/cpp/structgpudb_1_1CreateJoinTableResponse">Response</a> object containing the results of the operation.</td>
            </tr>
          </table>
        </div>
      </div>

      <div className="dl section return">
        <div className="dt">Returns</div>
        <div className="dd"><a className="el" href="/content/api/cpp/structgpudb_1_1CreateJoinTableResponse">Response</a> object containing the result of the operation (initially passed in by reference). </div>
      </div>
    </div>
  </div>
</div>
