//
// Created by gautam on 17/04/20.
//

#include <fstream>
#include "utils.cuh"

std::string const utils::DATABASE_DIR = "../DB";
std::string const utils::DATABASE_FILE_PATH = utils::DATABASE_DIR + "/Database";
std::vector<std::string> utils::tables = std::vector<std::string>();

void utils::ltrim(std::string &s)  {
    s.erase(s.begin(), std::find_if(s.begin(), s.end(), [](int ch) {
        return !std::isspace(ch);
    }));
}

void utils::rtrim(std::string &s)  {
    s.erase(std::find_if(s.rbegin(), s.rend(), [](int ch) {
        return !std::isspace(ch);
    }).base(), s.end());
}

void utils::trim(std::string &s) {
    ltrim(s);
    rtrim(s);
}

std::string utils::getFistWord(std::string &query) {
    return query.substr(0, query.find(' '));
}

void utils::toLower(std::string &upper) {
    std::transform(upper.begin(), upper.end(), upper.begin(),
                   [](unsigned char c) { return std::tolower(c); });
}

void utils::invalidQuery(std::string query) {
    std::cout << "\"" << query << "\"" << "is not a valid query" << std::endl;
}

void utils::invalidQuery(std::string &query, std::string &errString) {
    std::cout << "\"" << query << "\"" << "is not a valid query" << std::endl;
    std::cout << "Error: " << errString << std::endl;
}

std::string utils::getMetadataFileName(std::string &tableName) {
    return DATABASE_DIR + "/" + tableName + ".mdata";
}

std::string utils::getDataFileName(std::string &tableName) {
    return DATABASE_DIR + "/" + tableName + ".data";
}

std::string utils::getTempFileName(std::string &tableName) {
    return DATABASE_DIR + "/" + tableName + ".temp";
}

bool utils::fileExists(std::string &filename) {
    if (FILE *file = fopen(filename.c_str(), "r")) {
        fclose(file);
        return true;
    } else {
        return false;
    }
}

void utils::loadTables() {
    std::string filename = DATABASE_FILE_PATH;
    std::ifstream fin(filename);
    if (utils::fileExists(filename)) {
        std::string tableName;
        while (fin >> tableName) {
            tables.push_back(tableName);
        }
    }
}

bool utils::tableExists(std::string &tableName) {
    if (tables.empty()) {
        loadTables();
        if(tables.empty()) {
            return false;
        }
    }
    int i;
    for (i = 0; i < tables.size(); ++i) {
        if(tables[i] == tableName) {
            break;
        }
    }
    return i != tables.size();
}

void utils::addTable(std::string &tableName) {
    tables.push_back(tableName);
}

void utils::dropTable(std::string &tableName){
	int i;
	for (i = 0; i < tables.size(); ++i) {
        if(tables[i] == tableName) {
            break;
        }
    }
    tables.erase(tables.begin() + i);
}

void utils::writeDatabase() {
    std::string filename = DATABASE_FILE_PATH;
    std::ofstream fout(filename);
    for (const auto& tableName : tables) {
        fout << tableName << std::endl;
    }
    fout.close();
}

void utils::printRow(void *row, std::vector<ColType> &cols) {
    int start = 0;
    for (const auto &c : cols) {
        // printf("Start: %d\n", start);
        switch (c.type) {
            case TYPE_INT: {
                int temp = *((int *) ((char *) row + start));
                printf("%d", temp);
                start += sizeof(int);
                break;
            }
            case TYPE_FLOAT: {
                float temp = *((float *) ((char *) row + start));
                printf("%f", temp);
                start += sizeof(float);
                break;
            }
            case TYPE_BOOL:
                break;
            case TYPE_VARCHAR: {
                char *temp = (char *) row + start;
                printf("%s", temp);
                start += c.size;
                break;
            }
            case TYPE_DATETIME:
                break;
            case TYPE_INVALID:
                break;
        }
        if (&c != &cols[cols.size() - 1]) {
            printf(", ");
        }
    }
    printf("\n");
}

void utils::printMultiple(void *data, std::vector<ColType> &cols, int rowSize, int numRows) {
    int start = 0;
    printf("\n");
    for (int i = 0; i < numRows; i++, start += rowSize) {
        printRow((char *)data + start, cols);
    }
}





	.file	"tmpxft_002a6ac4_00000000-6_utils.cudafe1.cpp"
	.text
#APP
	.globl _ZSt21ios_base_library_initv

#NO_APP
	.type	_ZL26__cudaUnregisterBinaryUtilv, @function
_ZL26__cudaUnregisterBinaryUtilv:
.LFB4884:
	.cfi_startproc
	endbr64
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	jmp	__cudaUnregisterFatBinary@PLT
	.cfi_endproc
.LFE4884:
	.size	_ZL26__cudaUnregisterBinaryUtilv, .-_ZL26__cudaUnregisterBinaryUtilv
	.align 2
	.type	_ZN9__gnu_cxx5__ops10_Iter_predIZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEUliE_EclISt16reverse_iteratorINS_17__normal_iteratorIPcS8_EEEEEbT_.isra.0, @function
_ZN9__gnu_cxx5__ops10_Iter_predIZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEUliE_EclISt16reverse_iteratorINS_17__normal_iteratorIPcS8_EEEEEbT_.isra.0:
.LFB5822:
	.cfi_startproc
	pushq	%rax
	.cfi_def_cfa_offset 16
	movsbl	-1(%rdi), %edi
	call	isspace@PLT
	popq	%rdx
	.cfi_def_cfa_offset 8
	testl	%eax, %eax
	sete	%al
	ret
	.cfi_endproc
.LFE5822:
	.size	_ZN9__gnu_cxx5__ops10_Iter_predIZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEUliE_EclISt16reverse_iteratorINS_17__normal_iteratorIPcS8_EEEEEbT_.isra.0, .-_ZN9__gnu_cxx5__ops10_Iter_predIZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEUliE_EclISt16reverse_iteratorINS_17__normal_iteratorIPcS8_EEEEEbT_.isra.0
	.section	.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev,"axG",@progbits,_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED5Ev,comdat
	.align 2
	.weak	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev
	.type	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev, @function
_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev:
.LFB5237:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	8(%rdi), %r12
	movq	%rdi, %rbx
	movq	(%rdi), %rbp
.L5:
	cmpq	%rbp, %r12
	je	.L10
	movq	%rbp, %rdi
	addq	$32, %rbp
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L5
.L10:
	movq	(%rbx), %rdi
	testq	%rdi, %rdi
	je	.L4
	movq	16(%rbx), %rsi
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	subq	%rdi, %rsi
	jmp	_ZdlPvm@PLT
.L4:
	.cfi_restore_state
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE5237:
	.size	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev, .-_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev
	.weak	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED1Ev
	.set	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED1Ev,_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev
	.text
	.align 2
	.globl	_ZN5utils5ltrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.type	_ZN5utils5ltrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, @function
_ZN5utils5ltrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE:
.LFB4854:
	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	8(%rdi), %rbp
	movq	(%rdi), %r13
	movq	%rbp, %r14
	sarq	$2, %r14
	movq	%r13, %rax
.L12:
	movq	%rax, %rbx
	testq	%r14, %r14
	jle	.L39
	movsbl	(%rax), %edi
	call	isspace@PLT
	testl	%eax, %eax
	je	.L13
	movsbl	1(%rbx), %edi
	call	isspace@PLT
	testl	%eax, %eax
	jne	.L14
	incq	%rbx
	jmp	.L13
.L14:
	movsbl	2(%rbx), %edi
	call	isspace@PLT
	testl	%eax, %eax
	jne	.L15
	addq	$2, %rbx
	jmp	.L13
.L15:
	movsbl	3(%rbx), %edi
	call	isspace@PLT
	movl	%eax, %edx
	leaq	4(%rbx), %rax
	testl	%edx, %edx
	jne	.L16
	addq	$3, %rbx
	jmp	.L13
.L16:
	decq	%r14
	jmp	.L12
.L39:
	addq	%r13, %rbp
	movq	%rbp, %rax
	subq	%rbx, %rax
	cmpq	$2, %rax
	je	.L18
	cmpq	$3, %rax
	je	.L19
	decq	%rax
	je	.L20
	movq	%rbp, %rbx
	jmp	.L13
.L19:
	movsbl	(%rbx), %edi
	call	isspace@PLT
	testl	%eax, %eax
	je	.L13
	incq	%rbx
.L18:
	movsbl	(%rbx), %edi
	call	isspace@PLT
	testl	%eax, %eax
	je	.L13
	incq	%rbx
.L20:
	movsbl	(%rbx), %edi
	call	isspace@PLT
	testl	%eax, %eax
	cmovne	%rbp, %rbx
.L13:
	movq	%rbx, %rdx
	movq	%r13, %rsi
	popq	%rbx
	.cfi_def_cfa_offset 40
	movq	%r12, %rdi
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	jmp	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_@PLT
	.cfi_endproc
.LFE4854:
	.size	_ZN5utils5ltrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .-_ZN5utils5ltrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.align 2
	.globl	_ZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.type	_ZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, @function
_ZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE:
.LFB4858:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	pushq	%rdx
	.cfi_def_cfa_offset 64
	movq	8(%rdi), %r12
	movq	(%rdi), %r14
	leaq	(%r14,%r12), %r15
	sarq	$2, %r12
	movq	%r15, %rbp
.L41:
	movq	%rbp, %rbx
	testq	%r12, %r12
	jle	.L54
	movq	%rbp, %rdi
	call	_ZN9__gnu_cxx5__ops10_Iter_predIZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEUliE_EclISt16reverse_iteratorINS_17__normal_iteratorIPcS8_EEEEEbT_.isra.0
	testb	%al, %al
	jne	.L42
	leaq	-1(%rbp), %rbx
	movq	%rbx, %rdi
	call	_ZN9__gnu_cxx5__ops10_Iter_predIZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEUliE_EclISt16reverse_iteratorINS_17__normal_iteratorIPcS8_EEEEEbT_.isra.0
	testb	%al, %al
	jne	.L42
	leaq	-2(%rbp), %rbx
	movq	%rbx, %rdi
	call	_ZN9__gnu_cxx5__ops10_Iter_predIZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEUliE_EclISt16reverse_iteratorINS_17__normal_iteratorIPcS8_EEEEEbT_.isra.0
	testb	%al, %al
	jne	.L42
	leaq	-3(%rbp), %rbx
	subq	$4, %rbp
	movq	%rbx, %rdi
	call	_ZN9__gnu_cxx5__ops10_Iter_predIZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEUliE_EclISt16reverse_iteratorINS_17__normal_iteratorIPcS8_EEEEEbT_.isra.0
	testb	%al, %al
	jne	.L42
	decq	%r12
	jmp	.L41
.L54:
	movq	%rbp, %rax
	subq	%r14, %rax
	cmpq	$2, %rax
	je	.L44
	cmpq	$3, %rax
	je	.L45
	decq	%rax
	je	.L46
	movq	%r14, %rbx
	jmp	.L42
.L45:
	movq	%rbp, %rdi
	call	_ZN9__gnu_cxx5__ops10_Iter_predIZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEUliE_EclISt16reverse_iteratorINS_17__normal_iteratorIPcS8_EEEEEbT_.isra.0
	testb	%al, %al
	jne	.L42
	decq	%rbx
.L44:
	movq	%rbx, %rdi
	call	_ZN9__gnu_cxx5__ops10_Iter_predIZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEUliE_EclISt16reverse_iteratorINS_17__normal_iteratorIPcS8_EEEEEbT_.isra.0
	testb	%al, %al
	jne	.L42
	decq	%rbx
.L46:
	movq	%rbx, %rdi
	call	_ZN9__gnu_cxx5__ops10_Iter_predIZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEUliE_EclISt16reverse_iteratorINS_17__normal_iteratorIPcS8_EEEEEbT_.isra.0
	testb	%al, %al
	cmove	%r14, %rbx
.L42:
	popq	%rax
	.cfi_def_cfa_offset 56
	movq	%r15, %rdx
	movq	%rbx, %rsi
	movq	%r13, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_@PLT
	.cfi_endproc
.LFE4858:
	.size	_ZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .-_ZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.align 2
	.globl	_ZN5utils4trimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.type	_ZN5utils4trimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, @function
_ZN5utils4trimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE:
.LFB4862:
	.cfi_startproc
	endbr64
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rdi, 8(%rsp)
	call	_ZN5utils5ltrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	movq	8(%rsp), %rdi
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	jmp	_ZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_endproc
.LFE4862:
	.size	_ZN5utils4trimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .-_ZN5utils4trimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.align 2
	.globl	_ZN5utils11getFistWordERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.type	_ZN5utils11getFistWordERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, @function
_ZN5utils11getFistWordERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE:
.LFB4863:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsi, %rbp
	xorl	%edx, %edx
	movl	$32, %esi
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	movq	%rbp, %rdi
	subq	$24, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	call	_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEcm@PLT
	xorl	%edx, %edx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	movq	%rax, %rcx
	call	_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm@PLT
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	je	.L58
	call	__stack_chk_fail@PLT
.L58:
	addq	$24, %rsp
	.cfi_def_cfa_offset 24
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4863:
	.size	_ZN5utils11getFistWordERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .-_ZN5utils11getFistWordERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.align 2
	.globl	_ZN5utils7toLowerERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.type	_ZN5utils7toLowerERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, @function
_ZN5utils7toLowerERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE:
.LFB4864:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	pushq	%rdx
	.cfi_def_cfa_offset 32
	movq	(%rdi), %rbx
	movq	8(%rdi), %rbp
	addq	%rbx, %rbp
.L61:
	cmpq	%rbx, %rbp
	je	.L64
	movzbl	(%rbx), %edi
	incq	%rbx
	call	tolower@PLT
	movb	%al, -1(%rbx)
	jmp	.L61
.L64:
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4864:
	.size	_ZN5utils7toLowerERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .-_ZN5utils7toLowerERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"\""
.LC1:
	.string	"is not a valid query"
	.text
	.align 2
	.globl	_ZN5utils12invalidQueryENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.type	_ZN5utils12invalidQueryENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, @function
_ZN5utils12invalidQueryENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE:
.LFB4868:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	leaq	.LC0(%rip), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rbp, %rsi
	movq	%rdi, %rbx
	leaq	_ZSt4cout(%rip), %rdi
	pushq	%rax
	.cfi_def_cfa_offset 32
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rbx, %rsi
	movq	%rax, %rdi
	call	_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE@PLT
	movq	%rbp, %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	leaq	.LC1(%rip), %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	popq	%rdx
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	movq	%rax, %rdi
	popq	%rbp
	.cfi_def_cfa_offset 8
	jmp	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@PLT
	.cfi_endproc
.LFE4868:
	.size	_ZN5utils12invalidQueryENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .-_ZN5utils12invalidQueryENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.section	.rodata.str1.1
.LC2:
	.string	"Error: "
	.text
	.align 2
	.globl	_ZN5utils12invalidQueryERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_
	.type	_ZN5utils12invalidQueryERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_, @function
_ZN5utils12invalidQueryERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_:
.LFB4869:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	movq	%rdi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	leaq	.LC0(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	leaq	_ZSt4cout(%rip), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	movq	%rbp, %rdi
	movq	%rsi, %rbx
	movq	%r12, %rsi
	pushq	%rax
	.cfi_def_cfa_offset 48
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%r13, %rsi
	movq	%rax, %rdi
	call	_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE@PLT
	movq	%r12, %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	leaq	.LC1(%rip), %rsi
	movq	%rax, %rdi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rax, %rdi
	call	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@PLT
	movq	%rbp, %rdi
	leaq	.LC2(%rip), %rsi
	call	_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
	movq	%rbx, %rsi
	movq	%rax, %rdi
	call	_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE@PLT
	popq	%rdx
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	movq	%rax, %rdi
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	jmp	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@PLT
	.cfi_endproc
.LFE4869:
	.size	_ZN5utils12invalidQueryERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_, .-_ZN5utils12invalidQueryERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_
	.section	.rodata.str1.1
.LC3:
	.string	"r"
	.text
	.align 2
	.globl	_ZN5utils10fileExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.type	_ZN5utils10fileExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, @function
_ZN5utils10fileExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE:
.LFB4873:
	.cfi_startproc
	endbr64
	pushq	%rcx
	.cfi_def_cfa_offset 16
	movq	(%rdi), %rdi
	leaq	.LC3(%rip), %rsi
	call	fopen@PLT
	movq	%rax, %rdi
	xorl	%eax, %eax
	testq	%rdi, %rdi
	je	.L69
	call	fclose@PLT
	movb	$1, %al
.L69:
	popq	%rdx
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4873:
	.size	_ZN5utils10fileExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .-_ZN5utils10fileExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.section	.rodata.str1.1
.LC4:
	.string	"%d"
.LC5:
	.string	"%f"
.LC6:
	.string	"%s"
.LC7:
	.string	", "
.LC8:
	.string	"\n"
	.text
	.align 2
	.globl	_ZN5utils8printRowEPvRSt6vectorI7ColTypeSaIS2_EE
	.type	_ZN5utils8printRowEPvRSt6vectorI7ColTypeSaIS2_EE, @function
_ZN5utils8printRowEPvRSt6vectorI7ColTypeSaIS2_EE:
.LFB4880:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	leaq	.LC5(%rip), %r15
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	xorl	%ebx, %ebx
	pushq	%rcx
	.cfi_def_cfa_offset 64
	movq	8(%rsi), %r14
	movq	(%rsi), %rbp
.L75:
	cmpq	%rbp, %r14
	je	.L83
	movl	0(%rbp), %eax
	cmpl	$1, %eax
	je	.L76
	cmpl	$3, %eax
	je	.L77
	testl	%eax, %eax
	jne	.L78
	movslq	%ebx, %rax
	leaq	.LC4(%rip), %rsi
	movl	$2, %edi
	movl	(%r12,%rax), %edx
	xorl	%eax, %eax
	call	__printf_chk@PLT
	jmp	.L82
.L76:
	movslq	%ebx, %rax
	movq	%r15, %rsi
	movl	$2, %edi
	cvtss2sd	(%r12,%rax), %xmm0
	movb	$1, %al
	call	__printf_chk@PLT
.L82:
	addl	$4, %ebx
	jmp	.L78
.L77:
	movslq	%ebx, %rdx
	leaq	.LC6(%rip), %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	addq	%r12, %rdx
	call	__printf_chk@PLT
	addl	4(%rbp), %ebx
.L78:
	movq	8(%r13), %rax
	subq	$20, %rax
	cmpq	%rax, %rbp
	je	.L79
	leaq	.LC7(%rip), %rsi
	movl	$2, %edi
	xorl	%eax, %eax
	call	__printf_chk@PLT
.L79:
	addq	$20, %rbp
	jmp	.L75
.L83:
	popq	%rdx
	.cfi_def_cfa_offset 56
	leaq	.LC8(%rip), %rsi
	popq	%rbx
	.cfi_def_cfa_offset 48
	movl	$2, %edi
	popq	%rbp
	.cfi_def_cfa_offset 40
	xorl	%eax, %eax
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	__printf_chk@PLT
	.cfi_endproc
.LFE4880:
	.size	_ZN5utils8printRowEPvRSt6vectorI7ColTypeSaIS2_EE, .-_ZN5utils8printRowEPvRSt6vectorI7ColTypeSaIS2_EE
	.align 2
	.globl	_ZN5utils13printMultipleEPvRSt6vectorI7ColTypeSaIS2_EEii
	.type	_ZN5utils13printMultipleEPvRSt6vectorI7ColTypeSaIS2_EEii, @function
_ZN5utils13printMultipleEPvRSt6vectorI7ColTypeSaIS2_EEii:
.LFB4881:
	.cfi_startproc
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	xorl	%eax, %eax
	xorl	%r14d, %r14d
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movl	%ecx, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rsi, %r12
	leaq	.LC8(%rip), %rsi
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movslq	%edx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdi, %rbx
	movl	$2, %edi
	call	__printf_chk@PLT
.L85:
	cmpl	%r13d, %r14d
	jge	.L88
	movq	%rbx, %rdi
	movq	%r12, %rsi
	incl	%r14d
	addq	%rbp, %rbx
	call	_ZN5utils8printRowEPvRSt6vectorI7ColTypeSaIS2_EE
	jmp	.L85
.L88:
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4881:
	.size	_ZN5utils13printMultipleEPvRSt6vectorI7ColTypeSaIS2_EEii, .-_ZN5utils13printMultipleEPvRSt6vectorI7ColTypeSaIS2_EEii
	.section	.text.startup,"ax",@progbits
	.type	_ZL24__sti____cudaRegisterAllv, @function
_ZL24__sti____cudaRegisterAllv:
.LFB4907:
	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	leaq	_ZL15__fatDeviceText(%rip), %rdi
	call	__cudaRegisterFatBinary@PLT
	movq	%rax, %rdi
	movq	%rax, _ZL20__cudaFatCubinHandle(%rip)
	call	__cudaRegisterFatBinaryEnd@PLT
	leaq	_ZL26__cudaUnregisterBinaryUtilv(%rip), %rdi
	popq	%rdx
	.cfi_def_cfa_offset 8
	jmp	atexit@PLT
	.cfi_endproc
.LFE4907:
	.size	_ZL24__sti____cudaRegisterAllv, .-_ZL24__sti____cudaRegisterAllv
	.section	.init_array,"aw"
	.align 8
	.quad	_ZL24__sti____cudaRegisterAllv
	.section	.text._ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_,"axG",@progbits,_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_,comdat
	.weak	_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_
	.type	_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_, @function
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_:
.LFB5226:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA5226
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rdi, %rbx
	movq	%rdx, %rdi
	call	strlen@PLT
	movq	8(%r13), %r14
	movq	0(%r13), %r13
	movq	%rbx, %rdi
	movq	%rax, %r12
	leaq	16(%rbx), %rax
	movb	$0, 16(%rbx)
	movq	%rax, (%rbx)
	xorl	%eax, %eax
	leaq	(%r12,%r14), %rsi
	movq	%rax, 8(%rbx)
.LEHB0:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEm@PLT
	movq	%r14, %rdx
	movq	%r13, %rsi
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm@PLT
	movq	%r12, %rdx
	movq	%rbp, %rsi
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm@PLT
.LEHE0:
	movq	%rbx, %rax
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
.L94:
	.cfi_restore_state
	endbr64
	movq	%rax, %rbp
.L93:
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	%rbp, %rdi
.LEHB1:
	call	_Unwind_Resume@PLT
.LEHE1:
	.cfi_endproc
.LFE5226:
	.globl	__gxx_personality_v0
	.section	.gcc_except_table._ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_,"aG",@progbits,_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_,comdat
.LLSDA5226:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE5226-.LLSDACSB5226
.LLSDACSB5226:
	.uleb128 .LEHB0-.LFB5226
	.uleb128 .LEHE0-.LEHB0
	.uleb128 .L94-.LFB5226
	.uleb128 0
	.uleb128 .LEHB1-.LFB5226
	.uleb128 .LEHE1-.LEHB1
	.uleb128 0
	.uleb128 0
.LLSDACSE5226:
	.section	.text._ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_,"axG",@progbits,_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_,comdat
	.size	_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_, .-_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_
	.section	.rodata.str1.1
.LC9:
	.string	"/"
.LC10:
	.string	".mdata"
	.text
	.align 2
	.globl	_ZN5utils19getMetadataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.type	_ZN5utils19getMetadataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, @function
_ZN5utils19getMetadataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE:
.LFB4870:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4870
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	leaq	.LC9(%rip), %rdx
	movq	%rsi, %r12
	leaq	_ZN5utils12DATABASE_DIRB5cxx11E(%rip), %rsi
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	subq	$80, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	leaq	8(%rsp), %rbp
	movq	%rbp, %rdi
.LEHB2:
	call	_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_
.LEHE2:
	movq	%r12, %rsi
	movq	%rbp, %rdi
.LEHB3:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_@PLT
.LEHE3:
	leaq	40(%rsp), %r12
	movq	%rax, %rsi
	movq	%r12, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_@PLT
	leaq	.LC10(%rip), %rsi
	movq	%r12, %rdi
.LEHB4:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc@PLT
.LEHE4:
	movq	%rax, %rsi
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_@PLT
	movq	%r12, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L101
	jmp	.L104
.L103:
	endbr64
	movq	%rax, %rbx
.L98:
	movq	%r12, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L99
.L102:
	endbr64
	movq	%rax, %rbx
.L99:
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L104
	movq	%rbx, %rdi
.LEHB5:
	call	_Unwind_Resume@PLT
.LEHE5:
.L104:
	call	__stack_chk_fail@PLT
.L101:
	addq	$80, %rsp
	.cfi_def_cfa_offset 32
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4870:
	.section	.gcc_except_table,"a",@progbits
.LLSDA4870:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4870-.LLSDACSB4870
.LLSDACSB4870:
	.uleb128 .LEHB2-.LFB4870
	.uleb128 .LEHE2-.LEHB2
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB3-.LFB4870
	.uleb128 .LEHE3-.LEHB3
	.uleb128 .L102-.LFB4870
	.uleb128 0
	.uleb128 .LEHB4-.LFB4870
	.uleb128 .LEHE4-.LEHB4
	.uleb128 .L103-.LFB4870
	.uleb128 0
	.uleb128 .LEHB5-.LFB4870
	.uleb128 .LEHE5-.LEHB5
	.uleb128 0
	.uleb128 0
.LLSDACSE4870:
	.text
	.size	_ZN5utils19getMetadataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .-_ZN5utils19getMetadataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.section	.rodata.str1.1
.LC11:
	.string	".data"
	.text
	.align 2
	.globl	_ZN5utils15getDataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.type	_ZN5utils15getDataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, @function
_ZN5utils15getDataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE:
.LFB4871:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4871
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	leaq	.LC9(%rip), %rdx
	movq	%rsi, %r12
	leaq	_ZN5utils12DATABASE_DIRB5cxx11E(%rip), %rsi
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	subq	$80, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	leaq	8(%rsp), %rbp
	movq	%rbp, %rdi
.LEHB6:
	call	_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_
.LEHE6:
	movq	%r12, %rsi
	movq	%rbp, %rdi
.LEHB7:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_@PLT
.LEHE7:
	leaq	40(%rsp), %r12
	movq	%rax, %rsi
	movq	%r12, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_@PLT
	leaq	.LC11(%rip), %rsi
	movq	%r12, %rdi
.LEHB8:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc@PLT
.LEHE8:
	movq	%rax, %rsi
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_@PLT
	movq	%r12, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L110
	jmp	.L113
.L112:
	endbr64
	movq	%rax, %rbx
.L107:
	movq	%r12, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L108
.L111:
	endbr64
	movq	%rax, %rbx
.L108:
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L113
	movq	%rbx, %rdi
.LEHB9:
	call	_Unwind_Resume@PLT
.LEHE9:
.L113:
	call	__stack_chk_fail@PLT
.L110:
	addq	$80, %rsp
	.cfi_def_cfa_offset 32
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4871:
	.section	.gcc_except_table
.LLSDA4871:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4871-.LLSDACSB4871
.LLSDACSB4871:
	.uleb128 .LEHB6-.LFB4871
	.uleb128 .LEHE6-.LEHB6
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB7-.LFB4871
	.uleb128 .LEHE7-.LEHB7
	.uleb128 .L111-.LFB4871
	.uleb128 0
	.uleb128 .LEHB8-.LFB4871
	.uleb128 .LEHE8-.LEHB8
	.uleb128 .L112-.LFB4871
	.uleb128 0
	.uleb128 .LEHB9-.LFB4871
	.uleb128 .LEHE9-.LEHB9
	.uleb128 0
	.uleb128 0
.LLSDACSE4871:
	.text
	.size	_ZN5utils15getDataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .-_ZN5utils15getDataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.section	.rodata.str1.1
.LC12:
	.string	".temp"
	.text
	.align 2
	.globl	_ZN5utils15getTempFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.type	_ZN5utils15getTempFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, @function
_ZN5utils15getTempFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE:
.LFB4872:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4872
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	leaq	.LC9(%rip), %rdx
	movq	%rsi, %r12
	leaq	_ZN5utils12DATABASE_DIRB5cxx11E(%rip), %rsi
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	%rdi, %rbx
	subq	$80, %rsp
	.cfi_def_cfa_offset 112
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	leaq	8(%rsp), %rbp
	movq	%rbp, %rdi
.LEHB10:
	call	_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_
.LEHE10:
	movq	%r12, %rsi
	movq	%rbp, %rdi
.LEHB11:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_@PLT
.LEHE11:
	leaq	40(%rsp), %r12
	movq	%rax, %rsi
	movq	%r12, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_@PLT
	leaq	.LC12(%rip), %rsi
	movq	%r12, %rdi
.LEHB12:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc@PLT
.LEHE12:
	movq	%rax, %rsi
	movq	%rbx, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_@PLT
	movq	%r12, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L119
	jmp	.L122
.L121:
	endbr64
	movq	%rax, %rbx
.L116:
	movq	%r12, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L117
.L120:
	endbr64
	movq	%rax, %rbx
.L117:
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L122
	movq	%rbx, %rdi
.LEHB13:
	call	_Unwind_Resume@PLT
.LEHE13:
.L122:
	call	__stack_chk_fail@PLT
.L119:
	addq	$80, %rsp
	.cfi_def_cfa_offset 32
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4872:
	.section	.gcc_except_table
.LLSDA4872:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4872-.LLSDACSB4872
.LLSDACSB4872:
	.uleb128 .LEHB10-.LFB4872
	.uleb128 .LEHE10-.LEHB10
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB11-.LFB4872
	.uleb128 .LEHE11-.LEHB11
	.uleb128 .L120-.LFB4872
	.uleb128 0
	.uleb128 .LEHB12-.LFB4872
	.uleb128 .LEHE12-.LEHB12
	.uleb128 .L121-.LFB4872
	.uleb128 0
	.uleb128 .LEHB13-.LFB4872
	.uleb128 .LEHE13-.LEHB13
	.uleb128 0
	.uleb128 0
.LLSDACSE4872:
	.text
	.size	_ZN5utils15getTempFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .-_ZN5utils15getTempFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.section	.text._ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_,"axG",@progbits,_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_,comdat
	.weak	_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_
	.type	_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_, @function
_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_:
.LFB5277:
	.cfi_startproc
	endbr64
	movq	8(%rdi), %rdx
	xorl	%eax, %eax
	cmpq	8(%rsi), %rdx
	jne	.L129
	movb	$1, %al
	testq	%rdx, %rdx
	je	.L129
	pushq	%rax
	.cfi_def_cfa_offset 16
	movq	(%rsi), %rsi
	movq	(%rdi), %rdi
	call	memcmp@PLT
	popq	%rdx
	.cfi_def_cfa_offset 8
	testl	%eax, %eax
	sete	%al
	ret
.L129:
	ret
	.cfi_endproc
.LFE5277:
	.size	_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_, .-_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_
	.text
	.align 2
	.globl	_ZN5utils9dropTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.type	_ZN5utils9dropTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, @function
_ZN5utils9dropTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE:
.LFB4878:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	xorl	%r13d, %r13d
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	8+_ZN5utils6tablesB5cxx11E(%rip), %rbp
	movq	_ZN5utils6tablesB5cxx11E(%rip), %r15
	movq	%rdi, 8(%rsp)
	movq	%rbp, %r14
	subq	%r15, %r14
	sarq	$5, %r14
.L133:
	movq	%r13, %rbx
	salq	$5, %rbx
	addq	%r15, %rbx
	cmpq	%r13, %r14
	je	.L134
	movq	8(%rsp), %rsi
	movq	%rbx, %rdi
	incq	%r13
	call	_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_
	testb	%al, %al
	je	.L133
.L134:
	addq	$32, %rbx
	cmpq	%rbx, %rbp
	jne	.L136
.L144:
	movq	8+_ZN5utils6tablesB5cxx11E(%rip), %rax
	leaq	-32(%rax), %rdi
	movq	%rdi, 8+_ZN5utils6tablesB5cxx11E(%rip)
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
.L136:
	.cfi_restore_state
	subq	%rbx, %rbp
	sarq	$5, %rbp
.L137:
	testq	%rbp, %rbp
	jle	.L144
	movq	%rbx, %rdi
	call	_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@PLT
	movq	8(%rbx), %r13
	testb	%al, %al
	je	.L138
	testq	%r13, %r13
	je	.L139
	movq	-32(%rbx), %rdi
	movq	(%rbx), %rsi
	movq	%r13, %rdx
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm@PLT
.L139:
	movq	8(%rbx), %rax
	movq	-32(%rbx), %rdx
	movq	%rax, -24(%rbx)
	movb	$0, (%rdx,%rax)
	jmp	.L140
.L138:
	leaq	-32(%rbx), %rdi
	call	_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv@PLT
	movl	%eax, %edx
	xorl	%eax, %eax
	testb	%dl, %dl
	jne	.L141
	movq	-32(%rbx), %rax
	movq	-16(%rbx), %r12
.L141:
	movq	(%rbx), %rdx
	movq	%r13, -24(%rbx)
	movq	%rdx, -32(%rbx)
	movq	16(%rbx), %rdx
	movq	%rdx, -16(%rbx)
	testq	%rax, %rax
	je	.L142
	movq	%rax, (%rbx)
	movq	%r12, 16(%rbx)
	jmp	.L140
.L142:
	leaq	16(%rbx), %rax
	movq	%rax, (%rbx)
.L140:
	xorl	%eax, %eax
	addq	$32, %rbx
	decq	%rbp
	movq	%rax, -24(%rbx)
	movq	-32(%rbx), %rax
	movb	$0, (%rax)
	jmp	.L137
	.cfi_endproc
.LFE4878:
	.size	_ZN5utils9dropTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .-_ZN5utils9dropTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.align 2
	.globl	_ZN5utils13writeDatabaseEv
	.type	_ZN5utils13writeDatabaseEv, @function
_ZN5utils13writeDatabaseEv:
.LFB4879:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4879
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	leaq	_ZN5utils18DATABASE_FILE_PATHB5cxx11E(%rip), %rsi
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$568, %rsp
	.cfi_def_cfa_offset 608
	movq	%fs:40, %rax
	movq	%rax, 552(%rsp)
	xorl	%eax, %eax
	leaq	8(%rsp), %r12
	leaq	40(%rsp), %rbp
	movq	%r12, %rdi
.LEHB14:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_@PLT
.LEHE14:
	movl	$16, %edx
	movq	%r12, %rsi
	movq	%rbp, %rdi
.LEHB15:
	call	_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@PLT
.LEHE15:
	movq	8+_ZN5utils6tablesB5cxx11E(%rip), %r13
	movq	_ZN5utils6tablesB5cxx11E(%rip), %rbx
.L151:
	cmpq	%r13, %rbx
	je	.L161
	movq	%rbx, %rsi
	movq	%rbp, %rdi
.LEHB16:
	call	_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE@PLT
	movq	%rax, %rdi
	call	_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_@PLT
	addq	$32, %rbx
	jmp	.L151
.L161:
	movq	%rbp, %rdi
	call	_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv@PLT
.LEHE16:
	movq	%rbp, %rdi
	call	_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@PLT
	movq	%r12, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	552(%rsp), %rax
	subq	%fs:40, %rax
	je	.L156
	jmp	.L159
.L158:
	endbr64
	movq	%rax, %rbx
.L153:
	movq	%rbp, %rdi
	call	_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev@PLT
	jmp	.L154
.L157:
	endbr64
	movq	%rax, %rbx
.L154:
	movq	%r12, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	552(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L159
	movq	%rbx, %rdi
.LEHB17:
	call	_Unwind_Resume@PLT
.LEHE17:
.L159:
	call	__stack_chk_fail@PLT
.L156:
	addq	$568, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4879:
	.section	.gcc_except_table
.LLSDA4879:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4879-.LLSDACSB4879
.LLSDACSB4879:
	.uleb128 .LEHB14-.LFB4879
	.uleb128 .LEHE14-.LEHB14
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB15-.LFB4879
	.uleb128 .LEHE15-.LEHB15
	.uleb128 .L157-.LFB4879
	.uleb128 0
	.uleb128 .LEHB16-.LFB4879
	.uleb128 .LEHE16-.LEHB16
	.uleb128 .L158-.LFB4879
	.uleb128 0
	.uleb128 .LEHB17-.LFB4879
	.uleb128 .LEHE17-.LEHB17
	.uleb128 0
	.uleb128 0
.LLSDACSE4879:
	.text
	.size	_ZN5utils13writeDatabaseEv, .-_ZN5utils13writeDatabaseEv
	.section	.rodata._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_.str1.1,"aMS",@progbits,1
.LC13:
	.string	"vector::_M_realloc_insert"
	.section	.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_,"axG",@progbits,_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_,comdat
	.align 2
	.weak	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_
	.type	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_, @function
_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_:
.LFB5520:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA5520
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	movq	%rdx, %r15
	movabsq	$288230376151711743, %rdx
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	8(%rdi), %rax
	movq	(%rdi), %r14
	movq	%rsi, 8(%rsp)
	movq	%rax, %rbx
	movq	%rax, (%rsp)
	subq	%r14, %rbx
	sarq	$5, %rbx
	cmpq	%rdx, %rbx
	jne	.L163
	leaq	.LC13(%rip), %rdi
.LEHB18:
	call	_ZSt20__throw_length_errorPKc@PLT
.L163:
	cmpq	%r14, (%rsp)
	movl	$1, %eax
	movq	8(%rsp), %rbp
	movq	%rdi, %r13
	cmovne	%rbx, %rax
	addq	%rax, %rbx
	setc	%al
	subq	%r14, %rbp
	movzbl	%al, %eax
	testq	%rax, %rax
	jne	.L179
	xorl	%r12d, %r12d
	testq	%rbx, %rbx
	je	.L168
	movabsq	$288230376151711743, %rax
	cmpq	%rax, %rbx
	cmova	%rax, %rbx
	jmp	.L167
.L179:
	movq	%rdx, %rbx
.L167:
	movq	%rbx, %rdi
	salq	$5, %rdi
	call	_Znwm@PLT
.LEHE18:
	movq	%rax, %r12
.L168:
	addq	%r12, %rbp
	movq	%r15, %rsi
	movq	%rbp, %rdi
.LEHB19:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_@PLT
.LEHE19:
	movq	%r12, %rdi
	movq	%r14, %rbp
.L169:
	leaq	32(%rdi), %r15
	cmpq	%rbp, 8(%rsp)
	je	.L171
	movq	%rbp, %rsi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_@PLT
	movq	%rbp, %rdi
	addq	$32, %rbp
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	%r15, %rdi
	jmp	.L169
.L171:
	cmpq	%rbp, (%rsp)
	je	.L191
	movq	%rbp, %rsi
	movq	%r15, %rdi
	addq	$32, %r15
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_@PLT
	movq	%rbp, %rdi
	addq	$32, %rbp
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L171
.L191:
	testq	%r14, %r14
	je	.L173
	movq	16(%r13), %rsi
	movq	%r14, %rdi
	subq	%r14, %rsi
	call	_ZdlPvm@PLT
.L173:
	salq	$5, %rbx
	movq	%r12, 0(%r13)
	addq	%r12, %rbx
	movq	%r15, 8(%r13)
	movq	%rbx, 16(%r13)
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
.L182:
	.cfi_restore_state
	endbr64
	movq	%rax, %rdi
.L174:
	call	__cxa_begin_catch@PLT
	testq	%r12, %r12
	jne	.L175
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
.L177:
.LEHB20:
	call	__cxa_rethrow@PLT
.LEHE20:
.L183:
	endbr64
	movq	%rax, %rbx
.L176:
	call	__cxa_end_catch@PLT
	movq	%rbx, %rdi
.LEHB21:
	call	_Unwind_Resume@PLT
.LEHE21:
.L175:
	movq	%rbx, %rsi
	movq	%r12, %rdi
	salq	$5, %rsi
	call	_ZdlPvm@PLT
	jmp	.L177
	.cfi_endproc
.LFE5520:
	.section	.gcc_except_table
	.align 4
.LLSDA5520:
	.byte	0xff
	.byte	0x9b
	.uleb128 .LLSDATT5520-.LLSDATTD5520
.LLSDATTD5520:
	.byte	0x1
	.uleb128 .LLSDACSE5520-.LLSDACSB5520
.LLSDACSB5520:
	.uleb128 .LEHB18-.LFB5520
	.uleb128 .LEHE18-.LEHB18
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB19-.LFB5520
	.uleb128 .LEHE19-.LEHB19
	.uleb128 .L182-.LFB5520
	.uleb128 0x1
	.uleb128 .LEHB20-.LFB5520
	.uleb128 .LEHE20-.LEHB20
	.uleb128 .L183-.LFB5520
	.uleb128 0
	.uleb128 .LEHB21-.LFB5520
	.uleb128 .LEHE21-.LEHB21
	.uleb128 0
	.uleb128 0
.LLSDACSE5520:
	.byte	0x1
	.byte	0
	.align 4
	.long	0

.LLSDATT5520:
	.section	.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_,"axG",@progbits,_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_,comdat
	.size	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_, .-_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_
	.section	.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_,"axG",@progbits,_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_,comdat
	.align 2
	.weak	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_
	.type	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_, @function
_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_:
.LFB5272:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	movq	%rdi, %rbx
	movq	8(%rdi), %rdi
	cmpq	16(%rbx), %rdi
	je	.L193
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_@PLT
	addq	$32, 8(%rbx)
	popq	%rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
.L193:
	.cfi_restore_state
	movq	%rsi, %rdx
	movq	%rdi, %rsi
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_
	.cfi_endproc
.LFE5272:
	.size	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_, .-_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_
	.text
	.align 2
	.globl	_ZN5utils10loadTablesEv
	.type	_ZN5utils10loadTablesEv, @function
_ZN5utils10loadTablesEv:
.LFB4874:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4874
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	leaq	_ZN5utils18DATABASE_FILE_PATHB5cxx11E(%rip), %rsi
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	subq	$600, %rsp
	.cfi_def_cfa_offset 640
	movq	%fs:40, %rax
	movq	%rax, 584(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %rbp
	leaq	64(%rsp), %r12
	movq	%rbp, %rdi
.LEHB22:
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_@PLT
.LEHE22:
	movl	$8, %edx
	movq	%rbp, %rsi
	movq	%r12, %rdi
.LEHB23:
	call	_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode@PLT
.LEHE23:
	movq	%rbp, %rdi
.LEHB24:
	call	_ZN5utils10fileExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.LEHE24:
	testb	%al, %al
	je	.L198
	leaq	48(%rsp), %rax
	movb	$0, 48(%rsp)
	leaq	32(%rsp), %r13
	movq	%rax, 32(%rsp)
	xorl	%eax, %eax
	movq	%rax, 40(%rsp)
.L199:
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB25:
	call	_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE@PLT
	movq	(%rax), %rdx
	movq	-24(%rdx), %rdx
	testb	$5, 32(%rax,%rdx)
	jne	.L214
	movq	%r13, %rsi
	leaq	_ZN5utils6tablesB5cxx11E(%rip), %rdi
	call	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_
.LEHE25:
	jmp	.L199
.L214:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
.L198:
	movq	%r12, %rdi
	call	_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@PLT
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	584(%rsp), %rax
	subq	%fs:40, %rax
	je	.L205
	jmp	.L212
.L208:
	endbr64
	movq	%rax, %rbx
.L201:
	movq	%r13, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	jmp	.L202
.L207:
	endbr64
	movq	%rax, %rbx
.L202:
	movq	%r12, %rdi
	call	_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev@PLT
	jmp	.L203
.L206:
	endbr64
	movq	%rax, %rbx
.L203:
	movq	%rbp, %rdi
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv@PLT
	movq	584(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L212
	movq	%rbx, %rdi
.LEHB26:
	call	_Unwind_Resume@PLT
.LEHE26:
.L212:
	call	__stack_chk_fail@PLT
.L205:
	addq	$600, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4874:
	.section	.gcc_except_table
.LLSDA4874:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4874-.LLSDACSB4874
.LLSDACSB4874:
	.uleb128 .LEHB22-.LFB4874
	.uleb128 .LEHE22-.LEHB22
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB23-.LFB4874
	.uleb128 .LEHE23-.LEHB23
	.uleb128 .L206-.LFB4874
	.uleb128 0
	.uleb128 .LEHB24-.LFB4874
	.uleb128 .LEHE24-.LEHB24
	.uleb128 .L207-.LFB4874
	.uleb128 0
	.uleb128 .LEHB25-.LFB4874
	.uleb128 .LEHE25-.LEHB25
	.uleb128 .L208-.LFB4874
	.uleb128 0
	.uleb128 .LEHB26-.LFB4874
	.uleb128 .LEHE26-.LEHB26
	.uleb128 0
	.uleb128 0
.LLSDACSE4874:
	.text
	.size	_ZN5utils10loadTablesEv, .-_ZN5utils10loadTablesEv
	.align 2
	.globl	_ZN5utils11tableExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.type	_ZN5utils11tableExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, @function
_ZN5utils11tableExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE:
.LFB4876:
	.cfi_startproc
	endbr64
	pushq	%r13
	.cfi_def_cfa_offset 16
	.cfi_offset 13, -16
	pushq	%r12
	.cfi_def_cfa_offset 24
	.cfi_offset 12, -24
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 32
	.cfi_offset 6, -32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	.cfi_offset 3, -40
	pushq	%rcx
	.cfi_def_cfa_offset 48
	movq	8+_ZN5utils6tablesB5cxx11E(%rip), %rax
	cmpq	%rax, _ZN5utils6tablesB5cxx11E(%rip)
	je	.L216
.L219:
	movq	_ZN5utils6tablesB5cxx11E(%rip), %r13
	movq	8+_ZN5utils6tablesB5cxx11E(%rip), %rbx
	xorl	%ebp, %ebp
	subq	%r13, %rbx
	sarq	$5, %rbx
	jmp	.L217
.L216:
	call	_ZN5utils10loadTablesEv
	movq	8+_ZN5utils6tablesB5cxx11E(%rip), %rcx
	xorl	%eax, %eax
	cmpq	%rcx, _ZN5utils6tablesB5cxx11E(%rip)
	jne	.L219
	jmp	.L215
.L221:
	movq	%rbp, %rdi
	movq	%r12, %rsi
	salq	$5, %rdi
	addq	%r13, %rdi
	call	_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_
	movl	%eax, %edx
	leaq	1(%rbp), %rax
	testb	%dl, %dl
	jne	.L220
	movq	%rax, %rbp
.L217:
	cmpq	%rbp, %rbx
	jne	.L221
.L220:
	cmpq	%rbp, %rbx
	setne	%al
.L215:
	popq	%rdx
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%rbp
	.cfi_def_cfa_offset 24
	popq	%r12
	.cfi_def_cfa_offset 16
	popq	%r13
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4876:
	.size	_ZN5utils11tableExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .-_ZN5utils11tableExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.align 2
	.globl	_ZN5utils8addTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.type	_ZN5utils8addTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, @function
_ZN5utils8addTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE:
.LFB4877:
	.cfi_startproc
	endbr64
	movq	%rdi, %rsi
	leaq	_ZN5utils6tablesB5cxx11E(%rip), %rdi
	jmp	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_
	.cfi_endproc
.LFE4877:
	.size	_ZN5utils8addTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .-_ZN5utils8addTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.section	.rodata.str1.1
.LC14:
	.string	"../DB"
.LC15:
	.string	"/Database"
	.section	.text.startup
	.type	_GLOBAL__sub_I__ZN5utils12DATABASE_DIRB5cxx11E, @function
_GLOBAL__sub_I__ZN5utils12DATABASE_DIRB5cxx11E:
.LFB5813:
	.cfi_startproc
	endbr64
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	leaq	5+.LC14(%rip), %rdx
	leaq	_ZN5utils12DATABASE_DIRB5cxx11E(%rip), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	leaq	16(%r12), %rdi
	leaq	-5(%rdx), %rsi
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	leaq	__dso_handle(%rip), %rbx
	leaq	_ZN5utils18DATABASE_FILE_PATHB5cxx11E(%rip), %rbp
	subq	$16, %rsp
	.cfi_def_cfa_offset 48
	movq	%fs:40, %rax
	movq	%rax, 8(%rsp)
	xorl	%eax, %eax
	movq	%rdi, _ZN5utils12DATABASE_DIRB5cxx11E(%rip)
	call	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_@PLT
	movq	_ZN5utils12DATABASE_DIRB5cxx11E(%rip), %rax
	movq	%rbx, %rdx
	movq	%r12, %rsi
	movq	$5, 8+_ZN5utils12DATABASE_DIRB5cxx11E(%rip)
	movq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev@GOTPCREL(%rip), %rdi
	movb	$0, 5(%rax)
	call	__cxa_atexit@PLT
	leaq	.LC15(%rip), %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	call	_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_
	movq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev@GOTPCREL(%rip), %rdi
	movq	%rbx, %rdx
	movq	%rbp, %rsi
	call	__cxa_atexit@PLT
	xorl	%edi, %edi
	movq	%rdi, _ZN5utils6tablesB5cxx11E(%rip)
	movq	%rdi, 8+_ZN5utils6tablesB5cxx11E(%rip)
	movq	%rdi, 16+_ZN5utils6tablesB5cxx11E(%rip)
	movq	8(%rsp), %rax
	subq	%fs:40, %rax
	je	.L226
	call	__stack_chk_fail@PLT
.L226:
	addq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	%rbx, %rdx
	leaq	_ZN5utils6tablesB5cxx11E(%rip), %rsi
	popq	%rbx
	.cfi_def_cfa_offset 24
	leaq	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED1Ev(%rip), %rdi
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	jmp	__cxa_atexit@PLT
	.cfi_endproc
.LFE5813:
	.size	_GLOBAL__sub_I__ZN5utils12DATABASE_DIRB5cxx11E, .-_GLOBAL__sub_I__ZN5utils12DATABASE_DIRB5cxx11E
	.section	.init_array
	.align 8
	.quad	_GLOBAL__sub_I__ZN5utils12DATABASE_DIRB5cxx11E
	.section	.nvFatBinSegment,"aw"
	.align 8
	.type	_ZL15__fatDeviceText, @object
	.size	_ZL15__fatDeviceText, 24
_ZL15__fatDeviceText:
	.long	1180844977
	.long	1
	.quad	fatbinData
	.quad	0
	.local	_ZL20__cudaFatCubinHandle
	.comm	_ZL20__cudaFatCubinHandle,8,8
	.globl	_ZN5utils6tablesB5cxx11E
	.bss
	.align 16
	.type	_ZN5utils6tablesB5cxx11E, @object
	.size	_ZN5utils6tablesB5cxx11E, 24
_ZN5utils6tablesB5cxx11E:
	.zero	24
	.globl	_ZN5utils18DATABASE_FILE_PATHB5cxx11E
	.align 32
	.type	_ZN5utils18DATABASE_FILE_PATHB5cxx11E, @object
	.size	_ZN5utils18DATABASE_FILE_PATHB5cxx11E, 32
_ZN5utils18DATABASE_FILE_PATHB5cxx11E:
	.zero	32
	.globl	_ZN5utils12DATABASE_DIRB5cxx11E
	.align 32
	.type	_ZN5utils12DATABASE_DIRB5cxx11E, @object
	.size	_ZN5utils12DATABASE_DIRB5cxx11E, 32
_ZN5utils12DATABASE_DIRB5cxx11E:
	.zero	32
	.hidden	DW.ref.__gxx_personality_v0
	.weak	DW.ref.__gxx_personality_v0
	.section	.data.rel.local.DW.ref.__gxx_personality_v0,"awG",@progbits,DW.ref.__gxx_personality_v0,comdat
	.align 8
	.type	DW.ref.__gxx_personality_v0, @object
	.size	DW.ref.__gxx_personality_v0, 8
DW.ref.__gxx_personality_v0:
	.quad	__gxx_personality_v0
	.hidden	__dso_handle
	.ident	"GCC: (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:

//
// Created by gautam on 17/04/20.
//


#include <hip/hip_runtime.h>
#include <fstream>
#include "utils.cuh"

std::string const utils::DATABASE_DIR = "../DB";
std::string const utils::DATABASE_FILE_PATH = utils::DATABASE_DIR + "/Database";
std::vector<std::string> utils::tables = std::vector<std::string>();

void utils::ltrim(std::string &s)  {
    s.erase(s.begin(), std::find_if(s.begin(), s.end(), [](int ch) {
        return !std::isspace(ch);
    }));
}

void utils::rtrim(std::string &s)  {
    s.erase(std::find_if(s.rbegin(), s.rend(), [](int ch) {
        return !std::isspace(ch);
    }).base(), s.end());
}

void utils::trim(std::string &s) {
    ltrim(s);
    rtrim(s);
}

std::string utils::getFistWord(std::string &query) {
    return query.substr(0, query.find(' '));
}

void utils::toLower(std::string &upper) {
    std::transform(upper.begin(), upper.end(), upper.begin(),
                   [](unsigned char c) { return std::tolower(c); });
}

void utils::invalidQuery(std::string query) {
    std::cout << "\"" << query << "\"" << "is not a valid query" << std::endl;
}

void utils::invalidQuery(std::string &query, std::string &errString) {
    std::cout << "\"" << query << "\"" << "is not a valid query" << std::endl;
    std::cout << "Error: " << errString << std::endl;
}

std::string utils::getMetadataFileName(std::string &tableName) {
    return DATABASE_DIR + "/" + tableName + ".mdata";
}

std::string utils::getDataFileName(std::string &tableName) {
    return DATABASE_DIR + "/" + tableName + ".data";
}

std::string utils::getTempFileName(std::string &tableName) {
    return DATABASE_DIR + "/" + tableName + ".temp";
}

bool utils::fileExists(std::string &filename) {
    if (FILE *file = fopen(filename.c_str(), "r")) {
        fclose(file);
        return true;
    } else {
        return false;
    }
}

void utils::loadTables() {
    std::string filename = DATABASE_FILE_PATH;
    std::ifstream fin(filename);
    if (utils::fileExists(filename)) {
        std::string tableName;
        while (fin >> tableName) {
            tables.push_back(tableName);
        }
    }
}

bool utils::tableExists(std::string &tableName) {
    if (tables.empty()) {
        loadTables();
        if(tables.empty()) {
            return false;
        }
    }
    int i;
    for (i = 0; i < tables.size(); ++i) {
        if(tables[i] == tableName) {
            break;
        }
    }
    return i != tables.size();
}

void utils::addTable(std::string &tableName) {
    tables.push_back(tableName);
}

void utils::dropTable(std::string &tableName){
	int i;
	for (i = 0; i < tables.size(); ++i) {
        if(tables[i] == tableName) {
            break;
        }
    }
    tables.erase(tables.begin() + i);
}

void utils::writeDatabase() {
    std::string filename = DATABASE_FILE_PATH;
    std::ofstream fout(filename);
    for (const auto& tableName : tables) {
        fout << tableName << std::endl;
    }
    fout.close();
}

void utils::printRow(void *row, std::vector<ColType> &cols) {
    int start = 0;
    for (const auto &c : cols) {
        // printf("Start: %d\n", start);
        switch (c.type) {
            case TYPE_INT: {
                int temp = *((int *) ((char *) row + start));
                printf("%d", temp);
                start += sizeof(int);
                break;
            }
            case TYPE_FLOAT: {
                float temp = *((float *) ((char *) row + start));
                printf("%f", temp);
                start += sizeof(float);
                break;
            }
            case TYPE_BOOL:
                break;
            case TYPE_VARCHAR: {
                char *temp = (char *) row + start;
                printf("%s", temp);
                start += c.size;
                break;
            }
            case TYPE_DATETIME:
                break;
            case TYPE_INVALID:
                break;
        }
        if (&c != &cols[cols.size() - 1]) {
            printf(", ");
        }
    }
    printf("\n");
}

void utils::printMultiple(void *data, std::vector<ColType> &cols, int rowSize, int numRows) {
    int start = 0;
    printf("\n");
    for (int i = 0; i < numRows; i++, start += rowSize) {
        printRow((char *)data + start, cols);
    }
}





	.text
	.file	"utils.hip"
                                        # Start of file scope inline assembly
	.globl	_ZSt21ios_base_library_initv

                                        # End of file scope inline assembly
	.section	.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev,"axG",@progbits,_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev,comdat
	.weak	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev # -- Begin function _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev
	.p2align	1, 0x90
	.type	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev,@function
_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev: # @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	(%rdi), %rbx
	movq	8(%rdi), %r15
	cmpq	%r15, %rbx
	je	.LBB0_6
# %bb.1:                                # %.lr.ph.i.i.i.preheader
	movq	%rdi, %r14
.LBB0_2:                                # %.lr.ph.i.i.i
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rdi
	addq	$16, %rbx
	cmpq	%rbx, %rdi
	je	.LBB0_4
# %bb.3:                                # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i
                                        #   in Loop: Header=BB0_2 Depth=1
	callq	_ZdlPv
.LBB0_4:                                # %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i
                                        #   in Loop: Header=BB0_2 Depth=1
	addq	$16, %rbx
	cmpq	%r15, %rbx
	jne	.LBB0_2
# %bb.5:                                # %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split
	movq	(%r14), %rbx
.LBB0_6:                                # %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit
	testq	%rbx, %rbx
	je	.LBB0_7
# %bb.8:
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	_ZdlPv                          # TAILCALL
.LBB0_7:                                # %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit
	.cfi_def_cfa_offset 32
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end0:
	.size	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev, .Lfunc_end0-_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev
	.cfi_endproc
                                        # -- End function
	.text
	.globl	_ZN5utils5ltrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE # -- Begin function _ZN5utils5ltrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.p2align	1, 0x90
	.type	_ZN5utils5ltrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE,@function
_ZN5utils5ltrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE: # @_ZN5utils5ltrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_startproc
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	pushq	%rax
	.cfi_def_cfa_offset 64
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdi, %rbx
	movq	(%rdi), %r15
	movq	8(%rdi), %rax
	leaq	(%r15,%rax), %r12
	movq	%rax, %rbp
	sarq	$2, %rbp
	movq	%r15, %r13
	testq	%rbp, %rbp
	jle	.LBB1_7
# %bb.1:                                # %.lr.ph.preheader.i.i.i
	andq	$-4, %rax
	movq	%rax, %r13
	addq	%r15, %r13
	incq	%rbp
	leaq	3(%r15), %r14
.LBB1_2:                                # %.lr.ph.i.i.i
                                        # =>This Inner Loop Header: Depth=1
	movsbl	-3(%r14), %edi
	callq	isspace
	testl	%eax, %eax
	je	.LBB1_18
# %bb.3:                                #   in Loop: Header=BB1_2 Depth=1
	movsbl	-2(%r14), %edi
	callq	isspace
	testl	%eax, %eax
	je	.LBB1_16
# %bb.4:                                #   in Loop: Header=BB1_2 Depth=1
	movsbl	-1(%r14), %edi
	callq	isspace
	testl	%eax, %eax
	je	.LBB1_17
# %bb.5:                                #   in Loop: Header=BB1_2 Depth=1
	movsbl	(%r14), %edi
	callq	isspace
	testl	%eax, %eax
	je	.LBB1_19
# %bb.6:                                #   in Loop: Header=BB1_2 Depth=1
	decq	%rbp
	addq	$4, %r14
	cmpq	$1, %rbp
	jg	.LBB1_2
.LBB1_7:                                # %._crit_edge.i.i.i
	movq	%r12, %rax
	subq	%r13, %rax
	cmpq	$1, %rax
	je	.LBB1_15
# %bb.8:                                # %._crit_edge.i.i.i
	cmpq	$2, %rax
	je	.LBB1_13
# %bb.9:                                # %._crit_edge.i.i.i
	cmpq	$3, %rax
	jne	.LBB1_20
# %bb.10:
	movsbl	(%r13), %edi
	callq	isspace
	testl	%eax, %eax
	je	.LBB1_11
# %bb.12:
	incq	%r13
.LBB1_13:
	movsbl	(%r13), %edi
	callq	isspace
	testl	%eax, %eax
	je	.LBB1_11
# %bb.14:
	incq	%r13
.LBB1_15:
	movsbl	(%r13), %edi
	callq	isspace
	testl	%eax, %eax
	cmovneq	%r12, %r13
.LBB1_11:
	movq	%r13, %r14
	jmp	.LBB1_19
.LBB1_18:                               # %_ZSt7find_ifIN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEZN5utils5ltrimERS8_EUliE_ET_SD_SD_T0_.exit.loopexit
	addq	$-3, %r14
	jmp	.LBB1_19
.LBB1_16:                               # %_ZSt7find_ifIN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEZN5utils5ltrimERS8_EUliE_ET_SD_SD_T0_.exit.loopexit.split.loop.exit
	addq	$-2, %r14
	jmp	.LBB1_19
.LBB1_17:                               # %_ZSt7find_ifIN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEZN5utils5ltrimERS8_EUliE_ET_SD_SD_T0_.exit.loopexit.split.loop.exit22
	decq	%r14
.LBB1_19:                               # %_ZSt7find_ifIN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEZN5utils5ltrimERS8_EUliE_ET_SD_SD_T0_.exit
	cmpq	%r14, %r12
	je	.LBB1_20
# %bb.21:
	subq	%r15, %r14
	movq	%rbx, %rdi
	xorl	%esi, %esi
	movq	%r14, %rdx
	addq	$8, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	jmp	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8_M_eraseEmm # TAILCALL
.LBB1_20:                               # %_ZSt7find_ifIN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEZN5utils5ltrimERS8_EUliE_ET_SD_SD_T0_.exit.thread
	.cfi_def_cfa_offset 64
	movq	$0, 8(%rbx)
	movb	$0, (%r15)
	addq	$8, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end1:
	.size	_ZN5utils5ltrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .Lfunc_end1-_ZN5utils5ltrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_endproc
                                        # -- End function
	.globl	_ZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE # -- Begin function _ZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.p2align	1, 0x90
	.type	_ZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE,@function
_ZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE: # @_ZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_startproc
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	pushq	%rax
	.cfi_def_cfa_offset 64
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdi, %rbx
	movq	(%rdi), %r14
	movq	8(%rdi), %r12
	leaq	(%r14,%r12), %r13
	movq	%r12, %rbp
	sarq	$2, %rbp
	testq	%rbp, %rbp
	jle	.LBB2_1
# %bb.2:                                # %.lr.ph.i.preheader.i.i
	movq	%r12, %rax
	andq	$-4, %rax
	movq	%r13, %r15
	subq	%rax, %r15
	leaq	(,%rbp,4), %rax
	subq	%rax, %r13
	movq	%r13, (%rsp)                    # 8-byte Spill
	incq	%rbp
.LBB2_3:                                # %.lr.ph.i.i.i
                                        # =>This Inner Loop Header: Depth=1
	movsbl	-1(%r14,%r12), %edi
	callq	isspace
	testl	%eax, %eax
	je	.LBB2_20
# %bb.4:                                #   in Loop: Header=BB2_3 Depth=1
	movsbl	-2(%r14,%r12), %edi
	callq	isspace
	testl	%eax, %eax
	je	.LBB2_5
# %bb.6:                                #   in Loop: Header=BB2_3 Depth=1
	movsbl	-3(%r14,%r12), %edi
	callq	isspace
	testl	%eax, %eax
	je	.LBB2_7
# %bb.8:                                #   in Loop: Header=BB2_3 Depth=1
	movsbl	-4(%r14,%r12), %edi
	callq	isspace
	testl	%eax, %eax
	je	.LBB2_9
# %bb.10:                               #   in Loop: Header=BB2_3 Depth=1
	addq	$-4, %r12
	decq	%rbp
	cmpq	$1, %rbp
	jg	.LBB2_3
# %bb.11:
	movq	%r15, %r13
	movq	(%rsp), %r15                    # 8-byte Reload
	jmp	.LBB2_12
.LBB2_1:
	movq	%r13, %r15
.LBB2_12:                               # %._crit_edge.i.i.i
	movq	%r13, %rax
	subq	%r14, %rax
	cmpq	$1, %rax
	je	.LBB2_19
# %bb.13:                               # %._crit_edge.i.i.i
	cmpq	$2, %rax
	je	.LBB2_17
# %bb.14:                               # %._crit_edge.i.i.i
	movq	%r14, %r12
	cmpq	$3, %rax
	jne	.LBB2_21
# %bb.15:
	movsbl	-1(%r13), %edi
	callq	isspace
	movq	%r13, %r12
	testl	%eax, %eax
	je	.LBB2_21
# %bb.16:
	decq	%r15
	movq	%r15, %r13
.LBB2_17:
	movsbl	-1(%r13), %edi
	callq	isspace
	movq	%r13, %r12
	testl	%eax, %eax
	je	.LBB2_21
# %bb.18:
	decq	%r15
	movq	%r15, %r13
.LBB2_19:
	movsbl	-1(%r13), %edi
	callq	isspace
	testl	%eax, %eax
	cmovneq	%r14, %r13
	movq	%r13, %r12
	jmp	.LBB2_21
.LBB2_20:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_.exit.loopexit
	addq	%r14, %r12
	jmp	.LBB2_21
.LBB2_5:
	addq	%r14, %r12
	decq	%r12
	jmp	.LBB2_21
.LBB2_7:
	addq	%r14, %r12
	addq	$-2, %r12
	jmp	.LBB2_21
.LBB2_9:
	addq	%r14, %r12
	addq	$-3, %r12
.LBB2_21:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEN9__gnu_cxx17__normal_iteratorIPKcS4_EES9_.exit
	movq	%r12, %rax
	subq	%r14, %rax
	movq	%rax, 8(%rbx)
	movb	$0, (%r12)
	addq	$8, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end2:
	.size	_ZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .Lfunc_end2-_ZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_endproc
                                        # -- End function
	.globl	_ZN5utils4trimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE # -- Begin function _ZN5utils4trimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.p2align	1, 0x90
	.type	_ZN5utils4trimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE,@function
_ZN5utils4trimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE: # @_ZN5utils4trimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_startproc
# %bb.0:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset %rbx, -16
	movq	%rdi, %rbx
	callq	_ZN5utils5ltrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	movq	%rbx, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	_ZN5utils5rtrimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE # TAILCALL
.Lfunc_end3:
	.size	_ZN5utils4trimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .Lfunc_end3-_ZN5utils4trimERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_endproc
                                        # -- End function
	.globl	_ZN5utils11getFistWordERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE # -- Begin function _ZN5utils11getFistWordERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.p2align	1, 0x90
	.type	_ZN5utils11getFistWordERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE,@function
_ZN5utils11getFistWordERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE: # @_ZN5utils11getFistWordERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rsi, %rbx
	movq	%rdi, %r14
	movq	%rsi, %rdi
	movl	$32, %esi
	xorl	%edx, %edx
	callq	_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findEcm
	movq	%r14, %rdi
	movq	%rbx, %rsi
	xorl	%edx, %edx
	movq	%rax, %rcx
	callq	_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm
	movq	%r14, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end4:
	.size	_ZN5utils11getFistWordERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .Lfunc_end4-_ZN5utils11getFistWordERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_endproc
                                        # -- End function
	.globl	_ZN5utils7toLowerERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE # -- Begin function _ZN5utils7toLowerERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.p2align	1, 0x90
	.type	_ZN5utils7toLowerERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE,@function
_ZN5utils7toLowerERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE: # @_ZN5utils7toLowerERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	8(%rdi), %rbx
	testq	%rbx, %rbx
	je	.LBB5_3
# %bb.1:                                # %.lr.ph.i.preheader
	movq	(%rdi), %r14
	xorl	%r15d, %r15d
.LBB5_2:                                # %.lr.ph.i
                                        # =>This Inner Loop Header: Depth=1
	movzbl	(%r14,%r15), %edi
	callq	tolower
	movb	%al, (%r14,%r15)
	incq	%r15
	cmpq	%r15, %rbx
	jne	.LBB5_2
.LBB5_3:                                # %_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEES9_ZN5utils7toLowerERS8_EUlhE_ET0_T_SE_SD_T1_.exit
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end5:
	.size	_ZN5utils7toLowerERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .Lfunc_end5-_ZN5utils7toLowerERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_endproc
                                        # -- End function
	.globl	_ZN5utils12invalidQueryENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE # -- Begin function _ZN5utils12invalidQueryENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.p2align	1, 0x90
	.type	_ZN5utils12invalidQueryENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE,@function
_ZN5utils12invalidQueryENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE: # @_ZN5utils12invalidQueryENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_startproc
# %bb.0:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset %rbx, -16
	movq	%rdi, %rbx
	movl	$_ZSt4cout, %edi
	movl	$.L.str.4, %esi
	movl	$1, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	movq	(%rbx), %rsi
	movq	8(%rbx), %rdx
	movl	$_ZSt4cout, %edi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	movq	%rax, %rbx
	movl	$.L.str.4, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	movl	$.L.str.5, %esi
	movl	$20, %edx
	movq	%rbx, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	movq	(%rbx), %rax
	movq	-24(%rax), %rdi
	addq	%rbx, %rdi
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
	movsbl	%al, %esi
	movq	%rbx, %rdi
	callq	_ZNSo3putEc
	movq	%rax, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	_ZNSo5flushEv                   # TAILCALL
.Lfunc_end6:
	.size	_ZN5utils12invalidQueryENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .Lfunc_end6-_ZN5utils12invalidQueryENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_endproc
                                        # -- End function
	.globl	_ZN5utils12invalidQueryERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ # -- Begin function _ZN5utils12invalidQueryERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_
	.p2align	1, 0x90
	.type	_ZN5utils12invalidQueryERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_,@function
_ZN5utils12invalidQueryERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_: # @_ZN5utils12invalidQueryERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rsi, %rbx
	movq	%rdi, %r14
	movl	$_ZSt4cout, %edi
	movl	$.L.str.4, %esi
	movl	$1, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	movq	(%r14), %rsi
	movq	8(%r14), %rdx
	movl	$_ZSt4cout, %edi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	movq	%rax, %r14
	movl	$.L.str.4, %esi
	movl	$1, %edx
	movq	%rax, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	movl	$.L.str.5, %esi
	movl	$20, %edx
	movq	%r14, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	movq	(%r14), %rax
	movq	-24(%rax), %rdi
	addq	%r14, %rdi
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
	movsbl	%al, %esi
	movq	%r14, %rdi
	callq	_ZNSo3putEc
	movq	%rax, %rdi
	callq	_ZNSo5flushEv
	movl	$_ZSt4cout, %edi
	movl	$.L.str.6, %esi
	movl	$7, %edx
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	movq	(%rbx), %rsi
	movq	8(%rbx), %rdx
	movl	$_ZSt4cout, %edi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	movq	%rax, %rbx
	movq	(%rax), %rax
	movq	-24(%rax), %rdi
	addq	%rbx, %rdi
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
	movsbl	%al, %esi
	movq	%rbx, %rdi
	callq	_ZNSo3putEc
	movq	%rax, %rdi
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	jmp	_ZNSo5flushEv                   # TAILCALL
.Lfunc_end7:
	.size	_ZN5utils12invalidQueryERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_, .Lfunc_end7-_ZN5utils12invalidQueryERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_
	.cfi_endproc
                                        # -- End function
	.globl	_ZN5utils19getMetadataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE # -- Begin function _ZN5utils19getMetadataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.p2align	1, 0x90
	.type	_ZN5utils19getMetadataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE,@function
_ZN5utils19getMetadataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE: # @_ZN5utils19getMetadataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Lfunc_begin0:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception0
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rsi, %r14
	movq	%rdi, %rbx
	movq	_ZN5utils12DATABASE_DIRB5cxx11E(%rip), %r15
	movq	_ZN5utils12DATABASE_DIRB5cxx11E+8(%rip), %r12
	leaq	24(%rsp), %r13
	movq	%r13, -16(%r13)
	movq	$0, -8(%r13)
	movb	$0, (%r13)
	leaq	1(%r12), %rsi
.Ltmp0:
	leaq	8(%rsp), %rdi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEm
.Ltmp1:
# %bb.1:
.Ltmp2:
	leaq	8(%rsp), %rdi
	movq	%r15, %rsi
	movq	%r12, %rdx
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm
.Ltmp3:
# %bb.2:
.Ltmp4:
	leaq	8(%rsp), %rdi
	movl	$.L.str.7, %esi
	movl	$1, %edx
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm
.Ltmp5:
# %bb.3:                                # %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit
	movq	(%r14), %rsi
	movq	8(%r14), %rdx
.Ltmp7:
	leaq	8(%rsp), %rdi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm
.Ltmp8:
# %bb.4:                                # %.noexc
	movq	%rax, %r15
	leaq	56(%rsp), %r14
	movq	%r14, -16(%r14)
	movq	(%rax), %rsi
	movq	%rax, %r12
	addq	$16, %r12
	cmpq	%r12, %rsi
	je	.LBB8_5
# %bb.11:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i
	movq	%rsi, 40(%rsp)
	movq	16(%r15), %rax
	movq	%rax, 56(%rsp)
	movq	8(%r15), %rbp
	jmp	.LBB8_12
.LBB8_5:
	movq	8(%r15), %rbp
	leaq	1(%rbp), %rdx
	movq	%r14, %rdi
	callq	memcpy@PLT
.LBB8_12:
	leaq	40(%rsp), %rdi
	movq	%rbp, 8(%rdi)
	movq	%r12, (%r15)
	movq	$0, 8(%r15)
	movb	$0, 16(%r15)
.Ltmp10:
	movl	$.L.str.8, %esi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc
.Ltmp11:
# %bb.13:                               # %.noexc7
	movq	%rax, %r15
	leaq	16(%rbx), %rdi
	movq	%rdi, (%rbx)
	movq	(%rax), %rsi
	movq	%rax, %r12
	addq	$16, %r12
	cmpq	%r12, %rsi
	je	.LBB8_14
# %bb.15:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i4
	movq	%rsi, (%rbx)
	movq	16(%r15), %rax
	movq	%rax, 16(%rbx)
	movq	8(%r15), %rbp
	jmp	.LBB8_16
.LBB8_14:
	movq	8(%r15), %rbp
	leaq	1(%rbp), %rdx
	callq	memcpy@PLT
.LBB8_16:
	movq	%rbp, 8(%rbx)
	movq	%r12, (%r15)
	movq	$0, 8(%r15)
	movb	$0, 16(%r15)
	movq	40(%rsp), %rdi
	cmpq	%r14, %rdi
	je	.LBB8_18
# %bb.17:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i8
	callq	_ZdlPv
.LBB8_18:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
	movq	8(%rsp), %rdi
	cmpq	%r13, %rdi
	je	.LBB8_20
# %bb.19:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i9
	callq	_ZdlPv
.LBB8_20:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit11
	movq	%rbx, %rax
	addq	$72, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB8_22:
	.cfi_def_cfa_offset 128
.Ltmp12:
	movq	%rax, %rbx
	movq	40(%rsp), %rdi
	cmpq	%r14, %rdi
	je	.LBB8_8
# %bb.23:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i12
	callq	_ZdlPv
	jmp	.LBB8_8
.LBB8_21:
.Ltmp9:
	jmp	.LBB8_7
.LBB8_6:
.Ltmp6:
.LBB8_7:
	movq	%rax, %rbx
.LBB8_8:
	movq	8(%rsp), %rdi
	cmpq	%r13, %rdi
	je	.LBB8_10
# %bb.9:                                # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i
	callq	_ZdlPv
.LBB8_10:                               # %common.resume
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end8:
	.size	_ZN5utils19getMetadataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .Lfunc_end8-_ZN5utils19getMetadataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table8:
.Lexception0:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end0-.Lcst_begin0
.Lcst_begin0:
	.uleb128 .Ltmp0-.Lfunc_begin0           # >> Call Site 1 <<
	.uleb128 .Ltmp5-.Ltmp0                  #   Call between .Ltmp0 and .Ltmp5
	.uleb128 .Ltmp6-.Lfunc_begin0           #     jumps to .Ltmp6
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp7-.Lfunc_begin0           # >> Call Site 2 <<
	.uleb128 .Ltmp8-.Ltmp7                  #   Call between .Ltmp7 and .Ltmp8
	.uleb128 .Ltmp9-.Lfunc_begin0           #     jumps to .Ltmp9
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp8-.Lfunc_begin0           # >> Call Site 3 <<
	.uleb128 .Ltmp10-.Ltmp8                 #   Call between .Ltmp8 and .Ltmp10
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp10-.Lfunc_begin0          # >> Call Site 4 <<
	.uleb128 .Ltmp11-.Ltmp10                #   Call between .Ltmp10 and .Ltmp11
	.uleb128 .Ltmp12-.Lfunc_begin0          #     jumps to .Ltmp12
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp11-.Lfunc_begin0          # >> Call Site 5 <<
	.uleb128 .Lfunc_end8-.Ltmp11            #   Call between .Ltmp11 and .Lfunc_end8
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end0:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.globl	_ZN5utils15getDataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE # -- Begin function _ZN5utils15getDataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.p2align	1, 0x90
	.type	_ZN5utils15getDataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE,@function
_ZN5utils15getDataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE: # @_ZN5utils15getDataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Lfunc_begin1:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception1
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rsi, %r14
	movq	%rdi, %rbx
	movq	_ZN5utils12DATABASE_DIRB5cxx11E(%rip), %r15
	movq	_ZN5utils12DATABASE_DIRB5cxx11E+8(%rip), %r12
	leaq	24(%rsp), %r13
	movq	%r13, -16(%r13)
	movq	$0, -8(%r13)
	movb	$0, (%r13)
	leaq	1(%r12), %rsi
.Ltmp13:
	leaq	8(%rsp), %rdi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEm
.Ltmp14:
# %bb.1:
.Ltmp15:
	leaq	8(%rsp), %rdi
	movq	%r15, %rsi
	movq	%r12, %rdx
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm
.Ltmp16:
# %bb.2:
.Ltmp17:
	leaq	8(%rsp), %rdi
	movl	$.L.str.7, %esi
	movl	$1, %edx
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm
.Ltmp18:
# %bb.3:                                # %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit
	movq	(%r14), %rsi
	movq	8(%r14), %rdx
.Ltmp20:
	leaq	8(%rsp), %rdi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm
.Ltmp21:
# %bb.4:                                # %.noexc
	movq	%rax, %r15
	leaq	56(%rsp), %r14
	movq	%r14, -16(%r14)
	movq	(%rax), %rsi
	movq	%rax, %r12
	addq	$16, %r12
	cmpq	%r12, %rsi
	je	.LBB9_5
# %bb.11:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i
	movq	%rsi, 40(%rsp)
	movq	16(%r15), %rax
	movq	%rax, 56(%rsp)
	movq	8(%r15), %rbp
	jmp	.LBB9_12
.LBB9_5:
	movq	8(%r15), %rbp
	leaq	1(%rbp), %rdx
	movq	%r14, %rdi
	callq	memcpy@PLT
.LBB9_12:
	leaq	40(%rsp), %rdi
	movq	%rbp, 8(%rdi)
	movq	%r12, (%r15)
	movq	$0, 8(%r15)
	movb	$0, 16(%r15)
.Ltmp23:
	movl	$.L.str.9, %esi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc
.Ltmp24:
# %bb.13:                               # %.noexc7
	movq	%rax, %r15
	leaq	16(%rbx), %rdi
	movq	%rdi, (%rbx)
	movq	(%rax), %rsi
	movq	%rax, %r12
	addq	$16, %r12
	cmpq	%r12, %rsi
	je	.LBB9_14
# %bb.15:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i4
	movq	%rsi, (%rbx)
	movq	16(%r15), %rax
	movq	%rax, 16(%rbx)
	movq	8(%r15), %rbp
	jmp	.LBB9_16
.LBB9_14:
	movq	8(%r15), %rbp
	leaq	1(%rbp), %rdx
	callq	memcpy@PLT
.LBB9_16:
	movq	%rbp, 8(%rbx)
	movq	%r12, (%r15)
	movq	$0, 8(%r15)
	movb	$0, 16(%r15)
	movq	40(%rsp), %rdi
	cmpq	%r14, %rdi
	je	.LBB9_18
# %bb.17:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i8
	callq	_ZdlPv
.LBB9_18:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
	movq	8(%rsp), %rdi
	cmpq	%r13, %rdi
	je	.LBB9_20
# %bb.19:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i9
	callq	_ZdlPv
.LBB9_20:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit11
	movq	%rbx, %rax
	addq	$72, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB9_22:
	.cfi_def_cfa_offset 128
.Ltmp25:
	movq	%rax, %rbx
	movq	40(%rsp), %rdi
	cmpq	%r14, %rdi
	je	.LBB9_8
# %bb.23:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i12
	callq	_ZdlPv
	jmp	.LBB9_8
.LBB9_21:
.Ltmp22:
	jmp	.LBB9_7
.LBB9_6:
.Ltmp19:
.LBB9_7:
	movq	%rax, %rbx
.LBB9_8:
	movq	8(%rsp), %rdi
	cmpq	%r13, %rdi
	je	.LBB9_10
# %bb.9:                                # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i
	callq	_ZdlPv
.LBB9_10:                               # %common.resume
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end9:
	.size	_ZN5utils15getDataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .Lfunc_end9-_ZN5utils15getDataFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table9:
.Lexception1:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end1-.Lcst_begin1
.Lcst_begin1:
	.uleb128 .Ltmp13-.Lfunc_begin1          # >> Call Site 1 <<
	.uleb128 .Ltmp18-.Ltmp13                #   Call between .Ltmp13 and .Ltmp18
	.uleb128 .Ltmp19-.Lfunc_begin1          #     jumps to .Ltmp19
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp20-.Lfunc_begin1          # >> Call Site 2 <<
	.uleb128 .Ltmp21-.Ltmp20                #   Call between .Ltmp20 and .Ltmp21
	.uleb128 .Ltmp22-.Lfunc_begin1          #     jumps to .Ltmp22
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp21-.Lfunc_begin1          # >> Call Site 3 <<
	.uleb128 .Ltmp23-.Ltmp21                #   Call between .Ltmp21 and .Ltmp23
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp23-.Lfunc_begin1          # >> Call Site 4 <<
	.uleb128 .Ltmp24-.Ltmp23                #   Call between .Ltmp23 and .Ltmp24
	.uleb128 .Ltmp25-.Lfunc_begin1          #     jumps to .Ltmp25
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp24-.Lfunc_begin1          # >> Call Site 5 <<
	.uleb128 .Lfunc_end9-.Ltmp24            #   Call between .Ltmp24 and .Lfunc_end9
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end1:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.globl	_ZN5utils15getTempFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE # -- Begin function _ZN5utils15getTempFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.p2align	1, 0x90
	.type	_ZN5utils15getTempFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE,@function
_ZN5utils15getTempFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE: # @_ZN5utils15getTempFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
.Lfunc_begin2:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception2
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rsi, %r14
	movq	%rdi, %rbx
	movq	_ZN5utils12DATABASE_DIRB5cxx11E(%rip), %r15
	movq	_ZN5utils12DATABASE_DIRB5cxx11E+8(%rip), %r12
	leaq	24(%rsp), %r13
	movq	%r13, -16(%r13)
	movq	$0, -8(%r13)
	movb	$0, (%r13)
	leaq	1(%r12), %rsi
.Ltmp26:
	leaq	8(%rsp), %rdi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEm
.Ltmp27:
# %bb.1:
.Ltmp28:
	leaq	8(%rsp), %rdi
	movq	%r15, %rsi
	movq	%r12, %rdx
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm
.Ltmp29:
# %bb.2:
.Ltmp30:
	leaq	8(%rsp), %rdi
	movl	$.L.str.7, %esi
	movl	$1, %edx
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm
.Ltmp31:
# %bb.3:                                # %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit
	movq	(%r14), %rsi
	movq	8(%r14), %rdx
.Ltmp33:
	leaq	8(%rsp), %rdi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm
.Ltmp34:
# %bb.4:                                # %.noexc
	movq	%rax, %r15
	leaq	56(%rsp), %r14
	movq	%r14, -16(%r14)
	movq	(%rax), %rsi
	movq	%rax, %r12
	addq	$16, %r12
	cmpq	%r12, %rsi
	je	.LBB10_5
# %bb.11:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i
	movq	%rsi, 40(%rsp)
	movq	16(%r15), %rax
	movq	%rax, 56(%rsp)
	movq	8(%r15), %rbp
	jmp	.LBB10_12
.LBB10_5:
	movq	8(%r15), %rbp
	leaq	1(%rbp), %rdx
	movq	%r14, %rdi
	callq	memcpy@PLT
.LBB10_12:
	leaq	40(%rsp), %rdi
	movq	%rbp, 8(%rdi)
	movq	%r12, (%r15)
	movq	$0, 8(%r15)
	movb	$0, 16(%r15)
.Ltmp36:
	movl	$.L.str.10, %esi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc
.Ltmp37:
# %bb.13:                               # %.noexc7
	movq	%rax, %r15
	leaq	16(%rbx), %rdi
	movq	%rdi, (%rbx)
	movq	(%rax), %rsi
	movq	%rax, %r12
	addq	$16, %r12
	cmpq	%r12, %rsi
	je	.LBB10_14
# %bb.15:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i4
	movq	%rsi, (%rbx)
	movq	16(%r15), %rax
	movq	%rax, 16(%rbx)
	movq	8(%r15), %rbp
	jmp	.LBB10_16
.LBB10_14:
	movq	8(%r15), %rbp
	leaq	1(%rbp), %rdx
	callq	memcpy@PLT
.LBB10_16:
	movq	%rbp, 8(%rbx)
	movq	%r12, (%r15)
	movq	$0, 8(%r15)
	movb	$0, 16(%r15)
	movq	40(%rsp), %rdi
	cmpq	%r14, %rdi
	je	.LBB10_18
# %bb.17:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i8
	callq	_ZdlPv
.LBB10_18:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
	movq	8(%rsp), %rdi
	cmpq	%r13, %rdi
	je	.LBB10_20
# %bb.19:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i9
	callq	_ZdlPv
.LBB10_20:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit11
	movq	%rbx, %rax
	addq	$72, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB10_22:
	.cfi_def_cfa_offset 128
.Ltmp38:
	movq	%rax, %rbx
	movq	40(%rsp), %rdi
	cmpq	%r14, %rdi
	je	.LBB10_8
# %bb.23:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i12
	callq	_ZdlPv
	jmp	.LBB10_8
.LBB10_21:
.Ltmp35:
	jmp	.LBB10_7
.LBB10_6:
.Ltmp32:
.LBB10_7:
	movq	%rax, %rbx
.LBB10_8:
	movq	8(%rsp), %rdi
	cmpq	%r13, %rdi
	je	.LBB10_10
# %bb.9:                                # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i
	callq	_ZdlPv
.LBB10_10:                              # %common.resume
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end10:
	.size	_ZN5utils15getTempFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .Lfunc_end10-_ZN5utils15getTempFileNameERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table10:
.Lexception2:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end2-.Lcst_begin2
.Lcst_begin2:
	.uleb128 .Ltmp26-.Lfunc_begin2          # >> Call Site 1 <<
	.uleb128 .Ltmp31-.Ltmp26                #   Call between .Ltmp26 and .Ltmp31
	.uleb128 .Ltmp32-.Lfunc_begin2          #     jumps to .Ltmp32
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp33-.Lfunc_begin2          # >> Call Site 2 <<
	.uleb128 .Ltmp34-.Ltmp33                #   Call between .Ltmp33 and .Ltmp34
	.uleb128 .Ltmp35-.Lfunc_begin2          #     jumps to .Ltmp35
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp34-.Lfunc_begin2          # >> Call Site 3 <<
	.uleb128 .Ltmp36-.Ltmp34                #   Call between .Ltmp34 and .Ltmp36
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp36-.Lfunc_begin2          # >> Call Site 4 <<
	.uleb128 .Ltmp37-.Ltmp36                #   Call between .Ltmp36 and .Ltmp37
	.uleb128 .Ltmp38-.Lfunc_begin2          #     jumps to .Ltmp38
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp37-.Lfunc_begin2          # >> Call Site 5 <<
	.uleb128 .Lfunc_end10-.Ltmp37           #   Call between .Ltmp37 and .Lfunc_end10
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end2:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.globl	_ZN5utils10fileExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE # -- Begin function _ZN5utils10fileExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.p2align	1, 0x90
	.type	_ZN5utils10fileExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE,@function
_ZN5utils10fileExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE: # @_ZN5utils10fileExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_startproc
# %bb.0:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset %rbx, -16
	movq	(%rdi), %rdi
	movl	$.L.str.11, %esi
	callq	fopen
	movq	%rax, %rbx
	testq	%rax, %rax
	je	.LBB11_2
# %bb.1:
	movq	%rbx, %rdi
	callq	fclose
.LBB11_2:
	testq	%rbx, %rbx
	setne	%al
	popq	%rbx
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end11:
	.size	_ZN5utils10fileExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .Lfunc_end11-_ZN5utils10fileExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_endproc
                                        # -- End function
	.globl	_ZN5utils10loadTablesEv         # -- Begin function _ZN5utils10loadTablesEv
	.p2align	1, 0x90
	.type	_ZN5utils10loadTablesEv,@function
_ZN5utils10loadTablesEv:                # @_ZN5utils10loadTablesEv
.Lfunc_begin3:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception3
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	subq	$584, %rsp                      # imm = 0x248
	.cfi_def_cfa_offset 624
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	leaq	16(%rsp), %r15
	movq	%r15, -16(%r15)
	movq	_ZN5utils18DATABASE_FILE_PATHB5cxx11E(%rip), %rsi
	movq	_ZN5utils18DATABASE_FILE_PATHB5cxx11E+8(%rip), %rdx
	addq	%rsi, %rdx
	movq	%rsp, %rbx
	movq	%rbx, %rdi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag
.Ltmp39:
	leaq	64(%rsp), %rdi
	movq	%rbx, %rsi
	movl	$8, %edx
	callq	_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode
.Ltmp40:
# %bb.1:
	movq	%rsp, %rdi
	callq	_ZN5utils10fileExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	testb	%al, %al
	je	.LBB12_11
# %bb.2:
	leaq	48(%rsp), %r12
	movq	%r12, -16(%r12)
	movq	$0, -8(%r12)
	movb	$0, (%r12)
	leaq	64(%rsp), %rbx
	leaq	32(%rsp), %r14
.LBB12_3:                               # =>This Inner Loop Header: Depth=1
.Ltmp42:
	movq	%rbx, %rdi
	movq	%r14, %rsi
	callq	_ZStrsIcSt11char_traitsIcESaIcEERSt13basic_istreamIT_T0_ES7_RNSt7__cxx1112basic_stringIS4_S5_T1_EE
.Ltmp43:
# %bb.4:                                #   in Loop: Header=BB12_3 Depth=1
	movq	(%rax), %rcx
	movq	-24(%rcx), %rcx
	testb	$5, 32(%rax,%rcx)
	jne	.LBB12_9
# %bb.5:                                #   in Loop: Header=BB12_3 Depth=1
.Ltmp44:
	movl	$_ZN5utils6tablesB5cxx11E, %edi
	movq	%r14, %rsi
	callq	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_
.Ltmp45:
	jmp	.LBB12_3
.LBB12_9:
	movq	32(%rsp), %rdi
	cmpq	%r12, %rdi
	je	.LBB12_11
# %bb.10:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i5
	callq	_ZdlPv
.LBB12_11:
	leaq	64(%rsp), %rdi
	callq	_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev
	movq	(%rsp), %rdi
	cmpq	%r15, %rdi
	je	.LBB12_13
# %bb.12:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i8
	callq	_ZdlPv
.LBB12_13:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit10
	addq	$584, %rsp                      # imm = 0x248
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB12_14:
	.cfi_def_cfa_offset 624
.Ltmp41:
	movq	%rax, %rbx
	jmp	.LBB12_15
.LBB12_6:
.Ltmp46:
	movq	%rax, %rbx
	movq	32(%rsp), %rdi
	cmpq	%r12, %rdi
	je	.LBB12_8
# %bb.7:                                # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i
	callq	_ZdlPv
.LBB12_8:                               # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
	leaq	64(%rsp), %rdi
	callq	_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev
.LBB12_15:
	movq	(%rsp), %rdi
	cmpq	%r15, %rdi
	je	.LBB12_17
# %bb.16:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i11
	callq	_ZdlPv
.LBB12_17:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit13
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end12:
	.size	_ZN5utils10loadTablesEv, .Lfunc_end12-_ZN5utils10loadTablesEv
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table12:
.Lexception3:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end3-.Lcst_begin3
.Lcst_begin3:
	.uleb128 .Lfunc_begin3-.Lfunc_begin3    # >> Call Site 1 <<
	.uleb128 .Ltmp39-.Lfunc_begin3          #   Call between .Lfunc_begin3 and .Ltmp39
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp39-.Lfunc_begin3          # >> Call Site 2 <<
	.uleb128 .Ltmp40-.Ltmp39                #   Call between .Ltmp39 and .Ltmp40
	.uleb128 .Ltmp41-.Lfunc_begin3          #     jumps to .Ltmp41
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp42-.Lfunc_begin3          # >> Call Site 3 <<
	.uleb128 .Ltmp45-.Ltmp42                #   Call between .Ltmp42 and .Ltmp45
	.uleb128 .Ltmp46-.Lfunc_begin3          #     jumps to .Ltmp46
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp45-.Lfunc_begin3          # >> Call Site 4 <<
	.uleb128 .Lfunc_end12-.Ltmp45           #   Call between .Ltmp45 and .Lfunc_end12
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end3:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_,"axG",@progbits,_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_,comdat
	.weak	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_ # -- Begin function _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_
	.p2align	1, 0x90
	.type	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_,@function
_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_: # @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_
	.cfi_startproc
# %bb.0:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset %rbx, -16
	movq	%rsi, %rdx
	movq	%rdi, %rbx
	movq	8(%rdi), %rax
	cmpq	16(%rdi), %rax
	je	.LBB13_2
# %bb.1:
	leaq	16(%rax), %rcx
	movq	%rcx, (%rax)
	movq	(%rdx), %rsi
	movq	8(%rdx), %rdx
	addq	%rsi, %rdx
	movq	%rax, %rdi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag
	addq	$32, 8(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 8
	retq
.LBB13_2:
	.cfi_def_cfa_offset 16
	movq	%rbx, %rdi
	movq	%rax, %rsi
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_ # TAILCALL
.Lfunc_end13:
	.size	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_, .Lfunc_end13-_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_
	.cfi_endproc
                                        # -- End function
	.text
	.globl	_ZN5utils11tableExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE # -- Begin function _ZN5utils11tableExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.p2align	1, 0x90
	.type	_ZN5utils11tableExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE,@function
_ZN5utils11tableExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE: # @_ZN5utils11tableExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_startproc
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	pushq	%rax
	.cfi_def_cfa_offset 64
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdi, %r14
	movq	_ZN5utils6tablesB5cxx11E(%rip), %r15
	movq	_ZN5utils6tablesB5cxx11E+8(%rip), %rax
	cmpq	%rax, %r15
	jne	.LBB14_3
# %bb.1:
	callq	_ZN5utils10loadTablesEv
	movq	_ZN5utils6tablesB5cxx11E(%rip), %r15
	movq	_ZN5utils6tablesB5cxx11E+8(%rip), %rax
	cmpq	%rax, %r15
	je	.LBB14_2
.LBB14_3:
	movq	%rax, %r12
	subq	%r15, %r12
	sarq	$5, %r12
	cmpq	%r15, %rax
	je	.LBB14_4
# %bb.5:                                # %.lr.ph
	movq	(%r14), %rbx
	movq	8(%r14), %r14
	cmpq	$1, %r12
	movq	%r12, %rbp
	adcq	$0, %rbp
	addq	$8, %r15
	xorl	%r13d, %r13d
.LBB14_6:                               # =>This Inner Loop Header: Depth=1
	cmpq	%r14, (%r15)
	jne	.LBB14_9
# %bb.7:                                #   in Loop: Header=BB14_6 Depth=1
	testq	%r14, %r14
	je	.LBB14_11
# %bb.8:                                # %_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_.exit
                                        #   in Loop: Header=BB14_6 Depth=1
	movq	-8(%r15), %rdi
	movq	%rbx, %rsi
	movq	%r14, %rdx
	callq	bcmp@PLT
	testl	%eax, %eax
	je	.LBB14_11
.LBB14_9:                               # %_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_.exit.thread7
                                        #   in Loop: Header=BB14_6 Depth=1
	incq	%r13
	addq	$32, %r15
	cmpq	%r13, %rbp
	jne	.LBB14_6
# %bb.10:
	movq	%rbp, %r13
	jmp	.LBB14_11
.LBB14_4:
	xorl	%r13d, %r13d
.LBB14_11:                              # %_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_.exit.thread
	cmpq	%r13, %r12
	setne	%al
.LBB14_12:
                                        # kill: def $al killed $al killed $eax
	addq	$8, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB14_2:
	.cfi_def_cfa_offset 64
	xorl	%eax, %eax
	jmp	.LBB14_12
.Lfunc_end14:
	.size	_ZN5utils11tableExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .Lfunc_end14-_ZN5utils11tableExistsERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_endproc
                                        # -- End function
	.globl	_ZN5utils8addTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE # -- Begin function _ZN5utils8addTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.p2align	1, 0x90
	.type	_ZN5utils8addTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE,@function
_ZN5utils8addTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE: # @_ZN5utils8addTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_startproc
# %bb.0:
	movq	%rdi, %rsi
	movl	$_ZN5utils6tablesB5cxx11E, %edi
	jmp	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_backERKS5_ # TAILCALL
.Lfunc_end15:
	.size	_ZN5utils8addTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .Lfunc_end15-_ZN5utils8addTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_endproc
                                        # -- End function
	.globl	_ZN5utils9dropTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE # -- Begin function _ZN5utils9dropTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.p2align	1, 0x90
	.type	_ZN5utils9dropTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE,@function
_ZN5utils9dropTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE: # @_ZN5utils9dropTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_startproc
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	pushq	%rax
	.cfi_def_cfa_offset 64
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	_ZN5utils6tablesB5cxx11E+8(%rip), %r13
	movq	_ZN5utils6tablesB5cxx11E(%rip), %rbx
	subq	%rbx, %r13
	je	.LBB16_1
# %bb.2:                                # %.lr.ph
	sarq	$5, %r13
	movq	(%rdi), %r14
	movq	8(%rdi), %r15
	cmpq	$1, %r13
	adcq	$0, %r13
	leaq	8(%rbx), %rbp
	xorl	%r12d, %r12d
.LBB16_3:                               # =>This Inner Loop Header: Depth=1
	cmpq	%r15, (%rbp)
	jne	.LBB16_6
# %bb.4:                                #   in Loop: Header=BB16_3 Depth=1
	testq	%r15, %r15
	je	.LBB16_8
# %bb.5:                                # %_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_.exit
                                        #   in Loop: Header=BB16_3 Depth=1
	movq	-8(%rbp), %rdi
	movq	%r14, %rsi
	movq	%r15, %rdx
	callq	bcmp@PLT
	testl	%eax, %eax
	je	.LBB16_8
.LBB16_6:                               # %_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_.exit.thread7
                                        #   in Loop: Header=BB16_3 Depth=1
	incq	%r12
	addq	$32, %rbp
	cmpq	%r12, %r13
	jne	.LBB16_3
# %bb.7:
	movq	%r13, %r12
	jmp	.LBB16_8
.LBB16_1:
	xorl	%r12d, %r12d
.LBB16_8:                               # %_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_.exit.thread
	shlq	$5, %r12
	addq	%r12, %rbx
	movl	$_ZN5utils6tablesB5cxx11E, %edi
	movq	%rbx, %rsi
	addq	$8, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	jmp	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE8_M_eraseEN9__gnu_cxx17__normal_iteratorIPS5_S7_EE # TAILCALL
.Lfunc_end16:
	.size	_ZN5utils9dropTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, .Lfunc_end16-_ZN5utils9dropTableERNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE
	.cfi_endproc
                                        # -- End function
	.globl	_ZN5utils13writeDatabaseEv      # -- Begin function _ZN5utils13writeDatabaseEv
	.p2align	1, 0x90
	.type	_ZN5utils13writeDatabaseEv,@function
_ZN5utils13writeDatabaseEv:             # @_ZN5utils13writeDatabaseEv
.Lfunc_begin4:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception4
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r13
	.cfi_def_cfa_offset 32
	pushq	%r12
	.cfi_def_cfa_offset 40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	subq	$544, %rsp                      # imm = 0x220
	.cfi_def_cfa_offset 592
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r13, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	leaq	16(%rsp), %r15
	movq	%r15, -16(%r15)
	movq	_ZN5utils18DATABASE_FILE_PATHB5cxx11E(%rip), %rsi
	movq	_ZN5utils18DATABASE_FILE_PATHB5cxx11E+8(%rip), %rdx
	addq	%rsi, %rdx
	movq	%rsp, %rbx
	movq	%rbx, %rdi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag
.Ltmp47:
	leaq	32(%rsp), %rdi
	movq	%rbx, %rsi
	movl	$16, %edx
	callq	_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode
.Ltmp48:
# %bb.1:
	movq	_ZN5utils6tablesB5cxx11E(%rip), %r12
	movq	_ZN5utils6tablesB5cxx11E+8(%rip), %r13
	cmpq	%r13, %r12
	je	.LBB17_8
# %bb.2:
	leaq	32(%rsp), %rbx
.LBB17_3:                               # %.lr.ph
                                        # =>This Inner Loop Header: Depth=1
	movq	(%r12), %rsi
	movq	8(%r12), %rdx
.Ltmp50:
	movq	%rbx, %rdi
	callq	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
.Ltmp51:
# %bb.4:                                # %_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE.exit
                                        #   in Loop: Header=BB17_3 Depth=1
	movq	%rax, %r14
	movq	(%rax), %rax
	movq	-24(%rax), %rdi
	addq	%r14, %rdi
.Ltmp52:
	movl	$10, %esi
	callq	_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc
.Ltmp53:
# %bb.5:                                # %.noexc
                                        #   in Loop: Header=BB17_3 Depth=1
.Ltmp54:
	movsbl	%al, %esi
	movq	%r14, %rdi
	callq	_ZNSo3putEc
.Ltmp55:
# %bb.6:                                # %.noexc9
                                        #   in Loop: Header=BB17_3 Depth=1
.Ltmp56:
	movq	%rax, %rdi
	callq	_ZNSo5flushEv
.Ltmp57:
# %bb.7:                                # %_ZNSolsEPFRSoS_E.exit
                                        #   in Loop: Header=BB17_3 Depth=1
	addq	$32, %r12
	cmpq	%r13, %r12
	jne	.LBB17_3
.LBB17_8:                               # %._crit_edge
.Ltmp59:
	leaq	32(%rsp), %rdi
	callq	_ZNSt14basic_ofstreamIcSt11char_traitsIcEE5closeEv
.Ltmp60:
# %bb.9:
	movq	_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE(%rip), %rax
	leaq	40(%rsp), %rdi
	movq	%rax, -8(%rdi)
	movq	_ZTTSt14basic_ofstreamIcSt11char_traitsIcEE+24(%rip), %rcx
	movq	-24(%rax), %rax
	movq	%rcx, 32(%rsp,%rax)
	callq	_ZNSt13basic_filebufIcSt11char_traitsIcEED2Ev
	leaq	280(%rsp), %rdi
	callq	_ZNSt8ios_baseD2Ev
	movq	(%rsp), %rdi
	cmpq	%r15, %rdi
	je	.LBB17_11
# %bb.10:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i
	callq	_ZdlPv
.LBB17_11:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
	addq	$544, %rsp                      # imm = 0x220
	.cfi_def_cfa_offset 48
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB17_12:
	.cfi_def_cfa_offset 592
.Ltmp61:
	jmp	.LBB17_13
.LBB17_17:
.Ltmp49:
	movq	%rax, %rbx
	jmp	.LBB17_14
.LBB17_18:
.Ltmp58:
.LBB17_13:
	movq	%rax, %rbx
	leaq	32(%rsp), %rdi
	callq	_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev
.LBB17_14:
	movq	(%rsp), %rdi
	cmpq	%r15, %rdi
	je	.LBB17_16
# %bb.15:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i6
	callq	_ZdlPv
.LBB17_16:                              # %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit8
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end17:
	.size	_ZN5utils13writeDatabaseEv, .Lfunc_end17-_ZN5utils13writeDatabaseEv
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table17:
.Lexception4:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end4-.Lcst_begin4
.Lcst_begin4:
	.uleb128 .Lfunc_begin4-.Lfunc_begin4    # >> Call Site 1 <<
	.uleb128 .Ltmp47-.Lfunc_begin4          #   Call between .Lfunc_begin4 and .Ltmp47
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp47-.Lfunc_begin4          # >> Call Site 2 <<
	.uleb128 .Ltmp48-.Ltmp47                #   Call between .Ltmp47 and .Ltmp48
	.uleb128 .Ltmp49-.Lfunc_begin4          #     jumps to .Ltmp49
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp50-.Lfunc_begin4          # >> Call Site 3 <<
	.uleb128 .Ltmp57-.Ltmp50                #   Call between .Ltmp50 and .Ltmp57
	.uleb128 .Ltmp58-.Lfunc_begin4          #     jumps to .Ltmp58
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp59-.Lfunc_begin4          # >> Call Site 4 <<
	.uleb128 .Ltmp60-.Ltmp59                #   Call between .Ltmp59 and .Ltmp60
	.uleb128 .Ltmp61-.Lfunc_begin4          #     jumps to .Ltmp61
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp60-.Lfunc_begin4          # >> Call Site 5 <<
	.uleb128 .Lfunc_end17-.Ltmp60           #   Call between .Ltmp60 and .Lfunc_end17
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end4:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.globl	_ZN5utils8printRowEPvRSt6vectorI7ColTypeSaIS2_EE # -- Begin function _ZN5utils8printRowEPvRSt6vectorI7ColTypeSaIS2_EE
	.p2align	1, 0x90
	.type	_ZN5utils8printRowEPvRSt6vectorI7ColTypeSaIS2_EE,@function
_ZN5utils8printRowEPvRSt6vectorI7ColTypeSaIS2_EE: # @_ZN5utils8printRowEPvRSt6vectorI7ColTypeSaIS2_EE
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r13
	.cfi_def_cfa_offset 32
	pushq	%r12
	.cfi_def_cfa_offset 40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r13, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	(%rsi), %r15
	movq	8(%rsi), %r12
	cmpq	%r12, %r15
	je	.LBB18_12
# %bb.1:                                # %.lr.ph.preheader
	movq	%rsi, %rbx
	movq	%rdi, %r14
	xorl	%r13d, %r13d
.LBB18_2:                               # %.lr.ph
                                        # =>This Inner Loop Header: Depth=1
	movl	(%r15), %eax
	cmpl	$3, %eax
	je	.LBB18_8
# %bb.3:                                # %.lr.ph
                                        #   in Loop: Header=BB18_2 Depth=1
	cmpl	$1, %eax
	je	.LBB18_7
# %bb.4:                                # %.lr.ph
                                        #   in Loop: Header=BB18_2 Depth=1
	testl	%eax, %eax
	jne	.LBB18_9
# %bb.5:                                #   in Loop: Header=BB18_2 Depth=1
	movslq	%r13d, %rax
	movl	(%r14,%rax), %esi
	movl	$.L.str.12, %edi
	xorl	%eax, %eax
	callq	printf
	jmp	.LBB18_6
.LBB18_7:                               #   in Loop: Header=BB18_2 Depth=1
	movslq	%r13d, %rax
	xorps	%xmm0, %xmm0
	cvtss2sd	(%r14,%rax), %xmm0
	movl	$.L.str.13, %edi
	movb	$1, %al
	callq	printf
.LBB18_6:                               #   in Loop: Header=BB18_2 Depth=1
	addl	$4, %r13d
	jmp	.LBB18_9
.LBB18_8:                               #   in Loop: Header=BB18_2 Depth=1
	movslq	%r13d, %r13
	leaq	(%r14,%r13), %rsi
	movl	$.L.str.14, %edi
	xorl	%eax, %eax
	callq	printf
	addl	4(%r15), %r13d
.LBB18_9:                               #   in Loop: Header=BB18_2 Depth=1
	movq	8(%rbx), %rax
	addq	$-20, %rax
	cmpq	%rax, %r15
	je	.LBB18_11
# %bb.10:                               #   in Loop: Header=BB18_2 Depth=1
	movl	$.L.str.15, %edi
	xorl	%eax, %eax
	callq	printf
.LBB18_11:                              #   in Loop: Header=BB18_2 Depth=1
	addq	$20, %r15
	cmpq	%r12, %r15
	jne	.LBB18_2
.LBB18_12:                              # %._crit_edge
	movl	$10, %edi
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	jmp	putchar@PLT                     # TAILCALL
.Lfunc_end18:
	.size	_ZN5utils8printRowEPvRSt6vectorI7ColTypeSaIS2_EE, .Lfunc_end18-_ZN5utils8printRowEPvRSt6vectorI7ColTypeSaIS2_EE
	.cfi_endproc
                                        # -- End function
	.globl	_ZN5utils13printMultipleEPvRSt6vectorI7ColTypeSaIS2_EEii # -- Begin function _ZN5utils13printMultipleEPvRSt6vectorI7ColTypeSaIS2_EEii
	.p2align	1, 0x90
	.type	_ZN5utils13printMultipleEPvRSt6vectorI7ColTypeSaIS2_EEii,@function
_ZN5utils13printMultipleEPvRSt6vectorI7ColTypeSaIS2_EEii: # @_ZN5utils13printMultipleEPvRSt6vectorI7ColTypeSaIS2_EEii
	.cfi_startproc
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r12
	.cfi_def_cfa_offset 40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movl	%ecx, %ebx
	movl	%edx, %ebp
	movq	%rsi, %r14
	movq	%rdi, %r15
	movl	$10, %edi
	callq	putchar@PLT
	testl	%ebx, %ebx
	jle	.LBB19_3
# %bb.1:                                # %.lr.ph.preheader
	movslq	%ebp, %r12
.LBB19_2:                               # %.lr.ph
                                        # =>This Inner Loop Header: Depth=1
	movq	%r15, %rdi
	movq	%r14, %rsi
	callq	_ZN5utils8printRowEPvRSt6vectorI7ColTypeSaIS2_EE
	addq	%r12, %r15
	decl	%ebx
	jne	.LBB19_2
.LBB19_3:                               # %._crit_edge
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end19:
	.size	_ZN5utils13printMultipleEPvRSt6vectorI7ColTypeSaIS2_EEii, .Lfunc_end19-_ZN5utils13printMultipleEPvRSt6vectorI7ColTypeSaIS2_EEii
	.cfi_endproc
                                        # -- End function
	.section	.text.__clang_call_terminate,"axG",@progbits,__clang_call_terminate,comdat
	.hidden	__clang_call_terminate          # -- Begin function __clang_call_terminate
	.weak	__clang_call_terminate
	.type	__clang_call_terminate,@function
__clang_call_terminate:                 # @__clang_call_terminate
	.cfi_startproc
# %bb.0:
	pushq	%rax
	.cfi_def_cfa_offset 16
	callq	__cxa_begin_catch
	callq	_ZSt9terminatev
.Lfunc_end20:
	.size	__clang_call_terminate, .Lfunc_end20-__clang_call_terminate
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag,"axG",@progbits,_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag,comdat
	.weak	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag # -- Begin function _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag
	.p2align	1, 0x90
	.type	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag,@function
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag: # @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	pushq	%rax
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rdx, %r14
	movq	%rsi, %r15
	movq	%rdi, %rbx
	subq	%rsi, %r14
	movq	%r14, (%rsp)
	cmpq	$15, %r14
	jbe	.LBB21_1
# %bb.2:
	movq	%rsp, %r12
	movq	%rbx, %rdi
	movq	%r12, %rsi
	xorl	%edx, %edx
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm
	movq	%rax, (%rbx)
	movq	(%r12), %rcx
	movq	%rcx, 16(%rbx)
	jmp	.LBB21_3
.LBB21_1:                               # %._crit_edge
	movq	(%rbx), %rax
.LBB21_3:
	testq	%r14, %r14
	je	.LBB21_7
# %bb.4:
	cmpq	$1, %r14
	jne	.LBB21_6
# %bb.5:
	movb	(%r15), %cl
	movb	%cl, (%rax)
	jmp	.LBB21_7
.LBB21_6:
	movq	%rax, %rdi
	movq	%r15, %rsi
	movq	%r14, %rdx
	callq	memcpy@PLT
.LBB21_7:                               # %_ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tagEN6_GuardD2Ev.exit
	movq	(%rsp), %rax
	movq	%rax, 8(%rbx)
	movq	(%rbx), %rcx
	movb	$0, (%rcx,%rax)
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end21:
	.size	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag, .Lfunc_end21-_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_,"axG",@progbits,_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_,comdat
	.weak	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_ # -- Begin function _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_
	.p2align	1, 0x90
	.type	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_,@function
_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_: # @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_
.Lfunc_begin5:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception5
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, %rbp
	movq	%rsi, %r13
	movq	%rdi, %rbx
	movl	$1, %esi
	movl	$.L.str.22, %edx
	callq	_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc
	movq	%rax, %r14
	movq	(%rbx), %rax
	movq	8(%rbx), %r15
	movq	%r13, %r12
	movq	%rax, (%rsp)                    # 8-byte Spill
	subq	%rax, %r12
	sarq	$5, %r12
	testq	%r14, %r14
	je	.LBB22_1
# %bb.2:
	movq	%rbx, %rdi
	movq	%r14, %rsi
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv
	jmp	.LBB22_3
.LBB22_1:
	xorl	%eax, %eax
.LBB22_3:                               # %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_M_allocateEm.exit
	shlq	$5, %r12
	leaq	(%rax,%r12), %rdi
	leaq	(%rax,%r12), %rcx
	addq	$16, %rcx
	movq	%rcx, -16(%rcx)
	movq	(%rbp), %rsi
	movq	8(%rbp), %rdx
	addq	%rsi, %rdx
.Ltmp62:
	movq	%rax, %r12
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag
.Ltmp63:
# %bb.4:                                # %_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE9constructIS5_JRKS5_EEEvRS6_PT_DpOT0_.exit
	movq	%r12, %rbp
	movq	(%rsp), %rdi                    # 8-byte Reload
	cmpq	%r13, %rdi
	movq	%r12, 8(%rsp)                   # 8-byte Spill
	je	.LBB22_11
# %bb.5:                                # %.lr.ph.i.i.i.preheader
	movq	%rbx, 16(%rsp)                  # 8-byte Spill
	leaq	16(%r12), %rbp
	leaq	16(%rdi), %r12
.LBB22_6:                               # %.lr.ph.i.i.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rbp, -16(%rbp)
	movq	-16(%r12), %rsi
	cmpq	%rsi, %r12
	je	.LBB22_7
# %bb.8:                                # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i
                                        #   in Loop: Header=BB22_6 Depth=1
	movq	%rsi, -16(%rbp)
	movq	(%r12), %rax
	movq	%rax, (%rbp)
	movq	-8(%r12), %rbx
	jmp	.LBB22_9
.LBB22_7:                               #   in Loop: Header=BB22_6 Depth=1
	movq	-8(%r12), %rbx
	leaq	1(%rbx), %rdx
	movq	%rbp, %rdi
	callq	memcpy@PLT
.LBB22_9:                               # %_ZSt19__relocate_object_aINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_EEvPT_PT0_RT1_.exit.i.i.i
                                        #   in Loop: Header=BB22_6 Depth=1
	movq	%rbx, -8(%rbp)
	movq	%r12, -16(%r12)
	movq	$0, -8(%r12)
	movb	$0, (%r12)
	addq	$32, %rbp
	leaq	32(%r12), %rax
	addq	$16, %r12
	cmpq	%r13, %r12
	movq	%rax, %r12
	jne	.LBB22_6
# %bb.10:                               # %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.exit.loopexit
	addq	$-16, %rbp
	movq	16(%rsp), %rbx                  # 8-byte Reload
	movq	(%rsp), %rdi                    # 8-byte Reload
	movq	8(%rsp), %r12                   # 8-byte Reload
.LBB22_11:                              # %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.exit
	cmpq	%r13, %r15
	je	.LBB22_12
# %bb.13:                               # %.lr.ph.i.i.i27.preheader
	movq	%rbx, %r12
	addq	$48, %rbp
	addq	$16, %r13
.LBB22_14:                              # %.lr.ph.i.i.i27
                                        # =>This Inner Loop Header: Depth=1
	movq	%rbp, -16(%rbp)
	movq	-16(%r13), %rsi
	cmpq	%rsi, %r13
	je	.LBB22_15
# %bb.16:                               # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i.i.i30
                                        #   in Loop: Header=BB22_14 Depth=1
	movq	%rsi, -16(%rbp)
	movq	(%r13), %rax
	movq	%rax, (%rbp)
	movq	-8(%r13), %rbx
	jmp	.LBB22_17
.LBB22_15:                              #   in Loop: Header=BB22_14 Depth=1
	movq	-8(%r13), %rbx
	leaq	1(%rbx), %rdx
	movq	%rbp, %rdi
	callq	memcpy@PLT
.LBB22_17:                              # %_ZSt19__relocate_object_aINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_EEvPT_PT0_RT1_.exit.i.i.i33
                                        #   in Loop: Header=BB22_14 Depth=1
	movq	%rbx, -8(%rbp)
	movq	%r13, -16(%r13)
	movq	$0, -8(%r13)
	movb	$0, (%r13)
	addq	$32, %rbp
	leaq	32(%r13), %rax
	addq	$16, %r13
	cmpq	%r15, %r13
	movq	%rax, %r13
	jne	.LBB22_14
# %bb.18:                               # %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.exit36.loopexit
	addq	$-16, %rbp
	movq	%r12, %rbx
	movq	(%rsp), %rdi                    # 8-byte Reload
	movq	8(%rsp), %r12                   # 8-byte Reload
	jmp	.LBB22_19
.LBB22_12:
	addq	$32, %rbp
.LBB22_19:                              # %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.exit36
	testq	%rdi, %rdi
	je	.LBB22_21
# %bb.20:
	callq	_ZdlPv
.LBB22_21:                              # %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE13_M_deallocateEPS5_m.exit
	movq	%r12, (%rbx)
	movq	%rbp, 8(%rbx)
	shlq	$5, %r14
	addq	%r12, %r14
	movq	%r14, 16(%rbx)
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB22_25:
	.cfi_def_cfa_offset 80
.Ltmp64:
	movq	%rax, %rdi
	callq	__cxa_begin_catch
	movq	%r12, %rdi
	callq	_ZdlPv
.Ltmp65:
	callq	__cxa_rethrow
.Ltmp66:
# %bb.26:
.LBB22_22:
.Ltmp67:
	movq	%rax, %rbx
.Ltmp68:
	callq	__cxa_end_catch
.Ltmp69:
# %bb.23:
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.LBB22_24:
.Ltmp70:
	movq	%rax, %rdi
	callq	__clang_call_terminate
.Lfunc_end22:
	.size	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_, .Lfunc_end22-_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_
	.cfi_endproc
	.section	.gcc_except_table._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_,"aG",@progbits,_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJRKS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_,comdat
	.p2align	2, 0x0
GCC_except_table22:
.Lexception5:
	.byte	255                             # @LPStart Encoding = omit
	.byte	3                               # @TType Encoding = udata4
	.uleb128 .Lttbase0-.Lttbaseref0
.Lttbaseref0:
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end5-.Lcst_begin5
.Lcst_begin5:
	.uleb128 .Lfunc_begin5-.Lfunc_begin5    # >> Call Site 1 <<
	.uleb128 .Ltmp62-.Lfunc_begin5          #   Call between .Lfunc_begin5 and .Ltmp62
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp62-.Lfunc_begin5          # >> Call Site 2 <<
	.uleb128 .Ltmp63-.Ltmp62                #   Call between .Ltmp62 and .Ltmp63
	.uleb128 .Ltmp64-.Lfunc_begin5          #     jumps to .Ltmp64
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp63-.Lfunc_begin5          # >> Call Site 3 <<
	.uleb128 .Ltmp65-.Ltmp63                #   Call between .Ltmp63 and .Ltmp65
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp65-.Lfunc_begin5          # >> Call Site 4 <<
	.uleb128 .Ltmp66-.Ltmp65                #   Call between .Ltmp65 and .Ltmp66
	.uleb128 .Ltmp67-.Lfunc_begin5          #     jumps to .Ltmp67
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp68-.Lfunc_begin5          # >> Call Site 5 <<
	.uleb128 .Ltmp69-.Ltmp68                #   Call between .Ltmp68 and .Ltmp69
	.uleb128 .Ltmp70-.Lfunc_begin5          #     jumps to .Ltmp70
	.byte	1                               #   On action: 1
	.uleb128 .Ltmp69-.Lfunc_begin5          # >> Call Site 6 <<
	.uleb128 .Lfunc_end22-.Ltmp69           #   Call between .Ltmp69 and .Lfunc_end22
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end5:
	.byte	1                               # >> Action Record 1 <<
                                        #   Catch TypeInfo 1
	.byte	0                               #   No further actions
	.p2align	2, 0x0
                                        # >> Catch TypeInfos <<
	.long	0                               # TypeInfo 1
.Lttbase0:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc,"axG",@progbits,_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc,comdat
	.weak	_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc # -- Begin function _ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc
	.p2align	1, 0x90
	.type	_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc,@function
_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc: # @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc
	.cfi_startproc
# %bb.0:
	movabsq	$288230376151711743, %rcx       # imm = 0x3FFFFFFFFFFFFFF
	movq	8(%rdi), %r8
	subq	(%rdi), %r8
	sarq	$5, %r8
	movq	%rcx, %rax
	subq	%r8, %rax
	cmpq	%rsi, %rax
	jb	.LBB23_2
# %bb.1:
	cmpq	%rsi, %r8
	cmovaq	%r8, %rsi
	leaq	(%rsi,%r8), %rax
	cmpq	%rcx, %rax
	cmovaeq	%rcx, %rax
	addq	%r8, %rsi
	cmovbq	%rcx, %rax
	retq
.LBB23_2:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movq	%rdx, %rdi
	callq	_ZSt20__throw_length_errorPKc
.Lfunc_end23:
	.size	_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc, .Lfunc_end23-_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv,"axG",@progbits,_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv,comdat
	.weak	_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv # -- Begin function _ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv
	.p2align	1, 0x90
	.type	_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv,@function
_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv: # @_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv
	.cfi_startproc
# %bb.0:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movq	%rsi, %rax
	shrq	$58, %rax
	jne	.LBB24_1
# %bb.3:
	shlq	$5, %rsi
	movq	%rsi, %rdi
	popq	%rax
	.cfi_def_cfa_offset 8
	jmp	_Znwm                           # TAILCALL
.LBB24_1:
	.cfi_def_cfa_offset 16
	shrq	$59, %rsi
	je	.LBB24_2
# %bb.4:
	callq	_ZSt28__throw_bad_array_new_lengthv
.LBB24_2:
	callq	_ZSt17__throw_bad_allocv
.Lfunc_end24:
	.size	_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv, .Lfunc_end24-_ZNSt15__new_allocatorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE8allocateEmPKv
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE8_M_eraseEN9__gnu_cxx17__normal_iteratorIPS5_S7_EE,"axG",@progbits,_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE8_M_eraseEN9__gnu_cxx17__normal_iteratorIPS5_S7_EE,comdat
	.weak	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE8_M_eraseEN9__gnu_cxx17__normal_iteratorIPS5_S7_EE # -- Begin function _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE8_M_eraseEN9__gnu_cxx17__normal_iteratorIPS5_S7_EE
	.p2align	1, 0x90
	.type	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE8_M_eraseEN9__gnu_cxx17__normal_iteratorIPS5_S7_EE,@function
_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE8_M_eraseEN9__gnu_cxx17__normal_iteratorIPS5_S7_EE: # @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE8_M_eraseEN9__gnu_cxx17__normal_iteratorIPS5_S7_EE
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	pushq	%rax
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rsi, %rbx
	movq	%rdi, %r14
	leaq	32(%rsi), %rcx
	movq	8(%rdi), %rax
	cmpq	%rax, %rcx
	je	.LBB25_1
# %bb.2:
	movq	%rax, %r12
	subq	%rcx, %r12
	sarq	$5, %r12
	testq	%r12, %r12
	jle	.LBB25_6
# %bb.3:                                # %.lr.ph.i.i.i.i.i.preheader
	incq	%r12
	movq	%rbx, %rdi
.LBB25_4:                               # %.lr.ph.i.i.i.i.i
                                        # =>This Inner Loop Header: Depth=1
	leaq	32(%rdi), %r15
	movq	%r15, %rsi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_
	decq	%r12
	movq	%r15, %rdi
	cmpq	$1, %r12
	ja	.LBB25_4
# %bb.5:                                # %_ZSt4moveIN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS7_SaIS7_EEEESC_ET0_T_SE_SD_.exit.loopexit
	movq	8(%r14), %rax
	jmp	.LBB25_6
.LBB25_1:
	movq	%rcx, %rax
.LBB25_6:                               # %_ZSt4moveIN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS7_SaIS7_EEEESC_ET0_T_SE_SD_.exit
	leaq	-32(%rax), %rcx
	movq	%rcx, 8(%r14)
	movq	-32(%rax), %rdi
	addq	$-16, %rax
	cmpq	%rax, %rdi
	je	.LBB25_8
# %bb.7:                                # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i
	callq	_ZdlPv
.LBB25_8:                               # %_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE7destroyIS5_EEvRS6_PT_.exit
	movq	%rbx, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end25:
	.size	_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE8_M_eraseEN9__gnu_cxx17__normal_iteratorIPS5_S7_EE, .Lfunc_end25-_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE8_M_eraseEN9__gnu_cxx17__normal_iteratorIPS5_S7_EE
	.cfi_endproc
                                        # -- End function
	.section	.text.startup,"ax",@progbits
	.type	_GLOBAL__sub_I_utils.hip,@function # -- Begin function _GLOBAL__sub_I_utils.hip
_GLOBAL__sub_I_utils.hip:               # @_GLOBAL__sub_I_utils.hip
.Lfunc_begin6:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception6
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	$_ZN5utils12DATABASE_DIRB5cxx11E+16, _ZN5utils12DATABASE_DIRB5cxx11E(%rip)
	movl	$1143942702, _ZN5utils12DATABASE_DIRB5cxx11E+16(%rip) # imm = 0x442F2E2E
	movw	$66, _ZN5utils12DATABASE_DIRB5cxx11E+20(%rip)
	movq	$5, _ZN5utils12DATABASE_DIRB5cxx11E+8(%rip)
	movl	$_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev, %edi
	movl	$_ZN5utils12DATABASE_DIRB5cxx11E, %esi
	movl	$__dso_handle, %edx
	callq	__cxa_atexit
	movq	_ZN5utils12DATABASE_DIRB5cxx11E(%rip), %rbx
	movq	_ZN5utils12DATABASE_DIRB5cxx11E+8(%rip), %r14
	movq	$_ZN5utils18DATABASE_FILE_PATHB5cxx11E+16, _ZN5utils18DATABASE_FILE_PATHB5cxx11E(%rip)
	movq	$0, _ZN5utils18DATABASE_FILE_PATHB5cxx11E+8(%rip)
	movb	$0, _ZN5utils18DATABASE_FILE_PATHB5cxx11E+16(%rip)
	leaq	9(%r14), %rsi
.Ltmp71:
	movl	$_ZN5utils18DATABASE_FILE_PATHB5cxx11E, %edi
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEm
.Ltmp72:
# %bb.1:
.Ltmp73:
	movl	$_ZN5utils18DATABASE_FILE_PATHB5cxx11E, %edi
	movq	%rbx, %rsi
	movq	%r14, %rdx
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm
.Ltmp74:
# %bb.2:
.Ltmp75:
	movl	$_ZN5utils18DATABASE_FILE_PATHB5cxx11E, %edi
	movl	$.L.str.2, %esi
	movl	$9, %edx
	callq	_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm
.Ltmp76:
# %bb.3:                                # %__cxx_global_var_init.1.exit
	movl	$_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev, %edi
	movl	$_ZN5utils18DATABASE_FILE_PATHB5cxx11E, %esi
	movl	$__dso_handle, %edx
	callq	__cxa_atexit
	xorps	%xmm0, %xmm0
	movups	%xmm0, _ZN5utils6tablesB5cxx11E(%rip)
	movq	$0, _ZN5utils6tablesB5cxx11E+16(%rip)
	movl	$_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev, %edi
	movl	$_ZN5utils6tablesB5cxx11E, %esi
	movl	$__dso_handle, %edx
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	jmp	__cxa_atexit                    # TAILCALL
.LBB26_4:
	.cfi_def_cfa_offset 32
.Ltmp77:
	movq	%rax, %rbx
	movq	_ZN5utils18DATABASE_FILE_PATHB5cxx11E(%rip), %rdi
	cmpq	$_ZN5utils18DATABASE_FILE_PATHB5cxx11E+16, %rdi
	je	.LBB26_6
# %bb.5:                                # %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i
	callq	_ZdlPv
.LBB26_6:                               # %.body.i.i
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end26:
	.size	_GLOBAL__sub_I_utils.hip, .Lfunc_end26-_GLOBAL__sub_I_utils.hip
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table26:
.Lexception6:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end6-.Lcst_begin6
.Lcst_begin6:
	.uleb128 .Ltmp71-.Lfunc_begin6          # >> Call Site 1 <<
	.uleb128 .Ltmp76-.Ltmp71                #   Call between .Ltmp71 and .Ltmp76
	.uleb128 .Ltmp77-.Lfunc_begin6          #     jumps to .Ltmp77
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp76-.Lfunc_begin6          # >> Call Site 2 <<
	.uleb128 .Lfunc_end26-.Ltmp76           #   Call between .Ltmp76 and .Lfunc_end26
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end6:
	.p2align	2, 0x0
                                        # -- End function
	.type	_ZN5utils12DATABASE_DIRB5cxx11E,@object # @_ZN5utils12DATABASE_DIRB5cxx11E
	.bss
	.globl	_ZN5utils12DATABASE_DIRB5cxx11E
	.p2align	3, 0x0
_ZN5utils12DATABASE_DIRB5cxx11E:
	.zero	32
	.size	_ZN5utils12DATABASE_DIRB5cxx11E, 32

	.type	.L.str,@object                  # @.str
	.section	.rodata.str1.1,"aMS",@progbits,1
.L.str:
	.asciz	"../DB"
	.size	.L.str, 6

	.hidden	__dso_handle
	.type	_ZN5utils18DATABASE_FILE_PATHB5cxx11E,@object # @_ZN5utils18DATABASE_FILE_PATHB5cxx11E
	.bss
	.globl	_ZN5utils18DATABASE_FILE_PATHB5cxx11E
	.p2align	3, 0x0
_ZN5utils18DATABASE_FILE_PATHB5cxx11E:
	.zero	32
	.size	_ZN5utils18DATABASE_FILE_PATHB5cxx11E, 32

	.type	.L.str.2,@object                # @.str.2
	.section	.rodata.str1.1,"aMS",@progbits,1
.L.str.2:
	.asciz	"/Database"
	.size	.L.str.2, 10

	.type	_ZN5utils6tablesB5cxx11E,@object # @_ZN5utils6tablesB5cxx11E
	.bss
	.globl	_ZN5utils6tablesB5cxx11E
	.p2align	3, 0x0
_ZN5utils6tablesB5cxx11E:
	.zero	24
	.size	_ZN5utils6tablesB5cxx11E, 24

	.type	.L.str.4,@object                # @.str.4
	.section	.rodata.str1.1,"aMS",@progbits,1
.L.str.4:
	.asciz	"\""
	.size	.L.str.4, 2

	.type	.L.str.5,@object                # @.str.5
.L.str.5:
	.asciz	"is not a valid query"
	.size	.L.str.5, 21

	.type	.L.str.6,@object                # @.str.6
.L.str.6:
	.asciz	"Error: "
	.size	.L.str.6, 8

	.type	.L.str.7,@object                # @.str.7
.L.str.7:
	.asciz	"/"
	.size	.L.str.7, 2

	.type	.L.str.8,@object                # @.str.8
.L.str.8:
	.asciz	".mdata"
	.size	.L.str.8, 7

	.type	.L.str.9,@object                # @.str.9
.L.str.9:
	.asciz	".data"
	.size	.L.str.9, 6

	.type	.L.str.10,@object               # @.str.10
.L.str.10:
	.asciz	".temp"
	.size	.L.str.10, 6

	.type	.L.str.11,@object               # @.str.11
.L.str.11:
	.asciz	"r"
	.size	.L.str.11, 2

	.type	.L.str.12,@object               # @.str.12
.L.str.12:
	.asciz	"%d"
	.size	.L.str.12, 3

	.type	.L.str.13,@object               # @.str.13
.L.str.13:
	.asciz	"%f"
	.size	.L.str.13, 3

	.type	.L.str.14,@object               # @.str.14
.L.str.14:
	.asciz	"%s"
	.size	.L.str.14, 3

	.type	.L.str.15,@object               # @.str.15
.L.str.15:
	.asciz	", "
	.size	.L.str.15, 3

	.type	.L.str.22,@object               # @.str.22
.L.str.22:
	.asciz	"vector::_M_realloc_insert"
	.size	.L.str.22, 26

	.section	.init_array,"aw",@init_array
	.p2align	3, 0x0
	.quad	_GLOBAL__sub_I_utils.hip
	.type	__hip_cuid_,@object             # @__hip_cuid_
	.bss
	.globl	__hip_cuid_
__hip_cuid_:
	.byte	0                               # 0x0
	.size	__hip_cuid_, 1

	.ident	"AMD clang version 18.0.0git (https://github.com/RadeonOpenCompute/llvm-project roc-6.3.2 25012 e5bf7e55c91490b07c49d8960fa7983d864936c4)"
	.section	".note.GNU-stack","",@progbits
	.addrsig
	.addrsig_sym __gxx_personality_v0
	.addrsig_sym _GLOBAL__sub_I_utils.hip
	.addrsig_sym _Unwind_Resume
	.addrsig_sym _ZN5utils12DATABASE_DIRB5cxx11E
	.addrsig_sym __dso_handle
	.addrsig_sym _ZN5utils18DATABASE_FILE_PATHB5cxx11E
	.addrsig_sym _ZN5utils6tablesB5cxx11E
	.addrsig_sym _ZSt4cout
	.addrsig_sym __hip_cuid_

	.text
	.p2alignl 7, 3214868480
	.fill 96, 4, 3214868480
	.type	__hip_cuid_,@object             ; @__hip_cuid_
	.section	.bss,"aw",@nobits
	.globl	__hip_cuid_
__hip_cuid_:
	.byte	0                               ; 0x0
	.size	__hip_cuid_, 1

	.ident	"AMD clang version 18.0.0git (https://github.com/RadeonOpenCompute/llvm-project roc-6.3.2 25012 e5bf7e55c91490b07c49d8960fa7983d864936c4)"
	.section	".note.GNU-stack","",@progbits
	.addrsig
	.addrsig_sym __hip_cuid_
	.amdgcn_target "amdgcn-amd-amdhsa--gfx1100"
	.amdgpu_metadata
---
amdhsa.kernels:  []
amdhsa.target:   amdgcn-amd-amdhsa--gfx1100
amdhsa.version:
  - 1
  - 2
...

	.end_amdgpu_metadata
