diff --git a/.gitignore b/.gitignore index 1da35013..48bbc048 100644 --- a/.gitignore +++ b/.gitignore @@ -61,4 +61,5 @@ node_modules/ # Docker *.dockerignore postgres-data/ -backend/uploads/ \ No newline at end of file +backend/uploads/ +docker-compose.yml diff --git a/backend/alembic/env.py b/backend/alembic/env.py index 097cb079..348bcb40 100644 --- a/backend/alembic/env.py +++ b/backend/alembic/env.py @@ -80,33 +80,36 @@ target_metadata = Base.metadata def import_models_from_dir(dir_path: str): """Importa recursivamente cualquier archivo models.py desde dir_path y archivos en directorios models/""" + import sys + + def _load_module(module_path: str): + rel_path = os.path.relpath(module_path, BASE_DIR) + module_name = rel_path.replace(os.sep, ".").replace(".py", "") + # Skip if already loaded to avoid duplicate SQLAlchemy table registrations + if module_name in sys.modules: + return + spec = importlib.util.spec_from_file_location(module_name, module_path) + mod = importlib.util.module_from_spec(spec) + # Register in sys.modules before exec so transitive imports resolve correctly + sys.modules[module_name] = mod + spec.loader.exec_module(mod) + for root, dirs, files in os.walk(dir_path): # Importar archivos models.py directos if "models.py" in files: - module_path = os.path.join(root, "models.py") - # Convertir path en nombre de módulo compatible - rel_path = os.path.relpath(module_path, BASE_DIR) - module_name = rel_path.replace(os.sep, ".").replace(".py", "") - # Lazy import - spec = importlib.util.spec_from_file_location(module_name, module_path) - mod = importlib.util.module_from_spec(spec) - spec.loader.exec_module(mod) + try: + _load_module(os.path.join(root, "models.py")) + except Exception as e: + logger.warning(f"No se pudo importar {os.path.join(root, 'models.py')}: {e}") # Importar todos los archivos .py en directorios llamados "models" if os.path.basename(root) == "models": for file in files: if file.endswith(".py") and not file.startswith("__"): - module_path = os.path.join(root, file) - rel_path = os.path.relpath(module_path, BASE_DIR) - module_name = rel_path.replace(os.sep, ".").replace(".py", "") try: - spec = importlib.util.spec_from_file_location( - module_name, module_path - ) - mod = importlib.util.module_from_spec(spec) - spec.loader.exec_module(mod) + _load_module(os.path.join(root, file)) except Exception as e: - logger.warning(f"No se pudo importar {module_path}: {e}") + logger.warning(f"No se pudo importar {os.path.join(root, file)}: {e}") # Importar todos los models dentro de api/v1/modules y api/v1/modules/uploads diff --git a/backend/alembic/versions/7937209f9718_seed_initial_data.py b/backend/alembic/versions/7937209f9718_seed_initial_data.py index 6e1e2359..5bffa511 100644 --- a/backend/alembic/versions/7937209f9718_seed_initial_data.py +++ b/backend/alembic/versions/7937209f9718_seed_initial_data.py @@ -1,7 +1,8 @@ """seed_initial_data Revision ID: 7937209f9718 -Revises: 531bf8cdae06 +Revises: + Create Date: 2025-10-19 18:23:55.258800 """ @@ -69,9 +70,15 @@ from api.v1.modules.a76.general_catalogs.units_of_measure.seed_ame import ( from api.v1.modules.a76.general_catalogs.units_of_measure.seed_adua import ( seed as adua_seed, ) -from api.v1.modules.a76.general_catalogs.tariff_fractions.seed import ( +from api.v1.modules.a76.general_catalogs.fractions.tariff_fractions.seed import ( seed as tariff_fractions_seed, ) +from api.v1.modules.a76.general_catalogs.fractions.historical_tariff_fractions.seed import ( + seed as historical_tariff_fractions_seed, +) +from api.v1.modules.public.reference_data.trailer_types.seed import ( + seed as trailer_types_seed, +) from api.v1.modules.core.permissions.seed import ( seed_invoices, seed_user, @@ -87,7 +94,7 @@ depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: - """Upgrade schema.""" + """Upgrade schema.""" # --- UTILIDAD DE FORMATEO --- def format_value(val): @@ -307,6 +314,20 @@ def upgrade() -> None: """ ) + values_trailer = ", ".join( + [ + f"('{code}', '{desc.replace(chr(39), chr(39)*2)}')" + for code, desc in trailer_types_seed + ] + ) + op.execute( + f""" + INSERT INTO public.trailer_type (trailer_type_key, description) VALUES + {values_trailer} + ON CONFLICT (trailer_type_key) DO NOTHING; + """ + ) + values_vm = ", ".join( [ f"('{key}', '{desc.replace(chr(39), chr(39)*2)}')" @@ -481,12 +502,54 @@ def upgrade() -> None: """ ) + def format_bool(val): + """Convert boolean string to SQL boolean.""" + if val is None or str(val).strip() == "" or str(val).upper() == "NONE": + return "NULL" + return "TRUE" if str(val).upper() == "TRUE" else "FALSE" + + def format_timestamp(val): + """Format timestamp for PostgreSQL.""" + if val is None or str(val).strip() == "" or str(val).upper() == "NONE": + return "NULL" + # El valor ya viene en formato 'YYYY-MM-DD HH:MM:SS' + return f"'{str(val)}'" + + values_historical_fractions = ", ".join( + [ + f"({format_value(historical_fraction)}, {format_value(nico)},{format_value(unit_measure)}, {format_value(country)}, " + f"{format_value(fraction_type)}, {format_value(sector)}, {format_value(import_tax)}, " + f"{format_value(export_tax)}, {format_timestamp(pub_date)}, {format_bool(is_immex)}, " + f"{format_bool(normal_temp)}, {format_bool(services_temp)}, {format_bool(certified_temp)}, " + f"{format_bool(by_log)}, {format_timestamp(end_date)}, " + f"1, 1)" # tenant_id=1, company_id=1 + for historical_fraction, nico, unit_measure, country, fraction_type, sector, import_tax, export_tax, pub_date, is_immex, normal_temp, services_temp, certified_temp, by_log, end_date in historical_tariff_fractions_seed + ] + ) + + if values_historical_fractions: + op.execute( + f""" + INSERT INTO a76.historical_tariff_fractions + (historical_fraction, nico, unit_of_measure_code, country, fraction_type, sector, + import_tax_rate, export_tax_rate, publication_date, is_immex, + normal_temporality, services_temporality, certified_temporality, by_log, end_date, + tenant_id, company_id) + VALUES {values_historical_fractions} + ON CONFLICT DO NOTHING; + """ + ) + def downgrade() -> None: """Downgrade schema.""" + op.drop_table("us_tariff_fractions", schema="a76") + op.drop_table("historical_tariff_fractions", schema="a76") + op.drop_table("canadian_tariff_fractions", schema="a76") op.drop_table("valuation_methods", schema="public") op.drop_table("transport_types", schema="public") + op.drop_table("trailer_types", schema="public") op.drop_table("transport_modes", schema="public") op.drop_table("sectors", schema="public") op.drop_table("payment_methods", schema="public") diff --git a/backend/api/v1/modules/a24/fa/fa_item_lines/models.py b/backend/api/v1/modules/a24/fa/fa_item_lines/models.py index 91e9e958..75496b34 100644 --- a/backend/api/v1/modules/a24/fa/fa_item_lines/models.py +++ b/backend/api/v1/modules/a24/fa/fa_item_lines/models.py @@ -16,7 +16,7 @@ from api.v1.common.base_models import TenantScopedMixin, TimestampMixin from core.database import Base if TYPE_CHECKING: - from api.v1.modules.a76.items.line_items.models import LineItem + from api.v1.modules.a76.items.models import LineItem class FaLineItem(Base, TenantScopedMixin, TimestampMixin): @@ -67,9 +67,6 @@ class FaLineItem(Base, TenantScopedMixin, TimestampMixin): # Subitems is_subitem: Mapped[Optional[bool]] = mapped_column(Boolean) # ESSUBPARTIDA contains_subitems: Mapped[Optional[bool]] = mapped_column(Boolean) # CONTIENESUBP - includes_subitems: Mapped[Optional[bool]] = mapped_column( - Boolean - ) # INCUYESUBPARTIDAS subitem_number: Mapped[Optional[int]] = mapped_column(Integer) # SUBPARTIDA # Special flags diff --git a/backend/api/v1/modules/a24/fa/fa_item_lines/service.py b/backend/api/v1/modules/a24/fa/fa_item_lines/service.py index f60feec0..890307bf 100644 --- a/backend/api/v1/modules/a24/fa/fa_item_lines/service.py +++ b/backend/api/v1/modules/a24/fa/fa_item_lines/service.py @@ -96,7 +96,7 @@ class FaLineItemService: """Crear una nueva línea de activo fijo""" try: # Verificar que la línea base existe en a76.item_lines - from api.v1.modules.a76.items.line_items.models import LineItem + from api.v1.modules.a76.items.models import LineItem base_line_item = ( db.query(LineItem) diff --git a/backend/api/v1/modules/a76/audit_log/events.py b/backend/api/v1/modules/a76/audit_log/events.py index 478ef95c..7a79bedb 100644 --- a/backend/api/v1/modules/a76/audit_log/events.py +++ b/backend/api/v1/modules/a76/audit_log/events.py @@ -1,11 +1,14 @@ """ Audit Log Events """ + from sqlalchemy import event, inspect from sqlalchemy.orm import Session from .services.service import AuditService +from .utils.serialization import serialize_for_json from core.context import get_user_context + def register_audit_listeners(models_to_audit): """ Register SQLAlchemy listeners for given models @@ -15,16 +18,23 @@ def register_audit_listeners(models_to_audit): event.listen(model, "after_update", after_update_listener) event.listen(model, "after_delete", after_delete_listener) + def _get_current_username(): try: context = get_user_context() if context: # Token usually has 'preferred_username' or 'name' or 'sub' - return context.get("preferred_username") or context.get("email") or context.get("sub") or "System" + return ( + context.get("preferred_username") + or context.get("email") + or context.get("sub") + or "System" + ) except: pass return "System" + def after_insert_listener(mapper, connection, target): """ Listener for INSERT operations @@ -32,8 +42,9 @@ def after_insert_listener(mapper, connection, target): table_name = target.__tablename__ record_data = {c.name: getattr(target, c.name) for c in mapper.columns} username = _get_current_username() - company_id = getattr(target, "company_id", None) - + company_id = getattr(target, "company_id", None) or getattr(target, "id", None) + tenant_id = getattr(target, "tenant_id", None) + # Create a session bound to the connection session = Session(bind=connection) try: @@ -44,24 +55,26 @@ def after_insert_listener(mapper, connection, target): record_data=record_data, username=username, record_id=str(getattr(target, "id", "")), - company_id=company_id + company_id=company_id, + tenant_id=tenant_id, ) except Exception as e: print(f"Error logging insert: {e}") finally: session.close() + def after_update_listener(mapper, connection, target): """ Listener for UPDATE operations """ table_name = target.__tablename__ - + state = inspect(target) changes = {} old_values = {} new_values = {} - + for attr in state.attrs: hist = attr.history if hist.has_changes(): @@ -74,6 +87,8 @@ def after_update_listener(mapper, connection, target): record_data = {c.name: getattr(target, c.name) for c in mapper.columns} username = _get_current_username() + company_id = getattr(target, "company_id", None) or getattr(target, "id", None) + tenant_id = getattr(target, "tenant_id", None) session = Session(bind=connection) try: @@ -84,13 +99,16 @@ def after_update_listener(mapper, connection, target): record_data=record_data, username=username, record_id=str(getattr(target, "id", "")), - old_values=old_values, - new_values=new_values + old_values=serialize_for_json(old_values), + new_values=serialize_for_json(new_values), + company_id=company_id, + tenant_id=tenant_id, ) except Exception as e: - print(f"Error logging update: {e}") + print(f"Error logging update: {e}") finally: - session.close() + session.close() + def after_delete_listener(mapper, connection, target): """ @@ -99,7 +117,9 @@ def after_delete_listener(mapper, connection, target): table_name = target.__tablename__ record_data = {c.name: getattr(target, c.name) for c in mapper.columns} username = _get_current_username() - + company_id = getattr(target, "company_id", None) or getattr(target, "id", None) + tenant_id = getattr(target, "tenant_id", None) + session = Session(bind=connection) try: AuditService.log_crud_operation( @@ -108,9 +128,11 @@ def after_delete_listener(mapper, connection, target): operation_type="DELETE", record_data=record_data, username=username, - record_id=str(getattr(target, "id", "")) + record_id=str(getattr(target, "id", "")), + company_id=company_id, + tenant_id=tenant_id, ) except Exception as e: - print(f"Error logging delete: {e}") + print(f"Error logging delete: {e}") finally: - session.close() + session.close() diff --git a/backend/api/v1/modules/a76/audit_log/middleware.py b/backend/api/v1/modules/a76/audit_log/middleware.py index fe2c111a..0d16a79b 100644 --- a/backend/api/v1/modules/a76/audit_log/middleware.py +++ b/backend/api/v1/modules/a76/audit_log/middleware.py @@ -18,5 +18,10 @@ class UserContextMiddleware(BaseHTTPMiddleware): # Log error or ignore pass - response = await call_next(request) + try: + response = await call_next(request) + except Exception: + # Re-raise the exception to let other middleware and handlers deal with it + raise + return response diff --git a/backend/api/v1/modules/a76/audit_log/models.py b/backend/api/v1/modules/a76/audit_log/models.py index c47900f5..ace69a32 100644 --- a/backend/api/v1/modules/a76/audit_log/models.py +++ b/backend/api/v1/modules/a76/audit_log/models.py @@ -4,10 +4,18 @@ Audit Log Models from sqlalchemy import Column, Integer, String, Date, Time, DateTime, Text, Index, func from sqlalchemy.dialects.postgresql import JSONB, ARRAY +from api.v1.common.base_models import TenantScopedMixin, TimestampMixin from core.database import Base -class AuditLog(Base): +class AuditLog(Base, TenantScopedMixin, TimestampMixin): __tablename__ = "audit_logs" + __table_args__ = ( + Index('idx_audit_username_date', 'username', 'date'), + Index('idx_audit_procedure_date', 'procedure', 'date'), + Index('idx_audit_system_timestamp', 'system', 'timestamp'), + Index('idx_audit_table_record', 'table_name', 'record_id'), + {"schema": "a76"} # Use the a76 schema for audit logs + ) # Primary Key spec_id = Column(Integer, primary_key=True, autoincrement=True) @@ -22,9 +30,7 @@ class AuditLog(Base): # Technical Columns timestamp = Column(DateTime(timezone=True), nullable=False, index=True) # Combined for queries - system = Column(String(20), nullable=False, index=True, default="SCAF") - company_id = Column(Integer, nullable=True, index=True) - tenant_id = Column(Integer, nullable=True, index=True) + system = Column(String(20), nullable=False, index=True, default="fixed_asset") # Traceability table_name = Column(String(100), nullable=True, index=True) @@ -42,15 +48,4 @@ class AuditLog(Base): endpoint = Column(String(500), nullable=True) request_method = Column(String(10), nullable=True) session_id = Column(String(50), nullable=True, index=True) - execution_time_ms = Column(Integer, nullable=True) - - # Metadata - created_at = Column(DateTime(timezone=True), server_default=func.now(), nullable=False) - - # Composite Indexes for common filters - __table_args__ = ( - Index('idx_audit_username_date', 'username', 'date'), - Index('idx_audit_procedure_date', 'procedure', 'date'), - Index('idx_audit_system_timestamp', 'system', 'timestamp'), - Index('idx_audit_table_record', 'table_name', 'record_id'), - ) + execution_time_ms = Column(Integer, nullable=True) diff --git a/backend/api/v1/modules/a76/audit_log/services/core.py b/backend/api/v1/modules/a76/audit_log/services/core.py index dfb5f2b1..3413b148 100644 --- a/backend/api/v1/modules/a76/audit_log/services/core.py +++ b/backend/api/v1/modules/a76/audit_log/services/core.py @@ -142,6 +142,10 @@ class AuditMapper: ("doda", "CREATE"): "ADD DODA", ("doda", "UPDATE"): "EDIT DODA", ("doda", "DELETE"): "DELETE DODA", + + ("company", "CREATE"): "ADD COMPANY", + ("company", "UPDATE"): "EDIT COMPANY", + ("company", "DELETE"): "DELETE COMPANY", } @staticmethod diff --git a/backend/api/v1/modules/a76/audit_log/services/service.py b/backend/api/v1/modules/a76/audit_log/services/service.py index 9fdf4a6b..dd1b18c1 100644 --- a/backend/api/v1/modules/a76/audit_log/services/service.py +++ b/backend/api/v1/modules/a76/audit_log/services/service.py @@ -86,7 +86,8 @@ class AuditService: # Context ip_address: Optional[str] = None, user_agent: Optional[str] = None, - company_id: Optional[int] = None + company_id: Optional[int] = None, + tenant_id: Optional[int] = None ): """ High-level wrapper to log CRUD operations automatically mapping to Legacy format @@ -149,7 +150,8 @@ class AuditService: changed_fields=changed_fields, ip_address=ip_address, user_agent=user_agent, - company_id=company_id + company_id=company_id, + tenant_id=tenant_id ) @staticmethod diff --git a/backend/api/v1/modules/a76/audit_log/utils/__init__.py b/backend/api/v1/modules/a76/audit_log/utils/__init__.py new file mode 100644 index 00000000..57f53044 --- /dev/null +++ b/backend/api/v1/modules/a76/audit_log/utils/__init__.py @@ -0,0 +1,7 @@ +""" +Audit Log Utilities +""" + +from .serialization import serialize_for_json + +__all__ = ["serialize_for_json"] diff --git a/backend/api/v1/modules/a76/audit_log/utils/serialization.py b/backend/api/v1/modules/a76/audit_log/utils/serialization.py new file mode 100644 index 00000000..604de7b0 --- /dev/null +++ b/backend/api/v1/modules/a76/audit_log/utils/serialization.py @@ -0,0 +1,44 @@ +""" +Serialization utilities for audit logs +""" + +from datetime import date, datetime, time +from decimal import Decimal +from uuid import UUID +from typing import Any, Dict + + +def serialize_value(value: Any) -> Any: + """ + Convert a Python value to a JSON-serializable type + """ + if value is None: + return None + elif isinstance(value, (date, datetime)): + return value.isoformat() + elif isinstance(value, time): + return value.isoformat() + elif isinstance(value, Decimal): + return float(value) + elif isinstance(value, UUID): + return str(value) + elif isinstance(value, bytes): + return value.decode("utf-8", errors="replace") + elif isinstance(value, (list, tuple)): + return [serialize_value(item) for item in value] + elif isinstance(value, dict): + return {key: serialize_value(val) for key, val in value.items()} + else: + # For any other type, try to return as-is (str, int, float, bool, None) + # If it fails JSON serialization later, at least we tried + return value + + +def serialize_for_json(data: Dict[str, Any]) -> Dict[str, Any]: + """ + Recursively serialize a dictionary for JSON storage + """ + if not data: + return data + + return {key: serialize_value(value) for key, value in data.items()} diff --git a/backend/api/v1/modules/a76/classes/dto.py b/backend/api/v1/modules/a76/classes/dto.py index 7fc3ccc0..00c141b4 100644 --- a/backend/api/v1/modules/a76/classes/dto.py +++ b/backend/api/v1/modules/a76/classes/dto.py @@ -196,4 +196,33 @@ class ClassSearchDTO(BaseModel): ) class Config: - from_attributes = True \ No newline at end of file + from_attributes = True + + +class ClassWithFADataResponse(BaseModel): + """DTO para respuesta de clase con datos FA embebidos (para fixed-asset-classes)""" + + # Base class fields + id: int + tenant_id: int + company_id: int + class_code: str + description_es: Optional[str] = None + description_en: Optional[str] = None + material_key: Optional[str] = None + unit_of_measure: Optional[str] = None + fraction: Optional[str] = None + us_fraction: Optional[str] = None + sub_key: Optional[str] = None + physical_review: Optional[int] = None + iva_exempt_fraction: Optional[str] = None + created_at: datetime + updated_at: datetime + + # FA-specific fields (embedded from a24.fa_classes) + fa_class_id: Optional[int] = None + depreciation_rate: Optional[Decimal] = None + fda_code: Optional[str] = None + class_enabled: Optional[bool] = None + + model_config = ConfigDict(from_attributes=True) \ No newline at end of file diff --git a/backend/api/v1/modules/a76/classes/routes.py b/backend/api/v1/modules/a76/classes/routes.py index c59dd575..329294b0 100644 --- a/backend/api/v1/modules/a76/classes/routes.py +++ b/backend/api/v1/modules/a76/classes/routes.py @@ -2,34 +2,53 @@ Endpoints API para gestión de clases SCAII y SCAF """ -from typing import Dict, Any -from fastapi import Depends, Query +from typing import Dict, Any, List +from fastapi import APIRouter, Depends, Query from sqlalchemy.orm import Session from core.database import get_core_db from core.security import get_current_user from api.v1.common.tenant_crud_routes import TenantCRUDRoutes, validate_access_to_resource -from .dto import ClassCreateDTO, ClassCreateDTOFA, ClassResponseDTO, ClassResponseDTOFA, ClassUpdateDTO +from .dto import ClassCreateDTO, ClassCreateDTOFA, ClassResponseDTO, ClassResponseDTOFA, ClassUpdateDTO, ClassWithFADataResponse from .service import ClassService -# Create router with generic CRUD routes -crud_routes = TenantCRUDRoutes( - service=ClassService, - create_schema=ClassCreateDTO, - update_schema=ClassUpdateDTO, - response_schema=ClassResponseDTO, - prefix="/classes", - tags=["a76 / classes"], - resource_name="Class", - id_name="id", - enable_list=True, - enable_filters=True, - default_page_size=50, - max_page_size=1000, -) +# Create a new router for custom endpoints +router = APIRouter() -router = crud_routes.router +# Add consolidated catalog endpoints FIRST (before generic CRUD routes) +# This ensures they have priority over the generic /{id} route +@router.get( + "/with-fa-data", + response_model=List[ClassWithFADataResponse], + summary="Get Classes with FA Data", + description="Get all classes with their FA data in a single query (eliminates N+1 problem)", + tags=["a76 / classes"], +) +async def get_classes_with_fa_data( + company_id: int = Query(..., description="Company ID"), + page: int = Query(1, ge=1, description="Page number"), + page_size: int = Query(1000, ge=1, le=1000, description="Page size"), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + """ + Get all classes with their FA data using a single LEFT JOIN query. + This endpoint is optimized for the fixed-asset-classes view. + """ + tenant_id = validate_access_to_resource(db, company_id, current_user) + + skip = (page - 1) * page_size + + classes_with_fa, total = ClassService.get_all_with_fa_data( + db=db, + tenant_id=tenant_id, + company_id=company_id, + skip=skip, + limit=page_size, + ) + + return classes_with_fa @router.post( "/fa", @@ -37,6 +56,7 @@ router = crud_routes.router status_code=201, summary="Create Fixed Asset Class", description="Create a class with FA extension in a single transaction", + tags=["a76 / classes"], ) async def create_fa_class( class_data: ClassCreateDTOFA, @@ -50,4 +70,24 @@ async def create_fa_class( result = ClassService.create_fa_class(db, class_data, tenant_id, company_id) - return result \ No newline at end of file + return result + +# Now include generic CRUD routes +# These will be registered AFTER the custom endpoints above +crud_router = TenantCRUDRoutes( + service=ClassService, + create_schema=ClassCreateDTO, + update_schema=ClassUpdateDTO, + response_schema=ClassResponseDTO, + prefix="", # No prefix here, will be added in main router + tags=["a76 / classes"], + resource_name="Class", + id_name="id", + enable_list=True, + enable_filters=True, + default_page_size=50, + max_page_size=1000, +).router + +# Include the CRUD routes into our main router +router.include_router(crud_router) \ No newline at end of file diff --git a/backend/api/v1/modules/a76/classes/service.py b/backend/api/v1/modules/a76/classes/service.py index a4c3fd1b..1e3ba949 100644 --- a/backend/api/v1/modules/a76/classes/service.py +++ b/backend/api/v1/modules/a76/classes/service.py @@ -73,6 +73,91 @@ class ClassService: return items, total + @staticmethod + def get_all_with_fa_data( + db: Session, + tenant_id: int, + company_id: int, + skip: int = 0, + limit: int = 1000, + filters: Optional[Dict[str, Any]] = None, + ) -> tuple[List[Dict[str, Any]], int]: + """ + Get all classes with their FA data in a single query using LEFT JOIN. + This eliminates the N+1 query problem. + + Returns a list of dicts with combined base class + FA data. + """ + from api.v1.modules.a24.fa.fa_classes.models import QClasses + + # Build query with LEFT JOIN + query = ( + db.query(Class, QClasses) + .outerjoin(QClasses, and_( + Class.id == QClasses.class_id, + QClasses.tenant_id == tenant_id + )) + .filter(Class.tenant_id == tenant_id) + .filter(Class.company_id == company_id) + ) + + # Apply filters if provided + if filters: + if filters.get("class_code"): + query = query.filter( + Class.class_code.ilike(f"%{filters['class_code']}%") + ) + if filters.get("description"): + description_pattern = f"%{filters['description']}%" + query = query.filter( + or_( + Class.description_es.ilike(description_pattern), + Class.description_en.ilike(description_pattern), + ) + ) + if filters.get("material_key"): + query = query.filter( + Class.material_key.ilike(f"%{filters['material_key']}%") + ) + if filters.get("fraction"): + query = query.filter(Class.fraction.ilike(f"%{filters['fraction']}%")) + + # Count total before pagination + total = query.count() + + # Apply pagination + results = query.offset(skip).limit(limit).all() + + # Combine base class + FA data into dicts + combined = [] + for base_class, fa_class in results: + class_dict = { + # Base class fields + "id": base_class.id, + "tenant_id": base_class.tenant_id, + "company_id": base_class.company_id, + "class_code": base_class.class_code, + "description_es": base_class.description_es, + "description_en": base_class.description_en, + "material_key": base_class.material_key, + "unit_of_measure": base_class.unit_of_measure, + "fraction": base_class.fraction, + "us_fraction": base_class.us_fraction, + "sub_key": base_class.sub_key, + "physical_review": base_class.physical_review, + "iva_exempt_fraction": base_class.iva_exempt_fraction, + "created_at": base_class.created_at, + "updated_at": base_class.updated_at, + # FA extension fields (None if no FA record exists) + "fa_class_id": fa_class.id if fa_class else None, + "depreciation_rate": fa_class.depreciation_rate if fa_class else None, + "fda_code": fa_class.fda_code if fa_class else None, + "class_enabled": fa_class.class_enabled if fa_class else None, + } + combined.append(class_dict) + + return combined, total + @staticmethod def get_by_id( db: Session, class_id: int, tenant_id: int, company_id: int diff --git a/backend/api/v1/modules/a76/general_catalogs/company/dto.py b/backend/api/v1/modules/a76/general_catalogs/company/dto.py index 03f8c9ae..dff8a610 100644 --- a/backend/api/v1/modules/a76/general_catalogs/company/dto.py +++ b/backend/api/v1/modules/a76/general_catalogs/company/dto.py @@ -85,88 +85,149 @@ class CompanyCreateDTO(BaseModel): ) seventh_amendment: Optional[bool] = Field(None, description="Seventh amendment") + # Sectors + sector1: Optional[str] = Field(None, max_length=150) + sector2: Optional[str] = Field(None, max_length=150) + sector3: Optional[str] = Field(None, max_length=5) + + # Certification (CompanyCertification flattened) + is_certified_company: Optional[str] = Field(None, max_length=1) + certified_company_registration: Optional[str] = Field(None, max_length=40) + certified_company_start_date: Optional[int] = None + certified_company_end_date: Optional[int] = None + annex31_certification_date: Optional[int] = None + annex31_certification_number: Optional[str] = Field(None, max_length=50) + annex31_modality: Optional[str] = Field(None, max_length=50) + annex31_company_type: Optional[str] = Field(None, max_length=50) + annex31_renewal_date: Optional[int] = None + annex31_final_certification_date: Optional[int] = None + is_oea_company: Optional[int] = None + neec_company: Optional[int] = None + + # Addresses (Flattened) + # Main + main_street: Optional[str] = Field(None, max_length=255) + main_exterior_number: Optional[str] = Field(None, max_length=10) + main_interior_number: Optional[str] = Field(None, max_length=10) + main_postal_code: Optional[str] = Field(None, max_length=5) + main_neighborhood: Optional[str] = Field(None, max_length=255) + main_city: Optional[str] = Field(None, max_length=255) + main_municipality: Optional[str] = Field(None, max_length=255) + main_state: Optional[str] = Field(None, max_length=255) + main_country: Optional[str] = Field(None, max_length=255) + main_phone: Optional[str] = Field(None, max_length=20) + main_fax: Optional[str] = Field(None, max_length=20) + main_email: Optional[str] = Field(None, max_length=255) + # Industrial 1 + ind1_street: Optional[str] = Field(None, max_length=255) + ind1_exterior_number: Optional[str] = Field(None, max_length=10) + ind1_interior_number: Optional[str] = Field(None, max_length=10) + ind1_postal_code: Optional[str] = Field(None, max_length=5) + ind1_neighborhood: Optional[str] = Field(None, max_length=255) + ind1_city: Optional[str] = Field(None, max_length=255) + ind1_municipality: Optional[str] = Field(None, max_length=255) + ind1_state: Optional[str] = Field(None, max_length=255) + ind1_country: Optional[str] = Field(None, max_length=255) + ind1_phone: Optional[str] = Field(None, max_length=20) + ind1_fax: Optional[str] = Field(None, max_length=20) + ind1_email: Optional[str] = Field(None, max_length=255) + # Industrial 2 + ind2_street: Optional[str] = Field(None, max_length=255) + ind2_exterior_number: Optional[str] = Field(None, max_length=10) + ind2_interior_number: Optional[str] = Field(None, max_length=10) + ind2_postal_code: Optional[str] = Field(None, max_length=5) + ind2_neighborhood: Optional[str] = Field(None, max_length=255) + ind2_city: Optional[str] = Field(None, max_length=255) + ind2_municipality: Optional[str] = Field(None, max_length=255) + ind2_state: Optional[str] = Field(None, max_length=255) + ind2_country: Optional[str] = Field(None, max_length=255) + ind2_phone: Optional[str] = Field(None, max_length=20) + ind2_fax: Optional[str] = Field(None, max_length=20) + ind2_email: Optional[str] = Field(None, max_length=255) + + # Technical flags + active_labels: Optional[int] = None + active_fractions: Optional[int] = None + activate_caat: Optional[int] = None + trans_interface: Optional[int] = None + american_costs: Optional[int] = None + scaf_readonly: Optional[int] = None + parts_replacement: Optional[int] = None + activate_facmexame: Optional[int] = None + part_reference: Optional[int] = None + international_firm: Optional[int] = None + + # Advanced Config + ftp_key: Optional[str] = Field(None, max_length=10) + sifra_path: Optional[str] = Field(None, max_length=255) + version_type: Optional[str] = Field(None, max_length=20) + sql_language: Optional[str] = Field(None, max_length=19) + balance_operation_mode: Optional[str] = Field(None, max_length=50) + + # Prevalidator (detailed) + prev_customs: Optional[str] = Field(None, max_length=20) + prev_key: Optional[str] = Field(None, max_length=20) + prev_patent: Optional[str] = Field(None, max_length=4) + prev_description: Optional[str] = Field(None, max_length=100) + + # Ventanilla Única (VU) + vu_webservice_user: Optional[str] = Field(None, max_length=100) + vu_webservice_password: Optional[str] = Field(None, max_length=100) + vu_email: Optional[str] = Field(None, max_length=800) + vu_figure_type: Optional[str] = Field(None, max_length=29) + vu_central_path: Optional[str] = Field(None, max_length=1499) + vu_xml_files_path: Optional[str] = Field(None, max_length=1499) + vu_query_rfc: Optional[str] = Field(None, max_length=30) + vu_validation_rfc: Optional[str] = Field(None, max_length=30) + vu_configuration_source: Optional[str] = Field(None, max_length=30) + vu_measurement_units: Optional[str] = Field(None, max_length=3) + + # Electronic Agent + ea_input_folder: Optional[str] = Field(None, max_length=1000) + ea_output_folder: Optional[str] = Field(None, max_length=1000) + ea_send_mask: Optional[str] = Field(None, max_length=20) + ea_response_mask: Optional[str] = Field(None, max_length=20) + ea_response_extension: Optional[str] = Field(None, max_length=20) + ea_counter_start: Optional[int] = None + ea_counter_end: Optional[int] = None + ea_counter_next: Optional[int] = None + + # CFDI + cfdi_xml_save_path: Optional[str] = Field(None, max_length=5000) + cfdi_app_path: Optional[str] = Field(None, max_length=5000) + cfdi_pac_app_path: Optional[str] = Field(None, max_length=5000) + + # Digital Certificates (CompanyDigitalCertificate flattened) + # FIEL + fiel_cer: Optional[str] = Field(None, max_length=5000) + fiel_key: Optional[str] = Field(None, max_length=5000) + fiel_pass: Optional[str] = Field(None, max_length=200) + fiel_access: Optional[str] = Field(None, max_length=50) + fiel_cer_exp: Optional[int] = None + fiel_key_exp: Optional[int] = None + # CFDI (Sello) + cfdi_cert_cer: Optional[str] = Field(None, max_length=5000) + cfdi_cert_key: Optional[str] = Field(None, max_length=5000) + cfdi_cert_pass: Optional[str] = Field(None, max_length=200) + cfdi_cert_access: Optional[str] = Field(None, max_length=50) + cfdi_cert_cer_exp: Optional[int] = None + cfdi_cert_key_exp: Optional[int] = None + # Cancellation + cancel_cer: Optional[str] = Field(None, max_length=5000) + cancel_key: Optional[str] = Field(None, max_length=5000) + cancel_pass: Optional[str] = Field(None, max_length=200) + cancel_access: Optional[str] = Field(None, max_length=50) + cancel_cer_exp: Optional[int] = None + cancel_key_exp: Optional[int] = None + + class Config: from_attributes = True -class CompanyUpdateDTO(BaseModel): +class CompanyUpdateDTO(CompanyCreateDTO): """DTO para actualizar una empresa""" - - name: Optional[str] = Field(None, max_length=255, description="Company name") - rfc: Optional[str] = Field(None, max_length=30, description="Company RFC") - main_activity: Optional[str] = Field( - None, max_length=255, description="Main activity" - ) - - # Program information - program: Optional[str] = Field(None, max_length=10, description="Program") - program_number: Optional[str] = Field( - None, max_length=40, description="Program number" - ) - prosec: Optional[int] = Field(None, description="PROSEC") - prosec_authorization: Optional[str] = Field( - None, max_length=20, description="PROSEC authorization" - ) - - # Identifiers - manufacturer_id: Optional[str] = Field( - None, max_length=25, description="Manufacturer ID" - ) - broker_company: Optional[str] = Field( - None, max_length=10, description="Broker company" - ) - - # Responsible person - responsible: Optional[str] = Field( - None, max_length=80, description="Responsible person" - ) - responsible_name: Optional[str] = Field( - None, max_length=20, description="Responsible first name" - ) - responsible_last_name: Optional[str] = Field( - None, max_length=20, description="Responsible last name" - ) - responsible_mother_last_name: Optional[str] = Field( - None, max_length=20, description="Responsible mother's last name" - ) - responsible_rfc: Optional[str] = Field( - None, max_length=30, description="Responsible RFC" - ) - position: Optional[str] = Field( - None, max_length=30, description="Responsible position" - ) - - # Configuration - logo: Optional[str] = Field(None, max_length=255, description="Company logo") - has_express_line: Optional[bool] = Field(None, description="Has express line") - order_format_type: Optional[str] = Field( - None, max_length=19, description="Order format type" - ) - previous_code: Optional[int] = Field(None, description="Previous code") - is_service_company: Optional[bool] = Field(None, description="Is service company") - - # Client and subassembly - client_name: Optional[str] = Field(None, max_length=300, description="Client name") - subassembly_mode: Optional[str] = Field( - None, max_length=7, description="Subassembly mode" - ) - - # Additional information - curp: Optional[str] = Field(None, max_length=19, description="CURP") - inter_db_name: Optional[str] = Field( - None, max_length=100, description="Inter DB name" - ) - ctpat_svi: Optional[str] = Field(None, max_length=100, description="CTPAT SVI") - trusted_exporter_number: Optional[str] = Field( - None, max_length=50, description="Trusted exporter number" - ) - prevalidator_key: Optional[str] = Field( - None, max_length=20, description="Prevalidator key" - ) - seventh_amendment: Optional[bool] = Field(None, description="Seventh amendment") - - class Config: - from_attributes = True + pass class CompanyResponseDTO(BaseModel): @@ -219,5 +280,142 @@ class CompanyResponseDTO(BaseModel): created_at: datetime updated_at: Optional[datetime] = None + # --- Flattened Fields for Response --- + # Sectores + sector1: Optional[str] = None + sector2: Optional[str] = None + sector3: Optional[str] = None + + # Certification + is_certified_company: Optional[str] = None + certified_company_registration: Optional[str] = None + certified_company_start_date: Optional[int] = None + certified_company_end_date: Optional[int] = None + annex31_certification_date: Optional[int] = None + annex31_certification_number: Optional[str] = None + annex31_modality: Optional[str] = None + annex31_company_type: Optional[str] = None + annex31_renewal_date: Optional[int] = None + annex31_final_certification_date: Optional[int] = None + is_oea_company: Optional[int] = None + neec_company: Optional[int] = None + + # Addresses + # ... (Main, Ind1, Ind2 can be added here if needed for flattened response) + main_street: Optional[str] = None + main_exterior_number: Optional[str] = None + main_interior_number: Optional[str] = None + main_postal_code: Optional[str] = None + main_neighborhood: Optional[str] = None + main_city: Optional[str] = None + main_municipality: Optional[str] = None + main_state: Optional[str] = None + main_country: Optional[str] = None + main_phone: Optional[str] = None + main_fax: Optional[str] = None + main_email: Optional[str] = None + + ind1_street: Optional[str] = None + ind1_exterior_number: Optional[str] = None + ind1_interior_number: Optional[str] = None + ind1_postal_code: Optional[str] = None + ind1_neighborhood: Optional[str] = None + ind1_city: Optional[str] = None + ind1_municipality: Optional[str] = None + ind1_state: Optional[str] = None + ind1_country: Optional[str] = None + ind1_phone: Optional[str] = None + ind1_fax: Optional[str] = None + ind1_email: Optional[str] = None + + ind2_street: Optional[str] = None + ind2_exterior_number: Optional[str] = None + ind2_interior_number: Optional[str] = None + ind2_postal_code: Optional[str] = None + ind2_neighborhood: Optional[str] = None + ind2_city: Optional[str] = None + ind2_municipality: Optional[str] = None + ind2_state: Optional[str] = None + ind2_country: Optional[str] = None + ind2_phone: Optional[str] = None + ind2_fax: Optional[str] = None + ind2_email: Optional[str] = None + + # Technical flags + active_labels: Optional[int] = None + active_fractions: Optional[int] = None + activate_caat: Optional[int] = None + trans_interface: Optional[int] = None + american_costs: Optional[int] = None + scaf_readonly: Optional[int] = None + parts_replacement: Optional[int] = None + activate_facmexame: Optional[int] = None + part_reference: Optional[int] = None + international_firm: Optional[int] = None + + # Advanced Config + ftp_key: Optional[str] = None + sifra_path: Optional[str] = None + version_type: Optional[str] = None + sql_language: Optional[str] = None + balance_operation_mode: Optional[str] = None + + # Prevalidator + prev_customs: Optional[str] = None + prev_key: Optional[str] = None + prev_patent: Optional[str] = None + prev_description: Optional[str] = None + + # VU + vu_webservice_user: Optional[str] = None + vu_webservice_password: Optional[str] = None + vu_email: Optional[str] = None + vu_figure_type: Optional[str] = None + vu_central_path: Optional[str] = None + vu_xml_files_path: Optional[str] = None + vu_query_rfc: Optional[str] = None + vu_validation_rfc: Optional[str] = None + vu_configuration_source: Optional[str] = None + vu_measurement_units: Optional[str] = None + + # Electronic Agent + ea_input_folder: Optional[str] = None + ea_output_folder: Optional[str] = None + ea_send_mask: Optional[str] = None + ea_response_mask: Optional[str] = None + ea_response_extension: Optional[str] = None + ea_counter_start: Optional[int] = None + ea_counter_end: Optional[int] = None + ea_counter_next: Optional[int] = None + + # CFDI + cfdi_xml_save_path: Optional[str] = None + cfdi_app_path: Optional[str] = None + cfdi_pac_app_path: Optional[str] = None + + # Digital Certificates (Flattened) + fiel_cer: Optional[str] = None + fiel_key: Optional[str] = None + fiel_pass: Optional[str] = None + fiel_access: Optional[str] = None + fiel_cer_exp: Optional[int] = None + fiel_key_exp: Optional[int] = None + + cfdi_cert_cer: Optional[str] = None + cfdi_cert_key: Optional[str] = None + cfdi_cert_pass: Optional[str] = None + cfdi_cert_access: Optional[str] = None + cfdi_cert_cer_exp: Optional[int] = None + cfdi_cert_key_exp: Optional[int] = None + + cancel_cer: Optional[str] = None + cancel_key: Optional[str] = None + cancel_pass: Optional[str] = None + cancel_access: Optional[str] = None + cancel_cer_exp: Optional[int] = None + cancel_key_exp: Optional[int] = None + + + class Config: from_attributes = True diff --git a/backend/api/v1/modules/a76/general_catalogs/company/models.py b/backend/api/v1/modules/a76/general_catalogs/company/models.py index 61ccc8a6..4914f791 100644 --- a/backend/api/v1/modules/a76/general_catalogs/company/models.py +++ b/backend/api/v1/modules/a76/general_catalogs/company/models.py @@ -39,7 +39,7 @@ class Company(Base, TimestampMixin): # Programa program: Mapped[Optional[str]] = mapped_column(String(7)) program_number: Mapped[Optional[str]] = mapped_column(String(40)) - prosec: Mapped[Optional[int]] = mapped_column(SmallInteger) + prosec: Mapped[bool] = mapped_column(Boolean, default=False, server_default="false") prosec_authorization: Mapped[Optional[str]] = mapped_column(String(20)) # Sectores @@ -61,9 +61,9 @@ class Company(Base, TimestampMixin): # Configuración básica logo: Mapped[Optional[str]] = mapped_column(String(255)) - has_express_line: Mapped[Optional[str]] = mapped_column(String(2), default="N") + has_express_line: Mapped[Optional[bool]] = mapped_column(Boolean, default=False, server_default="false") order_format_type: Mapped[Optional[str]] = mapped_column(String(19)) - is_service_company: Mapped[Optional[bool]] = mapped_column(Boolean, default=False) + is_service_company: Mapped[Optional[bool]] = mapped_column(Boolean, default=False, server_default="false") client_name: Mapped[Optional[str]] = mapped_column(String(300)) subassembly_mode: Mapped[Optional[str]] = mapped_column(String(7)) @@ -77,9 +77,11 @@ class Company(Base, TimestampMixin): scaf_readonly: Mapped[Optional[int]] = mapped_column(SmallInteger) parts_replacement: Mapped[Optional[int]] = mapped_column(SmallInteger) activate_facmexame: Mapped[Optional[int]] = mapped_column(SmallInteger) - part_reference: Mapped[Optional[int]] = mapped_column(SmallInteger) - part_reference: Mapped[Optional[int]] = mapped_column(SmallInteger) + part_reference: Mapped[Optional[int]] = mapped_column(SmallInteger) international_firm: Mapped[Optional[int]] = mapped_column(SmallInteger) + seventh_amendment: Mapped[Optional[bool]] = mapped_column( + Boolean + ) # Septima enimenda (FinalContadorAElectronico) # Configuraciones simples ftp_key: Mapped[Optional[str]] = mapped_column(String(10)) diff --git a/backend/api/v1/modules/a76/general_catalogs/company/routes.py b/backend/api/v1/modules/a76/general_catalogs/company/routes.py index e6d4bc52..5dff4d54 100644 --- a/backend/api/v1/modules/a76/general_catalogs/company/routes.py +++ b/backend/api/v1/modules/a76/general_catalogs/company/routes.py @@ -341,3 +341,101 @@ async def upload_company_logo( "logo_path": file_path, "company_id": company_id, } + + +@router.post( + "/{company_id}/upload-certificate", + response_model=dict, + summary="Upload company certificate", +) +async def upload_company_certificate( + company_id: int, + certificate_type: str, + file: UploadFile = File(...), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user), +): + """ + Upload a certificate for a company + certificate_type: fiel_cer, fiel_key, cfdi_cert_cer, cfdi_cert_key, cancel_cer, cancel_key + """ + tenant_id = current_user.get("tenant_id") + if not tenant_id: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail="Tenant ID not found in user data", + ) + + # Validar que la empresa existe + service = CompanyService(db) + company = service.get_by_id(db, company_id, tenant_id, 0) + if not company: + raise HTTPException( + status_code=status.HTTP_404_NOT_FOUND, + detail="Company not found", + ) + + # Validar tipo de certificado + valid_types = [ + "fiel_cer", "fiel_key", + "cfdi_cert_cer", "cfdi_cert_key", + "cancel_cer", "cancel_key" + ] + if certificate_type not in valid_types: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail=f"Invalid certificate type. Allowed: {', '.join(valid_types)}", + ) + + # Validar extensión + file_ext = os.path.splitext(file.filename)[1].lower() + allowed_exts = {".cer", ".key"} + if file_ext not in allowed_exts: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail=f"File type not allowed. Allowed: {', '.join(allowed_exts)}", + ) + + # Validar correspondencia extensión vs tipo (simple check) + if "cer" in certificate_type and file_ext != ".cer": + raise HTTPException(status_code=400, detail="For this certificate type, file must be .cer") + if "key" in certificate_type and file_ext != ".key": + raise HTTPException(status_code=400, detail="For this certificate type, file must be .key") + + # Validar tamaño + content = await file.read() + if len(content) > MAX_FILE_SIZE: + raise HTTPException( + status_code=status.HTTP_400_BAD_REQUEST, + detail=f"File too large. Maximum size: {MAX_FILE_SIZE / 1024 / 1024}MB", + ) + + # Crear directorio si no existe + certs_dir = os.path.join(UPLOAD_DIR, str(company_id), "certificates") + os.makedirs(certs_dir, exist_ok=True) + + # Generar nombre único + timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") + filename = f"{certificate_type}_{timestamp}{file_ext}" + file_path = os.path.join(certs_dir, filename) + + # Guardar archivo + try: + await file.seek(0) + with open(file_path, "wb") as buffer: + shutil.copyfileobj(file.file, buffer) + except Exception as e: + raise HTTPException( + status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, + detail=f"Error saving file: {str(e)}", + ) + + # Actualizar la base de datos + service.upload_certificate(company_id, certificate_type, file_path, tenant_id) + + return { + "message": "Certificate uploaded successfully", + "file_path": file_path, + "certificate_type": certificate_type, + "company_id": company_id, + } diff --git a/backend/api/v1/modules/a76/general_catalogs/company/service.py b/backend/api/v1/modules/a76/general_catalogs/company/service.py index 90460e79..a4214cde 100644 --- a/backend/api/v1/modules/a76/general_catalogs/company/service.py +++ b/backend/api/v1/modules/a76/general_catalogs/company/service.py @@ -11,6 +11,8 @@ from sqlalchemy.orm import Session from .dto import CompanyCreateDTO, CompanyResponseDTO, CompanyUpdateDTO from .models import Company +from ...audit_log.services.service import AuditService +from core.context import get_user_context logger = logging.getLogger(__name__) @@ -111,7 +113,8 @@ class CompanyService: "active_labels", "active_fractions", "activate_caat", "trans_interface", "american_costs", "scaf_readonly", "parts_replacement", "activate_facmexame", "part_reference", "international_firm", "ftp_key", "sifra_path", - "version_type", "sql_language", "balance_operation_mode", "inter_db_name" + "version_type", "sql_language", "balance_operation_mode", "inter_db_name", + "seventh_amendment" ] return {k: v for k, v in data.items() if k in company_fields} @@ -127,15 +130,100 @@ class CompanyService: ] return {k: v for k, v in data.items() if k in cert_fields} + def _extract_address_fields(self, data: Dict[str, Any], type_prefix: str) -> Dict[str, Any]: + """Extrae campos de dirección con base en un prefijo (main_, ind1_, ind2_)""" + fields = ["street", "exterior_number", "interior_number", "postal_code", + "neighborhood", "city", "municipality", "state", "country", + "phone", "fax", "email"] + + extracted = {} + for f in fields: + key = f"{type_prefix}_{f}" + if key in data: + extracted[f] = data[key] + return extracted + def _extract_prevalidator_fields(self, data: Dict[str, Any]) -> Dict[str, Any]: """Extrae campos que pertenecen a CompanyPrevalidator""" - # Note: 'prevalidator_key' in DTO maps to 'key' in model - fields = {} - if "prevalidator_key" in data: - fields["key"] = data["prevalidator_key"] + # Se mapean campos 'prev_*' a los nombres del modelo + mapping = { + "prev_customs": "customs", + "prev_key": "key", + "prev_patent": "patent", + "prev_description": "description" + } + extracted = {} + for dto_key, model_key in mapping.items(): + if dto_key in data: + extracted[model_key] = data[dto_key] - # Add other fields if present in DTO in the future - return fields + # Retrocompatibilidad con el campo prevalidator_key que ya estaba en el DTO + if "prevalidator_key" in data and "key" not in extracted: + extracted["key"] = data["prevalidator_key"] + + return extracted + + def _extract_vu_fields(self, data: Dict[str, Any]) -> Dict[str, Any]: + """Extrae campos que pertenecen a CompanyVU (prefijo vu_)""" + vu_fields = [ + "webservice_user", "webservice_password", "email", "figure_type", + "central_path", "xml_files_path", "query_rfc", "validation_rfc", + "configuration_source", "measurement_units" + ] + extracted = {} + for f in vu_fields: + key = f"vu_{f}" + if key in data: + extracted[f] = data[key] + return extracted + + def _extract_electronic_agent_fields(self, data: Dict[str, Any]) -> Dict[str, Any]: + """Extrae campos que pertenecen a CompanyElectronicAgent (prefijo ea_)""" + ea_fields = [ + "input_folder", "output_folder", "send_mask", "response_mask", + "response_extension", "counter_start", "counter_end", "counter_next" + ] + extracted = {} + for f in ea_fields: + key = f"ea_{f}" + if key in data: + extracted[f] = data[key] + return extracted + + def _extract_cfdi_fields(self, data: Dict[str, Any]) -> Dict[str, Any]: + """Extrae campos que pertenecen a CompanyCFDI (prefijo cfdi_)""" + cfdi_fields = ["xml_save_path", "cfdi_app_path", "pac_app_path"] + extracted = {} + for f in cfdi_fields: + key = f"cfdi_{f}" + if key in data: + extracted[f] = data[key] + return extracted + + def _extract_digital_certificate_fields(self, data: Dict[str, Any], cert_prefix: str) -> Dict[str, Any]: + """Extrae campos para un tipo específico de certificado (fiel, cfdi_cert, cancel)""" + # Mapeo de prefijos DTO a nombres de modelo + fields_map = { + f"{cert_prefix}_cer": "cer_file_path", + f"{cert_prefix}_key": "key_file_path", + f"{cert_prefix}_pass": "password", + f"{cert_prefix}_access": "access_key", + f"{cert_prefix}_cer_exp": "cer_expiration_date", + f"{cert_prefix}_key_exp": "key_expiration_date" + } + + extracted = {} + for dto_key, model_key in fields_map.items(): + if dto_key in data: + extracted[model_key] = data[dto_key] + + if extracted: + # Mapear prefijo al tipo real en base de datos + model_type_map = {'fiel': 'fiel', 'cfdi_cert': 'cfdi', 'cancel': 'cancellation'} + extracted['certificate_type'] = model_type_map.get(cert_prefix, cert_prefix) + + return extracted + def flatten_company_dto(self, company: Company) -> Dict[str, Any]: """Flattens Company and its submodels into a single dict for DTO validation""" @@ -144,15 +232,7 @@ class CompanyService: k: getattr(company, k) for k in company.__mapper__.c.keys() } - # Explicitly ensure logo is present (defensive programming) - if hasattr(company, 'logo'): - result['logo'] = company.logo - - # Convert has_express_line from String "S"/"N" to Boolean - if hasattr(company, 'has_express_line'): - val = getattr(company, 'has_express_line', "N") - result['has_express_line'] = (val == "S") - + # 2. Certification fields if company.certification: cert_fields = [ @@ -168,95 +248,214 @@ class CompanyService: if val is not None: result[field] = val - # 3. Prevalidator fields + # 3. Addresses + for addr in company.addresses: + prefix = "" + if addr.address_type == 'main': prefix = "main_" + elif addr.address_type == 'industrial': prefix = "ind1_" + elif addr.address_type == 'industrial2': prefix = "ind2_" + + if prefix: + addr_fields = ["street", "exterior_number", "interior_number", "postal_code", + "neighborhood", "city", "municipality", "state", "country", + "phone", "fax", "email"] + for f in addr_fields: + val = getattr(addr, f, None) + if val is not None: + result[f"{prefix}{f}"] = val + + # 4. Prevalidator fields if company.prevalidator: + mapping = {"customs": "prev_customs", "key": "prev_key", + "patent": "prev_patent", "description": "prev_description"} + for model_f, dto_f in mapping.items(): + val = getattr(company.prevalidator, model_f, None) + if val is not None: + result[dto_f] = val + # Retrocompatibilidad if company.prevalidator.key: result["prevalidator_key"] = company.prevalidator.key + + # 5. VU fields + if company.ventanilla_unica: + f_list = ["webservice_user", "webservice_password", "email", "figure_type", + "central_path", "xml_files_path", "query_rfc", "validation_rfc", + "configuration_source", "measurement_units"] + for f in f_list: + val = getattr(company.ventanilla_unica, f, None) + if val is not None: + result[f"vu_{f}"] = val + + # 6. Electronic Agent fields + if company.electronic_agent: + f_list = ["input_folder", "output_folder", "send_mask", "response_mask", + "response_extension", "counter_start", "counter_end", "counter_next"] + for f in f_list: + val = getattr(company.electronic_agent, f, None) + if val is not None: + result[f"ea_{f}"] = val + + # 7. CFDI fields + if company.cfdi: + f_list = ["xml_save_path", "cfdi_app_path", "pac_app_path"] + for f in f_list: + val = getattr(company.cfdi, f, None) + if val is not None: + result[f"cfdi_{f}"] = val + + # 8. Digital Certificates + cert_type_map = {'fiel': 'fiel', 'cfdi': 'cfdi_cert', 'cancellation': 'cancel'} + for dc in company.digital_certificates: + prefix = cert_type_map.get(dc.certificate_type) + if prefix: + result[f"{prefix}_cer"] = dc.cer_file_path + result[f"{prefix}_key"] = dc.key_file_path + result[f"{prefix}_pass"] = dc.password + result[f"{prefix}_access"] = dc.access_key + result[f"{prefix}_cer_exp"] = dc.cer_expiration_date + result[f"{prefix}_key_exp"] = dc.key_expiration_date return result + # ==================== CRUD METHODS ==================== - def create_company_manually(self, data: CompanyCreateDTO, tenant_id: int) -> Company: + def create_company_manually(self, data: CompanyCreateDTO, tenant_id: int, username: str = "System") -> Company: from .submodels.certification import CompanyCertification from .submodels.prevalidator import CompanyPrevalidator + from .submodels.address import CompanyAddress + from .submodels.vu import CompanyVU + from .submodels.electronic_agent import CompanyElectronicAgent + from .submodels.cfdi import CompanyCFDI try: # 1. Preparar datos obj_data = data.model_dump(exclude_unset=True) - # Handle boolean flags for Company (Hybrid Approach) - # has_express_line is String(2), is_service_company is Boolean - if "has_express_line" in obj_data and isinstance(obj_data["has_express_line"], bool): - obj_data["has_express_line"] = "S" if obj_data["has_express_line"] else "N" - - # 2. Extract fields for each model + # 2. Extract fields company_data = self._extract_company_fields(obj_data) cert_data = self._extract_certification_fields(obj_data) preval_data = self._extract_prevalidator_fields(obj_data) + vu_data = self._extract_vu_fields(obj_data) + ea_data = self._extract_electronic_agent_fields(obj_data) + cfdi_data = self._extract_cfdi_fields(obj_data) + + addr_main = self._extract_address_fields(obj_data, "main") + addr_ind1 = self._extract_address_fields(obj_data, "ind1") + addr_ind2 = self._extract_address_fields(obj_data, "ind2") + + fiel_data = self._extract_digital_certificate_fields(obj_data, "fiel") + cfdi_cert_data = self._extract_digital_certificate_fields(obj_data, "cfdi_cert") + cancel_cert_data = self._extract_digital_certificate_fields(obj_data, "cancel") + # 3. Create Company db_company = Company(**company_data, tenant_id=tenant_id) self.db.add(db_company) self.db.flush() # Generate ID - # 4. Create Certification if data exists + # 4. Create submodels if cert_data: - cert = CompanyCertification(**cert_data, company_id=db_company.id) - self.db.add(cert) - - # 5. Create Prevalidator if data exists + self.db.add(CompanyCertification(**cert_data, company_id=db_company.id)) if preval_data: - preval = CompanyPrevalidator(**preval_data, company_id=db_company.id) - self.db.add(preval) + self.db.add(CompanyPrevalidator(**preval_data, company_id=db_company.id)) + if vu_data: + self.db.add(CompanyVU(**vu_data, company_id=db_company.id)) + if ea_data: + self.db.add(CompanyElectronicAgent(**ea_data, company_id=db_company.id)) + if cfdi_data: + self.db.add(CompanyCFDI(**cfdi_data, company_id=db_company.id)) + + # 5. Create Digital Certificates + from .submodels.digital_certificate import CompanyDigitalCertificate + for dc_data in [fiel_data, cfdi_cert_data, cancel_cert_data]: + if dc_data: + self.db.add(CompanyDigitalCertificate(**dc_data, company_id=db_company.id)) + + # 6. Create Addresses - # 6. Commit + if addr_main: + self.db.add(CompanyAddress(**addr_main, address_type='main', company_id=db_company.id)) + if addr_ind1: + self.db.add(CompanyAddress(**addr_ind1, address_type='industrial', company_id=db_company.id)) + if addr_ind2: + self.db.add(CompanyAddress(**addr_ind2, address_type='industrial2', company_id=db_company.id)) + + # 7. Commit self.db.commit() + self.db.refresh(db_company) + # --- Audit Log --- + try: + # Si no se pasó un username explícito, intentar obtenerlo del contexto + if username == "System": + ctx = get_user_context() + if ctx: + username = ctx.get("preferred_username") or ctx.get("email") or "System" + + # Preparamos la data para el log (aplanada) + log_data = self.flatten_company_dto(db_company) + + AuditService.log_crud_operation( + db=self.db, + table_name="company", + operation_type="CREATE", + record_data=log_data, + username=username, + record_id=str(db_company.id), + company_id=db_company.id + ) + except Exception as e: + logger.error(f"Error creating audit log for company creation: {e}") + # ----------------- + return db_company except IntegrityError as e: self.db.rollback() logger.error(f"IntegrityError creating company manually: {str(e)}") - raise HTTPException( - status_code=400, - detail="Error de integridad: Es posible que esta empresa ya exista.", - ) + raise HTTPException(status_code=400, detail="Error de integridad: Es posible que esta empresa ya exista.") except Exception as e: self.db.rollback() logger.error(f"Error creating company manually: {str(e)}") raise HTTPException(status_code=500, detail=f"Error creando empresa: {str(e)}") def update( - self, # Changed to instance method to use self helper methods + self, db: Session, company_id: int, tenant_id: int, company_id_unused: int, company_data: CompanyUpdateDTO, + username: str = "System", ) -> Optional[Company]: """Update a company""" from .submodels.certification import CompanyCertification from .submodels.prevalidator import CompanyPrevalidator + from .submodels.address import CompanyAddress + from .submodels.vu import CompanyVU + from .submodels.electronic_agent import CompanyElectronicAgent + from .submodels.cfdi import CompanyCFDI - # Use self.db if db is passed as None, or use passed db (legacy support) session = db if db else self.db - company = self.get_by_id(session, company_id, tenant_id, company_id_unused) - if not company: - return None + if not company: return None + + # --- Audit Log Prep --- + old_values = {} + try: + # Capturamos estado actual para comparar + # Usamos flatten_company_dto para tener una representación completa + old_values = self.flatten_company_dto(company) + except Exception as e: + logger.error(f"Error prepping audit log (old values): {e}") + # ---------------------- - # Update only provided fields update_data = company_data.model_dump(exclude_unset=True) # 1. Update Company fields company_fields = self._extract_company_fields(update_data) - - # Hybrid Approach: has_express_line is String, is_service_company is Boolean - if "has_express_line" in company_fields and isinstance(company_fields["has_express_line"], bool): - company_fields["has_express_line"] = "S" if company_fields["has_express_line"] else "N" - for field, value in company_fields.items(): setattr(company, field, value) @@ -264,26 +463,97 @@ class CompanyService: cert_fields = self._extract_certification_fields(update_data) if cert_fields: if company.certification: - for field, value in cert_fields.items(): - setattr(company.certification, field, value) + for field, value in cert_fields.items(): setattr(company.certification, field, value) else: - new_cert = CompanyCertification(**cert_fields, company_id=company.id) - session.add(new_cert) + session.add(CompanyCertification(**cert_fields, company_id=company.id)) # 3. Update Prevalidator preval_fields = self._extract_prevalidator_fields(update_data) if preval_fields: if company.prevalidator: - for field, value in preval_fields.items(): - setattr(company.prevalidator, field, value) + for field, value in preval_fields.items(): setattr(company.prevalidator, field, value) else: - new_preval = CompanyPrevalidator(**preval_fields, company_id=company.id) - session.add(new_preval) + session.add(CompanyPrevalidator(**preval_fields, company_id=company.id)) + + # 4. Update VU + vu_fields = self._extract_vu_fields(update_data) + if vu_fields: + if company.ventanilla_unica: + for field, value in vu_fields.items(): setattr(company.ventanilla_unica, field, value) + else: + session.add(CompanyVU(**vu_fields, company_id=company.id)) + + # 5. Update Electronic Agent + ea_fields = self._extract_electronic_agent_fields(update_data) + if ea_fields: + if company.electronic_agent: + for field, value in ea_fields.items(): setattr(company.electronic_agent, field, value) + else: + session.add(CompanyElectronicAgent(**ea_fields, company_id=company.id)) + + # 6. Update CFDI + cfdi_fields = self._extract_cfdi_fields(update_data) + if cfdi_fields: + if company.cfdi: + for field, value in cfdi_fields.items(): setattr(company.cfdi, field, value) + else: + session.add(CompanyCFDI(**cfdi_fields, company_id=company.id)) + + # 7. Update Digital Certificates + from .submodels.digital_certificate import CompanyDigitalCertificate + for p in ["fiel", "cfdi_cert", "cancel"]: + dc_data = self._extract_digital_certificate_fields(update_data, p) + if dc_data: + m_type = dc_data['certificate_type'] + target = next((c for c in company.digital_certificates if c.certificate_type == m_type), None) + if target: + for field, value in dc_data.items(): setattr(target, field, value) + else: + session.add(CompanyDigitalCertificate(**dc_data, company_id=company.id)) + + # 8. Update Addresses + + for prefix, addr_type in [("main", "main"), ("ind1", "industrial"), ("ind2", "industrial2")]: + addr_data = self._extract_address_fields(update_data, prefix) + if addr_data: + # Buscar dirección existente de ese tipo + target_addr = next((a for a in company.addresses if a.address_type == addr_type), None) + if target_addr: + for field, value in addr_data.items(): setattr(target_addr, field, value) + else: + session.add(CompanyAddress(**addr_data, address_type=addr_type, company_id=company.id)) try: session.commit() session.refresh(company) + + # --- Audit Log --- + try: + # Si no se pasó un username explícito, intentar obtenerlo del contexto + if username == "System": + ctx = get_user_context() + if ctx: + username = ctx.get("preferred_username") or ctx.get("email") or "System" + + new_values = self.flatten_company_dto(company) + + AuditService.log_crud_operation( + db=session, + table_name="company", + operation_type="UPDATE", + record_data=new_values, # Data más reciente + username=username, + record_id=str(company.id), + old_values=old_values, + new_values=new_values, + company_id=company.id + ) + except Exception as e: + logger.error(f"Error creating audit log for company update: {e}") + # ----------------- + return company + except Exception as e: session.rollback() logger.error(f"Error updating company {company_id}: {str(e)}") @@ -291,69 +561,139 @@ class CompanyService: @staticmethod def delete( - db: Session, company_id: int, tenant_id: int, company_id_unused: int + db: Session, company_id: int, tenant_id: int, company_id_unused: int, username: str = "System" ) -> bool: """Delete a company""" company = CompanyService.get_by_id(db, company_id, tenant_id, company_id_unused) if not company: return False + # --- Audit Log Prep --- + record_data = {} try: - # Manual cascade delete for submodels to ensure order and avoid FK issues - # (Even though cascade="all, delete-orphan" is set, manual deletion is safer for strict DBs) - - # 1. Delete Certification - if company.certification: - db.delete(company.certification) - - # 2. Delete Prevalidator - if company.prevalidator: - db.delete(company.prevalidator) - - # 3. Delete Electronic Agent - if company.electronic_agent: - db.delete(company.electronic_agent) - - # 4. Delete VU - if company.ventanilla_unica: - db.delete(company.ventanilla_unica) - - # 5. Delete CFDI - if company.cfdi: - db.delete(company.cfdi) - - # 6. Delete Digital Certificates - for cert in company.digital_certificates: - db.delete(cert) - - # 7. Delete Addresses - for addr in company.addresses: - db.delete(addr) + service = CompanyService(db) # Instancia para usar métodos de instancia si fuera necesario, o usar estático si flatten lo fuera + # flatten_company_dto es método de instancia en la definición actual, pero se está llamando aquí + # Deberíamos instanciar el servicio o mover flatten a estático. + # Como flatten usa self solo para acceder a nada realmente del estado, podría ser estático, + # pero para no romper, instanciamos. + record_data = service.flatten_company_dto(company) + except Exception: + pass + # ---------------------- + + try: + # Cascading deletes are handled by relationship settings, but manual is safer here + if company.certification: db.delete(company.certification) + if company.prevalidator: db.delete(company.prevalidator) + if company.electronic_agent: db.delete(company.electronic_agent) + if company.ventanilla_unica: db.delete(company.ventanilla_unica) + if company.cfdi: db.delete(company.cfdi) + for cert in company.digital_certificates: db.delete(cert) + for addr in company.addresses: db.delete(addr) - # Flush to execute submodel deletions first db.flush() - db.delete(company) db.commit() + + # --- Audit Log --- + try: + # Context check + if username == "System": + ctx = get_user_context() + if ctx: + username = ctx.get("preferred_username") or ctx.get("email") or "System" + + AuditService.log_crud_operation( + db=db, + table_name="company", + operation_type="DELETE", + record_data=record_data, + username=username, + record_id=str(company_id), + company_id=company_id + ) + except Exception as e: + logger.error(f"Error creating audit log for company delete: {e}") + # ----------------- + return True except IntegrityError as e: db.rollback() logger.error(f"IntegrityError deleting company {company_id}: {str(e)}") - # Try to get detailed error from psycopg2 - detail = "No se puede eliminar la empresa porque tiene registros relacionados." - if hasattr(e, 'orig') and hasattr(e.orig, 'diag'): - if e.orig.diag.message_detail: - detail += f" Detalles: {e.orig.diag.message_detail}" - - raise HTTPException( - status_code=400, - detail=detail - ) + raise HTTPException(status_code=400, detail="No se puede eliminar la empresa porque tiene registros relacionados.") except Exception as e: db.rollback() logger.error(f"Error deleting company {company_id}: {str(e)}") raise HTTPException(status_code=500, detail="Error al eliminar la empresa") + def upload_certificate( + self, + company_id: int, + certificate_type: str, + file_path: str, + tenant_id: int + ) -> Company: + """ + Update a certificate path for a company + certificate_type: fiel_cer, fiel_key, cfdi_cert_cer, cfdi_cert_key, cancel_cer, cancel_key + """ + from .submodels.digital_certificate import CompanyDigitalCertificate + + company = self.get_by_id(self.db, company_id, tenant_id, 0) + if not company: + return None + + # Determinar el tipo de certificado (fiel, cfdi, cancellation) y el campo a actualizar (cer_file_path, key_file_path) + cert_model_type = "" + field_to_update = "" + + if certificate_type == "fiel_cer": + cert_model_type = "fiel" + field_to_update = "cer_file_path" + elif certificate_type == "fiel_key": + cert_model_type = "fiel" + field_to_update = "key_file_path" + elif certificate_type == "cfdi_cert_cer": + cert_model_type = "cfdi" + field_to_update = "cer_file_path" + elif certificate_type == "cfdi_cert_key": + cert_model_type = "cfdi" + field_to_update = "key_file_path" + elif certificate_type == "cancel_cer": + cert_model_type = "cancellation" + field_to_update = "cer_file_path" + elif certificate_type == "cancel_key": + cert_model_type = "cancellation" + field_to_update = "key_file_path" + else: + raise ValueError(f"Invalid certificate type: {certificate_type}") + + # Buscar el registro de certificado existente + target_cert = next((c for c in company.digital_certificates if c.certificate_type == cert_model_type), None) + + try: + if target_cert: + # Si existe, actualizamos + setattr(target_cert, field_to_update, file_path) + else: + # Si no existe, creamos uno nuevo + new_cert_data = { + "certificate_type": cert_model_type, + "company_id": company.id, + field_to_update: file_path + } + new_cert = CompanyDigitalCertificate(**new_cert_data) + self.db.add(new_cert) + + self.db.commit() + self.db.refresh(company) + return company + except Exception as e: + self.db.rollback() + logger.error(f"Error uploading certificate: {str(e)}") + raise HTTPException(status_code=500, detail=f"Error al guardar la referencia del certificado: {str(e)}") + + # Custom methods def get_companies_by_tenant(self, tenant_id: int) -> List[Company]: """Get all companies for a tenant""" diff --git a/backend/api/v1/modules/a76/general_catalogs/fractions/canadian_tariff_fractions/__init__.py b/backend/api/v1/modules/a76/general_catalogs/fractions/canadian_tariff_fractions/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/backend/api/v1/modules/a76/general_catalogs/fractions/canadian_tariff_fractions/models.py b/backend/api/v1/modules/a76/general_catalogs/fractions/canadian_tariff_fractions/models.py new file mode 100644 index 00000000..f67d68bd --- /dev/null +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/canadian_tariff_fractions/models.py @@ -0,0 +1,29 @@ + +from datetime import datetime +from typing import Optional +from sqlalchemy import String, Numeric, TIMESTAMP, func, UniqueConstraint +from sqlalchemy.orm import Mapped, mapped_column +from core.database import Base + +from api.v1.common.base_models import TenantScopedMixin, TimestampMixin + +class CanadianTariffFraction(Base, TenantScopedMixin, TimestampMixin): + """Model for Canadian Tariff Fractions (GFracEUACan)""" + __tablename__ = "canadian_tariff_fractions" + __table_args__ = ( + UniqueConstraint('fraction', 'country_code', 'company_id', name='uq_canadian_fraction_country_company'), + {"schema": "a76"} + ) + + id: Mapped[int] = mapped_column(primary_key=True, index=True) + + # FRACCION + fraction: Mapped[str] = mapped_column(String(13), nullable=False, index=True) + # ADV + ad_valorem: Mapped[Optional[float]] = mapped_column(Numeric(5, 2)) + # UNIDAD + unit_of_measure: Mapped[Optional[str]] = mapped_column(String(5)) + # CLAVEM3 (Part of original PK) + country_code: Mapped[str] = mapped_column(String(3), nullable=False, index=True) + # DESCRIPCION + description: Mapped[Optional[str]] = mapped_column(String(1000)) diff --git a/backend/api/v1/modules/a76/general_catalogs/fractions/canadian_tariff_fractions/routes.py b/backend/api/v1/modules/a76/general_catalogs/fractions/canadian_tariff_fractions/routes.py new file mode 100644 index 00000000..55daf80d --- /dev/null +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/canadian_tariff_fractions/routes.py @@ -0,0 +1,98 @@ + +from typing import Optional +from fastapi import APIRouter, Depends, HTTPException, Query +from sqlalchemy.orm import Session +from core.database import get_core_db +from core.security import get_current_user +from .service import CanadianTariffFractionService +from .schemas import ( + CanadianTariffFractionResponse, + CanadianTariffFractionCreate, + CanadianTariffFractionUpdate, + CanadianTariffFractionListResponse +) + +from api.v1.common.tenant_crud_routes import validate_access_to_resource + +router = APIRouter() + +@router.get("/", response_model=CanadianTariffFractionListResponse) +def list_canadian_fractions( + company_id: int = Query(..., description="Company ID"), + page: int = Query(1, ge=1), + page_size: int = Query(50, ge=1, le=1000), + search: Optional[str] = None, + db: Session = Depends(get_core_db), + current_user = Depends(get_current_user) +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + skip = (page - 1) * page_size + service = CanadianTariffFractionService(db) + items, total = service.get_multi( + tenant_id=tenant_id, + company_id=company_id, + skip=skip, + limit=page_size, + search=search + ) + return { + "items": items, + "total": total, + "page": page, + "page_size": page_size, + "pages": (total + page_size - 1) // page_size if page_size > 0 else 1 + } + +@router.get("/{id}", response_model=CanadianTariffFractionResponse) +def get_canadian_fraction( + id: int, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user = Depends(get_current_user) +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + service = CanadianTariffFractionService(db) + item = service.get(id, tenant_id, company_id) + if not item: + raise HTTPException(status_code=404, detail="Not found") + return item + +@router.post("/", response_model=CanadianTariffFractionResponse) +def create_canadian_fraction( + item_in: CanadianTariffFractionCreate, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user = Depends(get_current_user) +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + service = CanadianTariffFractionService(db) + return service.create(item_in, tenant_id, company_id) + +@router.put("/{id}", response_model=CanadianTariffFractionResponse) +def update_canadian_fraction( + id: int, + item_in: CanadianTariffFractionUpdate, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user = Depends(get_current_user) +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + service = CanadianTariffFractionService(db) + item = service.get(id, tenant_id, company_id) + if not item: + raise HTTPException(status_code=404, detail="Not found") + return service.update(item, item_in) + +@router.delete("/{id}", response_model=CanadianTariffFractionResponse) +def delete_canadian_fraction( + id: int, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user = Depends(get_current_user) +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + service = CanadianTariffFractionService(db) + item = service.get(id, tenant_id, company_id) + if not item: + raise HTTPException(status_code=404, detail="Not found") + return service.delete(id, tenant_id, company_id) diff --git a/backend/api/v1/modules/a76/general_catalogs/fractions/canadian_tariff_fractions/schemas.py b/backend/api/v1/modules/a76/general_catalogs/fractions/canadian_tariff_fractions/schemas.py new file mode 100644 index 00000000..4748e4ca --- /dev/null +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/canadian_tariff_fractions/schemas.py @@ -0,0 +1,32 @@ + +from typing import Optional, List +from pydantic import BaseModel, Field, ConfigDict +from datetime import datetime +from decimal import Decimal + +class CanadianTariffFractionBase(BaseModel): + fraction: str = Field(..., max_length=13) + ad_valorem: Optional[Decimal] = Field(None, max_digits=5, decimal_places=2) + unit_of_measure: Optional[str] = Field(None, max_length=5) + country_code: str = Field(..., max_length=3) + description: Optional[str] = Field(None, max_length=1000) + +class CanadianTariffFractionCreate(CanadianTariffFractionBase): + pass + +class CanadianTariffFractionUpdate(CanadianTariffFractionBase): + pass + +class CanadianTariffFractionResponse(CanadianTariffFractionBase): + id: int + created_at: datetime + updated_at: datetime + + model_config = ConfigDict(from_attributes=True) + +class CanadianTariffFractionListResponse(BaseModel): + items: List[CanadianTariffFractionResponse] + total: int + page: int + page_size: int + pages: int diff --git a/backend/api/v1/modules/a76/general_catalogs/fractions/canadian_tariff_fractions/service.py b/backend/api/v1/modules/a76/general_catalogs/fractions/canadian_tariff_fractions/service.py new file mode 100644 index 00000000..8fec1468 --- /dev/null +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/canadian_tariff_fractions/service.py @@ -0,0 +1,73 @@ + +from typing import Optional, List, Tuple +from sqlalchemy import select, func +from sqlalchemy.orm import Session +from .models import CanadianTariffFraction +from .schemas import CanadianTariffFractionCreate, CanadianTariffFractionUpdate + +class CanadianTariffFractionService: + def __init__(self, db: Session): + self.db = db + + def get(self, id: int, tenant_id: int, company_id: int) -> Optional[CanadianTariffFraction]: + return self.db.query(CanadianTariffFraction).filter( + CanadianTariffFraction.id == id, + CanadianTariffFraction.tenant_id == tenant_id, + CanadianTariffFraction.company_id == company_id + ).first() + + def get_multi( + self, + tenant_id: int, + company_id: int, + skip: int = 0, + limit: int = 100, + search: Optional[str] = None + ) -> Tuple[List[CanadianTariffFraction], int]: + query = select(CanadianTariffFraction).where( + CanadianTariffFraction.tenant_id == tenant_id, + CanadianTariffFraction.company_id == company_id + ) + + if search: + query = query.where( + (CanadianTariffFraction.fraction.ilike(f"%{search}%")) | + (CanadianTariffFraction.description.ilike(f"%{search}%")) + ) + + total = self.db.execute(select(func.count()).select_from(query.subquery())).scalar_one() + # Add deterministic sort order + query = query.order_by(CanadianTariffFraction.fraction) + items = self.db.scalars(query.offset(skip).limit(limit)).all() + return items, total + + def create(self, obj_in: CanadianTariffFractionCreate, tenant_id: int, company_id: int) -> CanadianTariffFraction: + db_obj = CanadianTariffFraction( + **obj_in.model_dump(), + tenant_id=tenant_id, + company_id=company_id + ) + self.db.add(db_obj) + self.db.commit() + self.db.refresh(db_obj) + return db_obj + + def update( + self, + db_obj: CanadianTariffFraction, + obj_in: CanadianTariffFractionUpdate + ) -> CanadianTariffFraction: + update_data = obj_in.model_dump(exclude_unset=True) + for field, value in update_data.items(): + setattr(db_obj, field, value) + self.db.add(db_obj) + self.db.commit() + self.db.refresh(db_obj) + return db_obj + + def delete(self, id: int, tenant_id: int, company_id: int) -> Optional[CanadianTariffFraction]: + obj = self.get(id, tenant_id, company_id) + if obj: + self.db.delete(obj) + self.db.commit() + return obj diff --git a/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/dto.py b/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/dto.py new file mode 100644 index 00000000..3bf70308 --- /dev/null +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/dto.py @@ -0,0 +1,29 @@ +""" +DTOs for historical tariff fractions. +""" + +from datetime import datetime +from decimal import Decimal +from typing import Optional + +from pydantic import BaseModel, ConfigDict + + +class HistoricalTariffFractionResponseDTO(BaseModel): + id: int + historical_fraction: Optional[str] = None + unit_of_measure_code: Optional[str] = None + country: Optional[str] = None + fraction_type: Optional[str] = None + sector: Optional[str] = None + import_tax_rate: Optional[Decimal] = None + export_tax_rate: Optional[Decimal] = None + publication_date: Optional[datetime] = None + is_immex: Optional[bool] = None + normal_temporality: Optional[bool] = None + services_temporality: Optional[bool] = None + certified_temporality: Optional[bool] = None + by_log: Optional[bool] = None + end_date: Optional[datetime] = None + + model_config = ConfigDict(from_attributes=True) diff --git a/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/models.py b/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/models.py new file mode 100644 index 00000000..4f2fc3e6 --- /dev/null +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/models.py @@ -0,0 +1,34 @@ +from datetime import datetime +from typing import Optional +from decimal import Decimal +from sqlalchemy import DateTime, ForeignKey, String, Integer, Numeric, Boolean +from sqlalchemy.orm import Mapped, mapped_column +from core.database import Base +from api.v1.common.base_models import TenantScopedMixin, TimestampMixin + + +class HistoricalTariffFraction(Base, TenantScopedMixin, TimestampMixin): + """ + Historical tariff fractions catalog. + Maps to SQL Server table: GFraccionesHistorico + """ + + __tablename__ = "historical_tariff_fractions" + __table_args__ = {"schema": "a76"} + + id: Mapped[int] = mapped_column(Integer, primary_key=True, nullable=False) + historical_fraction: Mapped[Optional[str]] = mapped_column(String(8), nullable=True) + nico: Mapped[Optional[str]] = mapped_column(String(2), nullable=True) + unit_of_measure_code: Mapped[Optional[str]] = mapped_column(ForeignKey("a76.unit_of_measure_customs.code"), nullable=True) + country: Mapped[Optional[str]] = mapped_column(ForeignKey("public.countries.m3_key"), nullable=True) + fraction_type: Mapped[Optional[str]] = mapped_column(String(7), nullable=True) + sector: Mapped[Optional[str]] = mapped_column(String(5), nullable=True) + import_tax_rate: Mapped[Optional[Decimal]] = mapped_column(Numeric(7, 2), nullable=True) + export_tax_rate: Mapped[Optional[Decimal]] = mapped_column(Numeric(7, 2), nullable=True) + publication_date: Mapped[Optional[datetime]] = mapped_column(DateTime, nullable=True) + is_immex: Mapped[Optional[bool]] = mapped_column(Boolean, nullable=True) + normal_temporality: Mapped[Optional[bool]] = mapped_column(Boolean, nullable=True) + services_temporality: Mapped[Optional[bool]] = mapped_column(Boolean, nullable=True) + certified_temporality: Mapped[Optional[bool]] = mapped_column(Boolean, nullable=True) + by_log: Mapped[Optional[bool]] = mapped_column(Boolean, nullable=True) + end_date: Mapped[Optional[datetime]] = mapped_column(DateTime, nullable=True) diff --git a/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/routes.py b/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/routes.py new file mode 100644 index 00000000..7a020605 --- /dev/null +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/routes.py @@ -0,0 +1,101 @@ +from typing import List, Optional +from fastapi import APIRouter, Depends, HTTPException, Query +from sqlalchemy.orm import Session +from core.database import get_core_db +from core.security import get_current_user +from .service import HistoricalTariffFractionService +from .schemas import HistoricalTariffFractionResponse, HistoricalTariffFractionCreate, HistoricalTariffFractionUpdate, HistoricalTariffFractionListResponse + +from api.v1.common.tenant_crud_routes import validate_access_to_resource + +router = APIRouter() + +@router.get("/", response_model=HistoricalTariffFractionListResponse) +def get_historical_fractions( + company_id: int = Query(..., description="Company ID"), + page: int = Query(1, ge=1, description="Page number"), + page_size: int = Query(50, ge=1, le=1000, description="Page size"), + historical_fraction: Optional[str] = Query(None, description="Search by historical fraction code"), + db: Session = Depends(get_core_db), + current_user = Depends(get_current_user) +): + """ + Get all historical tariff fractions (paginated). + """ + tenant_id = validate_access_to_resource(db, company_id, current_user) + skip = (page - 1) * page_size + service = HistoricalTariffFractionService(db) + items, total = service.get_multi(tenant_id, company_id, skip=skip, limit=page_size, historical_fraction=historical_fraction) + return { + "items": items, + "total": total, + "page": page, + "page_size": page_size, + "pages": (total + page_size - 1) // page_size if page_size > 0 else 1 + } + +@router.get("/{id}", response_model=HistoricalTariffFractionResponse) +def get_historical_fraction( + id: int, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user = Depends(get_current_user) +): + """ + Get a historical tariff fraction by ID. + """ + tenant_id = validate_access_to_resource(db, company_id, current_user) + service = HistoricalTariffFractionService(db) + fraction = service.get(id, tenant_id, company_id) + if not fraction: + raise HTTPException(status_code=404, detail="Historical tariff fraction not found") + return fraction + +@router.post("/", response_model=HistoricalTariffFractionResponse) +def create_historical_fraction( + fraction_in: HistoricalTariffFractionCreate, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user = Depends(get_current_user) +): + """ + Create a new historical tariff fraction. + """ + tenant_id = validate_access_to_resource(db, company_id, current_user) + service = HistoricalTariffFractionService(db) + return service.create(fraction_in, tenant_id, company_id) + +@router.put("/{id}", response_model=HistoricalTariffFractionResponse) +def update_historical_fraction( + id: int, + fraction_in: HistoricalTariffFractionUpdate, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user = Depends(get_current_user) +): + """ + Update a historical tariff fraction. + """ + tenant_id = validate_access_to_resource(db, company_id, current_user) + service = HistoricalTariffFractionService(db) + fraction = service.get(id, tenant_id, company_id) + if not fraction: + raise HTTPException(status_code=404, detail="Historical tariff fraction not found") + return service.update(fraction, fraction_in) + +@router.delete("/{id}", response_model=HistoricalTariffFractionResponse) +def delete_historical_fraction( + id: int, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user = Depends(get_current_user) +): + """ + Delete a historical tariff fraction. + """ + tenant_id = validate_access_to_resource(db, company_id, current_user) + service = HistoricalTariffFractionService(db) + fraction = service.get(id, tenant_id, company_id) + if not fraction: + raise HTTPException(status_code=404, detail="Historical tariff fraction not found") + return service.delete(id, tenant_id, company_id) diff --git a/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/schemas.py b/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/schemas.py new file mode 100644 index 00000000..e6cc1c53 --- /dev/null +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/schemas.py @@ -0,0 +1,45 @@ + +from typing import Optional, List +from datetime import datetime +from decimal import Decimal +from pydantic import BaseModel, Field + +class HistoricalTariffFractionBase(BaseModel): + """Base schema for Historical Tariff Fraction""" + historical_fraction: Optional[str] = Field(None, max_length=8) + unit_of_measure_code: Optional[str] = None + country: Optional[str] = None + fraction_type: Optional[str] = Field(None, max_length=7) + sector: Optional[str] = Field(None, max_length=5) + import_tax_rate: Optional[Decimal] = None + export_tax_rate: Optional[Decimal] = None + publication_date: Optional[datetime] = None + is_immex: Optional[bool] = None + normal_temporality: Optional[bool] = None + services_temporality: Optional[bool] = None + certified_temporality: Optional[bool] = None + by_log: Optional[bool] = None + end_date: Optional[datetime] = None + +class HistoricalTariffFractionCreate(HistoricalTariffFractionBase): + """Schema for creating a Historical Tariff Fraction""" + pass + +class HistoricalTariffFractionUpdate(HistoricalTariffFractionBase): + """Schema for updating a Historical Tariff Fraction""" + pass + +class HistoricalTariffFractionResponse(HistoricalTariffFractionBase): + """Schema for reading a Historical Tariff Fraction""" + id: int + + class Config: + from_attributes = True + +class HistoricalTariffFractionListResponse(BaseModel): + """Schema for paginated list of Historical Tariff Fractions""" + items: List[HistoricalTariffFractionResponse] + total: int + page: int + page_size: int + pages: int diff --git a/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/seed.py b/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/seed.py new file mode 100644 index 00000000..4bc9e7cf --- /dev/null +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/seed.py @@ -0,0 +1,6592 @@ +seed = [ + ('1012901', 'None', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1039102', 'None', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1039202', 'None', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1039203', 'None', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1041002', 'None', '7', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1051101', 'None', '7', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1051102', 'None', '7', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1061901', 'None', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1061903', 'None', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1062001', 'None', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1062002', 'None', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1062003', 'None', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1062099', 'None', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1063901', 'None', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1063902', 'None', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2071301', 'None', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2071302', 'None', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2071303', 'None', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2071399', 'None', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2071401', 'None', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2071403', 'None', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2071404', 'None', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2072601', 'None', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2072602', 'None', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2072699', 'None', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2072701', 'None', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2072703', 'None', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2076001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2076002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2076099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2089001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2089002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2109901', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2109903', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3029001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3039001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3044402', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3044499', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3044902', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3044903', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3044904', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3045202', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3045299', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3045302', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3045399', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3045901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3045902', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3045903', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3047402', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3047499', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3048902', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3048903', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3049502', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3049599', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3049901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3049902', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3049903', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3049904', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3053202', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3053299', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3053901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3053902', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3053903', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3053904', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3053905', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3054901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3054902', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3054903', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3054904', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3054905', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3054906', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3055101', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3055199', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3055901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3055902', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3055903', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3055904', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3055905', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3055906', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3055907', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3056901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3056902', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3056903', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3056904', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3056905', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057203', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057204', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057205', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057206', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057207', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057208', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057299', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057902', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057903', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057904', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057905', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057906', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057907', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3062101', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3062201', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3062401', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3062501', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3062601', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3062699', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3062701', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3062799', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3062901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3074101', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3074199', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3074901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3078999', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4011001', 'None', '8', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4011099', 'None', '8', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4012001', 'None', '8', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4012099', 'None', '8', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4014001', 'None', '8', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4014099', 'None', '8', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4015001', 'None', '8', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4015099', 'None', '8', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4051001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4051099', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4063001', 'None', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4063099', 'None', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4069003', 'None', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4069005', 'None', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4069006', 'None', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4072101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4072199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4079001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4089101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4089199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4089901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('5079001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('5080001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('5080099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('5100001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('5100002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('5100003', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('5100099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('5119101', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('5119902', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('5119906', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('5119907', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6011001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6011002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6011003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6011004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6011005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6011006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6011007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6011008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6011099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6012001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6012002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6012003', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6012004', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6012005', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6012006', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6012007', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6012008', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6012009', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6012099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6021001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6021002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6021003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6021004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6021005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6021006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6021099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6022001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6022002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6022003', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6022099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6029001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6029002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6029003', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6029004', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6029005', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6029008', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6029009', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6029010', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6029011', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6029012', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6029013', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6031401', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6031499', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6031901', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6031902', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6031903', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6031904', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6031905', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6031906', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6031907', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6031908', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6042002', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6042003', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6049002', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6049003', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6049004', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7020001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7020002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2013-05-15 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7020099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7031001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7031099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7032001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7032099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7041001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7041002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7041099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7049001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7092001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7092099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7094001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7094099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7095901', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7096001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7096099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7099901', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7108002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7108003', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7108004', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7109001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7109099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7119001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7119002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7129002', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7129003', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7133302', 'None', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7133303', 'None', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7149001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8029001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8041001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8041099', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8042001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8042099', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8045001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8045002', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8045003', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8052001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8055001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8055002', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8055099', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8071901', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8093001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8093002', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8129001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8129002', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8131001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8131099', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8132001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8132099', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8134001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8134002', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8134003', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8134099', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('9011101', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('9011199', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('9019001', 'None', '1', 'None', 'GENERAL', 'None', '60.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('9042101', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('9042199', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('9042201', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('9042299', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('9109901', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('9109902', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('10039001', 'None', '1', 'None', 'GENERAL', 'None', '60.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('10059001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('10059002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('10059003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('10063001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('10063099', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11029001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11029002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11031901', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11031902', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11031999', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11032001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11032099', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11041901', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11041999', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11042901', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11042999', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11062001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11062099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11063001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11063099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11081901', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11081999', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12060001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12060099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12076001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12076002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12079901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12079902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12089001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12089002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12092901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12092902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12092903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12092905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099104', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099105', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099106', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099107', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099108', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099109', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099110', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099111', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099112', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099113', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099114', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12119001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12119003', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12119004', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12119005', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12119006', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12119007', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2014-12-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12129201', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12129299', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12129401', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12129499', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12129904', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13019001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13019002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13021101', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13021103', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13021201', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13021299', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13021910', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13021911', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13021912', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13022001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13022099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13023903', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('14049001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('14049002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('14049003', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('14049004', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15030001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15030099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15042001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15042099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15050001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15050002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15050003', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15050099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15060002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15091001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15091099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15099001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15099002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15159001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15159002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15159003', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15159004', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15159005', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15179001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15179002', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15219001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15219002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15219003', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16010001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16010002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2018-06-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16010099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16021001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16021099', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16022001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16022099', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16024901', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16025001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16025099', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041301', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041303', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041399', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041401', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041402', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041403', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041601', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041603', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041699', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041901', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041902', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041903', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16042001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16042002', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16042004', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16042005', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16042006', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16042007', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16042008', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16042009', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16042099', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16051001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16051099', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17011201', 'None', '1', 'None', 'GENERAL', 'None', '0.36', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17011204', 'None', '1', 'None', 'GENERAL', 'None', '0.36', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17011401', 'None', '1', 'None', 'GENERAL', 'None', '0.34', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17011404', 'None', '1', 'None', 'GENERAL', 'None', '0.34', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17019102', 'None', '1', 'None', 'GENERAL', 'None', '0.36', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17019103', 'None', '1', 'None', 'GENERAL', 'None', '0.36', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17019901', 'None', '1', 'None', 'GENERAL', 'None', '0.36', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17019902', 'None', '1', 'None', 'GENERAL', 'None', '0.36', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17026001', 'None', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17026002', 'None', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17026099', 'None', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17031002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('18069001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('18069002', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('19011001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('19011099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('19012001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('19019001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('19059001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20019001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20019002', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20019003', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20049001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20049002', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20049099', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20059901', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20059902', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20079904', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20081101', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20081199', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20081901', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20081999', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20083001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20083002', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20083003', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20083004', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20083005', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20083006', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20083007', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20083008', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20083099', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20089901', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20091201', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20091299', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20091901', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20093101', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20093199', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20093901', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20094101', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20094199', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20094901', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20099001', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20099099', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('21011101', 'None', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('21021001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('21032001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('21032099', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('21033001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('21033099', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('21061003', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('21061004', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('21069002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('21069006', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22011001', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22011099', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22029001', 'None', '8', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22029002', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22029003', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22029004', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22029005', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2009-12-16 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22029099', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22041001', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22041099', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22042101', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22042102', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22042103', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22042199', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22051001', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22051099', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22059001', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22060001', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22060099', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22083001', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22083002', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22083003', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22083004', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22083099', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22084001', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22084099', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22087001', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22087002', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22087099', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22089002', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22089003', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22089004', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22089005', 'None', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-11-23 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23011001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23011099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23024001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23024099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23069001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23080001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23080099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23099001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23099002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23099003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23099005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23099006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23099007', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23099008', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23099009', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23099010', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23099011', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('24011001', 'None', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('24011099', 'None', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('24012001', 'None', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('24012002', 'None', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('24012099', 'None', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('24039101', 'None', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('24039199', 'None', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25010001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25010099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25030001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25030099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25062001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25062099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25084001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25084099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25101001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25101099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25102001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25102099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25131001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25131099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25241001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25241002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25249001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25249002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25309002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25309003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25309004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25309005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25309006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25309007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25309008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25309009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26020001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26020099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26060001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26060099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26100001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26100099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26140001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26140002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2008-12-24 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26140099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26151001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26151099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26190001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26190099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26204001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26204099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26209101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26209199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26209901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26209902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26209903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27030001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27030099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27040001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27040002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27079901', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27079902', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27079903', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27090002', 'None', '15', 'None', 'GENERAL', 'None', '0.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27090003', 'None', '15', 'None', 'GENERAL', 'None', '0.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27090004', 'None', '15', 'None', 'GENERAL', 'None', '0.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101201', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101202', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101203', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101205', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101207', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101208', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101209', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101210', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101291', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101901', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101903', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101905', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101906', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101907', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101908', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101909', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101910', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101991', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27111902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27111903', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27129004', 'None', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28030001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28042901', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28047001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28047002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28047003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28047099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28051901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28100001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28100099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28111901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28112101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28112102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28112201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28112202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28112901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28112902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28121001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28121002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28121003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28121099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28152001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28152002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28164001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28164002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28181001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28181002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28181099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28182001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28182099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28183001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28183002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28201001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28201099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28211001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28211002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28211003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28249001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28251001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28251099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28254001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28254099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28255001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28255002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28255099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28259001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28261901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28261902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28269001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28273901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28273902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28273903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28273904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28273905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28273906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28274101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28274199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28291101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28291102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28291901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28309001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28309002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28319001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28321001', 'None', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28321099', 'None', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28322001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28332901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28332902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28332904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28334001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28334002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28334099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28341001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28341099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28352501', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28352599', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28352901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28352902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28352903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28364001', 'None', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28364002', 'None', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28369901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28369902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28369903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28369904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28371101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28371199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28371901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28372001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28372099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28399001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28399002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28399003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28399099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28415001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28415002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28415099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28419001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28421001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28421099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28429001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28439001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28444001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28444002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28444099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28469001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28469002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28480001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28480002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28480003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28480099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28492001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28500001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28500002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28500099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28521001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28521002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28521003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28521099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28529001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28530001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29011001', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29011002', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29011003', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29011004', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29011099', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29021901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29021902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29021903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29029001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29029002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29029003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29029004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29029005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29029006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29029007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29031301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29031399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29031901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29031902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29031903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29031904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29032901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29033901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29033902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29037701', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29037702', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29037703', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29037704', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29037799', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29037901', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29037904', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29037905', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29038203', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29038901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29038902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29039902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29039903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29039904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29039906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29042001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29042002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29042003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29042004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29042005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29042006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29042007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29049001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29049002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29049003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29049004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29049005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29049006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29049007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29049099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051401', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051402', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051403', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051499', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051601', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051602', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051699', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29052201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29052202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29052203', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29052204', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29052205', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29052299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29052901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29052902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29052903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29053903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29053904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29054901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29054902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29055901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29055902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29055903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29055904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29055905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29061201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29061299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29061301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29061302', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29061901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29061902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29061903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29062901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29062902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29062903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29062904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29062906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071302', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071501', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071502', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071599', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29072301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29072302', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29072901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29072902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29072903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29072904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29072905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29081901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29081902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29081903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29081904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29081905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29081906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29081907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29089902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29089903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29089904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29089905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29089906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29089907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29089908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29089909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29089910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29089911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29089912', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29091901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29091902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29091903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29093001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29093002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29093003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29093004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29093005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29093006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29093007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29093008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29093009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29093099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29094402', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29095002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29095003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29095004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29095005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29109002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29110001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29110002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29110003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29110099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29121901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29121902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29121903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29121904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29121906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29121907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29121908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29121909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29121910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29121911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29121912', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29122901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29122903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29122904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29122905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29124901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29124902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29124903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29124906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29130001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29130002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29130099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29141901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29141903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29141904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29141905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29141906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29142301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29142302', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29143901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29143902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29143903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29143904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29143905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29143906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29143907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29145001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29145002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29145003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29145099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29146901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29146902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29147001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29147002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29147003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29147099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29151201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29151202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29151299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29152901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29152902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29153901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29153906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29153907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29153908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29153910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29153911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29153912', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29153914', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29153916', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29154002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29154003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29154004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29155001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29155002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29155004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29155005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29156002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29157008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29157009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29159002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29159013', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29159014', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29159017', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29159021', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29159028', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29161501', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29161502', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29161503', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29161504', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29161901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29161902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29161903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29161904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29161905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29162001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29162002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29162003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29162004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29162099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29163104', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29163105', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29163201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29163202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29163901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29163902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29163903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29163904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29163905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29163906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29163907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29171101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29171199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29171301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29171302', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29171399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29171901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29171902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29171903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29171905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29171906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29171907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29172001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29172002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29172003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29172099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181302', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181303', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181304', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181503', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181504', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181601', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181602', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181699', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182302', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182303', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182912', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182913', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182914', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182915', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182916', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29183001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29183002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29183003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29183004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29183005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29183006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29183007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29183008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29183009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29183099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189912', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189913', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189914', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189915', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189916', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189917', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189918', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189919', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189920', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29199001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29199002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29199003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29199004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29199005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29199006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29199007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29199008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29199009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29199011', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29199012', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29201901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29201902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29209001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29209002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29209004', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29209005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29209006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29209007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29209008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29209010', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29209011', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29209012', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29209013', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211101', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211102', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211103', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211104', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2013-12-13 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211913', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211914', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211915', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211916', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211917', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29213001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214203', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214204', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214205', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214206', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214207', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214208', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214209', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214210', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214211', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214212', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214213', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214215', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214216', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214218', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214302', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214303', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214304', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214305', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214306', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214307', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214308', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214309', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214310', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214311', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214312', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214401', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214499', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214501', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214502', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214503', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214504', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214505', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214506', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214507', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214912', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214913', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214915', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29215901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29215902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29215903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29215904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29215905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29215906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29215907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29215908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29215909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29215910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221301', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221401', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221402', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221499', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221912', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221913', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221915', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221916', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221917', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221918', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221919', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221921', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221922', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221923', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221924', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221925', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221926', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221927', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221928', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221929', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221930', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221931', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221932', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221933', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221934', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221935', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221936', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221937', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221938', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221939', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221941', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222912', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222913', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222914', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222915', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222916', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222917', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222918', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222919', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222920', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222921', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222922', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222923', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222924', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29223901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29223902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29223903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29223904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29223905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29223906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29223907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29223908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29223910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29223911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29224101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29224199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225010', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225011', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225012', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225013', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225014', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225015', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225016', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225017', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225018', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225019', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225020', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225021', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225022', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29232099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29239001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29239004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29239005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29239006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29239007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29239008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29239009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29239010', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29239011', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29239012', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29241201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29241903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29241914', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242104', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242105', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242106', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242107', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242912', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242913', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242914', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242915', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242916', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242917', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242918', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242919', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242920', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242921', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242922', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242923', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242924', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242925', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242926', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242927', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242928', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242929', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242930', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242931', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242933', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242934', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242935', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242936', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242937', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242938', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242939', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242940', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242941', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242942', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242943', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242944', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242945', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242946', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242947', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242948', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29251901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29251902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29251903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29252901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29252902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29252903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29252904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29269001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29269002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29269003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29269004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29269005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29269006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29269007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29269008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29269009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29270001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29270002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29270003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29270004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29270005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29270099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29280004', 'None', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29291003', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29299001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29299002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29302001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29302002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29302003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29302004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29302008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29302009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29303001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29303099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29305002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309010', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309012', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309013', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309014', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309015', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309016', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309017', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309018', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309019', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309020', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309021', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309022', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309023', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309024', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309025', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309026', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309028', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309029', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309030', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309032', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309033', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309034', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309035', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309036', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309037', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309038', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309039', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309040', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309041', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309042', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309043', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309044', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309045', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309046', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309047', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309048', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309049', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309050', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309051', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309052', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309053', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309054', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309055', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309056', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309057', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309058', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309059', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309060', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309061', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309062', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309063', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309064', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309065', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309066', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309067', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309068', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309069', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309070', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309071', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319010', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319011', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319012', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319013', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319014', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319015', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319016', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319017', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319018', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319019', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319020', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29321901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29321903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29321904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29321905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29322001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29322002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29322003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29322004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29322005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29322006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29322007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29322008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29322009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29322010', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29322099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29329901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29329902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29329903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29329904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29329905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29329906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29329907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29329908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29329909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29329911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29331101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29331102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29331199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29331901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29331902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29331903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29331905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29331906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29331907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29331909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332912', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332913', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332914', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332915', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332916', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333302', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333912', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333913', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333914', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333915', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333916', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333918', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333919', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333920', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333921', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333923', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333925', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333926', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333927', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333928', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333929', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333930', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333931', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29334902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29334903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29334905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29334906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29334907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29334908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29334909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29334911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29334912', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29334913', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335501', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335502', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335599', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335912', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335913', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335914', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335915', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335916', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335917', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335918', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335919', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335920', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336913', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336914', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336916', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29337901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29337902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29337903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29337904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29337999', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339912', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339914', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339915', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339916', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339917', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339918', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339919', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339920', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339921', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339922', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339923', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339924', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339925', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339927', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339928', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339929', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339930', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339931', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339932', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339933', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339934', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339935', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339936', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339937', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339938', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339939', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339940', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339941', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339942', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339943', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339944', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339945', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339946', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339947', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339948', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29341001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29341002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29341003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29341004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29341005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29341006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29341007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29341008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29341099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29342001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29342002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29342003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29342004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29342006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29343001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29343099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349912', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349913', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349915', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349916', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349917', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349918', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349919', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349920', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349921', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349922', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349923', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349925', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349926', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349927', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349928', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349929', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349930', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349931', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349932', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349933', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349934', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349935', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349936', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349937', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349938', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349939', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349940', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349942', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349943', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349944', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349945', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349946', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349947', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349948', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349949', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350003', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350007', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350010', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350011', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350012', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350013', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350014', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350015', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350016', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350017', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350018', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350019', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350020', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350021', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350022', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350023', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350024', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350025', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350026', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350027', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350028', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350029', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350030', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350031', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350032', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350033', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350034', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350035', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350036', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350038', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362203', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362302', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362401', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362402', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362499', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362501', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362599', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362602', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362701', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362799', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362802', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362899', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29369001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29369002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29369004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29369005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29371201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29371299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29371901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29371902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29371903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29371904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29371905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372104', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372201', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372202', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372203', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372204', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372205', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372206', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372207', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372208', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372209', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372210', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372302', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372303', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372306', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372309', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372312', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372313', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372314', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372315', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372316', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372319', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372320', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372323', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372912', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372913', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372914', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372915', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372916', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372918', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372920', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372921', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372922', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372923', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372925', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372926', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372927', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372928', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372930', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372931', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372934', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372935', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372937', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372938', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372939', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372940', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372941', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372942', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29375001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29375099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29379001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29379002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29379003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29379004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29389001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29389002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29389003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29389004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29389005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29389006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29389007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391104', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391105', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391106', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391107', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391108', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391109', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391110', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391111', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391112', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391113', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391114', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391115', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391116', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391117', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29392001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29392099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29393001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29393002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29393003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29395901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29395902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29396901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399912', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399913', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399914', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399915', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399917', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399918', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399919', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399999', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29400001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29400002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29400003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29400004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29400099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29411001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29411002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29411004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29411005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29411006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29411009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29411010', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29411011', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29411013', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29413001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29413002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29413003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29413099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29414001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29414002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29414003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29415001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29415099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419010', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419011', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419012', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419013', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419014', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419015', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419016', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30012001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30012002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30019002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30019007', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021003', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021005', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021006', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021010', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021011', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021012', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021013', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021014', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021015', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021016', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021017', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021018', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021019', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021020', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021021', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021022', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021099', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30022001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30022003', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30022004', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30022005', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30023001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30023002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30023099', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30029002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30029003', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30029004', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30033101', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30033199', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30033902', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30034003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30034004', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30034099', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30039006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30039007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30043101', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30043199', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30043906', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30044003', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30044004', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30044005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30044099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30045003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30045004', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30049003', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30049010', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30059002', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30061001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30061002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30064001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('31023001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('31023099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('31029001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('31029099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('31031001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('31039001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('31043001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('31043099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('31049001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('31059001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32019001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32030001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32030002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32030099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041104', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041203', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041204', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041205', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041206', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041302', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041303', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041304', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041401', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041402', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041403', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041404', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041499', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041501', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041599', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041601', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041602', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041603', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041604', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041699', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041709', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32049001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32049002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32050001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32064101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32064199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32064201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32064299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32064906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32065002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32071001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32071099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32074001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32074002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32074099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32081001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32081099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32082001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32082002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32082099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32089001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32091001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32091099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32100001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32100002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32100003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32100099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32110001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32110099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32129001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32129002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32151101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32151102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32151199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32151901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32151903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32159001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33011301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33011399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33011901', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33011902', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33011903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33011904', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33011905', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33011906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33012901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33012902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33012903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33012904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33012905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33012906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33012907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33019002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33019003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33062001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33062099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('34021101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('34021103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('34021201', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('34021202', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('34052001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('34052099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('34070001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('34070002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35019002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35030002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35030003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35030004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35040001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35040002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35040003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35040004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35040005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35040006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35040099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35061001', 'None', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35069102', 'None', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35069103', 'None', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35069104', 'None', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35079001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35079003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35079004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35079005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35079007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35079010', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35079011', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35079012', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('36020001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37011001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37019902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37019903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37019905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37023101', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37023199', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37023901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37031001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37031099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37051001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37051099', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37059001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37059002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37059099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37079001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37079099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38013001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38013099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38019002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38019003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38019004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38029001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38029002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38029003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38029004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38029005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38040001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38040099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38051001', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38051099', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38063001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38063002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38063099', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38085099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089105', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089302', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089303', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38099203', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38109001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38111101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38111199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38112901', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38112902', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38112903', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38123001', 'None', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38123002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38123003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38123004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38123005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38123099', 'None', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38151101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38151102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38151199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38151201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38151202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38151299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38159001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38159003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38160001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38160003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38160004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38160005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38170004', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38190001', 'None', '8', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38190002', 'None', '8', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38220001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38220002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38220004', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38231201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38231202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38231901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38231902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38237001', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38237099', 'None', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38243001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38243099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249001', 'None', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249004', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249005', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249007', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249010', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249011', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249012', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249013', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249014', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249015', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249016', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249017', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249018', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249019', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249020', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249021', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249022', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249023', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249024', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249025', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249026', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249027', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249028', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249029', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249030', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249031', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249032', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249033', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249034', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249035', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249036', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249037', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249038', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249039', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249040', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249041', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249042', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249043', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249044', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249045', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249046', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249047', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249048', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249049', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249050', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249051', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249052', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249053', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249054', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249055', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249056', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249057', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249058', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249059', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249060', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249061', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249062', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249063', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249064', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249065', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249066', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249067', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249068', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249069', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249070', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249071', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249072', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249073', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249074', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249075', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249076', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249077', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249099', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38256101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38256102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38256199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38256901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39011001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39011002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39019002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39019003', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39022001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39022099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39031901', 'None', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39031902', 'None', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39039004', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39042102', 'None', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39059901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39059902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39061001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39061099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39071001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39071002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39071003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39071004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39071099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39073001', 'None', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39074001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39074002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39074003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39074099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39075001', 'None', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39076001', 'None', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39076099', 'None', '1', 'None', 'GENERAL', 'None', '9.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39092001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39093001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39093099', 'None', '1', 'None', 'GENERAL', 'None', '3.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39094002', 'None', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39094004', 'None', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39095001', 'None', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39095002', 'None', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39095003', 'None', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39122001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39122099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39123904', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39123905', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39131001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39131002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39131003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39131004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39131005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39131099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39139001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39139003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39139004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39139007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39139008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39159002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2013-09-02 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39161001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39161099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39162001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39162002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39162099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39169001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39169002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39169003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39169004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39169099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39171001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39171002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39171003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39171004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39171099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172302', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172303', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172999', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39173201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39173202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39173299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39181001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39181099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39201001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39201002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39201003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39201004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39201099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39202001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39202002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39202003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39202004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39202099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39203001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39203002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39203003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39203099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39204301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39204302', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39204399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39204901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39204902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39205901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39206201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39206301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39206302', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39206399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39207301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39207399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39207901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39207999', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39209201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39209299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39209901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39209999', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39211301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39211399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39211901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39211999', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39219001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39219002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39219003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39219004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39219005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39219006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39219007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39219008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39231001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39231002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39232901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39232902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39232999', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39233001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39233099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39262002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39263001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39263099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269010', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269012', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269016', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269017', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269021', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269022', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269023', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269025', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269026', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269028', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269030', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269031', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269032', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269033', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269034', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2008-12-24 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269035', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2008-12-24 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40012901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40013001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40013002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40013099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40021101', 'None', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40024901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40026001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40026099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40029102', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40052001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40052099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40059101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40059102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40059103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40059199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40081901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40082101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40082199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40082901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40082902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40091101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40091199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40091201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40091202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40091299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40092101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40092102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40092103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40092104', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40092201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40092202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40092203', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40092204', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40092299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40093101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40093102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40093103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40093104', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40093105', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40093201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40093202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40093203', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40093204', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40093299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40094101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40094102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40094103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40094199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40094201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40094202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40094299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40101101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40101199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40101201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40101202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40101299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40101901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40101902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40101903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40101904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40103501', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40103599', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40103601', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40103699', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40103901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40103902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40103903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40103904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40111002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40111003', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40111004', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40111005', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40111006', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40111007', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40111008', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40111009', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40111099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40112002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40112003', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40116101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40116102', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40116199', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40116201', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40116299', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40116301', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40116302', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40116303', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40116399', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40116999', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40119201', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40119299', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40119301', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40119399', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40119401', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40119499', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40119901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40119902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40119999', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40122002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40129001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40129003', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2008-12-24 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40159004', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169302', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169303', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169401', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40170001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40170002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41012001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41012002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41015001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41015002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41015099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41019001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41019002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41019099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41039001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41039002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41039003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41041101', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41041102', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41041103', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41041199', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41041901', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41041902', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41041903', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41044101', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41044199', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41044901', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41051001', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41051002', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41051003', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41051099', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41062101', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41062102', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41062103', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41062199', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41064001', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41064099', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41071101', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41071199', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41071201', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41071299', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41071901', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41079901', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41139001', 'None', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-30 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42021201', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42021202', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42022201', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42022202', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42023201', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42023202', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42029201', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42029202', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42029203', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42033001', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42033099', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42050001', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42060002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43018001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43018002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43018003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43018004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43018005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43018006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43018007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43018099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43021901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43021902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43021903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43022001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43022099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43023001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43023099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44011001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44031001', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44032099', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44034901', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44034902', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44039201', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44041001', 'None', '5', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44041099', 'None', '5', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44050001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44050002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44061001', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44069099', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44071001', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44071002', 'None', '5', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44071003', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44071004', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44071099', 'None', '5', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44072101', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44072102', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44072199', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44072201', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44072299', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44072901', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44072902', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44072903', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44079201', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44079299', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44079501', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44079502', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44079599', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44079901', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44079902', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44079903', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44081001', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44081002', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2009-12-16 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44083901', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44089001', 'None', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44091001', 'None', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44092101', 'None', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44092102', 'None', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44092199', 'None', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44092901', 'None', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44092902', 'None', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44101101', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44101102', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44101103', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44101199', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44101201', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44101299', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44101901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44101902', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44101903', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44111202', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44111203', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44111204', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44111205', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44111302', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44111303', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44111304', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44111305', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44111402', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44111404', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44111405', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44119201', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44119299', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44119301', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44119302', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44119303', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44119399', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44119401', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44119402', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44119403', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44119499', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44123201', 'None', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44123299', 'None', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44123901', 'None', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44123999', 'None', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44129402', 'None', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44152001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44152099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44160002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44160003', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44160004', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44187101', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44187202', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44187299', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44187901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44189001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44189099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44190001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44219001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44219002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44219003', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44219004', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44219099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('45041001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('45041003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('46012901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('46019301', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('46019399', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47020001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47020099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47031101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47031102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47031199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47031901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47031902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47032101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47032102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47032901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47032902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47063001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47063002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47063003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48022001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48022002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48022099', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025401', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025402', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025403', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025405', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025406', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025407', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025501', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025601', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025701', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025799', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025801', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025802', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025803', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025899', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48026101', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48026102', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48026199', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48026201', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48026299', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48026901', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48030001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48030002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48030003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48030099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48041901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48041902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48043101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48043102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48043103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48043104', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48043199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48043901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48043902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48043903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48044901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48044902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48045101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48045199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48045901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48045902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48052401', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48052499', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48052501', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48052599', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48070001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48070002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48070099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48084001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48084002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48084003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48084099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48089001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48099001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101302', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101303', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101304', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101305', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101306', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101401', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101402', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101403', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101404', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101405', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101406', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101499', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48102201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48102299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48102901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48103104', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48109901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48111001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48115103', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48115106', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48115901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48115902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48115903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48115904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48115905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48115906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48116001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48116002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48116099', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48119001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48119002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48119003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48119004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48119005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48119006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48119007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48119008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48119009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48149001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48169001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48169002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48192001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48192099', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48201001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48201099', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48232001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48232099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48237001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48237002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48239003', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48239004', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48239006', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48239007', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48239008', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48239009', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48239013', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48239014', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48239015', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48239016', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49019101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49019102', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49019103', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49019199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49021001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49021099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49029001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49070001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49070002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49089001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49089004', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49119102', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49119104', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49119902', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49119903', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49119904', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49119905', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('50030001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('50030099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51011101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51011199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51011901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51012101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51012199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51012901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51013001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51013099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51021901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51021902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51022001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51022099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51031001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51031002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51031099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51032001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51032002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51032099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51052901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51053901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51053902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51111101', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51111199', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51111901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51112001', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51112099', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51113001', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51113099', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51121101', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51121199', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51121901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51121902', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51122001', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51122099', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51123001', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51123002', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51123099', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51130001', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51130099', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52010001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52010002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52010099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52029901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52081901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52081902', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52081999', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52082901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52082999', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52083901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52083999', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52085901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52085902', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52085999', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52091901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52091999', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52092901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52092999', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52093901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52093999', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52094202', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52094203', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52094291', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52094292', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52095901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52095999', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52101101', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52101199', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52101901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52101902', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52101999', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52102901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52102902', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52102999', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52103901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52103999', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52104901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52104999', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52105901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52105902', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52105999', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52111101', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52111199', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52111901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52111999', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52112001', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52112002', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52112003', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52112099', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52113901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52113999', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52114202', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52114203', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52114291', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52114292', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52115901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52115999', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52122401', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52122499', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53050001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53050002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53050003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53050004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53050005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53050006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53050007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53050099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53089001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53089002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53110001', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53110099', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54021901', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54022001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54022099', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54023901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024501', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024502', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024504', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024701', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024702', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024799', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024801', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024802', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024899', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024901', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024902', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54025101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54025199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54025201', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54025202', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54025299', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54025901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54025902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54025903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54025904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54025905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54026101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54026199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54026201', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54026299', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54026901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54026902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54026903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54026904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54026905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54033101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54033102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54033201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54033202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54033901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54034101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54034102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54034901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54041201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54041299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54041901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54041902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54041903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54050001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54050002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54050003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54050004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54050099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54060003', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54071001', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54071002', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54071099', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54072001', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54072099', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54073001', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54073002', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54073003', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54073099', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54074102', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54074103', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54074104', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54074202', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54074203', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54074204', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54074301', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54074302', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54074303', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54074399', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075102', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075103', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075104', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075202', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075203', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075204', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075301', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075302', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075303', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075391', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075392', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075393', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075402', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075403', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075404', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54076101', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54076103', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54076104', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54076105', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54076191', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54076192', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54076193', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54076901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54076991', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54076992', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54076993', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54077301', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54077302', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54077303', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54077399', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54078201', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54078202', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54078203', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54078299', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079101', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079102', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079103', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079104', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079105', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079106', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079107', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079199', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079201', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079202', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079203', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079204', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079205', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079206', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079299', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079301', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079302', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079303', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079304', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079305', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079306', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079307', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079399', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079401', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079402', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079403', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079404', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079405', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079406', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079407', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079499', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54081001', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54081002', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54081003', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54081004', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54081099', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082101', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082102', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082103', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082199', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082201', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082202', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082203', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082204', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082299', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082301', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082302', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082303', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082304', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082305', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082399', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082401', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082499', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083101', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083102', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083103', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083104', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083199', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083201', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083202', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083203', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083204', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083205', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083299', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083301', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083302', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083303', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083304', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083399', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083401', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083402', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083403', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083499', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55012001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55012003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55020001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55020099', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55032001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55032002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55041001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55041099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55121102', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55121103', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55121104', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55121901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55121991', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55121992', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55121993', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55131102', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55131103', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55131202', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55131299', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55131302', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55131399', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55131902', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55131999', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55132102', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55132103', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55132303', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55132304', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55132391', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55132399', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55132902', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55132999', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55133102', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55133199', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55133904', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55133905', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55133906', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55133991', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55133999', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55134102', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55134199', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55134902', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55134904', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55134905', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55134991', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55134999', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55141901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55141999', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55143001', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55143002', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55143003', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55143004', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55143099', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55151102', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55151103', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55151199', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55151202', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55151203', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55151299', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55151301', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55151399', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55151901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55151902', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55152102', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55152103', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55152199', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55152201', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55152299', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55152901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55152902', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55159102', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55159103', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55159199', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55159901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55159902', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55159903', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55159904', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55163101', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55163199', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55163201', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55163299', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55163301', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55163399', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55163401', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55163499', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56012101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56012199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56013001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56013099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56021001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56021099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56022101', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56022102', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56022199', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56031201', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56031299', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56031301', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56031399', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56049003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56060001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56060002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56060099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56079001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56081101', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56081199', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56090001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56090099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('57025001', 'None', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('57025002', 'None', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('57025099', 'None', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('57032001', 'None', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('57032099', 'None', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('57033001', 'None', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('57033099', 'None', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('57050001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('57050099', 'None', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('58030001', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('58030002', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('58030003', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('58030004', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('58030099', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59019001', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59019002', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59031001', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59031099', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59032001', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59032099', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59039001', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59039003', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59039004', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59039005', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59049001', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59049002', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59069101', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59069199', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59069901', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59069902', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59069903', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59070002', 'None', '3', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59070003', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59070004', 'None', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59080001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59080002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59119002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59119003', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60011002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60011099', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60012102', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60012199', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60012202', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60012203', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60012299', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60012902', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60019102', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60019199', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60019202', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60019203', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60019299', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60024002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60024003', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60024004', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60029002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60029003', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60029004', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60041002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60041003', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60041004', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60041005', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60041006', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60053102', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60053199', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60053201', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60053299', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60053301', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60053402', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60053499', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60059001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60062101', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60062199', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60062201', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60062299', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60062301', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60062399', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60062401', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60062499', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60063102', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60063199', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60063202', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60063299', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60063302', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60063399', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60063402', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60063499', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61012002', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61012099', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61013003', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61013091', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61013092', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61019001', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61019099', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61022002', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61022099', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61023002', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61023003', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61031001', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61031002', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61031003', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61031004', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61031099', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61032901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61032999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61033301', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61033399', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61033901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61033902', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61033999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034201', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034202', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034204', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034291', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034292', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034302', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034303', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034304', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034305', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034391', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034392', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034902', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61041301', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61041399', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61041901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61041902', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61041903', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61041904', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61041905', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61041999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61042901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61042999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61043301', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61043399', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61043901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61043902', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61043999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61044202', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61044299', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61044301', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61044391', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61044392', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61044401', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61044403', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61044499', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61044901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61044999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61045202', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61045299', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61045301', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61045391', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61045392', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61045901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61045902', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61045999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046201', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046202', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046206', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046291', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046292', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046302', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046303', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046304', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046391', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046392', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046902', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61051003', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61051004', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61051099', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61052002', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61052099', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61059001', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61059099', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61061003', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61061004', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61061091', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61061092', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61062091', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61062092', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61069001', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61069002', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61069099', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61071102', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61071199', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61071202', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61071299', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61072102', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61072199', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61072202', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61072299', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61072901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61072999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61079901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61079902', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61079999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61082102', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61082199', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61082202', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61082299', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61083102', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61083199', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61083202', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61083299', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61083901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61083999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61089101', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61089199', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61089201', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61089299', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61089901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61089999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61091002', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61091099', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61099002', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61099003', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61099091', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61099092', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61099093', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61101102', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61101199', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61101202', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61101299', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61101901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61102002', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61102003', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61102004', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61102091', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61102092', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61102093', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61102094', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61102099', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61103003', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61103004', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61103005', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61103006', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61103007', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61103091', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61103092', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61103093', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61109001', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61109003', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61109004', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61109005', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61109006', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61109091', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61109099', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112004', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112005', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112007', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112008', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112009', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112011', 'None', '9', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112013', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112014', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112015', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112016', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112017', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112018', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112019', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112020', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112091', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112092', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112099', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113005', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113008', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113009', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113010', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113011', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113012', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113013', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113014', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113015', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113016', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113017', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113018', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113019', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113020', 'None', '9', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113091', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113092', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113093', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113099', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61119001', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61119002', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61119003', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61119004', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61119099', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61121901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61121902', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61121999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61122001', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61122099', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61130001', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61130099', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61143001', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61143099', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61149001', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61149099', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61161001', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61161099', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61171001', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61171099', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61178001', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62011291', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62011292', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62011391', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62011392', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62019291', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62019292', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62021291', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62021292', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62021391', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62021392', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62029291', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62029292', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62029391', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62029392', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62031901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62031902', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62031999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62032901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62032999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62033202', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62033299', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62033391', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62033392', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62033901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62033902', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62033903', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62033999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034207', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034208', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034209', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034210', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034293', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034294', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034295', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034296', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034304', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034305', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034308', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034309', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034310', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034311', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034393', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034394', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034395', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034396', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62041301', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62041399', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62041901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62041902', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62041903', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62041999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62043202', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62043299', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62043391', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62043392', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62043393', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62043901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62043902', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62043903', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62043999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62044291', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62044292', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62044303', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62044391', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62044392', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62044491', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62044492', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62044901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62044999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62045202', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62045299', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62045391', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62045392', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62045901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62045902', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62045903', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62045904', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62045905', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62045999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046206', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046207', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046208', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046210', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046291', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046292', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046293', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046294', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046295', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046296', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046304', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046305', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046307', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046308', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046309', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046310', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046393', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046394', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046395', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046904', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046905', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62062001', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62062099', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62063002', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62063003', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62071102', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62071199', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62072102', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62072199', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62072901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62072999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62079901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62079902', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62079999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62082102', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62082199', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62082202', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62082299', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62082901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62082999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62089201', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62089203', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62089291', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62089901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62089902', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62089999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092004', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092005', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092008', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092009', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092010', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092011', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092012', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092013', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092014', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092015', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092091', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092092', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092099', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62093004', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62093006', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62093007', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62093008', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62093009', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62093010', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62093091', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62093092', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62093099', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62099001', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62099002', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62099003', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62099004', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62099099', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62112001', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62112099', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62113201', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62113299', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62113301', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62113399', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62113901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62113902', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62113999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62114201', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62114299', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62114301', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62114399', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62121002', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62121003', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62121004', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62121005', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62121006', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62121008', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62129001', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62129002', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62139001', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62139003', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62139099', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62171002', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62171099', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022102', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022103', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022104', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022105', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022106', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022107', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022108', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022109', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022199', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022202', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022203', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022204', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022205', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022206', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022207', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022208', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022209', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022299', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023107', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023108', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023109', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023110', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023111', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023112', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023113', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023114', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023199', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023207', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023208', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023209', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023210', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023211', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023212', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023213', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023214', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023299', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63025901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63025999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63026002', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63026003', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63026004', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63026005', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63026099', 'None', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63029901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63029999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63031901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63031999', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63039201', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63039299', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63061901', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63061999', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63062901', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63062999', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63063001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63063099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63064001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63064099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63069001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63101001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63101099', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63109001', 'None', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64011002', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64011099', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019202', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019203', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019204', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019205', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019206', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019207', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019208', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019209', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019210', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019901', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019902', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019903', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019904', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019905', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019906', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019907', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019908', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64021902', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64021903', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64021904', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64021905', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64021906', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64021907', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64021908', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64021909', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64022002', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64022003', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029103', 'None', '9', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029104', 'None', '9', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029105', 'None', '9', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029107', 'None', '9', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029903', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029904', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029907', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029908', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029909', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029910', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029911', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029912', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029913', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029914', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029916', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029917', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029918', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029922', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029923', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029924', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029925', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029926', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029927', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029928', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029929', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029930', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029931', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029932', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64031901', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64031903', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64031904', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64031991', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64034002', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64034003', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64034004', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64035101', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64035102', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64035103', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64035104', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64035901', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64035902', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64035903', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64035904', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64035905', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64035906', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64035907', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039101', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039105', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039106', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039107', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039108', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039109', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039110', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039111', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039903', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039904', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039905', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039907', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039908', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039909', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039910', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039911', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041104', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041105', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041107', 'None', '9', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041108', 'None', '9', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041110', 'None', '9', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041111', 'None', '9', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041113', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041114', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041115', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041118', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041119', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041120', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041121', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041122', 'None', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041901', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041904', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041905', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041906', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041907', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041909', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041910', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041911', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041912', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041913', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041914', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041915', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041916', 'None', '9', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041917', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041991', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64042002', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64042003', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64042099', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64052003', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64052004', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64052005', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64052091', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64059001', 'None', '9', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64059002', 'None', '9', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64061001', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64061002', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64061003', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64061004', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64061005', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64061006', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64061007', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64061099', 'None', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('65050001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('65050002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('65050003', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('65050099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('65069901', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('65069999', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('66039001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68022301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68022399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68022901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68022999', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68041001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68041099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68042101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68042199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68042201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68042202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68042203', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68042299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68042301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68042399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68051099', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68109901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68114001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68114002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68128002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68128003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68128004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68128007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68129301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68129399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68129901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68129904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68132001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68132002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68132003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68132004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68132099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68138901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68138902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68141001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68141099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68159101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68159199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69029001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69029002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69029003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69031001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69031002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69031099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69032001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69032002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69032003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69032004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69032005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69032099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69039001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69071001', 'None', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69079001', 'None', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69079002', 'None', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69079099', 'None', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69081001', 'None', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69089002', 'None', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69089003', 'None', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69089099', 'None', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69091101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69091102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69091103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69091104', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69091105', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69091199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69120001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69120099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70022001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70022002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70022003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70022004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70022099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70023101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70023102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70023199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70031201', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70031299', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70031901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70031999', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70042001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70042002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70042099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70049001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70049099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70051001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70051099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70052101', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70052102', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70052199', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70052902', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70052903', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70052904', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70060001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70060002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70060003', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70060099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70071102', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70071103', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70071901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70072101', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70072102', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70091001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70091002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70091003', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70109001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70109002', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70109003', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70111001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70111002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70111003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70111004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70111099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70112001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70112002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70112003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70112004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70112099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70119001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70132801', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70133701', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70133702', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70133703', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70134901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70134902', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70134903', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70134904', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70171001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70171002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70171003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70171005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70171011', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70171012', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70171013', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70172002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70179001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70179002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70179005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70189001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70193901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70193902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70193903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70193904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70194001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70194099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70195101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70195199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70195901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70199001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70199002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70199003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70199004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70199005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70199006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70199007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70199008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70200001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70200002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70200003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70200004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70200005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70200099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('71011001', 'None', '2', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('71011099', 'None', '2', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('71129101', 'None', '2', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('71129199', 'None', '2', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('71131901', 'None', '2', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('71131902', 'None', '2', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('71159001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72015001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72015099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72022101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72022199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72029101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72029102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72029103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72029201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72029299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72029901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72029902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72029903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72071201', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72071299', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72072001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72072099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72081001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72081002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72081004', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72081099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72082501', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72082599', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72084001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72084099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72085101', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72085102', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72085103', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72091501', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72091502', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72091503', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72091599', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72091802', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72091899', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72101201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72101202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72101203', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72101299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72103001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72103099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72104903', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72105001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72105002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72105099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72106901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72107003', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72107004', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72107005', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72107091', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72107099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72109001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72109091', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72111401', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72111402', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72111404', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72111499', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72111901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72111902', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72111903', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72111904', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72112301', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72112302', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72112399', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72112901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72112902', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72112903', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72121001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72121002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72121099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72122001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72122002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72122099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72123001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72123002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72123099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72124001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72124002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72124003', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72124099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72126001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72126002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72126003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72126099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72139101', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72139102', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72139901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72139902', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72149101', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72149102', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72149199', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72149901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72149902', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72155001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72155099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72159001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72163101', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72163102', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72163199', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72163201', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72163202', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72166901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72166902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72171001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72171099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72172001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72172099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72173001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72173099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72191201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72191299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72193102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72193199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72193201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72193299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72193501', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72193599', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72202001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72202002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72202099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72210002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72210099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72221101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72221199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72223001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72223099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72224002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72224099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72230001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72230099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72241001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72241002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72241003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72241004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72241005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72241091', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72241099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72249001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72249003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72253002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72253003', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72253004', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72253005', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72253006', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72253008', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72253091', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72253099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72254001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72254002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72254003', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72254004', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72254005', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72254007', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72254091', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72254099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72255002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72255003', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72255004', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72255006', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72255008', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72255009', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72255010', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72255011', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72255012', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72255091', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72255099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269103', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269104', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269105', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269108', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269109', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269110', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269111', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269112', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269191', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269199', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269201', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269202', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269203', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269204', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269205', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269207', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269299', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269902', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72272002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72272099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72279001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72279002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72279003', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72281001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72281099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72282001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72282099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72283003', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72284001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72284099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72285001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72285099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72286001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72286003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72286099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72287002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72287099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72299001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72299002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72299003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72299004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73021001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73021003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73021099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73024001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73024099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73029001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73029002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73030001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73030099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73041105', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73041991', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042203', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042301', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042302', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042303', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042401', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042402', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042403', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042404', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042405', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042406', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042499', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042902', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042903', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042904', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042905', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042906', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73043102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73043103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73043104', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73043105', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73043106', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73043107', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73043108', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73043109', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73043191', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73044101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73044102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73044199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73044901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045104', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045105', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045106', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045107', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045108', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045109', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045110', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045111', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045191', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045912', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045913', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045914', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045915', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045916', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045917', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045991', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045992', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73051101', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73051199', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73051201', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73051299', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73051901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73059001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73061901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73063005', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73063006', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73063091', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73065003', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73065004', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73066102', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73066103', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73066199', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73066901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73066902', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73071101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73071199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73071901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73071902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73071903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73071904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73071905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73071906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73072201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73072299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73079201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73079299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73079901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73079902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73079903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73079904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73079905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73082001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73082099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73083001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73083099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73090001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73090002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73090003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73090099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73101001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73101002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73101003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73101004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73101099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73102902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73102903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73102904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73110001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73110002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73110003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73110004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73110099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73121002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73121003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73121004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73121006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73121009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73121010', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73141901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73141902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151104', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151105', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151999', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73158101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73158102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73158199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73158201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73158202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73158299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73158901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73158902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181501', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181502', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181503', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181505', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181506', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181507', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181508', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181509', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181510', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181601', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181602', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181603', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181604', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181605', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73182101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73182199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73182201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73182299', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73182301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73182399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73182401', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73182402', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73182499', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73182901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73201001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73201099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73202001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73202002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73202003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73202004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73202099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73209001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73209002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73209003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73218101', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73218199', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73218201', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73218299', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73221101', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73221199', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239101', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239102', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239199', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239201', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239202', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239203', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239299', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239301', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239302', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239303', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239304', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239399', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239401', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239402', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239403', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239404', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239499', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73249001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73249002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73249003', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73249099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73251001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73251002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73251003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73251004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73251099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73259101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73259102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73259199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73259901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73259902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73259903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73259904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73259905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73259906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261912', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261913', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261914', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73262001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73262002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73262003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73262004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73262005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73262099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269010', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269011', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269012', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269013', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269014', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269015', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269016', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269017', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269018', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-30 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74010001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74010002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74032901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74032999', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74040001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74040002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74040099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74071002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74072101', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74072901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74072902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74072903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74072904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74072905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74081101', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74081199', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74102101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74102102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74102103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74102199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74111002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74111003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74111004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74112102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74112103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74112104', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74112203', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74112204', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74112902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74112903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74112904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74130001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74130099', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74151001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74151099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74152901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74153301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74153302', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74153399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74153901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199911', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199912', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199913', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199914', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199915', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('75061001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('75061099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('75062001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('75062099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('75089001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('75089002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('75089003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76011001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76011099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76012001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76012099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76020001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76020099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76072001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76072099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76081001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76081002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76090001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76090099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76151001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76151099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76169991', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76169992', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('78060001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('78060002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('78060099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('79070001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('79070099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81019601', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81019602', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81019699', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81019901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81029501', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81029599', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81049001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81049002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81110001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81110099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81130001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81130099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82011001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82011099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82013001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82013099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82019001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82019004', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82021002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82021003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82024001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82024099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82029101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82029102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82029103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82029199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82031001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82034002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82041202', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82051002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82051003', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055101', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055103', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055901', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055902', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055903', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055904', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055906', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055907', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055911', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055912', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055917', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055918', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055919', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82056001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82056099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82057001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82057002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82059002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82059003', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82059004', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071301', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071302', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071303', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071304', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071305', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071306', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071307', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071399', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071904', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071905', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071906', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071907', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071908', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071909', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071999', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82073001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82073002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82074001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82074002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82074003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82074099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82075001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82075002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82075003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82075004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82075005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82075006', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82075099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82076001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82076002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82076003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82076004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82076005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82076099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82077001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82077002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82077099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82081001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82081099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82082001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82082099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82083001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82083099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82084001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82084002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82084099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82141001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82141099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82142001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82142099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82149002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82149003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82149004', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82159901', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83012001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83012099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83016001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83016099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83017001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83017099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83022001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83022099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83024101', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83024102', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83024103', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83024104', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83024105', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83024199', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83024201', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83024202', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83024299', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83040001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83040002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83040099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83099002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83099004', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83099005', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83111001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83112001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83112002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83112003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83112004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83112099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83113002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83113003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83113004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84069003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84072101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84072199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84073201', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84073203', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84073301', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84073302', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84073303', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84073399', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84073401', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84073402', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84073499', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84079001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84079099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099104', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099106', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099107', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099108', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099109', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099110', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099112', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099113', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099114', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099115', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099116', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099117', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099118', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099119', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099906', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84101201', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84101299', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84101301', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84101399', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84123901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84131902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84131904', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84133001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84133002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84133004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84133005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84133006', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84134001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84134099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84135001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84136002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84136003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84136005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84137003', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84137004', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84137006', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139104', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139105', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139106', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139107', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139108', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139109', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139110', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139111', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139112', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84141001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84141002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84141003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84141004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84141005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84141099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84143009', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148009', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148011', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148012', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148013', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148014', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148015', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148016', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84149001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84149002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84149003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84149004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84149005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84149006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84149007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84149008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84149009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84149099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84159001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84159099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84169001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84169099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84171001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84171002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84171004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84171005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84172001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84172099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84183003', 'None', '6', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84184003', 'None', '6', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84185002', 'None', '6', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84186102', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84186902', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84186903', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84186911', 'None', '6', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84186916', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84186917', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84189901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84189902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84191902', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2012-11-23 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84191903', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2012-11-23 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84192001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84192099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84193201', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84193299', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84193901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84193902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84193903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84193904', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84193905', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84194001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84194002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84194003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84195001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84195002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84195004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84195005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198102', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198904', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198905', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198906', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198907', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198908', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198912', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198913', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198914', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198916', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198920', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198921', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84199001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84199002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84199003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84199099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84209101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84209199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84211101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84211199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84211201', 'None', '6', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84211299', 'None', '6', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84211902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84211904', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84212103', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84212904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84212905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84212907', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84213901', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84213904', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84219101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84219102', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84219103', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84219199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84219901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84219902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84219903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84222003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84223001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84223002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84223003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84223004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84223005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84223006', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84223007', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84223009', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84223010', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84224001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84224003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84224004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84224005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84224006', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84229001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84229002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84229003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84229004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84229099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84231001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84231099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84233001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84233099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84238101', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84238102', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84238201', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84238202', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84239001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84239099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84241001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84241002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84241099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84242002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84242003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84243001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84243002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84243003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84248101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84248102', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84248103', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84248104', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84248105', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84248106', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84248199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84248901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84248902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84264103', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84264104', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84264901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84264902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84269101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84269102', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84269901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84269902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84271002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84279001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84279099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84282001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84283901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84283902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84284001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84289004', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84289005', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84294001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84294099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84295101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84295102', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84295201', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84295202', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84295299', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84295903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84295904', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84303101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84303102', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84303199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84304101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84304102', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84304199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84304901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84304902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84312001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84312099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84313101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84313199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84314101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84314102', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84314103', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84314199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84314301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84314302', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84314399', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84314901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84314902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84314903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84322901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84323001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84323002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84323003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84323099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84324001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84328001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84328002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84328003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84328099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84332001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84332002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84332099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84334001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84334002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84334099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84335901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84335902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84335903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84335904', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84336001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84336002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84336003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84336099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84339001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84339002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84339003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84339099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84362901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84368001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84368002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84368003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84368099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84371001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84371002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84371003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84371099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84378001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84378002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84378099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84379001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84379099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84381002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84381005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84381006', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84381007', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84382001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84382002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84382099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84384001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84384099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84385001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84385002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84385003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84385004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84385005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84385007', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84385008', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84386001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84386002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84386003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84386005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84388001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84388002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84388003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84388099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84389001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84389002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84389003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84389004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84389005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84389099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84391001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84391002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84391003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84391004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84391005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84391099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84401001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84401099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84411001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84411002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84411003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84411099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84414001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84414099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84423001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84423002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84423099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84425002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84431101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84431199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84431302', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84431401', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84431499', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84431501', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84431599', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84431901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84431902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84431903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433201', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433202', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433203', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433204', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433205', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433206', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433207', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433208', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433299', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433904', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433907', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433908', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84439101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84439901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84439902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84439903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84439904', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84439907', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84439908', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84439909', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84451901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84453001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84453099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84459001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84472001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84472099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84479001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84484901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84501201', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84501299', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84501901', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84509001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84509002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84509099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84512101', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84512199', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84512901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84512902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84512903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84518001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84518099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84519001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84519002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84519099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522102', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522103', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522104', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522105', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522904', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522905', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522906', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522907', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84529002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84542001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84542099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84543001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84543099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84549001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84549099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84552101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84552102', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84552199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84552201', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84552202', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84552299', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84553001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84553002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84553099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84561001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84561099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84562001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84562099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84573001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84573004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84581102', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84581902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84589101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84589199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84589901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84591001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84591099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84592101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84592199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84592901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84594001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84594099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84597001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84597002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84597099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84601101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84601199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84601901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84602101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84602102', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84602103', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84602104', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84602199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84602901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84602902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84602903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84602904', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84603101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84603199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84603901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84604001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84604002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84604099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84609001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84609002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84609003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84612001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84612099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84613001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84613099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84615001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84619002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84619004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84619005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84622102', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84622103', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84622104', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84622105', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84622902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84622904', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84623102', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84623902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84624101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84624102', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84624103', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84624199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84624903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84629901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84629902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84629903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84633001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84633002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84633003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84633099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84639001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84649001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84659201', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84659202', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84659203', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84659299', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84659301', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84659399', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84659401', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84659402', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84659499', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84659901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84659903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84661001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84661002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84662001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84662099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84663001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84663002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84663099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84669301', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84669302', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84669402', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84671101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84671199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84671901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84672201', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84678901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84679101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84679199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84679901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84679902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84682001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84682099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84690001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84690002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84690003', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84690004', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84690099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84701001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84701002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84701099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84702901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84709001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84709002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84716001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84716002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84716003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84716099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84718001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84718002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84718003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2008-12-24 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84718099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84729002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84729003', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84729004', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84729006', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84729007', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84729008', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84729009', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84729011', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84729015', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84731001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84731099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84733001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84733002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84733003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84734001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84734002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84734099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84735001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84735002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84735099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84741002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84742001', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84742002', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84742003', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84742005', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84742006', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84743901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84743902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84748002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84748003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84748005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84748006', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84748007', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84748008', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84748009', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84748010', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84749001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84749002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84749099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84769001', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84769099', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84772002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84778001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84778002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84778003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84778004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84778005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84778007', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84779001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84779002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84779003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84779099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84781005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84791002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84791005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84791006', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84791008', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84794001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84794099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798105', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798106', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798108', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798109', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798203', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798905', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798909', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798911', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798915', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798916', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798917', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798918', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798923', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798924', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798925', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799010', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799011', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799012', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799013', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799014', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799015', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799016', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799017', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84803001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84803002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84803099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84804101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84804199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84804901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84805001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84805002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84805099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84807101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84807102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84807199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84807901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84807902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84807903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84807904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84811002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84812001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84812002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84812003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84812004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84812005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84812006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84812008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84812009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84812011', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84813002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84813003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84814001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84814002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84814003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84819001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84819002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84819003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84819004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84819099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84821001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84821003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84822002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84829101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84829199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84829902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84829903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84831001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84831002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84831003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84831004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84831005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84831006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84831007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84831099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84833001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84833002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84833003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84833099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84834001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84834002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84834003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84834004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84834005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84834006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84834007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84834008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84834099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84835001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84835002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84835099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84839001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84839002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84839099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84849001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84849002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84862002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84862099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84869001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84869002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84869003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84869004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84871001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84871099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85011001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85011002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85011003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85011004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85011005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85011006', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85011007', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85011008', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85011009', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85011099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85012001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85012002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85012003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85012004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85012099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85013402', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85013403', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85013404', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85014001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85014002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85014003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85014004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85014006', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85014007', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85015101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85015103', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85015201', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85015202', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85015203', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85015205', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85015301', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85015302', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85015303', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85015306', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85015307', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85016402', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85022002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85030001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85030002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85030003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85030004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85030006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85042104', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85043101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85043102', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85043105', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85043106', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85043202', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85043301', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85043399', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85044003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85044004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85044010', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85044012', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85045001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85045002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85045099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85049001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85049003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85049004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85049005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85049006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85059001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85059002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85059003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85059004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85059005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85059099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85061002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2013-12-13 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85061099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2013-12-13 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85072003', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85081901', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85094001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85098001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85098002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85098005', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85098006', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85098008', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85098010', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85098011', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85098012', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85099001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85111001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85111002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85112001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85112002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85112003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85112099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85113001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85113002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85113003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85113004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85113099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85114001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85114002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85114003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85114099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85115001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85115002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85115003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85115004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85115099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85119001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85119002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85119003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85119004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85119005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85119099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85121001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85121002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85121099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85129001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85129002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85129003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85129004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85129005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85129006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85129099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85143002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85143003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85143004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85143005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85143006', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85144001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85144099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85149001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85149002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85149003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85149099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85152901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85158001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85158002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85158099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85161001', 'None', '6', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85161099', 'None', '6', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85162901', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85166002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85168001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85168002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85168003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85168099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85169001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85169002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85169003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85169004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85169005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85169006', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85169008', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85169010', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85171201', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85171299', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85171801', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176201', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176202', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176203', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176204', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176205', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176206', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176207', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176208', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176209', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176210', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176211', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176212', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176213', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176214', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176215', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176216', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176299', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176904', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176906', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176908', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176909', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176910', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176911', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176912', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176918', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176920', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2008-12-24 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85177001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85177002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85177003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85177004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85177005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85177006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85177007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85177008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85177013', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85181001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85181002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85181003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85181099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85182101', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85182199', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85182201', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85182299', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85182901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85183001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85183002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85184003', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85184005', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85184006', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85189003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85193001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85193099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85198101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85198102', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85198111', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2008-12-24 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85198902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85198903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85198904', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85211001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85211099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229010', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229011', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229012', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229013', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229014', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85232101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85232199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85232901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85232902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85232903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85232906', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85232910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85234901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85235201', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85235202', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85255001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85255002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85255003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85255004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85255099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85256001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85256002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85256003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85256004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85256006', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85256007', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85256009', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85256010', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85258001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85258002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85258003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85258004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85258099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85279101', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85279199', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85279901', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85284101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85284199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85284901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85284902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85284903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85284904', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85284905', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85284908', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85284909', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85285101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85285199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85286101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85286901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85286902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85286903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85286904', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85291001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85291002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85291003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85291004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85291005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85291006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85291007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85291008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85291099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299010', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299011', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299012', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299014', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299017', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299022', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299023', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85308001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85311005', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85318002', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85319001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322201', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322202', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322203', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322299', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322301', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322302', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322303', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322304', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322305', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322399', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322401', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322402', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322403', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322499', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322501', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322503', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322504', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322904', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322905', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85323001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85323002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85323003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85323004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85323099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85331001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85331002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85332901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85333101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85333199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85333901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85333902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85334001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85334002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85334003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85334004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85334005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85334006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85334007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85334099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85339001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85339002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85339099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85340001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85340002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85340003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85340099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85353001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85353002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85353003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85353004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85353005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85353006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85353099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85354002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359010', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359011', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359012', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359013', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359014', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359015', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359016', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359017', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359018', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359019', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359021', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359022', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85361001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85361002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85361005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85363001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85363002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85363003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85363004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364104', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364105', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364106', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364107', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364108', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364109', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364110', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364111', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365010', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365011', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365012', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365013', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365014', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365015', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365016', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365017', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85366101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85366102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85366103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85366199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85366901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369010', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369011', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369012', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369013', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369014', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369015', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369016', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369017', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369018', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369019', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369020', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369021', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369022', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369023', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369024', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369025', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369026', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369027', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85371001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85371002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85372001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85389002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85389003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85389004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85391001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85391002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85391003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85392901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85392902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85392903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85392904', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85392905', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85392906', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85392907', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85392908', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85393201', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85393202', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85393203', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85393299', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85394901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85399001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85399002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85399003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85399004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85399005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85399006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85399099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85401101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85401102', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85401103', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85401104', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85401105', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85401199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85401201', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85401299', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85402001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85402099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85406001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85406099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85408101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85408102', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85408199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85408901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85408902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85408903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85409101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85409102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85409103', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85409104', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85409199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85409901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85409902', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85409903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85409904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85411099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85413099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85414001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85414002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-11-23 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85414003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-11-23 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85419001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85419099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85423101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85423102', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85423199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85423201', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85423299', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85423301', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85423399', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85423901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85432001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85432002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85432003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85432004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85432005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85432099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437006', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437007', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437009', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437010', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437011', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437012', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437013', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437014', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437015', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437016', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85441901', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85443002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85444201', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85444202', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85444203', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85444204', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85444901', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85444902', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85444903', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85444904', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85444906', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85446001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85446099', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85459001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85459002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85471001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85471002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85471003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85471004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85471005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85472001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85472002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85472003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85472099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479005', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479006', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479007', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479008', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479009', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479010', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479011', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479012', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85489001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85489002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85489003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86040001', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86040002', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86040099', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86069101', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86069199', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86071901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86071904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86071905', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86071906', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86072101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86072199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86079101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86079199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86080001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86080002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86080003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86080099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87019001', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87019002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87019003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87019004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87019005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87019006', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87019007', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87019008', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2008-12-24 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87019099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87021001', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87021002', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87021003', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87021004', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87029002', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87029003', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87029004', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87029005', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87029007', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87031001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87031002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87031099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87039001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87039003', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87041001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87041099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87042102', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87042103', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87042202', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87042203', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87042204', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87042205', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87042206', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87043103', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87043202', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87043203', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87043204', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87043205', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87043206', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87060002', 'None', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87071001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87071099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87079001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87082914', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87082915', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87082921', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87083003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87083005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87083007', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87083012', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87083013', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87083014', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87084006', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87085011', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87085012', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87085017', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87085019', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87085021', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87087001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87087002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87087003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87087004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87087005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87087007', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089201', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089202', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089299', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089301', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089302', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089303', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089304', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089399', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089401', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089402', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089403', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089404', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089405', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089406', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089407', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089408', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089409', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089410', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089411', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089499', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089501', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089599', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089905', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089906', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089910', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089911', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089912', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089913', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089914', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87091901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87091902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87111001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87111002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-30 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87111099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87112002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87112003', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87112004', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-30 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87112099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-30 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87113001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87113002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87113003', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-30 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87113099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87114003', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-30 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87115001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87115002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-30 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87115099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87120001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87120002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87120003', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87120004', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87120099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87162001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87162002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87162003', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87162099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87163101', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87163102', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87163199', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87163901', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87163902', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87163905', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87163906', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87163907', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87168001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87168002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87169001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87169002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('88010001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('88010099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('89020001', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('89020002', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('89020099', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90011001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90011099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90013001', 'None', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90014001', 'None', '9', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90014002', 'None', '9', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90014099', 'None', '9', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90015001', 'None', '9', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90015099', 'None', '9', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90019001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90039001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90039099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90061001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90065901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90065902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90066901', 'None', '6', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90069101', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90069102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90069199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90089001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90089099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90138001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90138099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90148001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90148002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90148099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90149001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90149099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90158002', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90158006', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90158007', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90160001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90160099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90171002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90173001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90173099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90178001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90178002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90179001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90179099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90181901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90181903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90181904', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90181907', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90181908', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90181909', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90181910', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90183201', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90183901', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90183905', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90184901', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90184903', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90189021', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90189022', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90189023', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90189024', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90189026', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90189029', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90189030', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90191001', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90200001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90211001', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90211002', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90211003', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90211004', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90211005', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90211099', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90212101', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90212199', 'None', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90213903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90221401', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90221499', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90222101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90222199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90229001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90229002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90258002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90258003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90261001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90261002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90261003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90261004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90261005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90261006', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90261099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90262001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90262002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90262005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90262006', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90268001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90268002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90268099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90278001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90278002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90278003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90278099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90282001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90289001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90289002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90289099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90291001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90291002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90291004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90292001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90292002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90292003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90292004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90292005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90292099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90302001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90302099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90303301', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90303302', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90303303', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90303304', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90303305', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90303306', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90303399', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90304001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90304099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90308901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90308902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90308903', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90308904', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90308999', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90309001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90309002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90309003', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90309004', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90309099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90312001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90312099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90314901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90314902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90318003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90318004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90318005', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90318006', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90319002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90321002', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90328101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90328199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90329001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90329099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91011901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91040001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91040002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91040003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91040099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91051101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91051199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91059101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91059199', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91059901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91061001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91061099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91069001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91111001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91111099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91122001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91122099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91131001', 'None', '2', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91131099', 'None', '2', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91132001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91132099', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91149001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91149002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('92019002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('92059001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('92099901', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('92099902', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('92099903', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93011001', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93011099', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93020001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93020099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93052001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93052099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93062901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93063001', 'None', '11', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93063002', 'None', '11', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93063003', 'None', '11', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93069001', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93069002', 'None', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94015101', 'None', '6', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94019001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94031001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94031002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94031099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94032001', 'None', '6', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94032002', 'None', '6', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94032003', 'None', '6', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94032004', 'None', '6', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94032099', 'None', '6', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94037001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94037002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94037099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94038101', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94042101', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94042199', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94049001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94049002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94049003', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94049004', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94049005', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94049006', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94051001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94051002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94051003', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94051099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94052001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94052099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94055001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94055099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94060001', 'None', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('95030019', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('95030036', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('95045001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('95045002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('95062901', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('95069101', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('95069102', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('95069199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('95089001', 'None', '6', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96062901', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96081001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96081099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96084001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96085001', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96085099', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96089101', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96089199', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96089901', 'None', '2', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96089902', 'None', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96089904', 'None', '2', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96089905', 'None', '2', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96121001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96121002', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96138001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96140002', 'None', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('97040001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('97040099', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('97050001', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('97050002', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('97050003', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('97050004', 'None', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('99010006', 'None', '1', 'None', 'GENERAL', 'None', '16.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('99010011', 'None', '8', 'None', 'GENERAL', 'None', '77.26', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('99010012', 'None', '8', 'None', 'GENERAL', 'None', '82.17', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('99010013', 'None', '8', 'None', 'GENERAL', 'None', '114.4', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('99010015', 'None', '6', 'None', 'GENERAL', 'None', '573.48', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('99010016', 'None', '6', 'None', 'GENERAL', 'None', '373.56', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('99010017', 'None', '6', 'None', 'GENERAL', 'None', '51.73', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('99010018', 'None', '6', 'None', 'GENERAL', 'None', '51.73', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('99020001', 'None', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), +] diff --git a/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/service.py b/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/service.py new file mode 100644 index 00000000..01579a4f --- /dev/null +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/service.py @@ -0,0 +1,69 @@ + +from typing import Optional, List, Tuple +from sqlalchemy import select, or_, func +from sqlalchemy.orm import Session +from .models import HistoricalTariffFraction +from .schemas import HistoricalTariffFractionCreate, HistoricalTariffFractionUpdate + +class HistoricalTariffFractionService: + def __init__(self, db: Session): + self.db = db + + def get(self, id: int, tenant_id: int, company_id: int) -> Optional[HistoricalTariffFraction]: + return self.db.query(HistoricalTariffFraction).filter( + HistoricalTariffFraction.id == id, + HistoricalTariffFraction.tenant_id == tenant_id, + HistoricalTariffFraction.company_id == company_id + ).first() + + def get_multi( + self, + tenant_id: int, + company_id: int, + skip: int = 0, + limit: int = 100, + historical_fraction: Optional[str] = None + ) -> Tuple[List[HistoricalTariffFraction], int]: + query = select(HistoricalTariffFraction).where( + HistoricalTariffFraction.tenant_id == tenant_id, + HistoricalTariffFraction.company_id == company_id + ) + + if historical_fraction: + query = query.where(HistoricalTariffFraction.historical_fraction.ilike(f"%{historical_fraction}%")) + + total = self.db.execute(select(func.count()).select_from(query.subquery())).scalar_one() + # Add deterministic sort order + query = query.order_by(HistoricalTariffFraction.historical_fraction) + items = self.db.scalars(query.offset(skip).limit(limit)).all() + return items, total + + def create(self, obj_in: HistoricalTariffFractionCreate, tenant_id: int, company_id: int) -> HistoricalTariffFraction: + db_obj = HistoricalTariffFraction(**obj_in.model_dump()) + db_obj.tenant_id = tenant_id + db_obj.company_id = company_id + self.db.add(db_obj) + self.db.commit() + self.db.refresh(db_obj) + return db_obj + + def update( + self, + db_obj: HistoricalTariffFraction, + obj_in: HistoricalTariffFractionUpdate + ) -> HistoricalTariffFraction: + # db_obj already validated for tenant/company in get() + update_data = obj_in.model_dump(exclude_unset=True) + for field, value in update_data.items(): + setattr(db_obj, field, value) + self.db.add(db_obj) + self.db.commit() + self.db.refresh(db_obj) + return db_obj + + def delete(self, id: int, tenant_id: int, company_id: int) -> Optional[HistoricalTariffFraction]: + obj = self.get(id, tenant_id, company_id) + if obj: + self.db.delete(obj) + self.db.commit() + return obj diff --git a/backend/api/v1/modules/a76/general_catalogs/tariff_fractions/__init__.py b/backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/__init__.py similarity index 100% rename from backend/api/v1/modules/a76/general_catalogs/tariff_fractions/__init__.py rename to backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/__init__.py diff --git a/backend/api/v1/modules/a76/general_catalogs/tariff_fractions/dto.py b/backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/dto.py similarity index 96% rename from backend/api/v1/modules/a76/general_catalogs/tariff_fractions/dto.py rename to backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/dto.py index 1a8f15c2..498d859a 100644 --- a/backend/api/v1/modules/a76/general_catalogs/tariff_fractions/dto.py +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/dto.py @@ -48,6 +48,9 @@ class TariffFractionResponseDTO(BaseModel): umt: Optional[str] = None adv_impo: Optional[str] = None adv_expo: Optional[str] = None + dof: Optional[str] = None + aplica_ieps: Optional[str] = None + um_code: Optional[str] = None model_config = ConfigDict(from_attributes=True) diff --git a/backend/api/v1/modules/a76/general_catalogs/tariff_fractions/models.py b/backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/models.py similarity index 100% rename from backend/api/v1/modules/a76/general_catalogs/tariff_fractions/models.py rename to backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/models.py diff --git a/backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/routes.py b/backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/routes.py new file mode 100644 index 00000000..5f0f1600 --- /dev/null +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/routes.py @@ -0,0 +1,212 @@ +""" +Endpoints API para fracciones arancelarias +Catálogo de referencia global (no tenant-scoped) +""" + +from typing import Any, Dict, Optional +from fastapi import APIRouter, Depends, Query +from sqlalchemy.orm import Session + +from core.database import get_core_db +from core.security import get_current_user + +from .dto import ( + TariffFractionCreateDTO, + TariffFractionResponseDTO, + TariffFractionUpdateDTO, +) +from .service import TariffFractionService + +router = APIRouter(prefix="/tariff-fractions", tags=["a76 / general catalogs / tariff fractions"]) + +# Custom list endpoint with search filter +@router.get( + "/", + response_model=Dict[str, Any], + summary="List Tariff Fractions", + description="Get paginated list of Tariff Fractions with optional search filter (global catalog)", +) +async def list_tariff_fractions( + page: int = Query(1, ge=1, description="Page number"), + page_size: int = Query(50, ge=1, le=10000, description="Page size"), + search: Optional[str] = Query(None, description="Search in code, fraction, description, nico, or umt"), + level: Optional[int] = Query(None, description="Filter by hierarchy level (e.g. 5)"), + catalog: Optional[str] = Query("mex", description="Catalog source: 'mex' (default) or 'usa'"), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + skip = (page - 1) * page_size + filters = {} + if search: + filters["search"] = search + if level is not None: + filters["level"] = level + + # Updated to async call with Sitar integration + # WARNING: Using async def with blocking DB dependency (Session) run in threadpool by FastAPI. + # Service.get_all calls Sitar (async) or DB (sync). + # This should be fine. + + tenant_id = current_user.get("tenant_id") + company_id = current_user.get("company_id") # Assuming user is context-aware or we use a default? + # If using headers for selected company, it might be in current_user context if middleware sets it. + + items, total = await TariffFractionService.get_all( + db, skip, page_size, filters, catalog, tenant_id, company_id + ) + + return { + "items": [TariffFractionResponseDTO.model_validate(item) for item in items], + "total": total, + "page": page, + "page_size": page_size, + "pages": (total + page_size - 1) // page_size, + } + + +@router.get( + "/{tariff_fraction_id}", + response_model=TariffFractionResponseDTO, + summary="Get Tariff Fraction by ID", + description="Get a specific tariff fraction by ID (Lookups in Local DB for legacy compatibility)", +) +async def get_tariff_fraction( + tariff_fraction_id: int, + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + item = TariffFractionService.get_by_id(db, tariff_fraction_id) + if not item: + from fastapi import HTTPException + raise HTTPException(status_code=404, detail="Tariff fraction not found") + return TariffFractionResponseDTO.model_validate(item) + + +@router.post( + "/", + response_model=TariffFractionResponseDTO, + summary="Create Tariff Fraction", + description="Create a new tariff fraction (Only supported for 'american' catalog)", +) +async def create_tariff_fraction( + fraction_data: TariffFractionCreateDTO, + catalog: str = Query("mex", description="Catalog source: 'mex', 'usa', or 'american'"), + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + """ + Crea una nueva fracción. + - MEX/USA: No permitido (Read-Only) + - AMERICAN: Permitido (Local DB) + """ + from fastapi import HTTPException + + tenant_id = current_user.get("tenant_id") + + if catalog == "american": + from api.v1.modules.a76.general_catalogs.fractions.us_tariff_fractions.service import USTariffFractionService + from api.v1.modules.a76.general_catalogs.fractions.us_tariff_fractions.dto import USTariffFractionCreateDTO + import re + + # Map generic DTO to US DTO + ad_valorem = None + if fraction_data.adv_impo: + try: + # remove non-numeric chars except dot + clean = re.sub(r'[^\d.]', '', fraction_data.adv_impo) + if clean: + ad_valorem = float(clean) + except: + pass + + us_dto = USTariffFractionCreateDTO( + code=fraction_data.code, + description=fraction_data.description, + unit_of_measure=fraction_data.umt, + ad_valorem=ad_valorem, + # Defaults for others + prefix=None, + type_code=None, + fixed_cost=None + ) + + created = USTariffFractionService.create(db, tenant_id, company_id, us_dto) + return TariffFractionService.to_domain_usa_local(created) + + else: + raise HTTPException(status_code=400, detail=f"Creation not allowed for '{catalog}' catalog (Read-Only)") + + +@router.put( + "/{tariff_fraction_id}", + response_model=TariffFractionResponseDTO, + summary="Update Tariff Fraction", + description="Update a tariff fraction (Only supported for 'american' catalog)", +) +async def update_tariff_fraction( + tariff_fraction_id: int, + fraction_data: TariffFractionUpdateDTO, + catalog: str = Query("mex", description="Catalog source: 'mex', 'usa', or 'american'"), + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + from fastapi import HTTPException + + tenant_id = current_user.get("tenant_id") + + if catalog == "american": + from api.v1.modules.a76.general_catalogs.fractions.us_tariff_fractions.service import USTariffFractionService + from api.v1.modules.a76.general_catalogs.fractions.us_tariff_fractions.dto import USTariffFractionUpdateDTO + import re + + ad_valorem = None + if fraction_data.adv_impo: + try: + clean = re.sub(r'[^\d.]', '', fraction_data.adv_impo) + if clean: + ad_valorem = float(clean) + except: + pass + + us_dto = USTariffFractionUpdateDTO( + description=fraction_data.description, + unit_of_measure=fraction_data.umt, + ad_valorem=ad_valorem + ) + + updated = USTariffFractionService.update(db, tenant_id, company_id, tariff_fraction_id, us_dto) + if not updated: + raise HTTPException(status_code=404, detail="US Tariff fraction not found") + return TariffFractionService.to_domain_usa_local(updated) + + else: + raise HTTPException(status_code=400, detail=f"Update not allowed for '{catalog}' catalog (Read-Only)") + + +@router.delete( + "/{tariff_fraction_id}", + summary="Delete Tariff Fraction", + description="Delete a tariff fraction (Only supported for 'american' catalog)", +) +async def delete_tariff_fraction( + tariff_fraction_id: int, + catalog: str = Query("mex", description="Catalog source: 'mex', 'usa', or 'american'"), + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + from fastapi import HTTPException + tenant_id = current_user.get("tenant_id") + + if catalog == "american": + from api.v1.modules.a76.general_catalogs.fractions.us_tariff_fractions.service import USTariffFractionService + success = USTariffFractionService.delete(db, tenant_id, company_id, tariff_fraction_id) + if not success: + raise HTTPException(status_code=404, detail="US Tariff fraction not found") + return {"ok": True} + + else: + raise HTTPException(status_code=400, detail=f"Delete not allowed for '{catalog}' catalog (Read-Only)") + diff --git a/backend/api/v1/modules/a76/general_catalogs/tariff_fractions/seed.py b/backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/seed.py similarity index 100% rename from backend/api/v1/modules/a76/general_catalogs/tariff_fractions/seed.py rename to backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/seed.py diff --git a/backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/service.py b/backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/service.py new file mode 100644 index 00000000..7a00b364 --- /dev/null +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/service.py @@ -0,0 +1,401 @@ +""" +Service para fracciones arancelarias +Catálogo de referencia global (no tenant-scoped) +""" + +from typing import List, Optional, Tuple, Dict, Any +from sqlalchemy.orm import Session +from sqlalchemy.exc import IntegrityError +from fastapi import HTTPException +import zlib +import logging + +from .models import TariffFraction +from .dto import TariffFractionCreateDTO, TariffFractionUpdateDTO +from api.v1.modules.sitar.fracciones.service import FraccionesService +from api.v1.modules.sitar.fracciones.schemas import FraccionesResponse +from api.v1.modules.sitar.fracciones_usa.service import FraccionesUSAService +from api.v1.modules.sitar.fracciones_usa.schemas import FraccionesUSAResponse + +logger = logging.getLogger(__name__) + + +class TariffFractionMapper: + """Helper to map Sitar responses to Local domain objects""" + + @staticmethod + def to_domain(fraccion: FraccionesResponse) -> TariffFraction: + # Generate ID: Use SYSID if available, else composite hash of code + nico + if fraccion.SYSID: + fake_id = fraccion.SYSID + else: + # Composite key for uniqueness if SYSID missing + unique_str = f"{fraccion.FRACCION}-{fraccion.NICO}" + fake_id = zlib.crc32(unique_str.encode('utf-8')) + + # UX Enhauncement: Sitar API returns empty strings for some fields. + # We fill them with fallbacks so the frontend table isn't 90% empty. + code_val = fraccion.FRACCION + + # Formatting Logic: if FRACCIONPUNTO is empty, try to format code_val + formatted_fraction = code_val + if fraccion.FRACCIONPUNTO: + formatted_fraction = fraccion.FRACCIONPUNTO + elif code_val and code_val.isdigit() and len(code_val) == 8: + # Standard 8 digit format: XX.XX.XX.XX + formatted_fraction = f"{code_val[:2]}.{code_val[2:4]}.{code_val[4:6]}.{code_val[6:]}" + elif code_val and code_val.isdigit() and len(code_val) == 6: + # 6 digit (subheading): XX.XX.XX + formatted_fraction = f"{code_val[:2]}.{code_val[2:4]}.{code_val[4:]}" + + fraction_val = formatted_fraction + description_val = fraccion.DESCRIPCION if fraccion.DESCRIPCION else "(Sin descripción)" + + tf = TariffFraction( + id=fake_id, + code=code_val, + fraction=fraction_val, + description=description_val, + nico=fraccion.NICO, + # MAP CHANGE: UMT now maps to Abbreviation (e.g., Pza, Kg) + umt=fraccion.UMABREVIACION, + adv_impo=fraccion.ADVIMPOTXT, + adv_expo=fraccion.ADVEXPOTXT + ) + # Dynamically attach non-model attributes for DTO + tf.dof = fraccion.DOF + tf.aplica_ieps = fraccion.APLICAIEPS + # MAP CHANGE: New field for the numeric code (e.g., 01, 06) + tf.um_code = fraccion.UMCLAVE + + return tf + + @staticmethod + def to_domain_usa(item: FraccionesUSAResponse) -> TariffFraction: + """Map US Fraction to Domain""" + return TariffFraction( + id=item.CONSECUTIVO, + code=item.FRACCION_SIN_PUNTO or "", + fraction=item.FRACCION_CON_PUNTO or "", + description=item.DESCRIPCION or "(Sin descripción)", + nico=None, # Not applicable + umt=item.UNIDADCANTIDAD, + adv_impo=item.TARIFA1, + adv_expo=item.TARIFA2 + ) + + +class TariffFractionService: + """Service para gestionar fracciones arancelarias (catálogo global)""" + + + @staticmethod + def to_domain_usa_local(item: Any) -> TariffFraction: + """Map Local US Fraction (ORM) to Domain""" + # Formatter helper (simple logic: add dots every 2/4 chars? or just return as is?) + # US format: 1234.56.78.90. For now return as is or use helper if available. + # item is USTariffFraction (imported inside method to avoid circular import if needed, or assumed available) + + return TariffFraction( + id=item.id, + code=item.code, + fraction=item.code, # TODO: Format if needed + description=item.description or "(Sin descripción)", + nico=None, + umt=item.unit_of_measure, + adv_impo=str(item.ad_valorem) if item.ad_valorem is not None else None, + adv_expo=None + ) + + @staticmethod + async def get_all( + db: Session, + skip: int = 0, + limit: int = 100, + filters: Optional[Dict[str, Any]] = None, + catalog: str = "mex", + tenant_id: Optional[int] = None, + company_id: Optional[int] = None, + ) -> Tuple[List[TariffFraction], int]: + """ + Obtiene fracciones arancelarias. + Estrategia: + - MEX: Sitar API -> Fallback Local DB + - USA: Local DB (Defined by user requirement) + """ + + # AMERICAN CATALOG HANDLING (LOCAL - 'Fracciones Americanas') + if catalog == "american": + if tenant_id is None or company_id is None: + logger.warning("Solicitud de fracciones Americanas sin tenant/company ID") + return [], 0 + + from api.v1.modules.a76.general_catalogs.fractions.us_tariff_fractions.service import USTariffFractionService + + # Use local service directly + usa_items, total = USTariffFractionService._get_all_local( + db, tenant_id, company_id, skip, limit, filters + ) + + items = [TariffFractionMapper.to_domain_usa_local(item) for item in usa_items] + return items, total + + # USA CATALOG HANDLING (API - 'Fracciones US') + if catalog == "usa": + try: + usa_service = FraccionesUSAService.get_instance() + search_term = None + search_description = None + + if filters and filters.get("search"): + term = filters["search"] + # Simple heuristic: if it looks like a code, use code search, else description + # FIX: Short numeric codes (e.g. "01") often fail strict 'fraccion' search. + # Treat them as description search for partial matching. + clean_term = term.replace(".", "") + if clean_term.isdigit() and len(clean_term) >= 4: + search_term = term + else: + search_description = term + + # USA Service search signature: fraccion, descripcion, skip, limit + usa_items = await usa_service.search( + fraccion=search_term, + descripcion=search_description, + skip=skip, + limit=limit + ) + + items = [TariffFractionMapper.to_domain_usa(item) for item in usa_items] + total = len(items) + skip + if len(items) == limit: + total += 1 + return items, total + except Exception as e: + import traceback + logger.error(f"Error fetching USA fractions (API): {e}") + logger.error(traceback.format_exc()) + # Return empty list on error as per requirement (since API is broken) + return [], 0 + + # MEX (SITAR) CATALOG HANDLING + try: + sitar_service = FraccionesService.get_instance() + + # Map filters + sitar_fraccion = None + sitar_nico = None + + # Default level logic + level_filter = 5 # Default legacy + if filters and filters.get("level") is not None: + level_filter = filters["level"] + + # Allow disabling level filter explicitly + if level_filter == -1: + level_filter = None + + if filters: + if filters.get("search"): + term = filters["search"] + # Heuristic: if search starts with digit (after removing dots), treat as code/fraccion/nico + # This covers "0101", "01.01", "020691A" + clean_term = term.replace(".", "") + if clean_term and clean_term[0].isdigit(): + sitar_fraccion = clean_term + else: + # Attempt description search via API first + logger.info(f"Search term '{term}' identified as text. Attempting API description search.") + pass + + if filters.get("code"): + sitar_fraccion = filters["code"] + if filters.get("fraction"): + sitar_fraccion = filters["fraction"] + if filters.get("nico"): + sitar_nico = filters["nico"] + + # Determine description filter + sitar_description = None + # Only use description if we didn't use it as code above + if filters and filters.get("search"): + clean_term = filters["search"].replace(".", "") + if not (clean_term and clean_term[0].isdigit()): + sitar_description = filters["search"] + + # Note: Sitar search might not return total count. + # We fetch page items. Pagination might be tricky if Sitar doesn't return total. + # Assuming Sitar returns a list. + sitar_items = await sitar_service.search( + fraccion=sitar_fraccion, + nico=sitar_nico, + description=sitar_description, + nivel=level_filter, # Dynamic level + skip=skip, + limit=limit + ) + + # STRICT API USAGE: + # We do NOT fallback to local DB on empty list, as user requested strict API consumption. + # We also do NOT attempt enrichment as codes mismatch (API uses '010191A' vs Local '01012101'). + + # Map items + items = [TariffFractionMapper.to_domain(item) for item in sitar_items] + + # Estimate total (Sitar service doesn't return total currently) + # If we got full limit, assume there are more. + total = len(items) + skip + if len(items) == limit: + total += 1 # Indicate more pages + + return items, total + + except Exception as e: + logger.error(f"Error fetching from Sitar API: {e}") + # STRICT API USAGE: Propagate error, do NOT fallback to local DB. + raise e + + @staticmethod + async def _get_all_local_async( + db: Session, + skip: int = 0, + limit: int = 100, + filters: Optional[Dict[str, Any]] = None, + ) -> Tuple[List[TariffFraction], int]: + """Lógica original de consulta local""" + query = db.query(TariffFraction) + + # Aplicar filtros + if filters: + # Si hay un filtro 'search', buscar en múltiples campos + if filters.get("search"): + search_term = f"%{filters['search']}%" + query = query.filter( + TariffFraction.code.ilike(search_term) | + TariffFraction.fraction.ilike(search_term) | + TariffFraction.description.ilike(search_term) | + TariffFraction.nico.ilike(search_term) | + TariffFraction.umt.ilike(search_term) + ) + else: + # Filtros individuales + if filters.get("code"): + query = query.filter(TariffFraction.code.ilike(f"%{filters['code']}%")) + if filters.get("fraction"): + query = query.filter(TariffFraction.fraction.ilike(f"%{filters['fraction']}%")) + if filters.get("description"): + query = query.filter(TariffFraction.description.ilike(f"%{filters['description']}%")) + if filters.get("nico"): + query = query.filter(TariffFraction.nico.ilike(f"%{filters['nico']}%")) + if filters.get("umt"): + query = query.filter(TariffFraction.umt.ilike(f"%{filters['umt']}%")) + + total = query.count() + # Add deterministic sort order + query = query.order_by(TariffFraction.fraction) + items = query.offset(skip).limit(limit).all() + + return items, total + + @staticmethod + def get_by_id( + db: Session, + tariff_fraction_id: int, + ) -> Optional[TariffFraction]: + """ + Obtiene por ID. + Como Sitar no usa estos IDs, consultamos Local DB directamente para compatibilidad legacy. + Si se necesitara obtener detalle de Sitar, se requeriría otro identificador (Code). + """ + return ( + db.query(TariffFraction) + .filter(TariffFraction.id == tariff_fraction_id) + .first() + ) + + # WRITE OPERATIONS - DEPRECATED / LOCAL ONLY (Optional: Remove or Keep for Fallback Maintenance) + + @staticmethod + def get_by_code( + db: Session, + code: str, + ) -> Optional[TariffFraction]: + return ( + db.query(TariffFraction) + .filter(TariffFraction.code == code) + .first() + ) + + @staticmethod + def create( + db: Session, + tariff_fraction_data: TariffFractionCreateDTO, + ) -> TariffFraction: + try: + tariff_fraction = TariffFraction( + **tariff_fraction_data.model_dump(), + ) + db.add(tariff_fraction) + db.commit() + db.refresh(tariff_fraction) + return tariff_fraction + except IntegrityError as e: + db.rollback() + logger.error(f"Error creating tariff fraction: {e}") + raise HTTPException( + status_code=400, + detail="Tariff fraction with this code already exists", + ) + + @staticmethod + def update( + db: Session, + tariff_fraction_id: int, + tariff_fraction_data: TariffFractionUpdateDTO, + ) -> Optional[TariffFraction]: + tariff_fraction = TariffFractionService.get_by_id( + db, tariff_fraction_id + ) + + if not tariff_fraction: + return None + + try: + update_data = tariff_fraction_data.model_dump(exclude_unset=True) + for key, value in update_data.items(): + setattr(tariff_fraction, key, value) + + db.commit() + db.refresh(tariff_fraction) + return tariff_fraction + except IntegrityError as e: + db.rollback() + logger.error(f"Error updating tariff fraction: {e}") + raise HTTPException( + status_code=400, + detail="Error updating tariff fraction", + ) + + @staticmethod + def delete( + db: Session, + tariff_fraction_id: int, + ) -> bool: + tariff_fraction = TariffFractionService.get_by_id( + db, tariff_fraction_id + ) + + if not tariff_fraction: + return False + + try: + db.delete(tariff_fraction) + db.commit() + return True + except IntegrityError as e: + db.rollback() + logger.error(f"Error deleting tariff fraction: {e}") + raise HTTPException( + status_code=400, + detail="Cannot delete tariff fraction - may be in use", + ) diff --git a/backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/__init__.py b/backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/__init__.py similarity index 100% rename from backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/__init__.py rename to backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/__init__.py diff --git a/backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/dto.py b/backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/dto.py similarity index 100% rename from backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/dto.py rename to backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/dto.py diff --git a/backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/models.py b/backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/models.py similarity index 72% rename from backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/models.py rename to backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/models.py index cb08b05e..cc9097c4 100644 --- a/backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/models.py +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/models.py @@ -9,9 +9,10 @@ from sqlalchemy import String, Numeric, TIMESTAMP, func from sqlalchemy.orm import Mapped, mapped_column from core.database import Base +from api.v1.common.base_models import TenantScopedMixin, TimestampMixin -class USTariffFraction(Base): +class USTariffFraction(Base, TenantScopedMixin, TimestampMixin): """Modelo para fracciones arancelarias americanas (US HTS codes)""" __tablename__ = "us_tariff_fractions" @@ -20,10 +21,6 @@ class USTariffFraction(Base): # Primary Key id: Mapped[int] = mapped_column(primary_key=True, index=True) - # Tenant/Company - tenant_id: Mapped[int] = mapped_column(index=True, nullable=False) - company_id: Mapped[int] = mapped_column(index=True, nullable=False) - # Datos principales code: Mapped[str] = mapped_column( String(16), nullable=False, comment="Código de fracción americana" @@ -47,16 +44,5 @@ class USTariffFraction(Base): String, comment="Descripción de la fracción" ) - # Timestamps - created_at: Mapped[datetime] = mapped_column( - TIMESTAMP(timezone=True), server_default=func.now(), nullable=False - ) - updated_at: Mapped[datetime] = mapped_column( - TIMESTAMP(timezone=True), - server_default=func.now(), - onupdate=func.now(), - nullable=False, - ) - def __repr__(self): return f"" diff --git a/backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/routes.py b/backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/routes.py similarity index 60% rename from backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/routes.py rename to backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/routes.py index d3d85344..d5552c7e 100644 --- a/backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/routes.py +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/routes.py @@ -17,21 +17,8 @@ from .dto import ( ) from .service import USTariffFractionService -# Create base router with generic CRUD routes (disabled list because we'll create a custom one) -base_router = TenantCRUDRoutes( - service=USTariffFractionService, - create_schema=USTariffFractionCreateDTO, - update_schema=USTariffFractionUpdateDTO, - response_schema=USTariffFractionResponseDTO, - prefix="/us-tariff-fractions", - tags=["a76 / general catalogs / us tariff fractions"], - resource_name="USTariffFraction", - id_name="us_tariff_fraction_id", - enable_list=False, # Disable default list, we'll add custom one - enable_filters=False, - default_page_size=50, - max_page_size=10000, -) +# Create base router with generic CRUD routes - REMOVED strictly read-only from Sitar +# Writes are disabled at API level, but Service still supports fallback writes if needed internally router = APIRouter(prefix="/us-tariff-fractions", tags=["a76 / general catalogs / us tariff fractions"]) @@ -57,7 +44,8 @@ async def list_us_tariff_fractions( if search: filters["search"] = search - items, total = USTariffFractionService.get_all( + # Updated to async call with Sitar integration + items, total = await USTariffFractionService.get_all( db, tenant_id, company_id, skip, page_size, filters ) @@ -69,5 +57,23 @@ async def list_us_tariff_fractions( "pages": (total + page_size - 1) // page_size, } -# Include other CRUD routes from base router -router.include_router(base_router.router) + +@router.get( + "/{us_tariff_fraction_id}", + response_model=USTariffFractionResponseDTO, + summary="Get US Tariff Fraction by ID", + description="Get a specific US tariff fraction by ID (Lookups in Local DB for legacy compatibility)", +) +async def get_us_tariff_fraction( + us_tariff_fraction_id: int, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + + item = USTariffFractionService.get_by_id(db, tenant_id, company_id, us_tariff_fraction_id) + if not item: + from fastapi import HTTPException + raise HTTPException(status_code=404, detail="US Tariff fraction not found") + return USTariffFractionResponseDTO.model_validate(item) diff --git a/backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/seed.py b/backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/seed.py similarity index 100% rename from backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/seed.py rename to backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/seed.py diff --git a/backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/service.py b/backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/service.py new file mode 100644 index 00000000..877dfcc5 --- /dev/null +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/service.py @@ -0,0 +1,232 @@ +""" +Service para fracciones arancelarias americanas +""" + +from typing import List, Optional, Tuple, Dict, Any +from sqlalchemy.orm import Session +from sqlalchemy.exc import IntegrityError +from fastapi import HTTPException +import zlib +import logging +import re +from decimal import Decimal + +from .models import USTariffFraction +from .dto import USTariffFractionCreateDTO, USTariffFractionUpdateDTO +from api.v1.modules.sitar.fracciones_usa.service import FraccionesUSAService +from api.v1.modules.sitar.fracciones_usa.schemas import FraccionesUSAResponse + +logger = logging.getLogger(__name__) + + +class USTariffFractionMapper: + """Helper to map Sitar USA responses to Local domain objects""" + + @staticmethod + def to_domain(fraccion: FraccionesUSAResponse, tenant_id: int, company_id: int) -> USTariffFraction: + # Generate a deterministic numeric ID based on the unique code + # We use CRC32 to get a consistent integer implementation-independent + fake_id = zlib.crc32((fraccion.FRACCION_SIN_PUNTO or "").encode('utf-8')) + + # Parse numeric values safely + ad_valorem = None + if fraccion.TARIFA1: + try: + # Extract numbers from string like "5.2%" or similar if present + # Assuming TARIFA1 might be clean number or percentage string + clean_val = re.sub(r'[^\d.]', '', str(fraccion.TARIFA1)) + if clean_val: + ad_valorem = Decimal(clean_val) + except: + pass + + fixed_cost = None + if fraccion.ESPECIFICO: + try: + clean_val = re.sub(r'[^\d.]', '', str(fraccion.ESPECIFICO)) + if clean_val: + fixed_cost = Decimal(clean_val) + except: + pass + + return USTariffFraction( + id=fake_id, # Updated to use fake_id instead of sitar consecutive if needed, or consistent hash + tenant_id=tenant_id, + company_id=company_id, + code=fraccion.FRACCION_SIN_PUNTO or "", + prefix=None, # Not mapped from Sitar response currently + type_code=None, + ad_valorem=ad_valorem, + fixed_cost=fixed_cost, + unit_of_measure=fraccion.UNIDADCANTIDAD, + description=fraccion.DESCRIPCION + ) + + +class USTariffFractionService: + """Service para gestionar fracciones arancelarias americanas""" + + @staticmethod + async def get_all( + db: Session, + tenant_id: int, + company_id: int, + skip: int = 0, + limit: int = 100, + filters: Optional[Dict[str, Any]] = None, + ) -> Tuple[List[USTariffFraction], int]: + """ + Obtiene todas las fracciones arancelarias americanas con filtros opcionales. + Estrategia: Sitar API -> Fallback Local DB + """ + + # 1. Try Sitar API + try: + sitar_service = FraccionesUSAService.get_instance() + + sitar_fraccion = None + has_filters = False + + if filters and filters.get("search"): + term = filters["search"] + # Sitar only filters by fraction code + if term.replace(".", "").isdigit(): + sitar_fraccion = term + has_filters = True + + sitar_items = await sitar_service.search( + fraccion=sitar_fraccion, + skip=skip, + limit=limit + ) + + # If Sitar returns empty list AND we didn't have specific filters, attempt fallback + if not sitar_items and not has_filters: + logger.warning("Sitar return empty list for USA broad query. Attempting fallback to local DB.") + return USTariffFractionService._get_all_local(db, tenant_id, company_id, skip, limit, filters) + + # Map items + items = [USTariffFractionMapper.to_domain(item, tenant_id, company_id) for item in sitar_items] + + # Estimate total + total = len(items) + skip + if len(items) == limit: + total += 1 + + return items, total + + except Exception as e: + logger.error(f"Error fetching USA Fractions from Sitar API, falling back to local DB: {e}") + return USTariffFractionService._get_all_local(db, tenant_id, company_id, skip, limit, filters) + + @staticmethod + def _get_all_local( + db: Session, + tenant_id: int, + company_id: int, + skip: int = 0, + limit: int = 100, + filters: Optional[Dict[str, Any]] = None, + ) -> Tuple[List[USTariffFraction], int]: + """Lógica original de consulta local""" + query = db.query(USTariffFraction).filter( + USTariffFraction.tenant_id == tenant_id, + USTariffFraction.company_id == company_id, + ) + + # Aplicar filtros + if filters: + # Si hay un filtro 'search', buscar en múltiples campos + if filters.get("search"): + search_term = f"%{filters['search']}%" + query = query.filter( + USTariffFraction.code.ilike(search_term) | + USTariffFraction.description.ilike(search_term) | + USTariffFraction.prefix.ilike(search_term) + ) + + total = query.count() + items = query.order_by(USTariffFraction.code).offset(skip).limit(limit).all() + + return items, total + + @staticmethod + def get_by_id( + db: Session, tenant_id: int, company_id: int, fraction_id: int + ) -> Optional[USTariffFraction]: + """ + Obtiene por ID. + Legacy: Consulta Local DB. + """ + return ( + db.query(USTariffFraction) + .filter( + USTariffFraction.id == fraction_id, + USTariffFraction.tenant_id == tenant_id, + USTariffFraction.company_id == company_id, + ) + .first() + ) + + # WRITE OPERATIONS - DEPRECATED / LOCAL ONLY + + @staticmethod + def create( + db: Session, + tenant_id: int, + company_id: int, + fraction_data: USTariffFractionCreateDTO, + ) -> USTariffFraction: + try: + db_fraction = USTariffFraction( + tenant_id=tenant_id, + company_id=company_id, + **fraction_data.model_dump(), + ) + db.add(db_fraction) + db.commit() + db.refresh(db_fraction) + return db_fraction + except IntegrityError as e: + db.rollback() + logger.error(f"Error creando fracción americana: {e}") + raise HTTPException( + status_code=400, + detail="Ya existe una fracción americana con este código", + ) + + @staticmethod + def update( + db: Session, + tenant_id: int, + company_id: int, + fraction_id: int, + fraction_data: USTariffFractionUpdateDTO, + ) -> Optional[USTariffFraction]: + db_fraction = USTariffFractionService.get_by_id( + db, tenant_id, company_id, fraction_id + ) + if not db_fraction: + return None + + update_data = fraction_data.model_dump(exclude_unset=True) + for field, value in update_data.items(): + setattr(db_fraction, field, value) + + db.commit() + db.refresh(db_fraction) + return db_fraction + + @staticmethod + def delete( + db: Session, tenant_id: int, company_id: int, fraction_id: int + ) -> bool: + db_fraction = USTariffFractionService.get_by_id( + db, tenant_id, company_id, fraction_id + ) + if not db_fraction: + return False + + db.delete(db_fraction) + db.commit() + return True diff --git a/backend/api/v1/modules/a76/general_catalogs/router.py b/backend/api/v1/modules/a76/general_catalogs/router.py new file mode 100644 index 00000000..aaa47326 --- /dev/null +++ b/backend/api/v1/modules/a76/general_catalogs/router.py @@ -0,0 +1,56 @@ +from fastapi import APIRouter +from .company import router as company_router +from .exchange_rate.routes import router as exchange_rate_router +from .identifiers.routes import router as identifiers_router +from .packages.routes import router as package_router +from .ports.routes import router as ports_router +from .fractions.tariff_fractions.routes import router as tariff_fractions_router +from .fractions.us_tariff_fractions.routes import router as us_tariff_fractions_router +from .fractions.historical_tariff_fractions.routes import router as historical_tariff_fractions_router +from .fractions.canadian_tariff_fractions.routes import router as canadian_tariff_fractions_router +from .depreciation_catalog.routes import router as depreciation_catalog_router +from .fda_catalog.routes import router as fda_catalog_router +from .seal.routes import router as seal_router +from .units_of_measure.routes import router as units_of_measure_router +from .concepts.routes import router as concepts_router +from .customs_broker_concepts.routes import router as customs_broker_concepts_router +from .classification_concepts.routes import router as classification_concepts_router +from .unit_conversions.routes import router as unit_conversions_router +from .equivalencies.routes import router as equivalencies_router +from .multi_currency_types.routes import router as multi_currency_types_router +from .inpc.routes import router as inpc_router +from .legends.routes import router as legends_router +from .signatures.routes import router as signatures_router +from .error_catalogs.routes import router as error_catalogs_router +from .doda.routes import router as doda_router +from .prevalidators.routes import router as prevalidators_router +from .electronic_notices.routes import router as electronic_notices_router + +router = APIRouter() + +router.include_router(company_router, tags=["a76 / company"]) +router.include_router(package_router) +router.include_router(ports_router) +router.include_router(tariff_fractions_router) +router.include_router(us_tariff_fractions_router) +router.include_router(historical_tariff_fractions_router, prefix="/fractions/historical-tariff-fractions", tags=["a76 / historical_tariff_fractions"]) +router.include_router(canadian_tariff_fractions_router, prefix="/fractions/canadian-tariff-fractions", tags=["a76 / canadian_tariff_fractions"]) +router.include_router(depreciation_catalog_router) +router.include_router(fda_catalog_router) +router.include_router(seal_router, tags=["a76 / seal"]) +router.include_router(units_of_measure_router) +router.include_router(identifiers_router) +router.include_router(exchange_rate_router, tags=["a76 / exchange_rate"]) +router.include_router(concepts_router) +router.include_router(customs_broker_concepts_router) +router.include_router(classification_concepts_router) +router.include_router(unit_conversions_router) +router.include_router(equivalencies_router) +router.include_router(multi_currency_types_router) +router.include_router(inpc_router) +router.include_router(legends_router) +router.include_router(signatures_router) +router.include_router(error_catalogs_router) +router.include_router(doda_router) +router.include_router(prevalidators_router) +router.include_router(electronic_notices_router) diff --git a/backend/api/v1/modules/a76/general_catalogs/tariff_fractions/routes.py b/backend/api/v1/modules/a76/general_catalogs/tariff_fractions/routes.py deleted file mode 100644 index 4e7bd2f3..00000000 --- a/backend/api/v1/modules/a76/general_catalogs/tariff_fractions/routes.py +++ /dev/null @@ -1,122 +0,0 @@ -""" -Endpoints API para fracciones arancelarias -Catálogo de referencia global (no tenant-scoped) -""" - -from typing import Any, Dict, Optional -from fastapi import APIRouter, Depends, Query -from sqlalchemy.orm import Session - -from core.database import get_core_db -from core.security import get_current_user - -from .dto import ( - TariffFractionCreateDTO, - TariffFractionResponseDTO, - TariffFractionUpdateDTO, -) -from .service import TariffFractionService - -router = APIRouter(prefix="/tariff-fractions", tags=["a76 / general catalogs / tariff fractions"]) - -# Custom list endpoint with search filter -@router.get( - "/", - response_model=Dict[str, Any], - summary="List Tariff Fractions", - description="Get paginated list of Tariff Fractions with optional search filter (global catalog)", -) -async def list_tariff_fractions( - page: int = Query(1, ge=1, description="Page number"), - page_size: int = Query(50, ge=1, le=10000, description="Page size"), - search: Optional[str] = Query(None, description="Search in code, fraction, description, nico, or umt"), - db: Session = Depends(get_core_db), - current_user: Dict[str, Any] = Depends(get_current_user), -): - skip = (page - 1) * page_size - filters = {} - if search: - filters["search"] = search - - items, total = TariffFractionService.get_all( - db, skip, page_size, filters - ) - - return { - "items": [TariffFractionResponseDTO.model_validate(item) for item in items], - "total": total, - "page": page, - "page_size": page_size, - "pages": (total + page_size - 1) // page_size, - } - - -@router.get( - "/{tariff_fraction_id}", - response_model=TariffFractionResponseDTO, - summary="Get Tariff Fraction by ID", - description="Get a specific tariff fraction by ID", -) -async def get_tariff_fraction( - tariff_fraction_id: int, - db: Session = Depends(get_core_db), - current_user: Dict[str, Any] = Depends(get_current_user), -): - item = TariffFractionService.get_by_id(db, tariff_fraction_id) - if not item: - from fastapi import HTTPException - raise HTTPException(status_code=404, detail="Tariff fraction not found") - return TariffFractionResponseDTO.model_validate(item) - - -@router.post( - "/", - response_model=TariffFractionResponseDTO, - summary="Create Tariff Fraction", - description="Create a new tariff fraction (admin only)", - status_code=201, -) -async def create_tariff_fraction( - data: TariffFractionCreateDTO, - db: Session = Depends(get_core_db), - current_user: Dict[str, Any] = Depends(get_current_user), -): - item = TariffFractionService.create(db, data) - return TariffFractionResponseDTO.model_validate(item) - - -@router.put( - "/{tariff_fraction_id}", - response_model=TariffFractionResponseDTO, - summary="Update Tariff Fraction", - description="Update an existing tariff fraction (admin only)", -) -async def update_tariff_fraction( - tariff_fraction_id: int, - data: TariffFractionUpdateDTO, - db: Session = Depends(get_core_db), - current_user: Dict[str, Any] = Depends(get_current_user), -): - item = TariffFractionService.update(db, tariff_fraction_id, data) - if not item: - from fastapi import HTTPException - raise HTTPException(status_code=404, detail="Tariff fraction not found") - return TariffFractionResponseDTO.model_validate(item) - - -@router.delete( - "/{tariff_fraction_id}", - summary="Delete Tariff Fraction", - description="Delete a tariff fraction (admin only)", - status_code=204, -) -async def delete_tariff_fraction( - tariff_fraction_id: int, - db: Session = Depends(get_core_db), - current_user: Dict[str, Any] = Depends(get_current_user), -): - success = TariffFractionService.delete(db, tariff_fraction_id) - if not success: - from fastapi import HTTPException - raise HTTPException(status_code=404, detail="Tariff fraction not found") - diff --git a/backend/api/v1/modules/a76/general_catalogs/tariff_fractions/service.py b/backend/api/v1/modules/a76/general_catalogs/tariff_fractions/service.py deleted file mode 100644 index 3dd13594..00000000 --- a/backend/api/v1/modules/a76/general_catalogs/tariff_fractions/service.py +++ /dev/null @@ -1,166 +0,0 @@ -""" -Service para fracciones arancelarias -Catálogo de referencia global (no tenant-scoped) -""" - -from typing import List, Optional, Tuple, Dict, Any -from sqlalchemy.orm import Session -from sqlalchemy.exc import IntegrityError -from fastapi import HTTPException -import logging - -from .models import TariffFraction -from .dto import TariffFractionCreateDTO, TariffFractionUpdateDTO - -logger = logging.getLogger(__name__) - - -class TariffFractionService: - """Service para gestionar fracciones arancelarias (catálogo global)""" - - @staticmethod - def get_all( - db: Session, - skip: int = 0, - limit: int = 100, - filters: Optional[Dict[str, Any]] = None, - ) -> Tuple[List[TariffFraction], int]: - """Obtiene todas las fracciones arancelarias con filtros opcionales""" - - query = db.query(TariffFraction) - - # Aplicar filtros - if filters: - # Si hay un filtro 'search', buscar en múltiples campos - if filters.get("search"): - search_term = f"%{filters['search']}%" - query = query.filter( - TariffFraction.code.ilike(search_term) | - TariffFraction.fraction.ilike(search_term) | - TariffFraction.description.ilike(search_term) | - TariffFraction.nico.ilike(search_term) | - TariffFraction.umt.ilike(search_term) - ) - else: - # Filtros individuales - if filters.get("code"): - query = query.filter(TariffFraction.code.ilike(f"%{filters['code']}%")) - if filters.get("fraction"): - query = query.filter(TariffFraction.fraction.ilike(f"%{filters['fraction']}%")) - if filters.get("description"): - query = query.filter(TariffFraction.description.ilike(f"%{filters['description']}%")) - if filters.get("nico"): - query = query.filter(TariffFraction.nico.ilike(f"%{filters['nico']}%")) - if filters.get("umt"): - query = query.filter(TariffFraction.umt.ilike(f"%{filters['umt']}%")) - - total = query.count() - items = query.offset(skip).limit(limit).all() - - return items, total - - @staticmethod - def get_by_id( - db: Session, - tariff_fraction_id: int, - ) -> Optional[TariffFraction]: - """Obtiene una fracción arancelaria por ID""" - - return ( - db.query(TariffFraction) - .filter(TariffFraction.id == tariff_fraction_id) - .first() - ) - - @staticmethod - def get_by_code( - db: Session, - code: str, - ) -> Optional[TariffFraction]: - """Obtiene una fracción arancelaria por código""" - - return ( - db.query(TariffFraction) - .filter(TariffFraction.code == code) - .first() - ) - - @staticmethod - def create( - db: Session, - tariff_fraction_data: TariffFractionCreateDTO, - ) -> TariffFraction: - """Crea una nueva fracción arancelaria""" - - try: - tariff_fraction = TariffFraction( - **tariff_fraction_data.model_dump(), - ) - db.add(tariff_fraction) - db.commit() - db.refresh(tariff_fraction) - return tariff_fraction - except IntegrityError as e: - db.rollback() - logger.error(f"Error creating tariff fraction: {e}") - raise HTTPException( - status_code=400, - detail="Tariff fraction with this code already exists", - ) - - @staticmethod - def update( - db: Session, - tariff_fraction_id: int, - tariff_fraction_data: TariffFractionUpdateDTO, - ) -> Optional[TariffFraction]: - """Actualiza una fracción arancelaria existente""" - - tariff_fraction = TariffFractionService.get_by_id( - db, tariff_fraction_id - ) - - if not tariff_fraction: - return None - - try: - update_data = tariff_fraction_data.model_dump(exclude_unset=True) - for key, value in update_data.items(): - setattr(tariff_fraction, key, value) - - db.commit() - db.refresh(tariff_fraction) - return tariff_fraction - except IntegrityError as e: - db.rollback() - logger.error(f"Error updating tariff fraction: {e}") - raise HTTPException( - status_code=400, - detail="Error updating tariff fraction", - ) - - @staticmethod - def delete( - db: Session, - tariff_fraction_id: int, - ) -> bool: - """Elimina una fracción arancelaria""" - - tariff_fraction = TariffFractionService.get_by_id( - db, tariff_fraction_id - ) - - if not tariff_fraction: - return False - - try: - db.delete(tariff_fraction) - db.commit() - return True - except IntegrityError as e: - db.rollback() - logger.error(f"Error deleting tariff fraction: {e}") - raise HTTPException( - status_code=400, - detail="Cannot delete tariff fraction - may be in use", - ) diff --git a/backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/service.py b/backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/service.py deleted file mode 100644 index 41815d68..00000000 --- a/backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/service.py +++ /dev/null @@ -1,129 +0,0 @@ -""" -Service para fracciones arancelarias americanas -""" - -from typing import List, Optional, Tuple, Dict, Any -from sqlalchemy.orm import Session -from sqlalchemy.exc import IntegrityError -from fastapi import HTTPException -import logging - -from .models import USTariffFraction -from .dto import USTariffFractionCreateDTO, USTariffFractionUpdateDTO - -logger = logging.getLogger(__name__) - - -class USTariffFractionService: - """Service para gestionar fracciones arancelarias americanas""" - - @staticmethod - def get_all( - db: Session, - tenant_id: int, - company_id: int, - skip: int = 0, - limit: int = 100, - filters: Optional[Dict[str, Any]] = None, - ) -> Tuple[List[USTariffFraction], int]: - """Obtiene todas las fracciones arancelarias americanas con filtros opcionales""" - - query = db.query(USTariffFraction).filter( - USTariffFraction.tenant_id == tenant_id, - USTariffFraction.company_id == company_id, - ) - - # Aplicar filtros - if filters: - # Si hay un filtro 'search', buscar en múltiples campos - if filters.get("search"): - search_term = f"%{filters['search']}%" - query = query.filter( - USTariffFraction.code.ilike(search_term) | - USTariffFraction.description.ilike(search_term) | - USTariffFraction.prefix.ilike(search_term) - ) - - total = query.count() - items = query.order_by(USTariffFraction.code).offset(skip).limit(limit).all() - - return items, total - - @staticmethod - def get_by_id( - db: Session, tenant_id: int, company_id: int, fraction_id: int - ) -> Optional[USTariffFraction]: - """Obtiene una fracción arancelaria americana por ID""" - return ( - db.query(USTariffFraction) - .filter( - USTariffFraction.id == fraction_id, - USTariffFraction.tenant_id == tenant_id, - USTariffFraction.company_id == company_id, - ) - .first() - ) - - @staticmethod - def create( - db: Session, - tenant_id: int, - company_id: int, - fraction_data: USTariffFractionCreateDTO, - ) -> USTariffFraction: - """Crea una nueva fracción arancelaria americana""" - try: - db_fraction = USTariffFraction( - tenant_id=tenant_id, - company_id=company_id, - **fraction_data.model_dump(), - ) - db.add(db_fraction) - db.commit() - db.refresh(db_fraction) - return db_fraction - except IntegrityError as e: - db.rollback() - logger.error(f"Error creando fracción americana: {e}") - raise HTTPException( - status_code=400, - detail="Ya existe una fracción americana con este código", - ) - - @staticmethod - def update( - db: Session, - tenant_id: int, - company_id: int, - fraction_id: int, - fraction_data: USTariffFractionUpdateDTO, - ) -> Optional[USTariffFraction]: - """Actualiza una fracción arancelaria americana existente""" - db_fraction = USTariffFractionService.get_by_id( - db, tenant_id, company_id, fraction_id - ) - if not db_fraction: - return None - - update_data = fraction_data.model_dump(exclude_unset=True) - for field, value in update_data.items(): - setattr(db_fraction, field, value) - - db.commit() - db.refresh(db_fraction) - return db_fraction - - @staticmethod - def delete( - db: Session, tenant_id: int, company_id: int, fraction_id: int - ) -> bool: - """Elimina una fracción arancelaria americana""" - db_fraction = USTariffFractionService.get_by_id( - db, tenant_id, company_id, fraction_id - ) - if not db_fraction: - return False - - db.delete(db_fraction) - db.commit() - return True diff --git a/backend/api/v1/modules/a76/imports/__init__.py b/backend/api/v1/modules/a76/imports/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/backend/api/v1/modules/a76/imports/routes.py b/backend/api/v1/modules/a76/imports/routes.py new file mode 100644 index 00000000..1ea76a74 --- /dev/null +++ b/backend/api/v1/modules/a76/imports/routes.py @@ -0,0 +1,118 @@ +from datetime import datetime +from uuid import uuid4 +import os +import json +import logging +from fastapi import APIRouter, UploadFile, File, Form, HTTPException, Depends, Query +from sqlalchemy.orm import Session +from typing import Optional, Literal, Dict, Any + +from core.celery_app import celery_app +from core.config import settings +from core.database import get_core_db +from core.security import get_current_user, validate_access_to_resource + +from .tasks import scan_file, insert_valid_rows +from .schemas import ImportJobResponse, ImportJobStatus, CommitRequest + +router = APIRouter() +logger = logging.getLogger(__name__) + +@router.post("/upload/{model_target}", response_model=ImportJobResponse) +async def upload_import_file( + model_target: Literal["invoice_header", "invoice_details"], + file: UploadFile = File(...), + footer_config: Optional[str] = Form(None), # JSON string with settings + company_id: int = Query(..., description="Company ID"), # Required for context + operation_type: Optional[str] = Query("imp"), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + """ + Step 1: Upload CSV, save to temp, trigger scan task. + """ + # 1. Validate Access & Get Tenant + try: + tenant_id = validate_access_to_resource(db, company_id, current_user) + except Exception as e: + logger.error(f"Access validation failed: {e}") + raise HTTPException(status_code=403, detail="Invalid company access") + + if not file.filename.endswith(".csv"): + raise HTTPException(status_code=400, detail="Only .csv files allowed") + + job_id = str(uuid4()) + + # Ensure directory exists (Safety check) + upload_dir = os.path.join(os.getcwd(), "uploads", "temp") + os.makedirs(upload_dir, exist_ok=True) + + file_path = os.path.join(upload_dir, f"{job_id}.csv") + meta_path = os.path.join(upload_dir, f"{job_id}.meta.json") + + try: + # Save CSV + contents = await file.read() + with open(file_path, "wb") as f: + f.write(contents) + + # Save Metadata (Context) + meta_data = { + "tenant_id": tenant_id, + "company_id": company_id, + "user_id": current_user.get("id"), + "footer_config": footer_config, + "operation_type": operation_type, + } + with open(meta_path, "w") as f: + json.dump(meta_data, f) + + except Exception as e: + logger.error(f"File save error: {e}") + raise HTTPException(status_code=500, detail=f"Failed to save file: {str(e)}") + + # Trigger Celery Task (Async) + # Use our job_id as the Celery task_id for easier tracking + scan_file.apply_async(args=[job_id, file_path, model_target, footer_config], task_id=job_id) + + return ImportJobResponse( + job_id=job_id, + status="queued", + message="File uploaded. Scanning started." + ) + +@router.get("/{job_id}/status") +async def get_import_status(job_id: str): + """ + Poll this endpoint to get % progress or final report. + """ + # In a real app, query Redis or DB. + # For MVP, we might mock or use Celery AsyncResult if backend shares Redis. + task_result = celery_app.AsyncResult(job_id) + + if task_result.state == 'PENDING': + return {"status": "processing", "progress": 0} + elif task_result.state == 'PROGRESS': + return { + "status": "processing", + "progress": task_result.info.get('current', 0), + "total": task_result.info.get('total', 0) + } + elif task_result.state == 'SUCCESS': + return task_result.result # Should return the report + else: + return {"status": task_result.state, "error": str(task_result.info)} + + +@router.post("/{job_id}/commit") +async def commit_import_job(job_id: str, body: CommitRequest): + """ + Step 2: User confirms import. Trigger bulk insert. + """ + task = insert_valid_rows.delay(job_id, body.model_target) + + return { + "status": "committing", + "message": "Bulk insert started.", + "commit_job_id": task.id + } diff --git a/backend/api/v1/modules/a76/imports/schemas.py b/backend/api/v1/modules/a76/imports/schemas.py new file mode 100644 index 00000000..63c0202a --- /dev/null +++ b/backend/api/v1/modules/a76/imports/schemas.py @@ -0,0 +1,20 @@ +from pydantic import BaseModel +from typing import Optional, Literal + +class ImportJobResponse(BaseModel): + job_id: str + status: str + message: str + +class CommitRequest(BaseModel): + model_target: Literal["invoice_header", "invoice_details"] + +class ImportJobStatus(BaseModel): + status: str + job_id: str + total_rows: Optional[int] = 0 + error_count: Optional[int] = 0 + valid_rows: Optional[int] = 0 + error: Optional[str] = None + inserted: Optional[int] = 0 + error_file: Optional[str] = None diff --git a/backend/api/v1/modules/a76/imports/tasks.py b/backend/api/v1/modules/a76/imports/tasks.py new file mode 100644 index 00000000..58ef97e3 --- /dev/null +++ b/backend/api/v1/modules/a76/imports/tasks.py @@ -0,0 +1,875 @@ +import os +from datetime import datetime +from decimal import Decimal +import csv +import json +import logging +import re +import unicodedata +from celery import shared_task +from typing import Dict, Any, Optional +from core.database import CoreSessionLocal +# Models are imported inside tasks to avoid circular dependencies and mapper initialization issues in the API process + +# We'll need schemas for validation +# from api.v1.modules.a76.invoices.schemas import InvoiceHeaderCreate +# But for Phase 1 we use a lighter check + +logger = logging.getLogger(__name__) + +class ForeignKeyValidator: + def __init__(self, session, tenant_id, company_id): + self.session = session + self.tenant_id = tenant_id + self.company_id = company_id + self.cache = {} # {(model_name, value): bool} + + def check_exists(self, model, value, field_name="id", is_public=False): + if value is None: + return True # Assume optional if None, or let DB handle not-null + + key = (model.__name__, value) + if key in self.cache: + return self.cache[key] + + query = self.session.query(getattr(model, field_name)).filter(getattr(model, field_name) == value) + if not is_public: + query = query.filter(model.tenant_id == self.tenant_id, model.company_id == self.company_id) + + exists = query.first() is not None + self.cache[key] = exists + return exists + +@shared_task(bind=True) +def scan_file(self, job_id: str, file_path: str, model_target: str, config: str = None): + """ + Pass 1: Read CSV, Validate types, Write Errors to JSONL. + """ + logger.info(f"Starting scan for job {job_id} target {model_target}") + + # 1. Setup Error Log + error_path = file_path.replace("temp", "errors").replace(".csv", ".jsonl") + os.makedirs(os.path.dirname(error_path), exist_ok=True) + + total_rows = 0 + error_count = 0 + processed_rows = 0 + + # 2. Count Total (Quick Pass) or just estimate + # For better progress, we can get file line count first + try: + with open(file_path, 'r', encoding='utf-8-sig') as f: + total_rows = sum(1 for _ in f) - 1 # Minus header + except Exception as e: + return {"status": "failed", "error": f"Cannot read file: {e}"} + + footer_config = parse_footer_config(config) + date_format = footer_config.get("dateFormat") + + # Validate and set default date_format if not provided + if not date_format: + date_format = "yyyy-mm-dd" # Default to ISO format + logger.info(f"No date_format specified in config, using default: {date_format}") + + try: + with open(file_path, 'r', encoding='utf-8-sig') as f_in, \ + open(error_path, 'w', encoding='utf-8') as f_err: + + # Detect Delimiter + sample = f_in.read(2048) + f_in.seek(0) + try: + dialect = csv.Sniffer().sniff(sample, delimiters=",;\t") + except: + dialect = 'excel' + + reader = csv.DictReader(f_in, dialect=dialect) + + for i, row in enumerate(reader, start=1): + # Check for Progress Update + if i % 1000 == 0: + self.update_state(state='PROGRESS', meta={ + 'current': i, + 'total': total_rows, + 'errors': error_count + }) + + # Validation (Phase 1: Minimal) + row_norm = normalize_row(row) + errors = validate_row_phase_1(row_norm, model_target, i, date_format) + + if errors: + error_count += 1 + # Write simple JSON error + f_err.write(json.dumps(errors) + "\n") + + processed_rows += 1 + + except Exception as e: + logger.error(f"Scan failed: {e}") + return {"status": "failed", "error": str(e)} + + # 4. Result + return { + "status": "waiting_confirmation", + "job_id": job_id, + "total_rows": processed_rows, + "error_count": error_count, + "valid_rows": processed_rows - error_count, + "error_file": error_path + } + +def validate_row_phase_1( + row: Dict[str, Any], + target: str, + line_num: int, + date_format: Optional[str], +) -> Dict[str, Any]: + """ + Minimal validation: Unique IDs and Dates. + Target: 'invoice_header' or 'invoice_details' + """ + errors = {} + + # A. Invoice Header + if target == 'invoice_header': + # 1. Unique ID + if not row.get('NUMERO FACTURA') and not row.get('NUM FACTURA') and not row.get('ID'): + return {"line": line_num, "col": "NUMERO FACTURA", "msg": "Requerido"} + + # 2. Date Format + date_str = row.get('FECHA FACTURA') + if date_str: + if not is_valid_date(date_str, date_format): + expected = display_date_format(date_format) + return { + "line": line_num, + "col": "FECHA FACTURA", + "msg": f"Formato inválido ({expected})", + } + else: + return {"line": line_num, "col": "FECHA FACTURA", "msg": "Requerido"} + + # B. Invoice Details (Parts) + elif target == 'invoice_details': + # 1. Line Number + if not row.get('LINEA'): + return {"line": line_num, "col": "LINEA", "msg": "Requerido"} + + # 2. Parent Link (Invoice Number) + if not (row.get('NUMERO FACTURA') or row.get('NUM FACTURA') or row.get('FACTURA')): + return {"line": line_num, "col": "NUMERO FACTURA", "msg": "Requerido"} + + # 2. Parent Link (Simplified for now, we assume parent exists or is in same batch) + # In a real scenario, we'd check if the invoice exists. + pass + + return errors if errors else None + +def parse_footer_config(config: Optional[str]) -> Dict[str, Any]: + if not config: + return {} + try: + if isinstance(config, str): + return json.loads(config) + if isinstance(config, dict): + return config + except Exception: + return {} + return {} + + +def display_date_format(date_format: Optional[str]) -> str: + if not date_format: + return "YYYY-MM-DD" + return date_format.upper() + + +def parse_date(date_text: Optional[str], date_format: Optional[str]) -> Optional[datetime.date]: + if not date_text: + return None + candidates = [] + fmt_map = { + "dd/mm/yyyy": "%d/%m/%Y", + "mm/dd/yyyy": "%m/%d/%Y", + "yyyy-mm-dd": "%Y-%m-%d", + } + if date_format and date_format in fmt_map: + candidates.append(fmt_map[date_format]) + candidates.extend(["%Y-%m-%d", "%d/%m/%Y", "%m/%d/%Y"]) + for fmt in candidates: + try: + return datetime.strptime(str(date_text).strip(), fmt).date() + except ValueError: + continue + return None + + +def is_valid_date(date_text: Optional[str], date_format: Optional[str]) -> bool: + return parse_date(date_text, date_format) is not None + + +def normalize_header(name: Optional[str]) -> str: + if not name: + return "" + name = unicodedata.normalize("NFKD", str(name)).upper() + name = "".join(ch for ch in name if not unicodedata.combining(ch)) + name = re.sub(r"[^A-Z0-9]+", " ", name) + return re.sub(r"\s+", " ", name).strip() + + +def normalize_row(row: Dict[str, Any]) -> Dict[str, Any]: + return {normalize_header(k): v for k, v in row.items()} + + +def parse_int(value: Any) -> Optional[int]: + if value is None: + return None + text = str(value).strip() + if not text: + return None + try: + return int(text) + except ValueError: + return None + + +def parse_decimal(value: Any) -> Optional[Decimal]: + if value is None: + return None + text = str(value).strip() + if not text: + return None + text = text.replace(",", "") + try: + return Decimal(text) + except Exception: + return None + + +def parse_currency(value: Optional[str], currency_type: Optional[str]): + from api.v1.modules.a76.invoices.models import Currency + if value: + normalized = normalize_header(value) + if normalized in {"MN", "M N", "NACIONAL", "LOCAL", "PESOS", "PESO"}: + return Currency.LOCAL + if normalized in {"ME", "M E", "EXTRANJERA", "EXTRANJERO", "FOREIGN", "USD", "DOLAR", "DOLARES"}: + return Currency.FOREIGN + if "MANUAL" in normalized: + return Currency.MANUAL + if currency_type and str(currency_type).strip().upper() == "MXN": + return Currency.LOCAL + if currency_type: + return Currency.FOREIGN + return Currency.MANUAL + + +def parse_weight_unit(value: Optional[str]): + from api.v1.modules.a76.invoices.models import WeightUnit + if not value: + return None + normalized = normalize_header(value) + if normalized in {"KG", "KGS", "KILOS", "KILOGRAMOS"}: + return WeightUnit.KGS + if normalized in {"LB", "LBS", "LIBRAS"}: + return WeightUnit.LBS + return None + + +def resolve_tenant_fk_id( + session: CoreSessionLocal, + model, + value: Optional[int], + tenant_id: int, + company_id: int, + cache: Dict[int, Optional[int]], +) -> Optional[int]: + if value is None: + return None + if value in cache: + return cache[value] + exists = ( + session.query(model.id) + .filter( + model.id == value, + model.tenant_id == tenant_id, + model.company_id == company_id, + ) + .scalar() + ) + cache[value] = value if exists is not None else None + return cache[value] + + +def resolve_public_code( + session: CoreSessionLocal, + model, + column, + value: Optional[str], + cache: Dict[str, Optional[str]], +) -> Optional[str]: + if not value: + return None + normalized = str(value).strip().upper() + if not normalized: + return None + if normalized in cache: + return cache[normalized] + exists = session.query(column).filter(column == normalized).scalar() + cache[normalized] = normalized if exists is not None else None + return cache[normalized] + +@shared_task(bind=True) +def insert_valid_rows(self, job_id: str, model_target: str): + """ + Pass 2: Re-read CSV, Skip Errors, Bulk Insert. + """ + logger.info(f"Starting Commit for {job_id} target {model_target}") + + try: + from api.v1.modules.a76.invoices.models import ( + InvoiceHeader, + InvoiceComplianceMx, + InvoiceFinancials, + InvoiceLogistics, + InvoiceSalesDetails, + OperationType, + WeightUnit, + ) + from api.v1.modules.a76.clients_and_providers.models import ClientProvider + from api.v1.modules.a76.customs_brokers.models import CustomsBroker + from api.v1.modules.public.reference_data.currency_types.models import CurrencyType + from api.v1.modules.public.reference_data.pedimento_regimens.models import RegimenPedimento + from api.v1.modules.public.reference_data.code_pedimento_regimens.models import CodePedimentoRegimen + from api.v1.modules.public.reference_data.pedimento_codes.models import PedimentoCode + from api.v1.modules.public.reference_data.invoice_types.models import InvoiceType + from api.v1.modules.public.reference_data.customs_sections.models import CustomsSection + + from api.v1.modules.a76.items.models import LineItem + from api.v1.modules.a76.items.line_financials.models import LineFinancial + from api.v1.modules.a76.items.line_quantities.models import LineQuantity + from api.v1.modules.a76.items.line_customs.models import LineCustom + from api.v1.modules.a76.items.line_descriptions.models import LineDescription + from api.v1.modules.a76.parts.models import Part + + upload_dir = os.path.join(os.getcwd(), "uploads", "temp") + file_path = os.path.join(upload_dir, f"{job_id}.csv") + error_path = file_path.replace("temp", "errors").replace(".csv", ".jsonl") + + # 1. Load Error Line Numbers + error_lines = set() + if os.path.exists(error_path): + with open(error_path, 'r', encoding='utf-8') as f: + for line in f: + try: + err = json.loads(line) + error_lines.add(err['line']) + except: pass + + # Load Metadata (Context) + meta_path = file_path.replace("temp", "temp").replace(".csv", ".meta.json") + tenant_id = None + company_id = None + footer_config = {} + + if os.path.exists(meta_path): + try: + with open(meta_path, 'r') as f: + meta = json.load(f) + tenant_id = meta.get('tenant_id') + company_id = meta.get('company_id') + operation_type_raw = meta.get('operation_type', 'imp') + footer_config = parse_footer_config(meta.get('footer_config')) + except: pass + + if not tenant_id or not company_id: + return {"status": "failed", "error": "Missing context (tenant/company)"} + + # 2. Re-read and Map + # Initialize counters outside the session block so they're accessible later + headers_to_insert = [] + details_to_insert = [] + skipped_invalid = 0 + skipped_missing_invoice = 0 + skipped_missing_fk = 0 + skipped_fk_details = [] + inserted_count = 0 + response = None # Will be set inside the session block + + date_format = footer_config.get("dateFormat") + + # Validate and set default date_format if not provided + if not date_format: + date_format = "yyyy-mm-dd" # Default to ISO format + logger.info(f"No date_format specified in config, using default: {date_format}") + else: + logger.info(f"Using date_format from config: {date_format}") + + # Default types from config or fallback + op_type_value = OperationType(meta.get('operation_type', 'imp').lower()) + inv_type_value = footer_config.get('invoice_type', 'TEM') + + logger.info(f"Processing CSV with operation_type={op_type_value}, invoice_type={inv_type_value}, date_format={date_format}") + + with CoreSessionLocal() as session: + invoice_id_cache = {} + cleared_invoices = set() # Track invoices where we've already cleared items in this job + provider_cache: Dict[int, Optional[int]] = {} + sold_to_cache: Dict[int, Optional[int]] = {} + shipped_to_cache: Dict[int, Optional[int]] = {} + broker_cache: Dict[int, Optional[int]] = {} + regimen_cache: Dict[str, Optional[str]] = {} + currency_type_cache: Dict[str, Optional[str]] = {} + customs_section_cache: Dict[str, Optional[str]] = {} + part_cache: Dict[str, Optional[int]] = {} + + validator = ForeignKeyValidator(session, tenant_id, company_id) + + with open(file_path, 'r', encoding='utf-8-sig') as f: + # Detect Delimiter + sample = f.read(2048) + f.seek(0) + try: + dialect = csv.Sniffer().sniff(sample, delimiters=",;\t") + except: + dialect = 'excel' + + reader = csv.DictReader(f, dialect=dialect) + + for i, row in enumerate(reader, start=1): + if i in error_lines: + continue + + row_norm = normalize_row(row) + + # Mapping Logic + if model_target == 'invoice_header': + invoice_number = (row_norm.get('NUMERO FACTURA') or row_norm.get('NUM FACTURA') or row_norm.get('FACTURA') or '').strip() + invoice_date = parse_date(row_norm.get('FECHA FACTURA') or row_norm.get('FECHA'), date_format) + + if not invoice_number or not invoice_date: + skipped_invalid += 1 + logger.debug(f"Row {i}: Skipped - missing invoice_number or invalid invoice_date. " + f"Invoice: {invoice_number}, Date: {row_norm.get('FECHA FACTURA') or row_norm.get('FECHA')}") + continue + + # --- NEW: Foreign Key Validations --- + # 1. Invoice Type (Public) + if not validator.check_exists(InvoiceType, inv_type_value, field_name="key", is_public=True): + skipped_missing_fk += 1 + reason = f"Tipo de factura '{inv_type_value}' no existe" + skipped_fk_details.append({"line": i, "invoice": invoice_number, "reason": reason}) + logger.warning(f"Row {i} (Invoice {invoice_number}): {reason}") + continue + + # 2. Client/Provider (Tenant) + provider_id = parse_int(row_norm.get('CLAVE PROVEEDOR')) + if provider_id and not validator.check_exists(ClientProvider, provider_id): + skipped_missing_fk += 1 + reason = f"Proveedor ID '{provider_id}' no existe" + skipped_fk_details.append({"line": i, "invoice": invoice_number, "reason": reason}) + logger.warning(f"Row {i} (Invoice {invoice_number}): {reason}") + continue + + # 3. Customs Broker (Tenant) + broker_id = parse_int(row_norm.get('AGENTE ADUANAL')) + if broker_id and not validator.check_exists(CustomsBroker, broker_id): + skipped_missing_fk += 1 + reason = f"Agente Aduanal ID '{broker_id}' no existe" + skipped_fk_details.append({"line": i, "invoice": invoice_number, "reason": reason}) + logger.warning(f"Row {i} (Invoice {invoice_number}): {reason}") + continue + + # --- 4. Check for Existing Invoice (Upsert Logic) --- + existing_header = None + if invoice_number: + existing_header = ( + session.query(InvoiceHeader) + .filter( + InvoiceHeader.tenant_id == tenant_id, + InvoiceHeader.company_id == company_id, + InvoiceHeader.invoice_number == invoice_number, + InvoiceHeader.invoice_type == inv_type_value + ) + .first() + ) + + if existing_header: + # UPDATE existing header + header = existing_header + header.invoice_date = invoice_date + header.operation_type = op_type_value + header.is_updated = True # Mark as updated + header.updated_date = datetime.utcnow() + header.document_type = resolve_public_code( + session, + RegimenPedimento, + RegimenPedimento.code, + (row_norm.get('REGIMEN') or row_norm.get('CLAVEDOCUMENTO')), + regimen_cache, + ) + header.project_number = (row_norm.get('NUM PROYECTO') or row_norm.get('NUMPROYECTO') or None) + header.purchase_order = (row_norm.get('ORDEN COMPRA') or row_norm.get('ORDENCOMPRA') or None) + header.alternate_invoice = (row_norm.get('FACTURA ALTERNA') or None) + header.invoice_ref = (row_norm.get('FACTURA EXPO REF') or row_norm.get('FACTURAEXPOREF') or None) + header.emission_date = parse_date(row_norm.get('FECHA EMISION'), date_format) + header.observation_es = (row_norm.get('OBSERVACIONES E') or None) + header.observation_en = (row_norm.get('OBSERVACIONES I') or None) + + logger.info(f"Row {i}: Updating existing invoice {invoice_number}") + + # Clean up related data that will be re-inserted/updated + # Note: compliance, financials, logistics are 1-to-1 relationships and will be updated by assignment below + # but we might want to be explicit if ORM doesn't handle replace well. + # SQLAlchemy relationship assignment usually handles 1-to-1 updates correctly. + + else: + # CREATE new header + header = InvoiceHeader( + invoice_number=invoice_number, + invoice_date=invoice_date, + operation_type=op_type_value, + is_updated=False, + system="CSV", + capture_date=datetime.utcnow(), + invoice_type=inv_type_value, + document_type=resolve_public_code( + session, + RegimenPedimento, + RegimenPedimento.code, + (row_norm.get('REGIMEN') or row_norm.get('CLAVEDOCUMENTO')), + regimen_cache, + ), + project_number=(row_norm.get('NUM PROYECTO') or row_norm.get('NUMPROYECTO') or None), + purchase_order=(row_norm.get('ORDEN COMPRA') or row_norm.get('ORDENCOMPRA') or None), + alternate_invoice=(row_norm.get('FACTURA ALTERNA') or None), + invoice_ref=(row_norm.get('FACTURA EXPO REF') or row_norm.get('FACTURAEXPOREF') or None), + emission_date=parse_date(row_norm.get('FECHA EMISION'), date_format), + observation_es=(row_norm.get('OBSERVACIONES E') or None), + observation_en=(row_norm.get('OBSERVACIONES I') or None), + tenant_id=tenant_id, + company_id=company_id, + ) + + compliance = InvoiceComplianceMx( + remesa=parse_int(row_norm.get('REMESA')), + aduana=resolve_public_code( + session, + CustomsSection, + CustomsSection.customs_code, + row_norm.get('ADUANA DE CRUCE'), + customs_section_cache, + ), + provider_id=resolve_tenant_fk_id( + session, + ClientProvider, + parse_int(row_norm.get('CLAVE PROVEEDOR')), + tenant_id, + company_id, + provider_cache, + ), + sold_to_id=resolve_tenant_fk_id( + session, + ClientProvider, + parse_int(row_norm.get('CLAVE VENDIDO A')), + tenant_id, + company_id, + sold_to_cache, + ), + shipped_to_id=resolve_tenant_fk_id( + session, + ClientProvider, + parse_int(row_norm.get('CLAVE ENVIADO A')), + tenant_id, + company_id, + shipped_to_cache, + ), + customs_broker_id=resolve_tenant_fk_id( + session, + CustomsBroker, + parse_int(row_norm.get('AGENTE ADUANAL')), + tenant_id, + company_id, + broker_cache, + ), + edocument=(row_norm.get('E DOCUMENT') or None), + vucem_operation_num=(row_norm.get('NUM OPERACION') or None), + tenant_id=tenant_id, + company_id=company_id, + ) + + financials_currency_type = resolve_public_code( + session, + CurrencyType, + CurrencyType.code, + row_norm.get('CLAVE MONEDA'), + currency_type_cache, + ) + financials = InvoiceFinancials( + currency=parse_currency(row_norm.get('TIPO MONEDA'), financials_currency_type), + currency_type=financials_currency_type, + exchange_rate=parse_decimal(row_norm.get('TIPO DE CAMBIO')), + freight=parse_decimal(row_norm.get('FLETES')), + insurance_value=parse_decimal(row_norm.get('VALOR SEGUROS')), + insurance=parse_decimal(row_norm.get('SEGUROS')), + packaging=parse_decimal(row_norm.get('EMBALAJES')), + other_increments=parse_decimal(row_norm.get('OTROS INCREMENTABLES')), + tenant_id=tenant_id, + company_id=company_id, + ) + + weight_type = parse_weight_unit(row_norm.get('TIPO PESO')) + logistics = None + if weight_type or row_norm.get('TIPO TRANSPORTE') or row_norm.get('NUMERO TRANSPORTE'): + logistics = InvoiceLogistics( + carrier_id=(row_norm.get('CLAVE TRANSPORTISTA') or None), + driver_name=(row_norm.get('NOMBRE CONDUCTOR') or None), + transport_type=str(row_norm.get('TIPO TRANSPORTE') or "none").lower(), + transport_num=(row_norm.get('NUMERO TRANSPORTE') or None), + weight_type=weight_type or WeightUnit.KGS, + seal_number=(row_norm.get('PRECINTO') or None), + incoterm=(row_norm.get('CLAVE INCOTERM') or None), + entry_exit_date=parse_date(row_norm.get('FECHA EMISION'), date_format), + tenant_id=tenant_id, + company_id=company_id, + ) + + header.compliance_mx = compliance + header.financials = financials + if logistics: + header.logistics = logistics + + headers_to_insert.append(header) + + elif model_target == 'invoice_details': + invoice_number = (row_norm.get('NUMERO FACTURA') or row_norm.get('NUM FACTURA') or '').strip() + if not invoice_number: + skipped_invalid += 1 + continue + + if invoice_number in invoice_id_cache: + invoice_id = invoice_id_cache[invoice_number] + else: + invoice_id = ( + session.query(InvoiceHeader.id) + .filter( + InvoiceHeader.tenant_id == tenant_id, + InvoiceHeader.company_id == company_id, + InvoiceHeader.invoice_number == invoice_number, + ) + .scalar() + ) + invoice_id_cache[invoice_number] = invoice_id + + if not invoice_id: + logger.warning( + "Invoice not found for details row %s (invoice_number=%s)", + i, + invoice_number, + ) + skipped_missing_invoice += 1 + continue + + # --- Prevent Duplicates: Clear existing items for this invoice (Once per job) --- + if invoice_id not in cleared_invoices: + logger.info(f"Clearing existing details for Invoice {invoice_number} (ID: {invoice_id}) to prevent duplicates") + + # 1. Delete Items (Cascades to LineItem, LineFinancial, etc. if DB configured, check models) + # Checking Item model, we usually need to be careful. + # Assuming Cascade delete is set up on FKs or we rely on ORM cascade if using relationships. + # Here we use bulk delete. + session.query(Item).filter(Item.invoice_id == invoice_id).delete(synchronize_session=False) + + # 2. Delete InvoiceSalesDetails + session.query(InvoiceSalesDetails).filter(InvoiceSalesDetails.invoice_id == invoice_id).delete(synchronize_session=False) + + cleared_invoices.add(invoice_id) + + # --- NEW LOGIC: Expanded Anexo 76 Structure --- + + # A. Find/Cache Part + part_num = (row_norm.get('NUMPARTE') or row_norm.get('NUMERO PARTE') or '').strip() + part_id = None + if part_num: + part_id = part_cache.get(part_num) + if part_id is None: + p = session.query(Part.id).filter( + Part.part_number == part_num, + Part.tenant_id == tenant_id, + Part.company_id == company_id + ).first() + if p: + part_id = p.id + part_cache[part_num] = part_id + + line_num_val = (row_norm.get('LINEA') or row_norm.get('RENGLON') or row_norm.get('PARTIDA')) + line_num = parse_int(line_num_val) or (len(details_to_insert) + 1) + + # 1. Parent Item + item = Item( + invoice_id=invoice_id, + tenant_id=tenant_id, + company_id=company_id, + item_type="N", # Default to Normal + system_origin="CSV" + ) + session.add(item) + session.flush() # Need item.id + + # 2. Main Line + line = LineItem( + item_id=item.id, + line_number=line_num, + part_number=part_id, + tenant_id=tenant_id, + company_id=company_id + ) + session.add(line) + session.flush() # Need line.id + + # 3. Financial Data + price = parse_decimal(row_norm.get('PRECIO UNITARIO') or row_norm.get('PRECIOUNITARIO')) + val_com = parse_decimal(row_norm.get('VALOR COMERCIAL') or row_norm.get('VALORCOMERCIAL')) + qty = parse_decimal(row_norm.get('CANTIDAD')) + + session.add(LineFinancial( + item_line_id=line.id, + unit_price=price, + commercial_value=val_com or (price * qty if price and qty else None), + )) + + # 4. Quantities + if qty: + session.add(LineQuantity( + item_line_id=line.id, + quantity=qty, + )) + + # 5. Customs/Fraction + origin = row_norm.get('PAIS ORIGEN') or row_norm.get('PAISORIGEN') + fraction = row_norm.get('FRACCION') + if origin or fraction: + session.add(LineCustom( + item_line_id=line.id, + fraction=fraction, + origin_country=origin, + )) + + # 6. Description + desc = row_norm.get('DESCRIPCION') + if desc: + session.add(LineDescription( + item_line_id=line.id, + description_spanish=desc, + )) + + # 7. Legacy Sales Details (For specific audit/UI fields) + detail = InvoiceSalesDetails( + invoice_id=invoice_id, + line_number=line_num, + sales_order=(row_norm.get('ORDEN DE COMPRA') or row_norm.get('ORDENCOMPRA') or None), + line_bundles=parse_int(row_norm.get('CANTIDAD BULTOS') or row_norm.get('CANTIDADBULTOS')), + tenant_id=tenant_id, + company_id=company_id, + ) + session.add(detail) + details_to_insert.append(item) # Use as counter/ref + + # 3. Bulk Insert (ORM Transaction) + try: + if model_target == 'invoice_header': + if headers_to_insert: + logger.info(f"Attempting to commit {len(headers_to_insert)} headers") + session.add_all(headers_to_insert) + session.commit() + inserted_count = len(headers_to_insert) + logger.info(f"Headers commit successful. Inserted: {inserted_count}") + else: + logger.warning(f"No headers to insert for job {job_id}") + else: + if details_to_insert: + logger.info(f"Attempting to commit {len(details_to_insert)} items and related data") + session.commit() # Everything was already added with session.add() + inserted_count = len(details_to_insert) + logger.info(f"Details commit successful. Inserted: {inserted_count}") + else: + logger.warning(f"No details to insert for job {job_id}") + + except Exception as db_err: + session.rollback() + logger.error(f"DB Error during {model_target} commit: {db_err}") + import traceback + logger.error(traceback.format_exc()) + return {"status": "failed", "error": str(db_err)} + + # 4. Determine final status and prepare response (inside session block to access variables) + total_skipped = skipped_invalid + skipped_missing_fk + skipped_missing_invoice + + # Log summary + logger.info(f"Job {job_id} completed. Inserted: {inserted_count}, Skipped: {total_skipped} " + f"(invalid: {skipped_invalid}, missing_fk: {skipped_missing_fk}, missing_invoice: {skipped_missing_invoice})") + + # Prepare response based on results + if inserted_count == 0: + if total_skipped > 0: + logger.warning(f"No valid records to insert for job {job_id}. All {total_skipped} records were rejected.") + response = { + "status": "warning", + "inserted": 0, + "skipped_invalid": skipped_invalid, + "skipped_missing_invoice": skipped_missing_invoice, + "skipped_missing_fk": skipped_missing_fk, + "skipped_details": skipped_fk_details, + "message": f"No se insertaron registros. {total_skipped} fueron rechazados." + } + else: + logger.error(f"No valid records found in CSV for job {job_id}") + response = { + "status": "failed", + "error": "No hay registros válidos en el archivo CSV", + "inserted": 0, + "skipped_invalid": skipped_invalid, + "skipped_missing_invoice": skipped_missing_invoice, + "skipped_missing_fk": skipped_missing_fk, + "skipped_details": skipped_fk_details + } + else: + # Success case - at least some records were inserted + response = { + "status": "finished", + "inserted": inserted_count, + "skipped_invalid": skipped_invalid, + "skipped_missing_invoice": skipped_missing_invoice, + "skipped_missing_fk": skipped_missing_fk, + "skipped_details": skipped_fk_details + } + + except Exception as e: + logger.error(f"Task failed: {e}") + import traceback + logger.error(traceback.format_exc()) + return {"status": "failed", "error": str(e)} + + # 5. Cleanup + try: + if os.path.exists(file_path): + os.remove(file_path) + if os.path.exists(error_path): + os.remove(error_path) + except: + logger.warning("Failed to cleanup temp files") + + # Ensure response is defined (fallback in case of unexpected errors) + if response is None: + logger.error(f"Unexpected error: response not set for job {job_id}") + response = { + "status": "failed", + "error": "Error inesperado durante el procesamiento", + "inserted": 0, + "skipped_invalid": skipped_invalid, + "skipped_missing_invoice": skipped_missing_invoice, + "skipped_missing_fk": skipped_missing_fk, + "skipped_details": skipped_fk_details + } + + return response diff --git a/backend/api/v1/modules/a76/invoice_settings/dto.py b/backend/api/v1/modules/a76/invoice_settings/dto.py index 07c954a8..d330bf29 100644 --- a/backend/api/v1/modules/a76/invoice_settings/dto.py +++ b/backend/api/v1/modules/a76/invoice_settings/dto.py @@ -2,13 +2,7 @@ from typing import Any, Dict, Optional from pydantic import BaseModel, ConfigDict from enum import Enum -class OperationType(str, Enum): - IMP = "imp" # Importación - EXP = "exp" # Exportación - SM_IN = "sm_in" # Entrada SM - SM_OUT = "sm_out" # Salida SM - CTM_SEND = "ctm_send" # Envío CTM - CTM_RECEIVE = "ctm_receive" # Recibo CTM +from .models import OperationType class InvoiceSettingsBase(BaseModel): invoice_type: str diff --git a/backend/api/v1/modules/a76/invoice_settings/routes.py b/backend/api/v1/modules/a76/invoice_settings/routes.py index 07e37459..9a6f83c3 100644 --- a/backend/api/v1/modules/a76/invoice_settings/routes.py +++ b/backend/api/v1/modules/a76/invoice_settings/routes.py @@ -40,8 +40,7 @@ def get_invoice_settings( tenant_id=tenant_id, company_id=company_id ) - - return settings + return InvoiceSettingsResponse.model_validate(settings) @router.get("/", response_model=List[InvoiceSettingsResponse]) def list_invoice_settings( diff --git a/backend/api/v1/modules/a76/invoice_settings/services.py b/backend/api/v1/modules/a76/invoice_settings/services.py index 3499a700..996fcac7 100644 --- a/backend/api/v1/modules/a76/invoice_settings/services.py +++ b/backend/api/v1/modules/a76/invoice_settings/services.py @@ -17,7 +17,7 @@ def get_settings( InvoiceSettings.tenant_id == tenant_id, InvoiceSettings.company_id == company_id, InvoiceSettings.invoice_type == invoice_type, - InvoiceSettings.operation_type == operation_type + InvoiceSettings.operation_type == operation_type.value ) return db.execute(stmt).scalar_one_or_none() @@ -60,7 +60,7 @@ def upsert_settings( tenant_id=tenant_id, company_id=company_id, invoice_type=settings_data.invoice_type, - operation_type=settings_data.operation_type, + operation_type=settings_data.operation_type.value, settings=settings_data.settings ) diff --git a/backend/api/v1/modules/a76/invoices/catalog_service.py b/backend/api/v1/modules/a76/invoices/catalog_service.py new file mode 100644 index 00000000..9ad64b0b --- /dev/null +++ b/backend/api/v1/modules/a76/invoices/catalog_service.py @@ -0,0 +1,217 @@ + +from typing import Dict, Any, List, Optional +from sqlalchemy.orm import Session + +# Import Reference Data Models +from api.v1.modules.public.reference_data.invoice_types.models import InvoiceType +from api.v1.modules.public.reference_data.currency_types.models import CurrencyType +from api.v1.modules.public.reference_data.transport_types.models import TransportType +from api.v1.modules.public.reference_data.customs_sections.models import CustomsSection +from api.v1.modules.public.reference_data.code_pedimento_regimens.models import CodePedimentoRegimen +from api.v1.modules.public.reference_data.incoterms.models import Incoterm +from api.v1.modules.public.reference_data.transport_modes.models import TransportMode + +# Import A76 Services +from api.v1.modules.a76.customs_brokers.services import CustomsBrokerService +from api.v1.modules.a76.clients_and_providers.service import ClientProviderService +from api.v1.modules.a76.transportation.transporters.services import TransporterService +from api.v1.modules.a76.transportation.vehicles.services import VehicleService +from api.v1.modules.a76.transportation.drivers.services import DriverService +from api.v1.modules.a76.transportation.trailers.services import TrailerService +from api.v1.modules.a76.general_catalogs.seal.services import SealService +from api.v1.modules.a76.pedmientos.services.pedimentos import PedimentosService + +# Import DTOs for mapping +from api.v1.modules.public.reference_data.invoice_types.dto import InvoiceTypeDTO +from api.v1.modules.a76.customs_brokers.dto import CustomsBrokerResponseDTO +from api.v1.modules.a76.clients_and_providers.dto import ClientProviderResponseDTO +from api.v1.modules.public.reference_data.currency_types.dto import CurrencyTypeDTO +from api.v1.modules.public.reference_data.transport_types.dto import TransportTypeDTO +from api.v1.modules.public.reference_data.customs_sections.dto import CustomsSectionDTO +from api.v1.modules.public.reference_data.code_pedimento_regimens.dto import CodePedimentoRegimenDTO +from api.v1.modules.public.reference_data.incoterms.dto import IncotermDTO +from api.v1.modules.public.reference_data.transport_modes.dto import TransportModeDTO + +# Additional DTOs +from api.v1.modules.a76.transportation.transporters.dto import TransporterResponseDTO +from api.v1.modules.a76.transportation.vehicles.dto import VehicleResponseDTO +from api.v1.modules.a76.transportation.drivers.dto import DriverResponseDTO +from api.v1.modules.a76.transportation.trailers.dto import TrailerResponseDTO +from api.v1.modules.a76.general_catalogs.seal.dto import SealResponseDTO +from api.v1.modules.a76.pedmientos.dtos.pedimentos import PedimentosResponse + +from .schemas import InvoiceCatalogsResponse, InvoiceCreationResponse, InvoiceEditionResponse + +class InvoiceCatalogService: + """Service to fetch consolidated catalogs for Invoice views""" + + @staticmethod + def get_catalogs(db: Session, tenant_id: int, company_id: int) -> InvoiceCatalogsResponse: + """Fetch all catalogs""" + + response = InvoiceCatalogsResponse() + + # Helper to fetch reference data (no company_id needed) + def fetch_ref_data(): + response.invoice_types = [ + InvoiceTypeDTO.model_validate(obj) for obj in db.query(InvoiceType).all() + ] + response.currency_types = [ + CurrencyTypeDTO.model_validate(obj) for obj in db.query(CurrencyType).all() + ] + response.transport_types = [ + TransportTypeDTO.model_validate(obj) for obj in db.query(TransportType).all() + ] + response.customs_sections = [ + CustomsSectionDTO.model_validate(obj) for obj in db.query(CustomsSection).all() + ] + response.code_pedimento_regimens = [ + CodePedimentoRegimenDTO.model_validate(obj) for obj in db.query(CodePedimentoRegimen).all() + ] + response.incoterms = [ + IncotermDTO.model_validate(obj) for obj in db.query(Incoterm).all() + ] + response.transport_modes = [ + TransportModeDTO.model_validate(obj) for obj in db.query(TransportMode).all() + ] + + # Helper to fetch tenant/company specific data + def fetch_tenant_data(): + # Customs Brokers + try: + brokers, _ = CustomsBrokerService.get_all(db, tenant_id, company_id, limit=1000) + response.customs_brokers = [ + CustomsBrokerResponseDTO.model_validate(obj) for obj in brokers + ] + except Exception as e: + print(f"Error fetching customs brokers: {e}") + + # Clients and Providers + try: + # Fetch all clients/providers + # Note: get_all returns list[ClientProvider] + all_cps, _ = ClientProviderService.get_all( + db, tenant_id, company_id, limit=2000 + ) + + # Helper to safely check client type (handles string or Enum) + def is_type(obj, types): + val = obj.client_or_provider + # If it's an enum, get its value, otherwise use as string + val_str = val.value if hasattr(val, 'value') else str(val) + return val_str in types + + response.clients = [ + ClientProviderResponseDTO.model_validate(obj) for obj in all_cps + if is_type(obj, ['client', 'both']) + ] + response.providers = [ + ClientProviderResponseDTO.model_validate(obj) for obj in all_cps + if is_type(obj, ['provider', 'both']) + ] + except Exception as e: + print(f"Error fetching clients/providers: {e}") + + + + # Transporters + try: + transporters, _ = TransporterService.get_all(db, tenant_id, company_id, limit=1000) + response.transporters = [ + TransporterResponseDTO.model_validate(t) for t in transporters + ] + except Exception as e: + print(f"Error fetching transporters: {e}") + + # Vehicles + try: + vehicles, _ = VehicleService.get_all(db, tenant_id, company_id, limit=1000) + response.vehicles = [ + VehicleResponseDTO.model_validate(v) for v in vehicles + ] + except Exception as e: + print(f"Error fetching vehicles: {e}") + + # Drivers + try: + drivers, _ = DriverService.get_all(db, tenant_id, company_id, limit=1000) + response.drivers = [ + DriverResponseDTO.model_validate(d) for d in drivers + ] + except Exception as e: + print(f"Error fetching drivers: {e}") + + # Trailers + try: + trailers, _ = TrailerService.get_all(db, tenant_id, company_id, limit=1000) + response.trailers = [ + TrailerResponseDTO.model_validate(t) for t in trailers + ] + except Exception as e: + print(f"Error fetching trailers: {e}") + + # Seals + try: + seals, _ = SealService.get_all(db, tenant_id, company_id, limit=1000) + response.seals = [ + SealResponseDTO.model_validate(s) for s in seals + ] + except Exception as e: + print(f"Error fetching seals: {e}") + + # Pedimentos + try: + # Fetch recent pedimentos (e.g. last 100) or filtered if necessary + pedimentos, _ = PedimentosService.get_all(db, tenant_id, company_id, limit=100) + response.pedimentos = [ + # Use dict for now if PedimentosResponse fails due to complexity or just map fields manually if needed + # But PedimentosResponse has from_attributes=True + # Note: PedimentosResponse structure is complex with nested relations. + # If Pedimentos model is fully loaded (eager load in service), this should work. + # However, to be safe against recursion or huge payload, we might want a lighter DTO. + # Re-using PedimentosResponse for now but be cautious of payload size. + PedimentosResponse.model_validate(p) for p in pedimentos + ] + except Exception as e: + print(f"Error fetching pedimentos: {e}") + + try: + fetch_ref_data() + fetch_tenant_data() + except Exception as e: + print(f"Error fetching catalogs: {e}") + # In production, we might want to log this properly and potentially return partial data + # For now, re-raising might be safer to debug, but for resiliency we could suppress. + # Let's log and re-raise to ensure frontend knows something went wrong during dev. + import traceback + traceback.print_exc() + raise e + + return response + + @staticmethod + def get_creation_data(db: Session, tenant_id: int, company_id: int) -> InvoiceCreationResponse: + catalogs = InvoiceCatalogService.get_catalogs(db, tenant_id, company_id) + return InvoiceCreationResponse( + **catalogs.model_dump(), + is_create=True, + filters={} + ) + + @staticmethod + def get_edition_data(db: Session, invoice_id: int, tenant_id: int, company_id: int) -> Optional[InvoiceEditionResponse]: + catalogs = InvoiceCatalogService.get_catalogs(db, tenant_id, company_id) + + from .services import InvoiceService + invoice = InvoiceService.get_by_id(db, invoice_id, tenant_id, company_id) + + if not invoice: + return None + + return InvoiceEditionResponse( + **catalogs.model_dump(), + is_create=False, + invoice=invoice, + invoice_id=invoice_id, + filters={} + ) diff --git a/backend/api/v1/modules/a76/invoices/common/common_validators.py b/backend/api/v1/modules/a76/invoices/common/common_validators.py index d0c0bbf8..72a5abdf 100644 --- a/backend/api/v1/modules/a76/invoices/common/common_validators.py +++ b/backend/api/v1/modules/a76/invoices/common/common_validators.py @@ -1,3 +1,4 @@ +from typing import Optional from core.exceptions import ErrorCollector from .. import models from sqlalchemy.orm import Session @@ -8,21 +9,80 @@ def invoice_exists( invoice_number: str, tenant_id: int, company_id: int, - errors: ErrorCollector -) -> bool: - invoice_exists = ( - db.query(models.InvoiceHeader.id) + errors: Optional[ErrorCollector], +): + invoice = ( + db.query(models.InvoiceHeader) .filter( models.InvoiceHeader.invoice_number == invoice_number, models.InvoiceHeader.tenant_id == tenant_id, models.InvoiceHeader.company_id == company_id, ) - .first() + .first() ) - - if invoice_exists: - errors.add_duplicate_error( + + if invoice: + if errors: + errors.add_duplicate_error( "invoice_number", invoice_number, f"Ya existe una factura con el número '{invoice_number}'", - ) \ No newline at end of file + ) + return invoice + return None + +def invoice_exists_by_id( + db: Session, + invoice_id: str, + tenant_id: int, + company_id: int, + errors: Optional[ErrorCollector], +): + invoice = ( + db.query(models.InvoiceHeader) + .filter( + models.InvoiceHeader.id == invoice_id, + models.InvoiceHeader.tenant_id == tenant_id, + models.InvoiceHeader.company_id == company_id, + ) + .first() + ) + + if invoice: + if errors: + errors.add_duplicate_error( + "invoice_id", + invoice_id, + f"Ya existe una factura con el número '{invoice_id}'", + ) + return invoice + return None + + +def invoice_updated( + db: Session, + invoice_id: str, + tenant_id: int, + company_id: int, + errors: ErrorCollector, +) -> bool: + is_updated = ( + db.query(models.InvoiceHeader.is_updated) + .filter( + models.InvoiceHeader.id == invoice_id, + models.InvoiceHeader.tenant_id == tenant_id, + models.InvoiceHeader.company_id == company_id, + ) + .scalar() + ) + + if is_updated: + errors.add_error( + field="invoice_number", + message=f"La factura con el número '{invoice_id}' ya ha sido actualizada y no se puede modificar.", + solution="Capturar otro número de Factura de Importación Temporal o Desactualizar la factura.", + code="INVOICE_UPDATED", + value=invoice_id, + ) + return True + return False diff --git a/backend/api/v1/modules/a76/invoices/imports/temporary/validators/common.py b/backend/api/v1/modules/a76/invoices/imports/temporary/validators/common.py index 90386af6..a690343d 100644 --- a/backend/api/v1/modules/a76/invoices/imports/temporary/validators/common.py +++ b/backend/api/v1/modules/a76/invoices/imports/temporary/validators/common.py @@ -7,7 +7,7 @@ from api.v1.modules.a76.clients_and_providers.models import ClientProvider from api.v1.modules.a76.customs_brokers.models import CustomsBroker from api.v1.modules.public.reference_data.incoterms.models import Incoterm from ....models import InvoiceComplianceMx -from api.v1.modules.a76.items.models import Item +from api.v1.modules.a76.items.models import LineItem from api.v1.modules.public.reference_data.currency_types.models import CurrencyType from api.v1.modules.public.reference_data.customs_sections.models import CustomsSection from ....models import TransportType, Currency, WeightUnit @@ -435,11 +435,11 @@ def validate_common( # Only check for existing items during update operations (when invoice has an id) if hasattr(invoice, "id"): has_items = ( - db.query(Item) + db.query(LineItem) .filter( - Item.invoice_id == invoice.id, - Item.tenant_id == tenant_id, - Item.company_id == company_id, + LineItem.invoice_id == invoice.id, + LineItem.tenant_id == tenant_id, + LineItem.company_id == company_id, ) .first() ) diff --git a/backend/api/v1/modules/a76/invoices/imports/temporary/validators/update.py b/backend/api/v1/modules/a76/invoices/imports/temporary/validators/update.py index 97ee1843..9c254a9b 100644 --- a/backend/api/v1/modules/a76/invoices/imports/temporary/validators/update.py +++ b/backend/api/v1/modules/a76/invoices/imports/temporary/validators/update.py @@ -58,13 +58,13 @@ def validate_update( # Columna A: Pedimento (si no viene en CSV, usar el existente) if invoice_data.compliance_mx.pedimento_id: - invoice_data.compliance_mx.pedimento_id = clean_str(invoice_data.compliance_mx.pedimento_id) + invoice_data.compliance_mx.pedimento_id = invoice_data.compliance_mx.pedimento_id else: invoice_data.compliance_mx.pedimento_id = existing_invoice.compliance_mx.pedimento_id if existing_invoice.compliance_mx else None # Columna B: Remesa if invoice_data.compliance_mx.remesa: - invoice_data.compliance_mx.remesa = clean_str(invoice_data.compliance_mx.remesa) + invoice_data.compliance_mx.remesa = invoice_data.compliance_mx.remesa else: invoice_data.compliance_mx.remesa = existing_invoice.compliance_mx.remesa if existing_invoice.compliance_mx else None diff --git a/backend/api/v1/modules/a76/invoices/routes.py b/backend/api/v1/modules/a76/invoices/routes.py index 05bd8d89..bf95bf9f 100644 --- a/backend/api/v1/modules/a76/invoices/routes.py +++ b/backend/api/v1/modules/a76/invoices/routes.py @@ -6,10 +6,36 @@ from fastapi import APIRouter, Depends, HTTPException, Query, Path from sqlalchemy.orm import Session from . import schemas, services +from .catalog_service import InvoiceCatalogService # Create main router router = APIRouter() +@router.get("/invoices/creation-data", response_model=schemas.InvoiceCreationResponse) +def get_creation_data( + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + """Get consolidated data for creating a new invoice""" + tenant_id = validate_access_to_resource(db, company_id, current_user) + return InvoiceCatalogService.get_creation_data(db, tenant_id, company_id) + +@router.get("/invoices/{invoice_id}/edition-data", response_model=schemas.InvoiceEditionResponse) +def get_edition_data( + invoice_id: int, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + """Get consolidated data for editing an existing invoice""" + tenant_id = validate_access_to_resource(db, company_id, current_user) + data = InvoiceCatalogService.get_edition_data(db, invoice_id, tenant_id, company_id) + if not data: + raise HTTPException(status_code=404, detail="Invoice not found") + return data + + # Create CRUD routes for Invoice Header using TenantCRUDRoutes invoice_crud = TenantCRUDRoutes( service=services.InvoiceService, diff --git a/backend/api/v1/modules/a76/invoices/schemas.py b/backend/api/v1/modules/a76/invoices/schemas.py index 1ac300c9..c658e9ae 100644 --- a/backend/api/v1/modules/a76/invoices/schemas.py +++ b/backend/api/v1/modules/a76/invoices/schemas.py @@ -568,4 +568,61 @@ class InvoiceHeaderListResponse(BaseModel): items: List[InvoiceHeaderResponse] total: int page: int - page_size: int + +# --- Consolidated Response Schemas --- + +# Import necessary DTOs from other modules +from api.v1.modules.public.reference_data.invoice_types.dto import InvoiceTypeDTO +from api.v1.modules.a76.customs_brokers.dto import CustomsBrokerResponseDTO +from api.v1.modules.a76.clients_and_providers.dto import ClientProviderResponseDTO +from api.v1.modules.public.reference_data.currency_types.dto import CurrencyTypeDTO +from api.v1.modules.public.reference_data.transport_types.dto import TransportTypeDTO +from api.v1.modules.public.reference_data.customs_sections.dto import CustomsSectionDTO +from api.v1.modules.public.reference_data.incoterms.dto import IncotermDTO +from api.v1.modules.public.reference_data.transport_modes.dto import TransportModeDTO +from api.v1.modules.public.reference_data.code_pedimento_regimens.dto import CodePedimentoRegimenDTO + +# TODO: Check if these paths are correct or need adjustment based on actual file locations +# Using Any for now for potentially complex or unverified paths to avoid immediate ImportErrors +# Detailed verification is needed for: +# - TransporterDTO +# - VehicleDTO +# - DriverDTO +# - TrailerDTO +# - SealResponseDTO +# - PedimentoDTO + +class InvoiceCatalogsResponse(BaseModel): + """Consolidated response for all catalogs needed in Invoice Create/Edit views""" + invoice_types: List[InvoiceTypeDTO] = [] + customs_brokers: List[CustomsBrokerResponseDTO] = [] + clients: List[ClientProviderResponseDTO] = [] + providers: List[ClientProviderResponseDTO] = [] + currency_types: List[CurrencyTypeDTO] = [] + transport_types: List[TransportTypeDTO] = [] + transporters: List[dict] = [] # Placeholder, refine with actual DTO + vehicles: List[dict] = [] # Placeholder, refine with actual DTO + drivers: List[dict] = [] # Placeholder, refine with actual DTO + trailers: List[dict] = [] # Placeholder, refine with actual DTO + customs_sections: List[CustomsSectionDTO] = [] + code_pedimento_regimens: List[CodePedimentoRegimenDTO] = [] + seals: List[dict] = [] # Placeholder, refine with actual DTO + incoterms: List[IncotermDTO] = [] + pedimentos: List[dict] = [] # Placeholder, refine with actual DTO + transport_modes: List[TransportModeDTO] = [] + default_settings: Optional[dict] = None + +class InvoiceCreationResponse(InvoiceCatalogsResponse): + """Response for Invoice Creation View""" + is_create: bool = True + invoice: Optional[dict] = None # Should be null for creation + invoice_id: Optional[int] = None + filters: Optional[dict] = None # Pre-filled filters if any + +class InvoiceEditionResponse(InvoiceCatalogsResponse): + """Response for Invoice Edition View""" + is_create: bool = False + invoice: InvoiceHeaderResponse + invoice_id: int + filters: Optional[dict] = None + diff --git a/backend/api/v1/modules/a76/items/__init__.py b/backend/api/v1/modules/a76/items/__init__.py index a66bfe89..42d7abcf 100644 --- a/backend/api/v1/modules/a76/items/__init__.py +++ b/backend/api/v1/modules/a76/items/__init__.py @@ -4,16 +4,14 @@ Items module - Annex 76 Compliance # Import models in correct order to avoid circular dependencies # LineItem must be imported before models that reference it -from .line_items.models import LineItem from .line_financials.models import LineFinancial from .line_quantities.models import LineQuantity from .line_customs.models import LineCustom from .line_descriptions.models import LineDescription from .line_references.models import LineReference -from .models import Item, CTMReceipt, SubassemblyEntry +from .models import LineItem, CTMReceipt, SubassemblyEntry __all__ = [ - "Item", "LineItem", "LineFinancial", "LineQuantity", diff --git a/backend/api/v1/modules/a76/items/common/common_validators.py b/backend/api/v1/modules/a76/items/common/common_validators.py new file mode 100644 index 00000000..4397f4fd --- /dev/null +++ b/backend/api/v1/modules/a76/items/common/common_validators.py @@ -0,0 +1,33 @@ +from sqlalchemy import func +from core.exceptions import ErrorCollector +from .. import models +from sqlalchemy.orm import Session + + +def item_exists(db: Session, item_line: int, tenant_id: int, company_id: int): + item_exists = ( + db.query(models.LineItem) + .filter( + models.LineItem.line_number == item_line, + models.LineItem.tenant_id == tenant_id, + models.LineItem.company_id == company_id, + ) + .first() + ) + + return item_exists + + +def count_items(db: Session, invoice_id: int, tenant_id: int, company_id: int): + count = ( + db.query(func.count()) + .select_from(models.LineItem) + .filter( + models.LineItem.invoice_id == invoice_id, + models.LineItem.tenant_id == tenant_id, + models.LineItem.company_id == company_id, + ) + .scalar() + ) + + return count diff --git a/backend/api/v1/modules/a76/items/common/fractions.py b/backend/api/v1/modules/a76/items/common/fractions.py new file mode 100644 index 00000000..8f4fc501 --- /dev/null +++ b/backend/api/v1/modules/a76/items/common/fractions.py @@ -0,0 +1,155 @@ +import asyncio +from datetime import datetime +from typing import Optional, Tuple + +from api.v1.modules.a76.general_catalogs.company.models import Company +from api.v1.modules.a76.general_catalogs.fractions.historical_tariff_fractions.models import HistoricalTariffFraction +from api.v1.modules.sitar.tlcs import TLCSService +from api.v1.modules.sitar.prosec import ProsecService +from api.v1.modules.sitar.fracciones import FraccionesService +from sqlalchemy.orm import Session +from sqlalchemy import exists +from core.exceptions import ErrorCollector + +def search_historical_fraction(db: Session, fraction: str, country: str, fraction_type: str, sector: str, invoice_date: Optional[datetime], errors: Optional[ErrorCollector]) -> Tuple[Optional[str], float]: + """Search for historical fraction data + This corresponds to BUSCA_FRACCION_HISTORICA in original Clarion code + + Returns: + Tuple of (rate_im, adv_impo) + """ + # Placeholder for historical search + historical_exists = db.query(exists().where(HistoricalTariffFraction.historical_fraction == fraction)).scalar() + if not historical_exists: + errors.add_error( + field=f"fraction, country, fraction_type, sector", + message=f"La fraccion {fraction}, con pais {country}, con preferencia {fraction_type} y sector {sector} no existe.", + solution=["Revisar que si exista la preferencia para esta fracción en caso de ser historico, registrarlo en el catálogo de fracciones historicas."], + code="HISTORICAL_FRACTION_NOT_FOUND", + ) + else: + historical_exists = db.query(HistoricalTariffFraction).filter( + HistoricalTariffFraction.historical_fraction == fraction, + HistoricalTariffFraction.country == country, + HistoricalTariffFraction.fraction_type == fraction_type, + HistoricalTariffFraction.sector == sector, + HistoricalTariffFraction.publication_date <= invoice_date, + ).first() + + return historical_exists.import_tax_rate, historical_exists.import_tax_rate + + +def search_fraction_preference( + db: Session, + country: str, + fraccion: str, + fraction_type: str, + sector: Optional[str] = None, + invoice_date: Optional[datetime] = None, + errors: Optional[ErrorCollector] = None +) -> Tuple[Optional[str], float]: + """Search fraction preference and return rate_im and adv_impo + + Args: + country: Country code + fraction_type: Type of fraction (e.g., 'TLCS', 'PROSEC') + company: Company object with configuration + fraccion: Tariff fraction code to search + sector: Sector code (required for PROSEC searches) + + Returns: + Tuple of (rate_im, adv_impo) where: + - rate_im: Tax rate as string (e.g., "EXE", "5.0%") + - adv_impo: Numeric ad valorem rate + """ + rate_im = None + adv_impo = 0.0 + fraccion_8 = fraccion[:8] + + country_group = "USA" if country == "MEX" else country + + """" TLCS Search """ + if fraction_type.upper() == "TLCS": + try: + # Get TLCS service instance + tlcs_service = TLCSService.get_instance() + + # Fetch TLCS data using the service + tlcs_data = asyncio.run( + tlcs_service.search(fraccion=fraccion_8, pais=country_group, limit=100) + ) + + if not tlcs_data: + rate_im, adv_impo = search_historical_fraction(db=db, fraction=fraccion_8, country=country, fraction_type=fraction_type, sector=sector, invoice_date=invoice_date, errors=errors) + else: + first_record = tlcs_data[0] + rate_im = first_record.TASATXT + adv_impo = float(first_record.TASA1NUM or 0.0) + + except Exception as e: + print(f"Error fetching Fracciones data from SITAR API: {e}") + + """ ALADI Search """ + if fraction_type.upper() == "ALADI": + rate_im, adv_impo = search_historical_fraction(db=db, fraction=fraccion_8, country=country, fraction_type=fraction_type, sector=sector, invoice_date=invoice_date, errors=errors) + + """ PROSEC Search """ + if fraction_type.upper() == "PROSEC": + try: + # Búsqueda en API de PROSEC (TARIFA_AS..sProsec) + prosec_service = ProsecService.get_instance() + + # Buscar primero con ARTICULO = '4to' + prosec_data = asyncio.run( + prosec_service.search( + fraccion=fraccion_8, sector=sector, articulo="4to", limit=100 + ) + ) + + # Si no se encuentra con '4to', buscar con '5to' + if not prosec_data: + prosec_data = asyncio.run( + prosec_service.search( + fraccion=fraccion_8, sector=sector, articulo="5to", limit=100 + ) + ) + + if not prosec_data: + rate_im, adv_impo = search_historical_fraction(db=db, fraction=fraccion_8, country=country, fraction_type=fraction_type, sector=sector, invoice_date=invoice_date, errors=errors) + else: + first_record = prosec_data[0] + rate_im = first_record.TASATXT + adv_impo = float(first_record.TASANUM or 0.0) + + except Exception as e: + print(f"Error fetching Fracciones data from SITAR API: {e}") + + """ General search fallback """ + if fraction_type.upper() == "GENERAL": + # Búsqueda en API de Fracciones (sFracciones) + try: + fracciones_service = FraccionesService.get_instance() + + # Extraer fracción (primeros 8 caracteres) e nico (caracteres 9-10) + nico = fraccion[8:10] if len(fraccion) >= 10 else None + + # Buscar por fracción e histórico + fracciones_data = asyncio.run( + fracciones_service.search( + fraccion=fraccion_8, nico=nico, limit=100 + ) + ) + + if not fracciones_data: + rate_im, adv_impo = search_historical_fraction(db=db, fraction=fraccion_8, country=country, fraction_type=fraction_type, sector=sector, invoice_date=invoice_date, errors=errors) + else: + # Se encontraron registros, tomar el primero + first_record = fracciones_data[0] + rate_im = first_record.ADVIMPOTXT # AdvImpoTxt + adv_impo = float(first_record.ADVIMPONUM or 0.0) + + + except Exception as e: + print(f"Error fetching Fracciones data from SITAR API: {e}") + + return rate_im, adv_impo diff --git a/backend/api/v1/modules/a76/items/imports/temporary/validators/common.py b/backend/api/v1/modules/a76/items/imports/temporary/validators/common.py index d7db7a63..f1600bff 100644 --- a/backend/api/v1/modules/a76/items/imports/temporary/validators/common.py +++ b/backend/api/v1/modules/a76/items/imports/temporary/validators/common.py @@ -1,158 +1,335 @@ -""" -Funciones helper compartidas para validaciones de items. -""" +from sqlalchemy import exists from sqlalchemy.orm import Session +from api.v1.modules.a76.invoices.common.common_validators import invoice_exists_by_id from core.exceptions import ErrorCollector -from typing import Optional +from sqlalchemy import func + +from ....common.fractions import search_fraction_preference +from ....common.common_validators import item_exists +from ....models import LineItem +from ....line_customs.models import FractionType, LineCustom +from api.v1.modules.a76.items.schemas import LineItemCreate +from api.v1.modules.a76.invoices.models import InvoiceHeader +from api.v1.modules.a76.classes.models import Class +from api.v1.modules.a76.general_catalogs.units_of_measure.models import UnitOfMeasure +from api.v1.modules.a76.general_catalogs.packages.models import Package +from api.v1.modules.public.reference_data.countries.models import Country +from api.v1.modules.public.reference_data.sectors.models import Sector +from api.v1.modules.public.reference_data.valuation_methods.models import ( + ValuationMethod, +) +from api.v1.modules.a76.parts.models import Part +from api.v1.modules.a76.general_catalogs.company.models import Company -def validate_catalog_reference( +def validate_common( db: Session, - model_class, - id_value: Optional[int], - field_name: str, + line: LineItemCreate, tenant_id: int, - company_id: Optional[int], + company_id: int, errors: ErrorCollector, - error_message: str = None -) -> bool: - """ - Valida que una referencia a catálogo exista en la base de datos. - - Args: - db: Sesión de base de datos - model_class: Clase del modelo SQLAlchemy a consultar - id_value: ID a validar - field_name: Nombre del campo para el error - tenant_id: ID del tenant - company_id: ID de la compañía (opcional) - errors: Colector de errores - error_message: Mensaje personalizado de error - - Returns: - True si existe, False si no - """ - if not id_value: - return False - - query = db.query(model_class).filter( - model_class.id == id_value, - model_class.tenant_id == tenant_id + line_number: int, +): + invoice: InvoiceHeader = invoice_exists_by_id( + db, line.invoice_id, tenant_id, company_id, errors ) - - # Agregar filtro de company_id si el modelo lo tiene y se proporciona - if company_id and hasattr(model_class, 'company_id'): - query = query.filter(model_class.company_id == company_id) - - exists = query.first() is not None - - if not exists: - msg = error_message or f"El valor {id_value} no existe en el catálogo" + line_item: LineItem = item_exists(db, line.line_number, tenant_id, company_id) + + fecha_factura = invoice.invoice_date if invoice else None + fraction = None + + class_ = db.query(Class).filter(Class.id == line.class_id).first() + if not class_: errors.add_error( - field=field_name, - message=msg, - solution="Selecciona un valor válido del catálogo", - code="NOT_FOUND" + field=f"line[{line_number}].class_id", + message="La clase especificada no existe.", + solution=["Darla de alta en el catalogo de clases."], + code="CLASS_NOT_FOUND", ) - - return exists - - -def validate_positive_value( - value: Optional[float], - field_name: str, - errors: ErrorCollector, - required: bool = True, - allow_zero: bool = False -) -> bool: - """ - Valida que un valor numérico sea positivo. - - Args: - value: Valor a validar - field_name: Nombre del campo para el error - errors: Colector de errores - required: Si el campo es obligatorio - allow_zero: Si se permite el valor cero - - Returns: - True si es válido, False si no - """ - if value is None: - if required: + else: + if not line.unit_of_measure and not class_.unit_of_measure: errors.add_error( - field=field_name, - message=f"El campo {field_name} es obligatorio", - solution="Proporciona un valor válido", - code="REQUIRED" + field=f"line[{line_number}].unit_of_measure", + message="La unidad de medida es obligatoria para la clase especificada.", + solution=["Proporciona una unidad de medida valida."], + code="UNIT_OF_MEASURE_REQUIRED", ) - return False - return True - - if allow_zero and value == 0: - return True - - if value <= 0: + + if not line.customs.fraction: + if not line_item: + if not class_.fraction: + errors.add_error( + field=f"line[{line_number}].customs.fraction", + message="La fracción arancelaria es obligatoria para la clase especificada.", + solution=["Proporciona una fracción arancelaria valida."], + code="FRACTION_REQUIRED", + ) + else: + fraction = class_.fraction + else: + if not line.customs.fraction: + if not class_.fraction: + errors.add_error( + field=f"line[{line_number}].customs.fraction", + message="La fracción arancelaria es obligatoria para la clase especificada.", + solution=["Proporciona una fracción arancelaria valida."], + code="FRACTION_REQUIRED", + ) + else: + fraction = class_.fraction + else: + if line_item: + fraction = line.customs.fraction + + if not line.description.description_spanish and not class_.description_es: + errors.add_error( + field=f"line[{line_number}].description.description_spanish", + message="La descripción en español es obligatoria para la clase especificada.", + solution=["Proporciona una descripción en español valida."], + code="DESCRIPTION_SPANISH_REQUIRED", + ) + + if not line.description.description_english and not class_.description_en: + errors.add_error( + field=f"line[{line_number}].description.description_english", + message="La descripción en inglés es obligatoria para la clase especificada.", + solution=["Proporciona una descripción en inglés valida."], + code="DESCRIPTION_ENGLISH_REQUIRED", + ) + + if line.quantity.quantity and line.quantity.quantity <= 0: errors.add_error( - field=field_name, - message=f"El campo {field_name} debe ser mayor a cero", - solution="Proporciona un valor positivo", - code="INVALID_VALUE" + field=f"line[{line_number}].quantity.quantity", + message="La cantidad debe ser mayor a cero.", + solution=["Proporciona una cantidad valida."], + code="QUANTITY_MUST_BE_GREATER_THAN_ZERO", ) - return False - - return True - -def normalize_yes_no_value(value: Optional[str]) -> Optional[str]: - """ - Normaliza valores SI/NO a formato estándar. - - Args: - value: Valor a normalizar (SI, NO, S, N) - - Returns: - 'SI' o 'NO', o None si el valor es None - """ - if not value: - return None - - val = value.upper().strip() - if val in ['SI', 'S']: - return 'SI' - elif val in ['NO', 'N']: - return 'NO' - - return value # Retornar original si no coincide - - -def validate_string_not_empty( - value: Optional[str], - field_name: str, - errors: ErrorCollector, - required: bool = True -) -> bool: - """ - Valida que un string no esté vacío. - - Args: - value: Valor a validar - field_name: Nombre del campo para el error - errors: Colector de errores - required: Si el campo es obligatorio - - Returns: - True si es válido, False si no - """ - if value is None or (isinstance(value, str) and not value.strip()): - if required: - errors.add_error( - field=field_name, - message=f"El campo {field_name} no puede estar vacío", - solution="Proporciona un valor válido", - code="REQUIRED" + if line.unit_of_measure: + um = ( + db.query(func.count(UnitOfMeasure.id)) + .filter( + UnitOfMeasure.id == line.unit_of_measure, + UnitOfMeasure.tenant_id == tenant_id, + UnitOfMeasure.company_id == company_id, + ) + .scalar() + ) + if um == 0: + errors.add_error( + field=f"line[{line_number}].unit_of_measure", + message="La unidad de medida especificada no existe.", + solution=["Proporciona una unidad de medida valida."], + code="UNIT_OF_MEASURE_NOT_FOUND", + ) + + if line.quantity.package_id: + package = ( + db.query(func.count(Package.id)) + .filter( + Package.id == line.quantity.package_id, + Package.tenant_id == tenant_id, + Package.company_id == company_id, + ) + .scalar() + ) + if package == 0: + errors.add_error( + field=f"line[{line_number}].quantity.package_id", + message="El paquete especificado no existe.", + solution=["Proporciona un paquete valido."], + code="PACKAGE_NOT_FOUND", + ) + if not line.quantity.package_quantity: + errors.add_error( + field=f"line[{line_number}].quantity.package_quantity", + message="La cantidad de paquetes es obligatoria cuando se proporciona el paquete.", + solution=["Proporciona una cantidad de paquetes valida."], + code="PACKAGE_QUANTITY_REQUIRED", + ) + if line.quantity.package_quantity <= 0: + errors.add_error( + field=f"line[{line_number}].quantity.package_quantity", + message="La cantidad de paquetes debe ser mayor a cero.", + solution=["Proporciona una cantidad de paquetes valida."], + code="PACKAGE_QUANTITY_MUST_BE_GREATER_THAN_ZERO", + ) + else: + if line.quantity.package_quantity and (line.quantity.package_quantity > 0 and not line.quantity.package_id): + errors.add_error( + field=f"line[{line_number}].quantity.package_id", + message="El paquete es obligatorio cuando se proporciona la cantidad de paquetes.", + solution=["Proporciona un paquete valido."], + code="PACKAGE_ID_REQUIRED", + ) + + country = None + fraction_type = None + sector = None + if fraction: + fraction = line.customs.fraction if line.customs.fraction else fraction + + country = line.customs.origin_country + if line_item and line_item.customs: + country = ( + line_item.customs.origin_country + if line_item.customs.origin_country + else country + ) + + fraction_type = line.customs.fraction_type.upper() + if line_item and line_item.customs: + fraction_type = ( + line_item.customs.fraction_type + if line_item.customs.fraction_type + else fraction_type + ) + + sector = line.customs.sector + if line_item and line_item.customs: + sector = line_item.customs.sector if line_item.customs.sector else sector + + country_m3 = db.query(Country.m3_key).filter(Country.m3_key == country).scalar() + if not country_m3: + country_m3 = ( + db.query(Country.m3_key).filter(Country.ame_key == country).scalar() + ) + + country = country_m3 + if not country: + errors.add_error( + field=f"line[{line_number}].customs.origin_country", + message="El país de origen especificado no existe.", + solution=["Proporciona un país de origen valido."], + code="ORIGIN_COUNTRY_NOT_FOUND", + ) + else: + if fraction_type.strip().upper() not in vars(FractionType).values(): + valid_types = [ + v + for k, v in vars(FractionType).items() + if not k.startswith("_") and isinstance(v, str) + ] + errors.add_error( + field=f"line[{line_number}].customs.fraction_type", + message="El tipo de fracción especificado no es válido.", + solution=[ + f"Proporciona un tipo de fracción válido. Valores permitidos: {', '.join(valid_types)}" + ], + code="FRACTION_TYPE_INVALID", + value=fraction_type, + ) + else: + if fraction_type.strip().upper() == FractionType.PROSEC and not sector: + errors.add_error( + field=f"line[{line_number}].customs.sector", + message="El sector es obligatorio cuando el tipo de fracción es 'PROSEC'.", + solution=["Proporciona un sector valido."], + code="SECTOR_REQUIRED_FOR_PROSEC", + ) + elif fraction_type.strip().upper() != FractionType.PROSEC and sector: + errors.add_error( + field=f"line[{line_number}].customs.sector", + message="El sector solo es aplicable cuando el tipo de fracción es 'PROSEC'.", + solution=[ + "Elimina el sector o cambia el tipo de fracción a 'PROSEC'." + ], + code="SECTOR_ONLY_FOR_PROSEC", + ) + elif fraction_type.strip().upper() == FractionType.PROSEC and sector: + sector_db: Sector = ( + db.query(Sector).filter(Sector.key == sector).scalar() + ) + if sector_db: + errors.add_error( + field=f"line[{line_number}].customs.sector", + message="El sector especificado no existe.", + solution=["Proporciona un sector valido."], + code="SECTOR_NOT_FOUND", + ) + else: + if not sector_db.authorized: + errors.add_error( + field=f"line[{line_number}].customs.sector", + message="El sector especificado no está autorizado.", + solution=["Proporciona un sector autorizado."], + code="SECTOR_NOT_AUTHORIZED", + ) + + company_db = db.query(Company).filter(Company.id == company_id).first() + if not company_db.prosec: + errors.add_error( + field=f"line[{line_number}].customs.sector", + message=" La empresa no cuenta con autorización PROSEC.", + solution=[ + "Accese a los datos de la empresa y selecione la opción Pertenece al Programa de Promoción Sectorial y capture el número de permiso PROSEC." + ], + code="COMPANY_NOT_AUTHORIZED_FOR_PROSEC", + ) + + if fraction: + search_fraction_preference( + db=db, + country=country, + fraccion=fraction, + fraction_type=fraction_type, + sector=sector, + invoice_date=fecha_factura, + errors=errors, + ) + + if line.customs.american_fraction: + american_fraction_exists = db.query( + exists().where( + LineCustom.american_fraction == line.customs.american_fraction + ) + ).scalar() + if not american_fraction_exists: + errors.add_error( + field=f"line[{line_number}].customs.american_fraction", + message="La fracción americana especificada no existe.", + solution=["Proporciona una fracción americana valida."], + code="AMERICAN_FRACTION_NOT_FOUND", + ) + + if line.order: + if len(line.order) > 20: + errors.add_error( + field=f"item.order", + message="El campo orden no debe exceder los 20 caracteres.", + solution=["Proporciona un valor valido para el campo orden."], + code="ORDER_EXCEEDS_MAX_LENGTH", + ) + + unit_of_measure = line.unit_of_measure or ( + class_.unit_of_measure if class_ else None + ) + if unit_of_measure == "PZA" and line.quantity.quantity % 1 != 0: + errors.add_error( + field=f"line[{line_number}].quantity.quantity", + message="La cantidad debe ser un número entero cuando la unidad de medida es PZA.", + solution=["Proporciona una cantidad entera."], + code="QUANTITY_MUST_BE_INTEGER_FOR_PIECES", + ) + + if line.valuation_method: + valuation_method_exists = db.query( + exists().where(ValuationMethod.key == line.valuation_method) + ).scalar() + if not valuation_method_exists: + errors.add_error( + field=f"line[{line_number}].valuation_method", + message="El método de valoración especificado no existe.", + solution=["Proporciona un método de valoración valido."], + code="VALUATION_METHOD_NOT_FOUND", + ) + + if line.part_number_id: + part_exists = db.query(exists().where(Part.id == line.part_number_id)).scalar() + if not part_exists: + errors.add_error( + field=f"line[{line_number}].part_number_id", + message="El número de parte especificado no existe.", + solution=["Proporciona un número de parte valido."], + code="PART_NUMBER_NOT_FOUND", ) - return False - return True - - return True diff --git a/backend/api/v1/modules/a76/items/imports/temporary/validators/create.py b/backend/api/v1/modules/a76/items/imports/temporary/validators/create.py index b14a9746..70dc5245 100644 --- a/backend/api/v1/modules/a76/items/imports/temporary/validators/create.py +++ b/backend/api/v1/modules/a76/items/imports/temporary/validators/create.py @@ -1,135 +1,344 @@ -""" -Validaciones para creación de items vía API. -""" - +from decimal import Decimal +from sqlalchemy import func, exists from sqlalchemy.orm import Session +from ....common.common_validators import count_items from core.exceptions import ErrorCollector -from api.v1.modules.a76.items.line_items.schemas import LineItemCreate -from .common import validate_string_not_empty, validate_positive_value + +from ....models import LineItem +from ....line_financials.models import LineFinancial +from ....line_financials.schemas import LineFinancialCreate +from ....line_quantities.models import LineQuantity +from ....line_quantities.schemas import LineQuantityCreate +from ....line_customs.models import LineCustom +from ....line_customs.schemas import LineCustomCreate +from ....line_descriptions.models import LineDescription +from ....line_descriptions.schemas import LineDescriptionCreate +from ....line_references.models import LineReference +from api.v1.modules.a24.fa.fa_item_lines.models import FaLineItem +from ....models import LineItem +from api.v1.modules.a76.invoices.models import InvoiceHeader +from api.v1.modules.a76.classes.models import Class +from api.v1.modules.a76.general_catalogs.packages.models import Package +from api.v1.modules.a76.general_catalogs.fractions.us_tariff_fractions.models import ( + USTariffFraction, +) +from .common import validate_common def validate_create( db: Session, - line: LineItemCreate, + line: LineItem, # LineItemCreate schema (Pydantic) tenant_id: int, company_id: int, errors: ErrorCollector, -) -> None: + line_number: int, +): """ - Validaciones para crear LineItems vía API (actualmente en uso). + Validates and calculates fields for a new line item before DB creation. + Works with Pydantic schemas, modifying them in-place. Args: - db: Sesión de base de datos - line: Datos del line item - tenant_id: ID del tenant - company_id: ID de la compañía - errors: Colector de errores - """ - # 1. Validar line_number - if not line.line_number: - errors.add_error( - field="line_number", - message="El número de línea es obligatorio", - solution="Proporciona un número de línea válido", - code="REQUIRED", - ) + line: LineItemCreate schema with nested data (financial, quantity, customs, etc.) + invoice_id: ID of the invoice this line belongs to + fa_data: FaLineItemCreateDTO or None (None for INV system) + """ - # 2. Validar class_id + # Access fa_data safely + fa_data = getattr(line, "fa_data", None) + + # Required field validations if not line.class_id: - errors.add_error( - field="class_id", - message="Clase (ID) es obligatorio", - solution="Selecciona una clasificación válida del catálogo", - code="REQUIRED", - ) + errors.add_required_error(field=f"line[{line_number}].class_id") - # 4. Validar unit_of_measure - if not line.unit_of_measure: - errors.add_error( - field="unit_of_measure", - message="U.M. es obligatorio", - solution="Proporciona una unidad de medida válida", - code="REQUIRED", - ) + if not line.quantity.quantity or line.quantity.quantity <= 0: + errors.add_required_error(field=f"line[{line_number}].quantity.quantity") - # 5. Validar quantity.quantity - if not line.quantity: - errors.add_error( - field="quantity", - message="Quantity es obligatorio", - solution="Proporciona una cantidad válida", - code="REQUIRED", - ) - else: - # Validar con nombre amigable - if line.quantity.quantity is None or line.quantity.quantity <= 0: - errors.add_error( - field="quantity.quantity", - message="Quantity debe ser mayor a cero", - solution="Proporciona una cantidad válida", - code=( - "INVALID_VALUE" - if line.quantity.quantity is not None - else "REQUIRED" - ), - ) - - # 6. Validar financial.unit_cost - if not line.financial: - errors.add_error( - field="financial", - message="Unit Cost es obligatorio", - solution="Proporciona el costo unitario del item", - code="REQUIRED", - ) - else: - has_cost = ( - line.financial.unit_cost_usd - or line.financial.unit_cost_mxn - or line.financial.unit_cost_capture - ) - if not has_cost: - errors.add_error( - field="financial.unit_cost", - message="Unit Cost es obligatorio", - solution="Proporciona al menos un costo unitario (USD, MXN o captura)", - code="REQUIRED", - ) - - # 7. Validar description.description_spanish - if line.description: + # TODO: Añadir validacion SSisGen:CalcularCostoUnitarioEnBaseAValorTotalScaf <-- de la tabla de preferencias de el sistema + # if SSisGen:CalcularCostoUnitarioEnBaseAValorTotalScaf == False: + if fa_data and not fa_data.is_subitem: if ( - not line.description.description_spanish - or not line.description.description_spanish.strip() + not line.financial.unit_cost_capture + or line.financial.unit_cost_capture <= 0 + ): + errors.add_required_error( + field=f"line[{line_number}].financial.unit_cost_capture" + ) + + if not line.quantity.net_weight or line.quantity.net_weight <= 0: + errors.add_required_error(field=f"line[{line_number}].quantity.net_weight") + + if not line.customs.origin_country: + errors.add_required_error(field=f"line[{line_number}].customs.origin_country") + + if not line.customs.fraction_type: + errors.add_required_error(field=f"line[{line_number}].customs.fraction_type") + + # FA-specific validations + if fa_data: + if ( + fa_data.is_subitem and fa_data.contains_subitems + ) and not fa_data.subitem_number: + errors.add_required_error( + field=f"line[{line_number}].fa_data.subitem_number" + ) + + # Validar que si es un subitem, existe un item principal correspondiente + if ( + fa_data.is_subitem + and fa_data.subitem_number + and fa_data.subitem_number != 0 + ): + principal_item_exists = db.query( + exists().where( + (LineItem.id == FaLineItem.id) + & (LineItem.id == LineItem.id) + & (LineItem.invoice_id == line.invoice_id) + & (LineItem.line_number == line_number) + & (FaLineItem.is_subitem == False) + & (FaLineItem.contains_subitems == True) + & (LineItem.tenant_id == tenant_id) + & (LineItem.company_id == company_id) + ) + ).scalar() + + if not principal_item_exists: + errors.add_error( + field=f"line[{line_number}]", + message=f"No existe un item principal registrado para esta linea {line_number} con subitem {fa_data.subitem_number}", + solution=[ + "Registrar el item principal correspondiente a esta linea antes de registrar subitems." + ], + code="SUBITEM_WITHOUT_PRINCIPAL_ITEM", + ) + + if fa_data.is_subitem and ( + fa_data.subitem_number == 0 or not fa_data.subitem_number ): errors.add_error( - field="description.description_spanish", - message="Description in Spanish es obligatorio", - solution="Proporciona una descripción del item en español", - code="REQUIRED", + field=f"line[{line_number}]", + message=f"El número de subitem no puede ser 0 si la línea es un subitem.", + solution=["Asignar un número de subitem mayor a 0 para esta línea."], + code="SUBITEM_NUMBER_INVALID", ) - else: - errors.add_error( - field="description.description_spanish", - message="Description in Spanish es obligatorio", - solution="Proporciona una descripción del item en español", - code="REQUIRED", + + validate_common(db, line, tenant_id, company_id, errors, line_number) + + if not errors.has_errors(): + # Obtener la factura para acceder a tipo de cambio, moneda y peso + invoice: InvoiceHeader = ( + db.query(InvoiceHeader) + .filter( + InvoiceHeader.id == line.invoice_id, + InvoiceHeader.tenant_id == tenant_id, + InvoiceHeader.company_id == company_id, + ) + .first() ) - - # 8. Validar customs.origin_country - if not line.customs or not line.customs.origin_country: - errors.add_error( - field="customs.origin_country", - message="País de Origen es obligatorio", - solution="Selecciona el país de origen del item", - code="REQUIRED" + + if not invoice or not invoice.financials or not invoice.logistics: + errors.add_error( + field=f"line[{line_number}]", + message="No se pudo obtener información de la factura", + solution=[ + "Verificar que la factura existe y tiene datos financieros y logísticos" + ], + code="INVOICE_DATA_MISSING", + ) + return + + # Obtener la clase para valores por defecto + class_info: Class = ( + db.query(Class) + .filter( + Class.id == line.class_id, + Class.tenant_id == tenant_id, + Class.company_id == company_id, + ) + .first() ) - - # 9. Validar customs.fraction_type - if not line.customs or not line.customs.fraction_type: - errors.add_error( - field="customs.fraction_type", - message="Tipo de Tarifa es obligatorio", - solution="Selecciona el tipo de tarifa (GENERAL, PROSEC, ALADI, TLCS)", - code="REQUIRED" - ) \ No newline at end of file + + # ========================================== + # ASIGNAR TIPO DE CAMBIO + # ========================================== + exchange_rate = invoice.financials.exchange_rate or Decimal("1.0") + + # ========================================== + # ASIGNAR UNIDAD DE MEDIDA + # ========================================== + # Si no se proporcionó unidad de medida, usar la de la clase + if not line.unit_of_measure and class_info: + line.unit_of_measure = class_info.unit_of_measure + + # ========================================== + # ASIGNAR TIPOS DE MONEDA Y CALCULAR COSTOS + # ========================================== + currency_type = invoice.financials.currency_type + unit_cost_capture = line.financial.unit_cost_capture or Decimal("0") + + # Calcular costos según tipo de moneda + if currency_type == "USD" or currency_type == "ME": # Moneda Extranjera (ME) + line.financial.unit_cost_capture = unit_cost_capture + line.financial.unit_cost_usd = unit_cost_capture + line.financial.unit_cost_mxn = unit_cost_capture * exchange_rate + elif currency_type == "MXN" or currency_type == "MN": # Moneda Nacional (MN) + line.financial.unit_cost_capture = unit_cost_capture + line.financial.unit_cost_usd = ( + unit_cost_capture / exchange_rate if exchange_rate else Decimal("0") + ) + line.financial.unit_cost_mxn = unit_cost_capture + # Si es otro tipo de moneda, dejamos el costo como está + + # ========================================== + # VALIDAR Y CONVERTIR PESOS NETOS + # ========================================== + invoice_weight_type = invoice.logistics.weight_type # 'kgs' o 'lbs' + quantity = line.quantity.quantity or Decimal("0") + net_weight_input = line.quantity.net_weight or Decimal("0") + + # Determinar si la unidad de medida es de peso + unit_is_kgs = line.unit_of_measure and line.unit_of_measure == "24" #KGS + unit_is_lbs = line.unit_of_measure and line.unit_of_measure == "25" #LBS + + # Calcular peso neto en kilogramos (estándar interno) + if unit_is_kgs: + if invoice_weight_type == "KGS": + line.quantity.net_weight = quantity + else: # invoice en libras + line.quantity.net_weight = quantity * Decimal("2.204624") + elif unit_is_lbs: + if invoice_weight_type == "KGS": + line.quantity.net_weight = quantity / Decimal("2.204624") + else: # invoice en libras + line.quantity.net_weight = quantity + else: + # Otra unidad de medida - usar peso capturado y convertir si es necesario + if invoice_weight_type == "KGS": + # El peso capturado está en kilos + line.quantity.net_weight = net_weight_input + else: + # El peso capturado está en libras, convertir a kilos + line.quantity.net_weight = net_weight_input / Decimal("2.204624") + + # ========================================== + # CALCULAR PESO BRUTO + # ========================================== + gross_weight_input = line.quantity.gross_weight + package_quantity = line.quantity.package_quantity or 0 + package_weight_unit = Decimal("0") + + # Obtener peso unitario del bulto si existe + if line.quantity.package_id: + package: Package = ( + db.query(Package) + .filter( + Package.id == line.quantity.package_id, + Package.tenant_id == tenant_id, + Package.company_id == company_id, + ) + .first() + ) + if package and package.weight_unit: + package_weight_unit = package.weight_unit + + # Si no se proporcionó peso bruto, calcularlo + if not gross_weight_input or gross_weight_input == 0: + if invoice_weight_type == "KGS": + line.quantity.gross_weight = line.quantity.net_weight + ( + package_weight_unit * package_quantity + ) + else: # libras + line.quantity.gross_weight = line.quantity.net_weight + ( + (package_weight_unit * Decimal("2.204624")) * package_quantity + ) + else: + # Convertir peso bruto capturado según tipo de factura + if invoice_weight_type == "KGS": + line.quantity.gross_weight = gross_weight_input + else: # libras + line.quantity.gross_weight = gross_weight_input / Decimal("2.204624") + + # ========================================== + # VALIDAR PESO BRUTO < PESO NETO + # ========================================== + if line.quantity.gross_weight < line.quantity.net_weight: + line.quantity.gross_weight = line.quantity.net_weight + ( + package_weight_unit * package_quantity + ) + + # ========================================== + # ASIGNAR DESCRIPCIÓN DE BULTOS + # ========================================== + if package_quantity and package_quantity > 0 and line.quantity.package_id: + package: Package = ( + db.query(Package) + .filter( + Package.id == line.quantity.package_id, + Package.tenant_id == tenant_id, + Package.company_id == company_id, + ) + .first() + ) + if package: + line.description.package_description = package.description_es + else: + line.quantity.package_quantity = 0 + line.quantity.package_id = None + line.description.package_description = None + + # ========================================== + # ASIGNAR FRACCIÓN AMERICANA POR DEFECTO + # ========================================== + if not line.customs.american_fraction and class_info and class_info.us_fraction: + line.customs.american_fraction = class_info.us_fraction + + # Buscar el advalorem de la fracción americana + if line.customs.american_fraction: + us_fraction: USTariffFraction = ( + db.query(USTariffFraction) + .filter( + USTariffFraction.code == line.customs.american_fraction, + USTariffFraction.tenant_id == tenant_id, + USTariffFraction.company_id == company_id, + ) + .first() + ) + + if us_fraction: + # Si el tipo es 'ME' (Moneda Extranjera), usar costo fijo + # De lo contrario, usar ad valorem + if us_fraction.type_code == "foreign": + line.customs.advalorem_american = us_fraction.fixed_cost + else: + line.customs.advalorem_american = us_fraction.ad_valorem + + # ========================================== + # ASIGNAR DESCRIPCIONES POR DEFECTO + # ========================================== + if not line.description.description_spanish and class_info: + line.description.description_spanish = class_info.description_es + + if not line.description.description_english and class_info: + line.description.description_english = class_info.description_en + + # ========================================== + # NORMALIZAR CAMPOS DE TEXTO + # ========================================== + # Convertir a mayúsculas campos que lo requieran + if line.description.brand: + line.description.brand = line.description.brand.upper().strip() + + if line.description.model: + line.description.model = line.description.model.upper().strip() + + # ========================================== + # ASIGNAR VALORES POR DEFECTO DE IMPUESTOS + # ========================================== + # Si no se especificó pago de impuesto, tomar de preferencias del sistema (SisImp) + # TODO: Implementar lectura de preferencias del sistema + # Por ahora dejamos None si no se proporcionó + + # Si no se especificó forma de pago, tomar de preferencias del sistema + # TODO: Implementar lectura de preferencias del sistema + + # Si no se especificó método de valoración, tomar de preferencias del sistema + # TODO: Implementar lectura de preferencias del sistema diff --git a/backend/api/v1/modules/a76/items/imports/temporary/validators/update.py b/backend/api/v1/modules/a76/items/imports/temporary/validators/update.py index 78b044aa..1f5b917e 100644 --- a/backend/api/v1/modules/a76/items/imports/temporary/validators/update.py +++ b/backend/api/v1/modules/a76/items/imports/temporary/validators/update.py @@ -1,246 +1,202 @@ -""" -Validaciones para actualización de items vía API. -""" - +from decimal import Decimal from sqlalchemy.orm import Session +from api.v1.modules.a76.invoices.common.common_validators import invoice_exists from core.exceptions import ErrorCollector -from api.v1.modules.a76.items.line_items.schemas import LineItemUpdate -from .common import validate_string_not_empty, validate_positive_value + +from ....models import LineItem +from api.v1.modules.a76.invoices.models import InvoiceHeader +from api.v1.modules.a76.general_catalogs.fractions.us_tariff_fractions.models import ( + USTariffFraction, +) +from .common import validate_common def validate_update( db: Session, - line: LineItemUpdate, + line: LineItem, + existing_line: LineItem, tenant_id: int, company_id: int, errors: ErrorCollector, - invoice_id: int = None, -) -> None: + line_number: int, +): """ - Validaciones para actualizar LineItems vía API. - Incluye todas las validaciones de negocio de Clarion. - - Args: - db: Sesión de base de datos - line: Datos del line item a actualizar - tenant_id: ID del tenant - company_id: ID de la compañía - errors: Colector de errores - invoice_id: ID de la factura asociada (opcional, para validar subpartidas) + Validar y procesar actualización parcial de línea de importación temporal. + Si un campo no se proporciona, se mantiene el valor existente. """ - # 1. Validar line_number si se proporciona - if line.line_number is not None and not line.line_number: - errors.add_error( - field="line_number", - message="El número de línea no puede estar vacío", - solution="Proporciona un número de línea válido", - code="REQUIRED", + validate_common(db, line, tenant_id, company_id, errors, line_number) + + if not errors.has_errors(): + # Obtener la factura para acceder a tipo de cambio, moneda y peso + invoice: InvoiceHeader = ( + db.query(InvoiceHeader) + .filter( + InvoiceHeader.id == line.invoice_id, + InvoiceHeader.tenant_id == tenant_id, + InvoiceHeader.company_id == company_id + ) + .first() ) - # 2. Validar class_id si se proporciona - if line.class_id is not None and not line.class_id: - errors.add_error( - field="class_id", - message="Clase (ID) no puede estar vacío", - solution="Selecciona una clasificación válida del catálogo", - code="REQUIRED", - ) + if not invoice or not invoice.financials or not invoice.logistics: + errors.add_error( + field=f"line[{line_number}]", + message="No se pudo obtener información de la factura", + solution=[ + "Verificar que la factura existe y tiene datos financieros y logísticos" + ], + code="INVOICE_DATA_MISSING", + ) + return - # 4. Validar unit_of_measure si se proporciona - if line.unit_of_measure is not None and not line.unit_of_measure: - errors.add_error( - field="unit_of_measure", - message="U.M. no puede estar vacío", - solution="Proporciona una unidad de medida válida", - code="REQUIRED", - ) + # ========================================== + # ACTUALIZACIÓN PARCIAL DE CAMPOS + # Si no se proporciona, mantener valor existente + # ========================================== - # 5. Validar cantidad si se proporciona - if line.quantity: - # Si se proporciona el objeto quantity, validar que quantity.quantity sea válido - if line.quantity.quantity is not None: - if line.quantity.quantity <= 0: - errors.add_error( - field="quantity.quantity", - message="Quantity debe ser mayor a cero", - solution="Proporciona una cantidad válida", - code="INVALID_VALUE", - ) + # Tipo de cambio de la factura + exchange_rate = invoice.financials.exchange_rate or Decimal("1.0") + + # Unidad de medida + if not line.unit_of_measure: + line.unit_of_measure = existing_line.unit_of_measure + + # Costo unitario + if line.financial.unit_cost_capture is None: + line.financial.unit_cost_capture = existing_line.financial.unit_cost_capture + + # Convertir peso neto si se proporcionó + invoice_weight_type = invoice.logistics.weight_type + if line.quantity.net_weight is not None: + # Se proporcionó nuevo peso neto, convertir según tipo + net_weight_input = line.quantity.net_weight + + if invoice_weight_type == "KGS": + line.quantity.net_weight = net_weight_input + else: # libras, convertir a kilos + line.quantity.net_weight = net_weight_input / Decimal("2.204624") else: - # Si se proporciona quantity pero quantity.quantity es None, es requerido - errors.add_error( - field="quantity.quantity", - message="Quantity es obligatorio", - solution="Proporciona una cantidad mayor a 0", - code="REQUIRED", - ) + # Mantener peso existente + line.quantity.net_weight = existing_line.quantity.net_weight - # 6. Validar peso neto si se proporciona - if line.quantity and line.quantity.net_weight is not None: - if line.quantity.net_weight <= 0: - errors.add_error( - field="quantity.net_weight", - message="Net Weight debe ser mayor a cero", - solution="Proporciona un peso neto válido", - code="INVALID_VALUE", - ) + print(f"After weight conversion: net_weight={line.quantity.net_weight}, gross_weight={line.quantity.gross_weight}, weight_type={invoice_weight_type}") - # 7. Validar costo unitario si se proporciona financial (excepto subpartidas) - if line.financial: - is_subitem = line.fa_data and line.fa_data.is_subitem if line.fa_data else False + # Convertir peso bruto si se proporcionó + if line.quantity.gross_weight is not None: + gross_weight_input = line.quantity.gross_weight - if not is_subitem: - has_cost = ( - line.financial.unit_cost_usd - or line.financial.unit_cost_mxn - or line.financial.unit_cost_capture - ) - if not has_cost: - errors.add_error( - field="financial.unit_cost", - message="Unit Cost es obligatorio", - solution="Proporciona al menos un costo unitario (USD, MXN o captura)", - code="REQUIRED", - ) - # Validar que sean positivos - if line.financial.unit_cost_usd is not None: - if line.financial.unit_cost_usd <= 0: - errors.add_error( - field="financial.unit_cost_usd", - message="Unit Cost (USD) debe ser mayor a cero", - solution="Proporciona un costo unitario válido", - code="INVALID_VALUE", - ) - if line.financial.unit_cost_mxn is not None: - if line.financial.unit_cost_mxn <= 0: - errors.add_error( - field="financial.unit_cost_mxn", - message="Unit Cost (MXN) debe ser mayor a cero", - solution="Proporciona un costo unitario válido", - code="INVALID_VALUE", - ) - if line.financial.unit_cost_capture is not None: - if line.financial.unit_cost_capture <= 0: - errors.add_error( - field="financial.unit_cost_capture", - message="Unit Cost (Captura) debe ser mayor a cero", - solution="Proporciona un costo unitario válido", - code="INVALID_VALUE", - ) + if invoice_weight_type == "KGS": + line.quantity.gross_weight = gross_weight_input + else: # libras, convertir a kilos + line.quantity.gross_weight = gross_weight_input / Decimal("2.204624") + else: + # Mantener peso existente + line.quantity.gross_weight = existing_line.quantity.gross_weight - # 8. Validar datos aduanales si se proporcionan - if line.customs: - # Validar país de origen (OBLIGATORIO) - if line.customs.origin_country is not None: - if not line.customs.origin_country: - errors.add_error( - field="customs.origin_country", - message="País de Origen es obligatorio", - solution="Selecciona el país de origen del item", - code="REQUIRED" - ) - - # Validar tipo de tarifa (OBLIGATORIO) - if line.customs.fraction_type is not None: - if not line.customs.fraction_type: - errors.add_error( - field="customs.fraction_type", - message="Tipo de Tarifa es obligatorio", - solution="Selecciona el tipo de tarifa (GENERAL, PROSEC, ALADI, TLCS)", - code="REQUIRED" - ) - - # Validar preferencia arancelaria - if line.customs.preference is not None and not line.customs.preference: - errors.add_error( - field="customs.preference", - message="La preferencia arancelaria no puede estar vacía", - solution="Selecciona la preferencia arancelaria", - code="REQUIRED", - ) + # Cantidad de bultos + if line.quantity.package_quantity is None: + line.quantity.package_quantity = existing_line.quantity.package_quantity - # Validar formato de pago de impuestos - if line.customs.tax_paid: - val_tax = line.customs.tax_paid.upper() - if val_tax not in ["SI", "NO", "S", "N"]: - errors.add_error( - field="customs.tax_paid", - message="El valor de pago de impuesto debe ser SI/NO o S/N", - solution="Proporciona un valor válido: SI, NO, S o N", - code="INVALID_VALUE", - ) + # Clave de bultos + if not line.quantity.package_id: + line.quantity.package_id = existing_line.quantity.package_id - # Validar forma de pago si existe - if line.customs.payment_form: - from api.v1.modules.a76.general_catalogs.forms_of_payment.models import ( - PaymentForm, - ) + # País de origen + if not line.customs.origin_country: + line.customs.origin_country = existing_line.customs.origin_country - payment = ( - db.query(PaymentForm) + # Fracción arancelaria + if not line.customs.fraction: + line.customs.fraction = existing_line.customs.fraction + + # Tipo de fracción + if not line.customs.fraction_type: + line.customs.fraction_type = existing_line.customs.fraction_type + + # Sector + if not line.customs.sector: + line.customs.sector = existing_line.customs.sector + + # Fracción americana y su advalorem + if line.customs.american_fraction: + # Se proporcionó nueva fracción americana, buscar su advalorem + us_fraction: USTariffFraction = ( + db.query(USTariffFraction) .filter( - PaymentForm.code == line.customs.payment_form, - PaymentForm.tenant_id == tenant_id, + USTariffFraction.code == line.customs.american_fraction, + USTariffFraction.tenant_id == tenant_id, + USTariffFraction.company_id == company_id, ) .first() ) - if not payment: - errors.add_error( - field="customs.payment_form", - message=f"La forma de pago '{line.customs.payment_form}' no es válida", - solution="Selecciona una forma de pago válida del catálogo", - code="INVALID_VALUE", - ) - - # 9. Validar descripción en español (OBLIGATORIA) - if line.description and hasattr(line.description, 'description_spanish'): - if line.description.description_spanish is not None: - if not line.description.description_spanish.strip(): - errors.add_error( - field="description.description_spanish", - message="Descripción en Español es obligatoria", - solution="Proporciona una descripción del item en español", - code="REQUIRED" - ) - - # 10. Validar subpartidas si se actualizan - if line.fa_data and line.fa_data.is_subitem: - # Es subpartida, debe tener partida principal - if not line.fa_data.main_line_id: - errors.add_error( - field="fa_data.main_line_id", - message="La subpartida debe tener asignada una partida principal", - solution="Selecciona la partida principal de esta subpartida", - code="REQUIRED", - ) - elif invoice_id: - # Validar que la partida principal exista en la misma factura - from api.v1.modules.a76.items.line_items.models import LineItem - from api.v1.modules.a76.items.models import Item + if us_fraction: + if us_fraction.type_code == "ME": + line.customs.advalorem_american = us_fraction.fixed_cost + else: + line.customs.advalorem_american = us_fraction.ad_valorem + else: + # Mantener fracción americana existente + line.customs.american_fraction = existing_line.customs.american_fraction + line.customs.advalorem_american = existing_line.customs.advalorem_american - parent = ( - db.query(LineItem) - .join(LineItem.item) - .filter( - LineItem.line_number == line.fa_data.main_line_id, - Item.invoice_id == invoice_id, - LineItem.company_id == company_id, - ) - .first() + # Orden de compra + if not line.order: + line.order = existing_line.order + + # Descripciones + if not line.description.description_spanish: + line.description.description_spanish = ( + existing_line.description.description_spanish ) - if not parent: - errors.add_error( - field="fa_data.main_line_id", - message=f"La partida principal {line.fa_data.main_line_id} no existe en esta factura", - solution="Verifica el número de la partida principal", - code="NOT_FOUND", - ) - elif parent.fa_data and parent.fa_data.is_subitem: - errors.add_error( - field="fa_data.main_line_id", - message="La partida principal no puede ser otra subpartida", - solution="Selecciona una partida normal como principal", - code="INVALID_VALUE", - ) + if not line.description.description_english: + line.description.description_english = ( + existing_line.description.description_english + ) + + if not line.description.extra_description: + line.description.extra_description = ( + existing_line.description.extra_description + ) + + # Marca y modelo + if line.description.brand: + line.description.brand = line.description.brand.upper().strip() + else: + line.description.brand = existing_line.description.brand + + if line.description.model: + line.description.model = line.description.model.upper().strip() + else: + line.description.model = existing_line.description.model + + # Subpartidas (si aplica) + # TODO: Implementar lógica de subpartidas si Loc:LevantarSubpartidas = 'S' + + + # Número de parte + if not line.part_number_id: + line.part_number_id = existing_line.part_number_id + + # Pago de impuesto + if line.tax_payment is None: + line.tax_payment = existing_line.tax_payment + + # Forma de pago + if not line.payment_method: + line.payment_method = existing_line.payment_method + + # Método de valoración + if not line.valuation_method: + if existing_line.valuation_method: + line.valuation_method = existing_line.valuation_method + # else: TODO: Tomar de SisImp:MetValor (preferencias del sistema) + + # Número de entrada + if not line.description.entry_number: + line.description.entry_number = existing_line.description.entry_number + + # Lote + if not line.description.lot: + line.description.lot = existing_line.description.lot diff --git a/backend/api/v1/modules/a76/items/line_customs/models.py b/backend/api/v1/modules/a76/items/line_customs/models.py index f3c99acc..0830b768 100644 --- a/backend/api/v1/modules/a76/items/line_customs/models.py +++ b/backend/api/v1/modules/a76/items/line_customs/models.py @@ -5,7 +5,14 @@ from sqlalchemy.orm import Mapped, mapped_column, relationship from core.database import Base if TYPE_CHECKING: - from ..line_items.models import LineItem + from ..models import LineItem + +class FractionType: + """Enumeration for fraction types""" + GENERAL = "GENERAL" + PROSEC = "PROSEC" + ALADI = "ALADI" + TLCS = "TLCS" class LineCustom(Base): """ @@ -22,7 +29,7 @@ class LineCustom(Base): # Tariff/Customs Classifications fraction: Mapped[Optional[str]] = mapped_column(String(10)) # FRACCION / FRACCIONIMPO / FRACCIONEXPO - fraction_type: Mapped[Optional[str]] = mapped_column(String(7)) # TIPOFRACCION / TIPOFRACCIONIMPO / TIPOFRACCIONEXPO + fraction_type: Mapped[Optional[FractionType]] = mapped_column(String(7)) # TIPOFRACCION / TIPOFRACCIONIMPO / TIPOFRACCIONEXPO american_fraction: Mapped[Optional[str]] = mapped_column(String(16)) # FRACCIONAMERICANA alternate_fraction: Mapped[Optional[str]] = mapped_column(String(10)) # FRACCIONALTERNA reference_fraction: Mapped[Optional[str]] = mapped_column(String(10)) # FRACCIONREFERENCIA diff --git a/backend/api/v1/modules/a76/items/line_descriptions/models.py b/backend/api/v1/modules/a76/items/line_descriptions/models.py index 39e09560..85eaa6b0 100644 --- a/backend/api/v1/modules/a76/items/line_descriptions/models.py +++ b/backend/api/v1/modules/a76/items/line_descriptions/models.py @@ -4,7 +4,7 @@ from sqlalchemy.orm import Mapped, mapped_column, relationship from core.database import Base if TYPE_CHECKING: - from ..line_items.models import LineItem + from ..models import LineItem class LineDescription(Base): """ @@ -24,7 +24,8 @@ class LineDescription(Base): description_english: Mapped[Optional[str]] = mapped_column(String(4999)) # DESCRIPCIONI extra_description: Mapped[Optional[str]] = mapped_column(Text) # DESCRIPCIONEEXTRA part_description: Mapped[Optional[str]] = mapped_column(String(500)) # DESCRIPCIONPARTE - class_description: Mapped[Optional[str]] = mapped_column(String(500)) # DESCRIPCIONCLASE + class_description: Mapped[Optional[str]] = mapped_column(String(500)) # DESCRIPCIONCLASE + package_description: Mapped[Optional[str]] = mapped_column(String(500)) # DESCRIPCIONBULTO # Product attributes brand: Mapped[Optional[str]] = mapped_column(String(50)) # MARCA diff --git a/backend/api/v1/modules/a76/items/line_descriptions/schemas.py b/backend/api/v1/modules/a76/items/line_descriptions/schemas.py index 56965c36..8a65d68e 100644 --- a/backend/api/v1/modules/a76/items/line_descriptions/schemas.py +++ b/backend/api/v1/modules/a76/items/line_descriptions/schemas.py @@ -13,6 +13,7 @@ class LineDescriptionBase(BaseModel): extra_description: Optional[str] = Field(None, description="Extra description (DESCRIPCIONEEXTRA)") part_description: Optional[str] = Field(None, max_length=500, description="Part description (DESCRIPCIONPARTE)") class_description: Optional[str] = Field(None, max_length=500, description="Class description (DESCRIPCIONCLASE)") + package_description: Optional[str] = Field(None, max_length=500, description="Package description (DESCRIPCIONBULTO)") # Product attributes brand: Optional[str] = Field(None, max_length=50, description="Brand (MARCA)") diff --git a/backend/api/v1/modules/a76/items/line_financials/models.py b/backend/api/v1/modules/a76/items/line_financials/models.py index eb24934f..3edaaf7d 100644 --- a/backend/api/v1/modules/a76/items/line_financials/models.py +++ b/backend/api/v1/modules/a76/items/line_financials/models.py @@ -5,7 +5,7 @@ from sqlalchemy.orm import Mapped, mapped_column, relationship from core.database import Base if TYPE_CHECKING: - from ..line_items.models import LineItem + from ..models import LineItem class LineFinancial(Base): """ diff --git a/backend/api/v1/modules/a76/items/line_items/__init__.py b/backend/api/v1/modules/a76/items/line_items/__init__.py deleted file mode 100644 index 7f7ae971..00000000 --- a/backend/api/v1/modules/a76/items/line_items/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -"""Line items module""" -from .models import LineItem -from .schemas import ( - LineItemBase, - LineItemCreate, - LineItemUpdate, - LineItemResponse, -) - -__all__ = [ - "LineItem", - "LineItemBase", - "LineItemCreate", - "LineItemUpdate", - "LineItemResponse", -] diff --git a/backend/api/v1/modules/a76/items/line_items/models.py b/backend/api/v1/modules/a76/items/line_items/models.py deleted file mode 100644 index 5192f46f..00000000 --- a/backend/api/v1/modules/a76/items/line_items/models.py +++ /dev/null @@ -1,200 +0,0 @@ -from decimal import Decimal -from typing import Optional, TYPE_CHECKING -from sqlalchemy import ( - Boolean, - String, - Integer, - Numeric, - SmallInteger, - ForeignKey, - ForeignKeyConstraint, -) -from sqlalchemy.orm import Mapped, mapped_column, relationship -from api.v1.common.base_models import TenantScopedMixin, TimestampMixin -from core.database import Base - -from api.v1.modules.a76.classes.models import Class -from api.v1.modules.a76.general_catalogs.units_of_measure.models import UnitOfMeasure - -if TYPE_CHECKING: - from ..models import Item - from ..line_financials.models import LineFinancial - from ..line_quantities.models import LineQuantity - from ..line_customs.models import LineCustom - from ..line_descriptions.models import LineDescription - from ..line_references.models import LineReference - from api.v1.modules.a24.fa.fa_item_lines.models import FaLineItem - - -class LineItem(Base, TenantScopedMixin, TimestampMixin): - """ - Unified line items for all items - Consolidates all line-level data from Q and S tables - """ - - __tablename__ = "item_lines" - __table_args__ = ({"schema": "a76"},) - - id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True) - item_id: Mapped[int] = mapped_column(ForeignKey("a76.items.id")) - line_number: Mapped[int] = mapped_column(Integer) # LINEAIMPO/LINEAEXPO/LINEA - - # Part identification - part_number: Mapped[Optional[int]] = mapped_column( - Integer, ForeignKey("a76.parts.id") - ) # NUMPARTE - component_part_number: Mapped[Optional[int]] = mapped_column( - Integer, ForeignKey("a76.parts.id") - ) # NUMPARTECOM - class_id: Mapped[Optional[int]] = mapped_column( - ForeignKey("a76.classes.id") - ) # CLASE - - # Unit of measure - unit_of_measure: Mapped[Optional[int]] = mapped_column( - ForeignKey("a76.units_of_measure.id") - ) # UNIDADMEDIDA/UNIMED - alternate_unit: Mapped[Optional[int]] = mapped_column( - ForeignKey("a76.units_of_measure.id") - ) # UNIMEDALTERNA - uma_key: Mapped[Optional[str]] = mapped_column(String(2)) # CLAVEUMA - auxiliary_unit: Mapped[Optional[str]] = mapped_column(String(5)) # UNIMEDAUXILIAR - - # Permits and certificates - permit_number: Mapped[Optional[str]] = mapped_column(String(20)) # NUMPERMISO - page_line: Mapped[Optional[str]] = mapped_column(String(10)) # PAGRENGLON - has_certificate: Mapped[Optional[bool]] = mapped_column( - Boolean - ) # TIENECO/CERTORIGEN - certificate_number: Mapped[Optional[str]] = mapped_column( - String(10) - ) # NOCERTIFICADO - octave_permit: Mapped[Optional[str]] = mapped_column(String(20)) # PERMISOROCTAVA - permits_ped: Mapped[Optional[str]] = mapped_column(String(500)) # PERMISOSPED - - # FDA - has_fda_code: Mapped[Optional[bool]] = mapped_column(Boolean) # LLEVACODFDA - fda_key: Mapped[Optional[str]] = mapped_column(String(10)) # CLAVEFDA - - # Special flags - is_military_mcia: Mapped[Optional[bool]] = mapped_column(Boolean) # ESMCIAMILITAR - - # IV32 (Tax identification) - iv32_type_key: Mapped[Optional[str]] = mapped_column(String(5)) # CLAVETIPOIV32 - iv32_number: Mapped[Optional[str]] = mapped_column(String(35)) # NUMEROIV32 - - # IN CASE OF EXPO - scrap_invoice: Mapped[Optional[str]] = mapped_column(String(15)) # FACTURASCRAP - consecutive_destination: Mapped[Optional[int]] = mapped_column( - Integer - ) # CONSECUTIVODES - ctm_section: Mapped[Optional[str]] = mapped_column(String(3)) # APARTADOCTM - - # Tax payment - tax_payment: Mapped[Optional[bool]] = mapped_column(Boolean) # PAGOIMPUESTO - payment_method: Mapped[Optional[str]] = mapped_column( - String(9) - ) # FORMAPAGO/FORMAPAGOTIGI - igi_amount: Mapped[Optional[Decimal]] = mapped_column(Numeric(23, 8)) # MONTOIGI - igi_payment_method: Mapped[Optional[str]] = mapped_column( - String(9) - ) # FORMAPAGOTIGI - - # FCC - fcc_key: Mapped[Optional[str]] = mapped_column(String(30)) # CLAVEFCC - - # Valuation method - valuation_method: Mapped[Optional[str]] = mapped_column(String(2)) # METVALOR - valuation_determined_value: Mapped[Optional[Decimal]] = mapped_column( - Numeric(29, 8) - ) # METVALORVALORDETERMINADO/METVALORACIONVALORDETERMINADO - valuation_reason: Mapped[Optional[str]] = mapped_column( - String(500) - ) # METVALORMOTIVODEUSO/METVALORACIONMOTIVODEUSO - - # Container rules - container_rule: Mapped[Optional[str]] = mapped_column(String(50)) # CONTENEDORREGLA - container_parts_ii: Mapped[Optional[str]] = mapped_column( - String(50) - ) # CONTENEDORPARTESII - - # APHIS - consecutive_aphis: Mapped[Optional[int]] = mapped_column( - Integer - ) # CONSECUTIVOAPHIS - - # BOM/Commercial - bom_version: Mapped[Optional[int]] = mapped_column(Integer) # VERSIONBOM - bill_version: Mapped[Optional[int]] = mapped_column(Integer) # VERSIONBILL - - # TLCAN value - tlcan_value: Mapped[Optional[Decimal]] = mapped_column(Numeric(23, 8)) # VALORTLCAN - - # Identifier - identifier: Mapped[Optional[str]] = mapped_column(String(2)) # IDENTIFICADOR - - # Validation fields - validation_zero: Mapped[Optional[int]] = mapped_column(Integer) # VALIDACIONZERO - validation_one: Mapped[Optional[int]] = mapped_column(Integer) # VALIDACIONUNO - - # Material type - material_type: Mapped[Optional[str]] = mapped_column( - String(50) - ) # TIPOMAT/TIPODENUMPARTE - - # Order concept - order_type: Mapped[Optional[str]] = mapped_column(String(50)) # TIPODEORDEN - line_concept: Mapped[Optional[str]] = mapped_column( - String(50) - ) # CONCEPTODELAPARTIDA - - # Review dispatch - review_dispatch: Mapped[Optional[str]] = mapped_column(String(10)) # REVISARDESP - - # Take component from PT - take_component_pt: Mapped[Optional[int]] = mapped_column(Integer) # TOMARCOMOPT - - # Pallet - pallet2: Mapped[Optional[int]] = mapped_column(SmallInteger) # PALLET2 - - # Wildcard field - wildcard_field: Mapped[Optional[str]] = mapped_column(String(100)) # CAMPOCOMODIN - - # Relationships - item: Mapped["Item"] = relationship(back_populates="lines") - financial: Mapped[Optional["LineFinancial"]] = relationship( - back_populates="line", cascade="all, delete-orphan", uselist=False - ) - quantity: Mapped[Optional["LineQuantity"]] = relationship( - back_populates="line", cascade="all, delete-orphan", uselist=False - ) - customs: Mapped[Optional["LineCustom"]] = relationship( - back_populates="line", cascade="all, delete-orphan", uselist=False - ) - description: Mapped[Optional["LineDescription"]] = relationship( - back_populates="line", cascade="all, delete-orphan", uselist=False - ) - reference: Mapped[Optional["LineReference"]] = relationship( - back_populates="line", cascade="all, delete-orphan", uselist=False - ) - class_info: Mapped[Optional["Class"]] = relationship( - "api.v1.modules.a76.classes.models.Class", - foreign_keys=[class_id], - viewonly=True, - ) - unit_of_measure_info: Mapped[Optional["UnitOfMeasure"]] = relationship( - "api.v1.modules.a76.general_catalogs.units_of_measure.models.UnitOfMeasure", - foreign_keys=[unit_of_measure], - viewonly=True, - ) - fa_data: Mapped[Optional["FaLineItem"]] = relationship( - "FaLineItem", - back_populates="master_info", - cascade="all, delete-orphan", - uselist=False, - ) - part_info: Mapped[Optional["api.v1.modules.a76.parts.models.Part"]] = relationship( - "api.v1.modules.a76.parts.models.Part", - foreign_keys=[part_number], - viewonly=True, - ) diff --git a/backend/api/v1/modules/a76/items/line_items/schemas.py b/backend/api/v1/modules/a76/items/line_items/schemas.py deleted file mode 100644 index 5c23910a..00000000 --- a/backend/api/v1/modules/a76/items/line_items/schemas.py +++ /dev/null @@ -1,278 +0,0 @@ -from decimal import Decimal -from typing import Optional, Any -from pydantic import BaseModel, Field, ConfigDict, field_validator, model_validator - -# Import nested schemas -from ..line_customs.schemas import ( - LineCustomCreate, - LineCustomUpdate, - LineCustomResponse, -) -from ..line_descriptions.schemas import ( - LineDescriptionCreate, - LineDescriptionUpdate, - LineDescriptionResponse, -) -from ..line_quantities.schemas import ( - LineQuantityCreate, - LineQuantityUpdate, - LineQuantityResponse, -) -from ..line_financials.schemas import ( - LineFinancialCreate, - LineFinancialUpdate, - LineFinancialResponse, -) -from ..line_references.schemas import ( - LineReferenceCreate, - LineReferenceUpdate, - LineReferenceResponse, -) - -from api.v1.modules.a24.fa.fa_item_lines.dto import ( - FaLineItemCreateDTO, - FaLineItemUpdateDTO, - FaLineItemResponseDTO, -) - - -# ============================================================================ -# LINE ITEM SCHEMAS -# ============================================================================ - - -class LineItemBase(BaseModel): - """Base schema for line items""" - - model_config = ConfigDict(populate_by_name=True) - - line_number: int = Field(..., description="Line number") - - # Part identification - part_number_id: Optional[int] = Field( - None, description="Part number", alias="part_number", serialization_alias="part_number_id" - ) - component_part_number_id: Optional[int] = Field( - None, description="Component part number", alias="component_part_number", serialization_alias="component_part_number_id" - ) - class_id: Optional[int] = Field(None, description="Class code") - - # Unit of measure - unit_of_measure: Optional[int] = Field(None, description="Unit of measure") - alternate_unit: Optional[int] = Field(None, description="Alternate unit") - uma_key: Optional[str] = Field(None, max_length=2, description="UMA key") - auxiliary_unit: Optional[str] = Field( - None, max_length=5, description="Auxiliary unit" - ) - - # Permits and certificates - permit_number: Optional[str] = Field( - None, max_length=20, description="Permit number" - ) - page_line: Optional[str] = Field(None, max_length=10, description="Page line") - has_certificate: Optional[bool] = Field(None, description="Has certificate") - certificate_number: Optional[str] = Field( - None, max_length=10, description="Certificate number" - ) - octave_permit: Optional[str] = Field( - None, max_length=20, description="Octave permit" - ) - permits_ped: Optional[str] = Field(None, max_length=500, description="PED permits") - - # FDA - has_fda_code: Optional[bool] = Field(None, description="Has FDA code") - fda_key: Optional[str] = Field(None, max_length=10, description="FDA key") - - # Special flags - is_military_mcia: Optional[bool] = Field( - None, description="Is military merchandise" - ) - - # IV32 - iv32_type_key: Optional[str] = Field( - None, max_length=5, description="IV32 type key" - ) - iv32_number: Optional[str] = Field(None, max_length=35, description="IV32 number") - - # Export specific - scrap_invoice: Optional[str] = Field( - None, max_length=15, description="Scrap invoice" - ) - consecutive_destination: Optional[int] = Field( - None, description="Consecutive destination" - ) - ctm_section: Optional[str] = Field(None, max_length=3, description="CTM section") - - # Tax payment - tax_payment: Optional[bool] = Field(None, description="Tax payment") - payment_method: Optional[str] = Field( - None, max_length=9, description="Payment method" - ) - igi_amount: Optional[Decimal] = Field(None, description="IGI amount") - igi_payment_method: Optional[str] = Field( - None, max_length=9, description="IGI payment method" - ) - - # FCC - fcc_key: Optional[str] = Field(None, max_length=30, description="FCC key") - - # Valuation method - valuation_method: Optional[str] = Field( - None, max_length=2, description="Valuation method" - ) - valuation_determined_value: Optional[Decimal] = Field( - None, description="Valuation determined value" - ) - valuation_reason: Optional[str] = Field( - None, max_length=500, description="Valuation reason" - ) - - # Container rules - container_rule: Optional[str] = Field( - None, max_length=50, description="Container rule" - ) - container_parts_ii: Optional[str] = Field( - None, max_length=50, description="Container parts II" - ) - - # APHIS - consecutive_aphis: Optional[int] = Field(None, description="Consecutive APHIS") - - # BOM/Commercial - bom_version: Optional[int] = Field(None, description="BOM version") - bill_version: Optional[int] = Field(None, description="Bill version") - - # TLCAN value - tlcan_value: Optional[Decimal] = Field(None, description="TLCAN value") - - # Identifier - identifier: Optional[str] = Field(None, max_length=2, description="Identifier") - - # Validation fields - validation_zero: Optional[int] = Field(None, description="Validation zero") - validation_one: Optional[int] = Field(None, description="Validation one") - - # Material type - material_type: Optional[str] = Field( - None, max_length=50, description="Material type" - ) - - # Order concept - order_type: Optional[str] = Field(None, max_length=50, description="Order type") - line_concept: Optional[str] = Field(None, max_length=50, description="Line concept") - - # Review dispatch - review_dispatch: Optional[str] = Field( - None, max_length=10, description="Review dispatch" - ) - - # Take component from PT - take_component_pt: Optional[int] = Field(None, description="Take component from PT") - - # Pallet - pallet2: Optional[int] = Field(None, description="Pallet 2") - - # Wildcard field - wildcard_field: Optional[str] = Field( - None, max_length=100, description="Wildcard field" - ) - - -class LineItemCreate(LineItemBase): - """Schema for creating line item with all nested data""" - - financial: Optional[LineFinancialCreate] = Field( - None, description="Financial data for this line" - ) - quantity: Optional[LineQuantityCreate] = Field( - None, description="Quantity data for this line" - ) - customs: Optional[LineCustomCreate] = Field( - None, description="Customs data for this line" - ) - description: Optional[LineDescriptionCreate] = Field( - None, description="Description data for this line" - ) - reference: Optional[LineReferenceCreate] = Field( - None, description="Reference data for this line" - ) - fa_data: Optional[FaLineItemCreateDTO] = Field( - None, description="Fixed Asset data for this line" - ) - - -class LineItemUpdate(LineItemBase): - """Schema for updating line item with all nested data""" - - line_number: Optional[int] = Field(None, description="Line number") - financial: Optional[LineFinancialUpdate] = Field( - None, description="Financial data for this line" - ) - quantity: Optional[LineQuantityUpdate] = Field( - None, description="Quantity data for this line" - ) - customs: Optional[LineCustomUpdate] = Field( - None, description="Customs data for this line" - ) - description: Optional[LineDescriptionUpdate] = Field( - None, description="Description data for this line" - ) - reference: Optional[LineReferenceUpdate] = Field( - None, description="Reference data for this line" - ) - fa_data: Optional[FaLineItemUpdateDTO] = Field( - None, description="Fixed Asset data for this line" - ) - - -class LineItemResponse(LineItemBase): - """Schema for line item response with all nested data""" - - id: int - item_id: int - financial: Optional[LineFinancialResponse] = None - quantity: Optional[LineQuantityResponse] = None - customs: Optional[LineCustomResponse] = None - description: Optional[LineDescriptionResponse] = None - reference: Optional[LineReferenceResponse] = None - fa_data: Optional[FaLineItemResponseDTO] = None - - # Fields populated from relationships - class_code: Optional[str] = None - class_description: Optional[str] = None - unit_of_measure_code: Optional[str] = None - - model_config = ConfigDict(from_attributes=True) - - @model_validator(mode="before") - @classmethod - def extract_relationship_info(cls, data: Any) -> Any: - """Extract class_code, class_description and unit_of_measure_code from relationships""" - if isinstance(data, dict): - return data - - # It's an ORM object - result = {} - for key in cls.model_fields.keys(): - if hasattr(data, key): - result[key] = getattr(data, key) - - # Map model field names to schema field names for aliased fields - if hasattr(data, "part_number"): - result["part_number_id"] = data.part_number - if hasattr(data, "component_part_number"): - result["component_part_number_id"] = data.component_part_number - - # Extract class info - if hasattr(data, "class_info") and data.class_info is not None: - result["class_code"] = data.class_info.class_code - result["class_description"] = data.class_info.description_es - - # Extract unit of measure code - if ( - hasattr(data, "unit_of_measure_info") - and data.unit_of_measure_info is not None - ): - result["unit_of_measure_code"] = data.unit_of_measure_info.code - - return result diff --git a/backend/api/v1/modules/a76/items/line_quantities/models.py b/backend/api/v1/modules/a76/items/line_quantities/models.py index 24831f9d..d21e8835 100644 --- a/backend/api/v1/modules/a76/items/line_quantities/models.py +++ b/backend/api/v1/modules/a76/items/line_quantities/models.py @@ -7,7 +7,7 @@ from core.database import Base from api.v1.modules.a76.general_catalogs.packages.models import Package if TYPE_CHECKING: - from ..line_items.models import LineItem + from ..models import LineItem class LineQuantity(Base): """ diff --git a/backend/api/v1/modules/a76/items/line_references/models.py b/backend/api/v1/modules/a76/items/line_references/models.py index 1402795c..608d0c83 100644 --- a/backend/api/v1/modules/a76/items/line_references/models.py +++ b/backend/api/v1/modules/a76/items/line_references/models.py @@ -4,7 +4,7 @@ from sqlalchemy.orm import Mapped, mapped_column, relationship from core.database import Base if TYPE_CHECKING: - from ..line_items.models import LineItem + from ..models import LineItem class LineReference(Base): """ diff --git a/backend/api/v1/modules/a76/items/models.py b/backend/api/v1/modules/a76/items/models.py index 53e75cfd..7da837c3 100644 --- a/backend/api/v1/modules/a76/items/models.py +++ b/backend/api/v1/modules/a76/items/models.py @@ -3,58 +3,229 @@ Normalized Database Schema for SCAF (Fixed Assets) and SCAII (Parts Inventory) SQLAlchemy v2 - Annex 24 Compliance """ -from typing import Optional, TYPE_CHECKING, List -from sqlalchemy import Boolean, String, Integer, ForeignKey +from typing import Optional, TYPE_CHECKING +from core.database import Base +from decimal import Decimal +from sqlalchemy import Boolean, String, Integer, Numeric, SmallInteger, ForeignKey from sqlalchemy.orm import Mapped, mapped_column, relationship from api.v1.common.base_models import TenantScopedMixin, TimestampMixin from core.database import Base +from api.v1.modules.a76.classes.models import Class +from api.v1.modules.a76.general_catalogs.units_of_measure.models import UnitOfMeasure + if TYPE_CHECKING: - from .line_items.models import LineItem + from .line_financials.models import LineFinancial + from .line_quantities.models import LineQuantity + from .line_customs.models import LineCustom + from .line_descriptions.models import LineDescription + from .line_references.models import LineReference + from api.v1.modules.a24.fa.fa_item_lines.models import FaLineItem + from api.v1.modules.a76.parts.models import Part + from api.v1.modules.a76.invoices.models import InvoiceHeader # ============================================================================ # CORE ENTITIES # ============================================================================ -class Item(Base, TenantScopedMixin, TimestampMixin): +class LineItem(Base, TenantScopedMixin, TimestampMixin): """ Unified item header table for all import/export operations Consolidates headers from both SCAF and SCAII systems """ - __tablename__ = "items" + + __tablename__ = "item_lines" __table_args__ = { "schema": "a76", } id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True) - invoice_id: Mapped[int] = mapped_column(ForeignKey("a76.invoice_header.id")) # CONSECUTIVO + invoice_id: Mapped[int] = mapped_column( + ForeignKey("a76.invoice_header.id") + ) # CONSECUTIVO + + line_number: Mapped[int] = mapped_column(Integer) # LINEAIMPO/LINEAEXPO/LINEA + + # Part identification + part_number_id: Mapped[Optional[int]] = mapped_column( + Integer, ForeignKey("a76.parts.id") + ) # NUMPARTE + component_part_number_id: Mapped[Optional[int]] = mapped_column( + Integer, ForeignKey("a76.parts.id") + ) # NUMPARTECOM + class_id: Mapped[Optional[int]] = mapped_column( + ForeignKey("a76.classes.id") + ) # CLASE + + # Unit of measure + unit_of_measure: Mapped[Optional[int]] = mapped_column( + ForeignKey("a76.units_of_measure.id") + ) # UNIDADMEDIDA/UNIMED + alternate_unit: Mapped[Optional[int]] = mapped_column( + ForeignKey("a76.units_of_measure.id") + ) # UNIMEDALTERNA + uma_key: Mapped[Optional[str]] = mapped_column(String(2)) # CLAVEUMA + auxiliary_unit: Mapped[Optional[str]] = mapped_column(String(5)) # UNIMEDAUXILIAR + + # Permits and certificates + permit_number: Mapped[Optional[str]] = mapped_column(String(20)) # NUMPERMISO + page_line: Mapped[Optional[str]] = mapped_column(String(10)) # PAGRENGLON + has_certificate: Mapped[Optional[bool]] = mapped_column( + Boolean + ) # TIENECO/CERTORIGEN + certificate_number: Mapped[Optional[str]] = mapped_column( + String(10) + ) # NOCERTIFICADO + octave_permit: Mapped[Optional[str]] = mapped_column(String(20)) # PERMISOROCTAVA + permits_ped: Mapped[Optional[str]] = mapped_column(String(500)) # PERMISOSPED + + # FDA + has_fda_code: Mapped[Optional[bool]] = mapped_column(Boolean) # LLEVACODFDA + fda_key: Mapped[Optional[str]] = mapped_column(String(10)) # CLAVEFDA + + # Special flags + is_military_mcia: Mapped[Optional[bool]] = mapped_column(Boolean) # ESMCIAMILITAR + + # IV32 (Tax identification) + iv32_type_key: Mapped[Optional[str]] = mapped_column(String(5)) # CLAVETIPOIV32 + iv32_number: Mapped[Optional[str]] = mapped_column(String(35)) # NUMEROIV32 + + # IN CASE OF EXPO + scrap_invoice: Mapped[Optional[str]] = mapped_column(String(15)) # FACTURASCRAP + consecutive_destination: Mapped[Optional[int]] = mapped_column( + Integer + ) # CONSECUTIVODES + ctm_section: Mapped[Optional[str]] = mapped_column(String(3)) # APARTADOCTM + + # Tax payment + tax_payment: Mapped[Optional[bool]] = mapped_column(Boolean) # PAGOIMPUESTO + payment_method: Mapped[Optional[str]] = mapped_column( + String(9) + ) # FORMAPAGO/FORMAPAGOTIGI + igi_amount: Mapped[Optional[Decimal]] = mapped_column(Numeric(23, 8)) # MONTOIGI + igi_payment_method: Mapped[Optional[str]] = mapped_column( + String(9) + ) # FORMAPAGOTIGI + + # FCC + fcc_key: Mapped[Optional[str]] = mapped_column(String(30)) # CLAVEFCC + + # Valuation method + valuation_method: Mapped[Optional[str]] = mapped_column(String(2)) # METVALOR + valuation_determined_value: Mapped[Optional[Decimal]] = mapped_column( + Numeric(29, 8) + ) # METVALORVALORDETERMINADO/METVALORACIONVALORDETERMINADO + valuation_reason: Mapped[Optional[str]] = mapped_column( + String(500) + ) # METVALORMOTIVODEUSO/METVALORACIONMOTIVODEUSO + + # Container rules + container_rule: Mapped[Optional[str]] = mapped_column(String(50)) # CONTENEDORREGLA + container_parts_ii: Mapped[Optional[str]] = mapped_column( + String(50) + ) # CONTENEDORPARTESII + + # APHIS + consecutive_aphis: Mapped[Optional[int]] = mapped_column( + Integer + ) # CONSECUTIVOAPHIS + + # BOM/Commercial + bom_version: Mapped[Optional[int]] = mapped_column(Integer) # VERSIONBOM + bill_version: Mapped[Optional[int]] = mapped_column(Integer) # VERSIONBILL + + # TLCAN value + tlcan_value: Mapped[Optional[Decimal]] = mapped_column(Numeric(23, 8)) # VALORTLCAN + + # Identifier + identifier: Mapped[Optional[str]] = mapped_column(String(2)) # IDENTIFICADOR + + # Validation fields + validation_zero: Mapped[Optional[int]] = mapped_column(Integer) # VALIDACIONZERO + validation_one: Mapped[Optional[int]] = mapped_column(Integer) # VALIDACIONUNO + + # Material type + material_type: Mapped[Optional[str]] = mapped_column( + String(50) + ) # TIPOMAT/TIPODENUMPARTE + + # Order concept + order_type: Mapped[Optional[str]] = mapped_column(String(50)) # TIPODEORDEN + line_concept: Mapped[Optional[str]] = mapped_column( + String(50) + ) # CONCEPTODELAPARTIDA + + # Review dispatch + review_dispatch: Mapped[Optional[str]] = mapped_column(String(10)) # REVISARDESP + + # Take component from PT + take_component_pt: Mapped[Optional[int]] = mapped_column(Integer) # TOMARCOMOPT + + # Pallet + pallet2: Mapped[Optional[int]] = mapped_column(SmallInteger) # PALLET2 + + # Wildcard field + wildcard_field: Mapped[Optional[str]] = mapped_column(String(100)) # CAMPOCOMODIN # Item references - reference_number: Mapped[Optional[str]] = mapped_column( - String(20)) # NUMREFERENCIA - order: Mapped[Optional[str]] = mapped_column( - String(50)) # ORDENCOMPRA / ORDENVENTA + reference_number: Mapped[Optional[str]] = mapped_column(String(20)) # NUMREFERENCIA + order: Mapped[Optional[str]] = mapped_column(String(50)) # ORDENCOMPRA / ORDENVENTA guide_number: Mapped[Optional[str]] = mapped_column( - String(50)) # NUMEROGUIA/NUMERODEGUIA + String(50) + ) # NUMEROGUIA/NUMERODEGUIA # Dates depreciation_date: Mapped[Optional[int]] = mapped_column( - Integer) # FECHADEPRECIACION + Integer + ) # FECHADEPRECIACION # Administrative fields - rectification: Mapped[Optional[bool]] = mapped_column( - Boolean) # RECTIFICACION + rectification: Mapped[Optional[bool]] = mapped_column(Boolean) # RECTIFICACION warehouse: Mapped[Optional[str]] = mapped_column(String(30)) # BODEGA - location: Mapped[Optional[str]] = mapped_column( - String(200)) # LOCALIZACION + location: Mapped[Optional[str]] = mapped_column(String(200)) # LOCALIZACION - # Relationships (one-to-many) - lines: Mapped[List["LineItem"]] = relationship( - "LineItem", back_populates="item", cascade="all, delete-orphan") - invoice: Mapped["InvoiceHeader"] = relationship("InvoiceHeader") + # Relationships + financial: Mapped[Optional["LineFinancial"]] = relationship( + back_populates="line", cascade="all, delete-orphan", uselist=False + ) + quantity: Mapped[Optional["LineQuantity"]] = relationship( + back_populates="line", cascade="all, delete-orphan", uselist=False + ) + customs: Mapped[Optional["LineCustom"]] = relationship( + back_populates="line", cascade="all, delete-orphan", uselist=False + ) + description: Mapped[Optional["LineDescription"]] = relationship( + back_populates="line", cascade="all, delete-orphan", uselist=False + ) + reference: Mapped[Optional["LineReference"]] = relationship( + back_populates="line", cascade="all, delete-orphan", uselist=False + ) + class_info: Mapped[Optional["Class"]] = relationship( + "api.v1.modules.a76.classes.models.Class", + foreign_keys=[class_id], + viewonly=True, + ) + unit_of_measure_info: Mapped[Optional["UnitOfMeasure"]] = relationship( + "api.v1.modules.a76.general_catalogs.units_of_measure.models.UnitOfMeasure", + foreign_keys=[unit_of_measure], + viewonly=True, + ) + fa_data: Mapped[Optional["FaLineItem"]] = relationship( + "FaLineItem", + back_populates="master_info", + cascade="all, delete-orphan", + uselist=False, + ) + part_info: Mapped[Optional["Part"]] = relationship( + "Part", + foreign_keys=[part_number_id], + viewonly=True, + ) + + # ============================================================================ # SUPPORTING TABLES # ============================================================================ @@ -65,6 +236,7 @@ class PackingList(Base, TenantScopedMixin, TimestampMixin): Packing list items From: SPartidasPackingList """ + __tablename__ = "packing_lists" __table_args__ = { "schema": "a76", @@ -73,7 +245,8 @@ class PackingList(Base, TenantScopedMixin, TimestampMixin): id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True) item_line_id: Mapped[int] = mapped_column(Integer) # LINEA packing_list_number: Mapped[Optional[str]] = mapped_column( - String(100)) # NUMPACKINGLIST + String(100) + ) # NUMPACKINGLIST class CTMReceipt(Base, TenantScopedMixin, TimestampMixin): @@ -81,6 +254,7 @@ class CTMReceipt(Base, TenantScopedMixin, TimestampMixin): CTM Receipt lines (temporary manufacturing) From: SPartidasReciboCTM """ + __tablename__ = "ctm_receipts" __table_args__ = { "schema": "a76", @@ -88,11 +262,11 @@ class CTMReceipt(Base, TenantScopedMixin, TimestampMixin): id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True) receipt_line: Mapped[int] = mapped_column( - ForeignKey("a76.item_lines.id")) # LINEARECIBO + ForeignKey("a76.item_lines.id") + ) # LINEARECIBO option: Mapped[Optional[str]] = mapped_column(String(3)) # OPCION - exit_invoice: Mapped[Optional[str]] = mapped_column( - String(19)) # FACTURASALIDA + exit_invoice: Mapped[Optional[str]] = mapped_column(String(19)) # FACTURASALIDA class SubassemblyEntry(Base, TenantScopedMixin, TimestampMixin): @@ -100,6 +274,7 @@ class SubassemblyEntry(Base, TenantScopedMixin, TimestampMixin): Subassembly/Submanufacturing Entry lines From: SPartidasEntradaSM """ + __tablename__ = "subassembly_entries" __table_args__ = { "schema": "a76", @@ -107,10 +282,10 @@ class SubassemblyEntry(Base, TenantScopedMixin, TimestampMixin): id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True) remission_line: Mapped[int] = mapped_column(Integer) # LINEAREMISION - exit_invoice: Mapped[Optional[str]] = mapped_column( -String(15)) # FACTURASALIDA + exit_invoice: Mapped[Optional[str]] = mapped_column(String(15)) # FACTURASALIDA exit_line: Mapped[Optional[int]] = mapped_column(Integer) # LINEASALIDA + # ============================================================================ # INDEXES AND CONSTRAINTS # ============================================================================ @@ -189,8 +364,8 @@ MIGRATION STRATEGY FROM ORIGINAL TABLES TO NORMALIZED SCHEMA: 7. QUERYING EXAMPLES: ```python # Get all imports (both systems) - session.query(Item).filter( - Item.item_type.in_(['IMPORT', 'EQUIPMENT_IMPORT_TEMP', 'EQUIPMENT_IMPORT_DEF']) + session.query(LineItem).filter( + LineItem.item_type.in_(['IMPORT', 'EQUIPMENT_IMPORT_TEMP', 'EQUIPMENT_IMPORT_DEF']) ) # Get all lines for a specific part across all items @@ -199,8 +374,8 @@ MIGRATION STRATEGY FROM ORIGINAL TABLES TO NORMALIZED SCHEMA: ) # Get SCAF equipment with depreciation - session.query(Item).join(LineItem).filter( - Item.system_origin == 'SCAF', + session.query(LineItem).join(LineItem).filter( + LineItem.system_origin == 'SCAF', LineItem.value_depreciated_usd.isnot(None) ) ``` diff --git a/backend/api/v1/modules/a76/items/routes.py b/backend/api/v1/modules/a76/items/routes.py index 4bf677e3..ee1c9e14 100644 --- a/backend/api/v1/modules/a76/items/routes.py +++ b/backend/api/v1/modules/a76/items/routes.py @@ -11,10 +11,10 @@ from core.database import get_core_db from core.security import get_current_user, validate_access_to_resource from .schemas import ( - ItemCreate, - ItemUpdate, - ItemResponse, - ItemListResponse, + LineItemCreate, + LineItemUpdate, + LineItemResponse, + LineItemListResponse, ) from .service import ItemService @@ -25,9 +25,9 @@ router = APIRouter(prefix="/items", tags=["Items"]) # ITEM CRUD ENDPOINTS # ============================================================================ -@router.post("/", response_model=ItemResponse, status_code=status.HTTP_201_CREATED) +@router.post("/", response_model=LineItemResponse, status_code=status.HTTP_201_CREATED) async def create_item( - item_data: ItemCreate, + item_data: LineItemCreate, company_id: int = Query(..., description="Company ID"), db: Session = Depends(get_core_db), current_user: Dict[str, Any] = Depends(get_current_user), @@ -36,7 +36,6 @@ async def create_item( Create a new item with multiple line items and their nested data The item follows a one-to-many relationship structure: - - Item has many LineItems - Each LineItem has one LineFinancial - Each LineItem has one LineQuantity - Each LineItem has one LineCustoms @@ -49,7 +48,7 @@ async def create_item( return service.create(db, item_data, tenant_id, company_id) -@router.get("/{item_id}", response_model=ItemResponse) +@router.get("/{item_id}", response_model=LineItemResponse) async def get_item( item_id: int = Path(..., description="Item ID"), company_id: int = Query(..., description="Company ID"), @@ -70,7 +69,7 @@ async def get_item( return item -@router.get("/", response_model=ItemListResponse) +@router.get("/", response_model=LineItemListResponse) async def list_items( company_id: int = Query(..., description="Company ID"), skip: int = Query(0, ge=0, description="Number of records to skip"), @@ -109,7 +108,7 @@ async def list_items( items, total = service.get_all( db, tenant_id, company_id, skip, limit, filters) - return ItemListResponse( + return LineItemListResponse( total=total, items=items, skip=skip, @@ -117,10 +116,10 @@ async def list_items( ) -@router.put("/{item_id}", response_model=ItemResponse) +@router.put("/{item_id}", response_model=LineItemResponse) async def update_item( item_id: int = Path(..., description="Item ID"), - item_data: ItemUpdate = ..., + item_data: LineItemUpdate = ..., company_id: int = Query(..., description="Company ID"), db: Session = Depends(get_core_db), current_user: Dict[str, Any] = Depends(get_current_user), @@ -168,7 +167,7 @@ async def delete_item( # ADDITIONAL ENDPOINTS FOR INVOICE # ============================================================================ -@router.get("/invoice/{invoice_id}/items", response_model=ItemListResponse) +@router.get("/invoice/{invoice_id}/items", response_model=LineItemListResponse) async def get_items_by_invoice( invoice_id: int = Path(..., description="Invoice ID"), company_id: int = Query(..., description="Company ID"), @@ -186,7 +185,7 @@ async def get_items_by_invoice( items, total = service.get_by_invoice( db, invoice_id, tenant_id, company_id, skip, limit) - return ItemListResponse( + return LineItemListResponse( total=total, items=items, skip=skip, diff --git a/backend/api/v1/modules/a76/items/schemas.py b/backend/api/v1/modules/a76/items/schemas.py index 3503bab1..cad3a134 100644 --- a/backend/api/v1/modules/a76/items/schemas.py +++ b/backend/api/v1/modules/a76/items/schemas.py @@ -1,19 +1,46 @@ """ Schemas for Items and related entities Complete nested one-to-one structure: -Item -> LineItem -> LineFinancial -> LineQuantity -> LineCustoms -> LineDescription -> LineReference +LineItem -> LineFinancial -> LineQuantity -> LineCustoms -> LineDescription -> LineReference """ -from typing import Optional +from typing import Any, Optional from datetime import datetime from decimal import Decimal -from pydantic import BaseModel, Field, ConfigDict +from pydantic import BaseModel, Field, ConfigDict, model_validator # Import schemas from individual modules -from .line_items.schemas import ( - LineItemCreate, - LineItemUpdate, - LineItemResponse +# Import nested schemas +from .line_customs.schemas import ( + LineCustomCreate, + LineCustomUpdate, + LineCustomResponse, +) +from .line_descriptions.schemas import ( + LineDescriptionCreate, + LineDescriptionUpdate, + LineDescriptionResponse, +) +from .line_quantities.schemas import ( + LineQuantityCreate, + LineQuantityUpdate, + LineQuantityResponse, +) +from .line_financials.schemas import ( + LineFinancialCreate, + LineFinancialUpdate, + LineFinancialResponse, +) +from .line_references.schemas import ( + LineReferenceCreate, + LineReferenceUpdate, + LineReferenceResponse, +) + +from api.v1.modules.a24.fa.fa_item_lines.dto import ( + FaLineItemCreateDTO, + FaLineItemUpdateDTO, + FaLineItemResponseDTO, ) @@ -21,53 +48,294 @@ from .line_items.schemas import ( # ITEM SCHEMAS # ============================================================================ -class ItemBase(BaseModel): + +class LineItemBase(BaseModel): """Base schema for items""" + + model_config = ConfigDict(populate_by_name=True) + invoice_id: int = Field(..., description="Invoice ID") + line_number: int = Field(..., description="Line number") + + # Part identification + part_number_id: Optional[int] = Field( + None, + description="Part number", + alias="part_number", + serialization_alias="part_number_id", + ) + component_part_number_id: Optional[int] = Field( + None, + description="Component part number", + alias="component_part_number", + serialization_alias="component_part_number_id", + ) + class_id: Optional[int] = Field(None, description="Class code") + + # Unit of measure + unit_of_measure: Optional[int] = Field(None, description="Unit of measure") + alternate_unit: Optional[int] = Field(None, description="Alternate unit") + uma_key: Optional[str] = Field(None, max_length=2, description="UMA key") + auxiliary_unit: Optional[str] = Field( + None, max_length=5, description="Auxiliary unit" + ) + + # Permits and certificates + permit_number: Optional[str] = Field( + None, max_length=20, description="Permit number" + ) + page_line: Optional[str] = Field(None, max_length=10, description="Page line") + has_certificate: Optional[bool] = Field(None, description="Has certificate") + certificate_number: Optional[str] = Field( + None, max_length=10, description="Certificate number" + ) + octave_permit: Optional[str] = Field( + None, max_length=20, description="Octave permit" + ) + permits_ped: Optional[str] = Field(None, max_length=500, description="PED permits") + + # FDA + has_fda_code: Optional[bool] = Field(None, description="Has FDA code") + fda_key: Optional[str] = Field(None, max_length=10, description="FDA key") + + # Special flags + is_military_mcia: Optional[bool] = Field( + None, description="Is military merchandise" + ) + + # IV32 + iv32_type_key: Optional[str] = Field( + None, max_length=5, description="IV32 type key" + ) + iv32_number: Optional[str] = Field(None, max_length=35, description="IV32 number") + + # Export specific + scrap_invoice: Optional[str] = Field( + None, max_length=15, description="Scrap invoice" + ) + consecutive_destination: Optional[int] = Field( + None, description="Consecutive destination" + ) + ctm_section: Optional[str] = Field(None, max_length=3, description="CTM section") + + # Tax payment + tax_payment: Optional[bool] = Field(None, description="Tax payment") + payment_method: Optional[str] = Field( + None, max_length=9, description="Payment method" + ) + igi_amount: Optional[Decimal] = Field(None, description="IGI amount") + igi_payment_method: Optional[str] = Field( + None, max_length=9, description="IGI payment method" + ) + + # FCC + fcc_key: Optional[str] = Field(None, max_length=30, description="FCC key") + + # Valuation method + valuation_method: Optional[str] = Field( + None, max_length=2, description="Valuation method" + ) + valuation_determined_value: Optional[Decimal] = Field( + None, description="Valuation determined value" + ) + valuation_reason: Optional[str] = Field( + None, max_length=500, description="Valuation reason" + ) + + # Container rules + container_rule: Optional[str] = Field( + None, max_length=50, description="Container rule" + ) + container_parts_ii: Optional[str] = Field( + None, max_length=50, description="Container parts II" + ) + + # APHIS + consecutive_aphis: Optional[int] = Field(None, description="Consecutive APHIS") + + # BOM/Commercial + bom_version: Optional[int] = Field(None, description="BOM version") + bill_version: Optional[int] = Field(None, description="Bill version") + + # TLCAN value + tlcan_value: Optional[Decimal] = Field(None, description="TLCAN value") + + # Identifier + identifier: Optional[str] = Field(None, max_length=2, description="Identifier") + + # Validation fields + validation_zero: Optional[int] = Field(None, description="Validation zero") + validation_one: Optional[int] = Field(None, description="Validation one") + + # Material type + material_type: Optional[str] = Field( + None, max_length=50, description="Material type" + ) + + # Order concept + order_type: Optional[str] = Field(None, max_length=50, description="Order type") + line_concept: Optional[str] = Field(None, max_length=50, description="Line concept") + + # Review dispatch + review_dispatch: Optional[str] = Field( + None, max_length=10, description="Review dispatch" + ) + + # Take component from PT + take_component_pt: Optional[int] = Field(None, description="Take component from PT") + + # Pallet + pallet2: Optional[int] = Field(None, description="Pallet 2") + + # Wildcard field + wildcard_field: Optional[str] = Field( + None, max_length=100, description="Wildcard field" + ) reference_number: Optional[str] = Field( - None, max_length=20, description="Reference number") + None, max_length=20, description="Reference number" + ) order: Optional[str] = Field(None, max_length=50, description="Order") - guide_number: Optional[str] = Field( - None, max_length=50, description="Guide number") + guide_number: Optional[str] = Field(None, max_length=50, description="Guide number") # Dates - depreciation_date: Optional[int] = Field( - None, description="Depreciation date") + depreciation_date: Optional[int] = Field(None, description="Depreciation date") # Administrative fields rectification: Optional[int] = Field(None, description="Rectification") - warehouse: Optional[str] = Field( - None, max_length=30, description="Warehouse") - location: Optional[str] = Field( - None, max_length=200, description="Location") + warehouse: Optional[str] = Field(None, max_length=30, description="Warehouse") + location: Optional[str] = Field(None, max_length=200, description="Location") -class ItemCreate(ItemBase): +class LineItemCreate(LineItemBase): """Schema for creating item with nested lines (one-to-many)""" - lines: Optional[list[LineItemCreate]] = Field( - default=[], description="List of line items") + + # Override base fields - estos se asignan automáticamente en el service + line_number: Optional[int] = Field(None, description="Line number (auto-assigned)") + + financial: Optional[LineFinancialCreate] = Field( + None, description="Financial data for this line" + ) + quantity: Optional[LineQuantityCreate] = Field( + None, description="Quantity data for this line" + ) + customs: Optional[LineCustomCreate] = Field( + None, description="Customs data for this line" + ) + description: Optional[LineDescriptionCreate] = Field( + None, description="Description data for this line" + ) + reference: Optional[LineReferenceCreate] = Field( + None, description="Reference data for this line" + ) + fa_data: Optional[FaLineItemCreateDTO] = Field( + None, description="Fixed Asset data for this line" + ) -class ItemUpdate(ItemBase): +class LineItemUpdate(LineItemBase): """Schema for updating item""" + invoice_id: Optional[int] = Field(None, description="Invoice ID") - lines: Optional[list[LineItemUpdate]] = Field( - None, description="List of line items to update") + # Override base fields - todos opcionales en updates + line_number: Optional[int] = Field(None, description="Line number") + financial: Optional[LineFinancialUpdate] = Field( + None, description="Financial data for this line" + ) + quantity: Optional[LineQuantityUpdate] = Field( + None, description="Quantity data for this line" + ) + customs: Optional[LineCustomUpdate] = Field( + None, description="Customs data for this line" + ) + description: Optional[LineDescriptionUpdate] = Field( + None, description="Description data for this line" + ) + reference: Optional[LineReferenceUpdate] = Field( + None, description="Reference data for this line" + ) + fa_data: Optional[FaLineItemUpdateDTO] = Field( + None, description="Fixed Asset data for this line" + ) -class ItemResponse(ItemBase): - """Schema for item response with nested data (one-to-many)""" +class LineItemResponse(LineItemBase): + """Schema for single item response""" + id: int - lines: list[LineItemResponse] = Field( - default=[], description="List of line items") + invoice_id: int + line_number: int - model_config = ConfigDict(from_attributes=True) + # Part identification + part_number_id: Optional[int] = Field( + None, alias="part_number", serialization_alias="part_number_id" + ) + component_part_number_id: Optional[int] = Field( + None, + alias="component_part_number", + serialization_alias="component_part_number_id", + ) + class_id: Optional[int] = None + + # Nested data + financial: Optional[LineFinancialResponse] = None + quantity: Optional[LineQuantityResponse] = None + customs: Optional[LineCustomResponse] = None + description: Optional[LineDescriptionResponse] = None + reference: Optional[LineReferenceResponse] = None + fa_data: Optional[FaLineItemResponseDTO] = None + + # Fields populated from relationships + class_code: Optional[str] = None + class_description: Optional[str] = None + unit_of_measure_code: Optional[str] = None + + # Additional fields that might be present + reference_number: Optional[str] = None + order: Optional[str] = None + warehouse: Optional[str] = None + location: Optional[str] = None + + model_config = ConfigDict(from_attributes=True, populate_by_name=True) + + @model_validator(mode="before") + @classmethod + def extract_relationship_info(cls, data: Any) -> Any: + """Extract class_code, class_description and unit_of_measure_code from relationships""" + if isinstance(data, dict): + return data + + # It's an ORM object + result = {} + for key in cls.model_fields.keys(): + if hasattr(data, key): + result[key] = getattr(data, key) + + # Map model field names to schema field names for aliased fields + if hasattr(data, "part_number"): + result["part_number_id"] = data.part_number + if hasattr(data, "component_part_number"): + result["component_part_number_id"] = data.component_part_number + + # Extract class info + if hasattr(data, "class_info") and data.class_info is not None: + result["class_code"] = data.class_info.class_code + result["class_description"] = data.class_info.description_es + + # Extract unit of measure code + if ( + hasattr(data, "unit_of_measure_info") + and data.unit_of_measure_info is not None + ): + result["unit_of_measure_code"] = data.unit_of_measure_info.code + + return result -class ItemListResponse(BaseModel): +class LineItemListResponse(BaseModel): """Schema for paginated item list""" + total: int = Field(..., description="Total number of items") - items: list[ItemResponse] = Field(..., description="List of items") + items: list[LineItemResponse] = Field(..., description="List of items") skip: int = Field(..., description="Number of skipped items") limit: int = Field(..., description="Maximum items per page") diff --git a/backend/api/v1/modules/a76/items/service.py b/backend/api/v1/modules/a76/items/service.py index 2efe582a..bf8321af 100644 --- a/backend/api/v1/modules/a76/items/service.py +++ b/backend/api/v1/modules/a76/items/service.py @@ -1,12 +1,15 @@ """ Service layer for Items business logic -Handles CRUD operations for Item with complete one-to-one relationships: -Item -> LineItem -> LineFinancial - -> LineQuantity - -> LineCustoms - -> LineDescription - -> LineReference - -> FaLineItem (Fixed Assets - a24) +Handles CRUD operations for LineItem with complete one-to-one relationships: +LineItem -> LineFinancial + -> LineQuantity + -> LineCustoms + -> LineDescription + -> LineReference + -> FaLineItem (Fixed Assets - a24) + +After refactoring: LineItem is the main entity, representing a single line item in an invoice. +There is no intermediate Item entity anymore. Each LineItem belongs directly to an InvoiceHeader. """ import logging @@ -16,24 +19,23 @@ from sqlalchemy import and_, or_ from sqlalchemy.exc import IntegrityError from sqlalchemy.orm import Session, joinedload +from api.v1.modules.a76.invoices.common.common_validators import ( + invoice_exists_by_id, + invoice_updated, +) from core.exceptions import ErrorCollector from .imports.temporary.validators.create import validate_create from .imports.temporary.validators.update import validate_update -from api.v1.modules.a76.items.line_items.schemas import LineItemCreate, LineItemUpdate - -from .schemas import ItemCreate, ItemUpdate -from .line_items.models import LineItem +from .schemas import LineItemCreate, LineItemUpdate from .line_financials.models import LineFinancial from .line_quantities.models import LineQuantity from .line_customs.models import LineCustom from .line_descriptions.models import LineDescription from .line_references.models import LineReference from api.v1.modules.a24.fa.fa_item_lines.models import FaLineItem -from .models import Item +from .models import LineItem from api.v1.modules.a76.invoices.models import InvoiceHeader -from api.v1.modules.a76.general_catalogs.company.models import Company - logger = logging.getLogger(__name__) @@ -43,27 +45,124 @@ class ItemService: Service for managing Items and related entities with tenant/company isolation """ + @staticmethod + def _get_next_line_number(db: Session, invoice_id: int) -> int: + """Calculate the next line_number for a given invoice based on database.""" + from sqlalchemy import func + + max_line = ( + db.query(func.max(LineItem.line_number)) + .filter(LineItem.invoice_id == invoice_id) + .scalar() + ) + + return 1 if max_line is None else max_line + 1 + + @staticmethod + def _renumber_all_invoice_lines(db: Session, invoice_id: int) -> None: + """Renumber all line_items for a given invoice to be consecutive (1, 2, 3, ...).""" + items = ( + db.query(LineItem) + .filter(LineItem.invoice_id == invoice_id) + .order_by(LineItem.line_number) + .all() + ) + + for idx, item in enumerate(items, start=1): + item.line_number = idx + + @staticmethod + def _lock_invoice( + db: Session, + invoice_id: int, + tenant_id: int, + company_id: int, + errors: ErrorCollector, + ) -> Optional[InvoiceHeader]: + """Lock invoice to prevent concurrent modifications. Returns locked invoice or adds error.""" + try: + invoice = ( + db.query(InvoiceHeader) + .filter( + InvoiceHeader.id == invoice_id, + InvoiceHeader.tenant_id == tenant_id, + InvoiceHeader.company_id == company_id, + ) + .with_for_update() + .first() + ) + + if not invoice: + errors.add_error( + field="invoice_id", + message="La factura no existe o no se pudo bloquear", + code="LOCK_FAILED", + value=str(invoice_id), + ) + return invoice + except Exception as e: + logger.error(f"Error locking invoice {invoice_id}: {e}") + errors.add_error( + field="invoice_id", + message="Error al intentar bloquear la factura", + code="LOCK_ERROR", + ) + return None + + @staticmethod + def _create_line_nested_data( + db: Session, line: LineItem, line_data, tenant_id: int, company_id: int + ) -> None: + """Create all nested data for a line item.""" + nested_models = [ + (line_data.financial, LineFinancial), + (line_data.quantity, LineQuantity), + (line_data.customs, LineCustom), + (line_data.description, LineDescription), + (line_data.reference, LineReference), + ] + + for data, model_class in nested_models: + if data: + nested_dict = ( + data.model_dump(exclude_unset=True) + if hasattr(data, "model_dump") + else data.model_dump() + ) + nested_dict["item_line_id"] = line.id + db.add(model_class(**nested_dict)) + + # FA data uses line.id as primary key + if line_data.fa_data: + fa_dict = line_data.fa_data.model_dump( + exclude_unset=True, exclude={"line_item_id"} + ) + fa_dict.update( + {"id": line.id, "tenant_id": tenant_id, "company_id": company_id} + ) + db.add(FaLineItem(**fa_dict)) + @staticmethod def get_by_id( db: Session, item_id: int, tenant_id: int, company_id: int - ) -> Optional[Item]: + ) -> Optional[LineItem]: """Get an item by ID with tenant/company validation""" return ( - db.query(Item) + db.query(LineItem) .options( - joinedload(Item.lines).joinedload(LineItem.financial), - joinedload(Item.lines).joinedload(LineItem.quantity), - joinedload(Item.lines).joinedload(LineItem.customs), - joinedload(Item.lines).joinedload(LineItem.description), - joinedload(Item.lines).joinedload(LineItem.reference), - joinedload(Item.lines).joinedload(LineItem.class_info), - joinedload(Item.lines).joinedload(LineItem.unit_of_measure_info), - joinedload(Item.lines).joinedload(LineItem.fa_data), + joinedload(LineItem.financial), + joinedload(LineItem.quantity), + joinedload(LineItem.customs), + joinedload(LineItem.description), + joinedload(LineItem.reference), + joinedload(LineItem.class_info), + joinedload(LineItem.unit_of_measure_info), + joinedload(LineItem.fa_data), ) .filter( - Item.id == item_id, - Item.tenant_id == tenant_id, - Item.company_id == company_id, + LineItem.id == item_id, + LineItem.tenant_id == tenant_id, + LineItem.company_id == company_id, ) .first() ) @@ -76,42 +175,42 @@ class ItemService: skip: int = 0, limit: int = 100, filters: Optional[dict] = None, - ) -> Tuple[List[Item], int]: + ) -> Tuple[List[LineItem], int]: """Get all items for a tenant/company with pagination and optional filters""" query = ( - db.query(Item) + db.query(LineItem) .options( - joinedload(Item.lines).joinedload(LineItem.financial), - joinedload(Item.lines).joinedload(LineItem.quantity), - joinedload(Item.lines).joinedload(LineItem.customs), - joinedload(Item.lines).joinedload(LineItem.description), - joinedload(Item.lines).joinedload(LineItem.reference), - joinedload(Item.lines).joinedload(LineItem.class_info), - joinedload(Item.lines).joinedload(LineItem.unit_of_measure_info), - joinedload(Item.lines).joinedload(LineItem.fa_data), + joinedload(LineItem.financial), + joinedload(LineItem.quantity), + joinedload(LineItem.customs), + joinedload(LineItem.description), + joinedload(LineItem.reference), + joinedload(LineItem.class_info), + joinedload(LineItem.unit_of_measure_info), + joinedload(LineItem.fa_data), ) .filter( - Item.tenant_id == tenant_id, - Item.company_id == company_id, + LineItem.tenant_id == tenant_id, + LineItem.company_id == company_id, ) ) # Apply filters if provided if filters: if filters.get("invoice_id"): - query = query.filter(Item.invoice_id == filters["invoice_id"]) + query = query.filter(LineItem.invoice_id == filters["invoice_id"]) if filters.get("item_type"): - query = query.filter(Item.item_type == filters["item_type"]) + query = query.filter(LineItem.item_type == filters["item_type"]) if filters.get("system_origin"): - query = query.filter(Item.system_origin == filters["system_origin"]) + query = query.filter(LineItem.system_origin == filters["system_origin"]) if filters.get("search"): search_term = f"%{filters['search']}%" query = query.filter( or_( - Item.invoice_number.ilike(search_term), - Item.reference_number.ilike(search_term), - Item.order.ilike(search_term), - Item.guide_number.ilike(search_term), + LineItem.invoice_id.ilike(search_term), + LineItem.reference_number.ilike(search_term), + LineItem.order.ilike(search_term), + LineItem.guide_number.ilike(search_term), ) ) @@ -127,22 +226,22 @@ class ItemService: company_id: int, skip: int = 0, limit: int = 100, - ) -> Tuple[List[Item], int]: + ) -> Tuple[List[LineItem], int]: """Get all items for a specific invoice""" query = ( - db.query(Item) + db.query(LineItem) .options( - joinedload(Item.lines).joinedload(LineItem.financial), - joinedload(Item.lines).joinedload(LineItem.quantity), - joinedload(Item.lines).joinedload(LineItem.customs), - joinedload(Item.lines).joinedload(LineItem.description), - joinedload(Item.lines).joinedload(LineItem.reference), - joinedload(Item.lines).joinedload(LineItem.fa_data), + joinedload(LineItem.financial), + joinedload(LineItem.quantity), + joinedload(LineItem.customs), + joinedload(LineItem.description), + joinedload(LineItem.reference), + joinedload(LineItem.fa_data), ) .filter( - Item.invoice_id == invoice_id, - Item.tenant_id == tenant_id, - Item.company_id == company_id, + LineItem.invoice_id == invoice_id, + LineItem.tenant_id == tenant_id, + LineItem.company_id == company_id, ) ) @@ -153,185 +252,88 @@ class ItemService: @staticmethod def create( db: Session, - item_data: ItemCreate, + item_data: LineItemCreate, tenant_id: int, company_id: int, - ) -> Item: + ) -> LineItem: """Create a new item with all related nested data (multiple lines)""" # Validaciones con ErrorCollector errors = ErrorCollector() # Validar que la factura exista y no esté actualizada (si viene invoice_id) - invoice = None - if item_data.invoice_id: - invoice = ( - db.query(InvoiceHeader) - .filter( - InvoiceHeader.id == item_data.invoice_id, - InvoiceHeader.tenant_id == tenant_id, - InvoiceHeader.company_id == company_id, - ) - .first() - ) + if not item_data.invoice_id: + errors.add_required_error(field="invoice_id") + errors.raise_if_errors("Error al crear el item") - if not invoice: - errors.add_error( - field="invoice_id", - message="La factura especificada no existe", - code="NOT_FOUND", - value=str(item_data.invoice_id), - ) + if not invoice_exists_by_id( + db, item_data.invoice_id, tenant_id, company_id, errors + ): + errors.raise_if_errors("Error al crear el item") + if not invoice_updated(db, item_data.invoice_id, tenant_id, company_id, errors): + errors.raise_if_errors("Error al crear el item") - # Validar cada line item que se va a crear - if item_data.lines: - for idx, line_data in enumerate(item_data.lines): - # Convertir a LineItemCreate para validar - line_create = LineItemCreate(**line_data.model_dump()) + # Lock invoice and calculate line number + if not ItemService._lock_invoice( + db, item_data.invoice_id, tenant_id, company_id, errors + ): + errors.raise_if_errors("Error al crear el item") - validate_create(db, line_create, tenant_id, company_id, errors) + # Calculate the next line number for this single item + line_number = ItemService._get_next_line_number(db, item_data.invoice_id) - # Validaciones adicionales específicas del negocio + # Validar el item + validate_create( + db, + item_data, # Schema Pydantic completo + tenant_id, + company_id, + errors, + line_number, + ) - # Validar apóstrofes en número de parte - if line_data.part_number_id and "'" in str(line_data.part_number_id): - errors.add_error( - field=f"lines[{idx}].part_number", - message=f"Advertencia: El Número de Parte contiene apóstrofes y serán omitidos", - code="WARNING_APOSTROPHE", - ) + # Validaciones adicionales específicas del negocio + if item_data.fa_data and item_data.fa_data.is_subitem is None: + errors.add_required_error(field=f"fa_data.is_subitem") - # Validar tipo de partida - if hasattr(line_data, "item_type"): - tipo_partida = line_data.item_type - if tipo_partida and tipo_partida not in ["N", "S"]: - errors.add_error( - field=f"lines[{idx}].item_type", - message=f"Tipo de partida debe ser 'N' (Normal) o 'S' (Subpartida), recibido: '{tipo_partida}'", - code="INVALID_ITEM_TYPE", - value=str(tipo_partida), - ) + if item_data.fa_data and item_data.fa_data.subitem_number is None: + errors.add_required_error(field=f"fa_data.subitem_number") - # Si es subpartida (S), debe tener partida principal - if tipo_partida == "S": - if ( - not hasattr(line_data, "main_line_id") - or not line_data.main_line_id - ): - errors.add_error( - field=f"lines[{idx}].main_line_id", - message="Las subpartidas (tipo 'S') deben tener una partida principal", - code="MISSING_MAIN_LINE", - ) - - # Validar que el line_number sea consecutivo (si se especifica) - if hasattr(line_data, "line_number") and line_data.line_number: - expected_line = idx + 1 - if line_data.line_number != expected_line: - errors.add_error( - field=f"lines[{idx}].line_number", - message=f"Número de línea esperado: {expected_line}, recibido: {line_data.line_number}", - code="INVALID_LINE_SEQUENCE", - value=str(line_data.line_number), - ) # Si hay errores, lanzar excepción ANTES de intentar crear errors.raise_if_errors("Error al crear el item") try: - # Extract lines data - lines_data = item_data.lines or [] - item_dict = item_data.model_dump(exclude={"lines"}) + # Prepare item data + item_dict = item_data.model_dump( + exclude={ + "financial", + "quantity", + "customs", + "description", + "reference", + "fa_data", + } + ) - # Add tenant and company - item_dict["tenant_id"] = tenant_id - item_dict["company_id"] = company_id + # Add tenant, company and line number + item_dict.update( + { + "tenant_id": tenant_id, + "company_id": company_id, + "line_number": line_number, + } + ) # Create the item - db_item = Item(**item_dict) + db_item = LineItem(**item_dict) db.add(db_item) db.flush() # Get the item ID - # Create line items if provided - for idx, line_data in enumerate(lines_data): - # Extract nested data from line - financial_data = line_data.financial - quantity_data = line_data.quantity - customs_data = line_data.customs - description_data = line_data.description - reference_data = line_data.reference - fa_data = line_data.fa_data - - line_dict = line_data.model_dump( - exclude={ - "financial", - "quantity", - "customs", - "description", - "reference", - "fa_data", - } - ) - line_dict["item_id"] = db_item.id - line_dict["tenant_id"] = tenant_id - line_dict["company_id"] = company_id - - # Map schema field names to model field names - if "part_number_id" in line_dict: - line_dict["part_number"] = line_dict.pop("part_number_id") - if "component_part_number_id" in line_dict: - line_dict["component_part_number"] = line_dict.pop("component_part_number_id") - - # Create line item - db_line = LineItem(**line_dict) - db.add(db_line) - db.flush() # Get the line ID - - # Create financial data if provided - if financial_data: - financial_dict = financial_data.model_dump() - financial_dict["item_line_id"] = db_line.id - db_financial = LineFinancial(**financial_dict) - db.add(db_financial) - - # Create quantity data if provided - if quantity_data: - quantity_dict = quantity_data.model_dump() - quantity_dict["item_line_id"] = db_line.id - db_quantity = LineQuantity(**quantity_dict) - db.add(db_quantity) - - # Create customs data if provided - if customs_data: - customs_dict = customs_data.model_dump() - customs_dict["item_line_id"] = db_line.id - db_customs = LineCustom(**customs_dict) - db.add(db_customs) - - # Create description data if provided - if description_data: - description_dict = description_data.model_dump() - description_dict["item_line_id"] = db_line.id - db_description = LineDescription(**description_dict) - db.add(db_description) - - # Create reference data if provided - if reference_data: - reference_dict = reference_data.model_dump() - reference_dict["item_line_id"] = db_line.id - db_reference = LineReference(**reference_dict) - db.add(db_reference) - - # Create FA data if provided - if fa_data: - fa_dict = fa_data.model_dump( - exclude={"line_item_id"} - ) # Exclude line_item_id from DTO - fa_dict["id"] = db_line.id # FA table uses same ID as line item - fa_dict["tenant_id"] = tenant_id - fa_dict["company_id"] = company_id - db_fa = FaLineItem(**fa_dict) - db.add(db_fa) + # Create all nested data + ItemService._create_line_nested_data( + db, db_item, item_data, tenant_id, company_id + ) db.commit() db.refresh(db_item) @@ -342,221 +344,119 @@ class ItemService: logger.error(f"Error creating item: {e}") raise HTTPException( status_code=400, - detail="Item creation failed - integrity constraint violated", + detail="LineItem creation failed - integrity constraint violated", ) except Exception as e: db.rollback() - logger.error(f"Unexpected error creating item: {e}") - raise HTTPException(status_code=500, detail="Error creating item") + logger.error(f"Unexpected error creating LineItem: {e}") + raise HTTPException(status_code=500, detail="Error creating LineItem") @staticmethod def update( db: Session, item_id: int, - item_data: ItemUpdate, + item_data: LineItemUpdate, tenant_id: int, company_id: int, - ) -> Item: + ) -> LineItem: """Update an item and optionally its nested data (multiple lines)""" # Get existing item db_item = ItemService.get_by_id(db, item_id, tenant_id, company_id) if not db_item: - raise HTTPException(status_code=404, detail="Item not found") + raise HTTPException(status_code=404, detail="LineItem not found") # Validaciones con ErrorCollector errors = ErrorCollector() - # Si se está actualizando el invoice_id, validar la factura - invoice = None - if item_data.invoice_id: - invoice = ( - db.query(InvoiceHeader) - .filter( - InvoiceHeader.id == item_data.invoice_id, - InvoiceHeader.tenant_id == tenant_id, - InvoiceHeader.company_id == company_id, - ) - .first() - ) + # Lock invoice + invoice_id_to_lock = ( + item_data.invoice_id if item_data.invoice_id else db_item.invoice_id + ) + if not ItemService._lock_invoice( + db, invoice_id_to_lock, tenant_id, company_id, errors + ): + errors.raise_if_errors("Error al actualizar el item") - if not invoice: + # Validar el item que se va a actualizar + validate_update( + db, + item_data, # Schema de update + db_item, # LineItem existente en DB + tenant_id, + company_id, + errors, + db_item.line_number, + ) + + + # Validar tipo de partida + if hasattr(item_data, "item_type") and item_data.item_type: + tipo_partida = item_data.item_type + if tipo_partida and tipo_partida not in ["N", "S"]: errors.add_error( - field="invoice_id", - message="La factura especificada no existe", - code="NOT_FOUND", - value=str(item_data.invoice_id), + field=f"item_type", + message=f"Tipo de partida debe ser 'N' (Normal) o 'S' (Subpartida), recibido: '{tipo_partida}'", + solution=None, + code="INVALID_ITEM_TYPE", + value=str(tipo_partida), ) - else: - # Si no se está actualizando invoice_id, obtener la factura actual por invoice_id - from api.v1.modules.a76.invoices.models import InvoiceHeader - invoice = ( - db.query(InvoiceHeader) - .filter(InvoiceHeader.id == db_item.invoice_id) - .first() - ) - - # Validar cada line item que se va a actualizar - if item_data.lines: - for idx, line_data in enumerate(item_data.lines): - # Si el line tiene ID, es actualización; si no, es creación - if hasattr(line_data, "id") and line_data.id: - # Buscar el line item existente - existing_line = next( - (line for line in db_item.lines if line.id == line_data.id), - None, - ) - if existing_line: - # Convertir a LineItemUpdate para validar - line_update = LineItemUpdate(**line_data.model_dump()) - validate_update(db, line_update, tenant_id, company_id, errors) - else: - # Es un nuevo line item, validar como creación - line_create = LineItemCreate(**line_data.model_dump()) - validate_create(db, line_create, tenant_id, company_id, errors) - - # Validaciones adicionales específicas del negocio - # (Aplican tanto para crear como actualizar) - - # Validar apóstrofes en número de parte - if line_data.part_number_id and "'" in str(line_data.part_number_id): + # Si es subpartida (S), debe tener partida principal + if tipo_partida == "S": + if not hasattr(item_data, "main_line_id") or not item_data.main_line_id: errors.add_error( - field=f"lines[{idx}].part_number", - message=f"Advertencia: El Número de Parte contiene apóstrofes y serán omitidos", + field=f"main_line_id", + message="Las subpartidas (tipo 'S') deben tener una partida principal", solution=None, - code="WARNING_APOSTROPHE", + code="MISSING_MAIN_LINE", ) - # Validar tipo de partida - if hasattr(line_data, "item_type"): - tipo_partida = line_data.item_type - if tipo_partida and tipo_partida not in ["N", "S"]: - errors.add_error( - field=f"lines[{idx}].item_type", - message=f"Tipo de partida debe ser 'N' (Normal) o 'S' (Subpartida), recibido: '{tipo_partida}'", - solution=None, - code="INVALID_ITEM_TYPE", - value=str(tipo_partida), - ) - - # Si es subpartida (S), debe tener partida principal - if tipo_partida == "S": - if ( - not hasattr(line_data, "main_line_id") - or not line_data.main_line_id - ): - errors.add_error( - field=f"lines[{idx}].main_line_id", - message="Las subpartidas (tipo 'S') deben tener una partida principal", - solution=None, - code="MISSING_MAIN_LINE", - ) - - # Validar que el line_number sea consecutivo (si se especifica) - if hasattr(line_data, "line_number") and line_data.line_number: - expected_line = idx + 1 - if line_data.line_number != expected_line: - errors.add_error( - field=f"lines[{idx}].line_number", - message=f"Número de línea esperado: {expected_line}, recibido: {line_data.line_number}", - solution=None, - code="INVALID_LINE_SEQUENCE", - value=str(line_data.line_number), - ) - # Si hay errores, lanzar excepción ANTES de actualizar errors.raise_if_errors("Error al actualizar el item") try: - - # Extract lines data - lines_data = item_data.lines - item_dict = item_data.model_dump(exclude={"lines"}, exclude_unset=True) + # Get item data excluding nested objects + item_dict = item_data.model_dump( + exclude={ + "financial", + "quantity", + "customs", + "description", + "reference", + "fa_data", + }, + exclude_unset=True, + ) # Update item fields for key, value in item_dict.items(): setattr(db_item, key, value) - # Update lines if provided (replace all lines) - if lines_data is not None: - # Delete existing lines (cascade will handle nested data) - for existing_line in db_item.lines: - db.delete(existing_line) - db.flush() + # Delete existing nested data + db.query(LineFinancial).filter( + LineFinancial.item_line_id == db_item.id + ).delete() + db.query(LineQuantity).filter( + LineQuantity.item_line_id == db_item.id + ).delete() + db.query(LineCustom).filter(LineCustom.item_line_id == db_item.id).delete() + db.query(LineDescription).filter( + LineDescription.item_line_id == db_item.id + ).delete() + db.query(LineReference).filter( + LineReference.item_line_id == db_item.id + ).delete() + db.query(FaLineItem).filter(FaLineItem.id == db_item.id).delete() + db.flush() - # Create new lines - for line_data in lines_data: - # Extract nested data from line - financial_data = line_data.financial - quantity_data = line_data.quantity - customs_data = line_data.customs - description_data = line_data.description - reference_data = line_data.reference - fa_data = line_data.fa_data + # Create new nested data + ItemService._create_line_nested_data( + db, db_item, item_data, tenant_id, company_id + ) - line_dict = line_data.model_dump( - exclude={ - "financial", - "quantity", - "customs", - "description", - "reference", - "fa_data", - }, - exclude_unset=True, - ) - line_dict["item_id"] = db_item.id - line_dict["tenant_id"] = tenant_id - line_dict["company_id"] = company_id - - # Map schema field names to model field names - if "part_number_id" in line_dict: - line_dict["part_number"] = line_dict.pop("part_number_id") - if "component_part_number_id" in line_dict: - line_dict["component_part_number"] = line_dict.pop("component_part_number_id") - - db_line = LineItem(**line_dict) - db.add(db_line) - db.flush() - - # Create nested data if provided - if financial_data is not None: - financial_dict = financial_data.model_dump(exclude_unset=True) - financial_dict["item_line_id"] = db_line.id - db.add(LineFinancial(**financial_dict)) - - if quantity_data is not None: - quantity_dict = quantity_data.model_dump(exclude_unset=True) - quantity_dict["item_line_id"] = db_line.id - db.add(LineQuantity(**quantity_dict)) - - if customs_data is not None: - customs_dict = customs_data.model_dump(exclude_unset=True) - customs_dict["item_line_id"] = db_line.id - db.add(LineCustom(**customs_dict)) - - if description_data is not None: - description_dict = description_data.model_dump( - exclude_unset=True - ) - description_dict["item_line_id"] = db_line.id - db.add(LineDescription(**description_dict)) - - if reference_data is not None: - reference_dict = reference_data.model_dump(exclude_unset=True) - reference_dict["item_line_id"] = db_line.id - db.add(LineReference(**reference_dict)) - - # Create FA data if provided - if fa_data is not None: - fa_dict = fa_data.model_dump( - exclude_unset=True, exclude={"line_item_id"} - ) - fa_dict["id"] = db_line.id # FA table uses same ID as line item - fa_dict["tenant_id"] = tenant_id - fa_dict["company_id"] = company_id - db.add(FaLineItem(**fa_dict)) + # Renumber all lines for this invoice to ensure consecutive numbering + ItemService._renumber_all_invoice_lines(db, db_item.invoice_id) db.commit() db.refresh(db_item) @@ -582,7 +482,20 @@ class ItemService: if not db_item: return False + invoice_id = db_item.invoice_id + errors = ErrorCollector() + + # Lock the invoice + if not ItemService._lock_invoice( + db, invoice_id, tenant_id, company_id, errors + ): + raise HTTPException( + status_code=404, detail="Invoice not found or could not be locked" + ) + db.delete(db_item) + db.flush() + ItemService._renumber_all_invoice_lines(db, invoice_id) db.commit() return True diff --git a/backend/api/v1/modules/a76/pedmientos/catalog_service.py b/backend/api/v1/modules/a76/pedmientos/catalog_service.py new file mode 100644 index 00000000..13b4a01e --- /dev/null +++ b/backend/api/v1/modules/a76/pedmientos/catalog_service.py @@ -0,0 +1,124 @@ + +from typing import List +from sqlalchemy.orm import Session + +# Import Reference Data Models +from api.v1.modules.public.reference_data.pedimento_codes.models import PedimentoCode +from api.v1.modules.public.reference_data.customs_sections.models import CustomsSection +from api.v1.modules.public.reference_data.code_pedimento_regimens.models import CodePedimentoRegimen + +# Import A76 Services +from api.v1.modules.a76.customs_brokers.services import CustomsBrokerService +from api.v1.modules.a76.clients_and_providers.service import ClientProviderService + +# Import DTOs for mapping +from api.v1.modules.public.reference_data.pedimento_codes.dto import PedimentoCodeDTO +from api.v1.modules.public.reference_data.customs_sections.dto import CustomsSectionDTO +from api.v1.modules.public.reference_data.code_pedimento_regimens.dto import CodePedimentoRegimenDTO +from api.v1.modules.a76.customs_brokers.dto import CustomsBrokerResponseDTO +from api.v1.modules.a76.clients_and_providers.dto import ClientProviderResponseDTO +from .dtos.pedimentos import PedimentosResponse + +from .schemas import PedimentoCatalogsResponse, PedimentoCreationResponse, PedimentoEditionResponse + +class PedimentoCatalogService: + """Service to fetch consolidated catalogs for Pedimento views""" + + @staticmethod + def get_catalogs(db: Session, tenant_id: int, company_id: int) -> PedimentoCatalogsResponse: + """Fetch all catalogs with graceful degradation""" + + response = PedimentoCatalogsResponse() + + # Helper to fetch reference data (no company_id needed) + def fetch_ref_data(): + try: + response.pedimento_codes = [ + PedimentoCodeDTO.model_validate(obj) for obj in db.query(PedimentoCode).limit(100).all() + ] + except Exception as e: + print(f"Error fetching pedimento_codes: {e}") + + try: + response.customs_sections = [ + CustomsSectionDTO.model_validate(obj) for obj in db.query(CustomsSection).limit(100).all() + ] + except Exception as e: + print(f"Error fetching customs_sections: {e}") + + try: + response.code_pedimento_regimens = [ + CodePedimentoRegimenDTO.model_validate(obj) for obj in db.query(CodePedimentoRegimen).limit(100).all() + ] + except Exception as e: + print(f"Error fetching code_pedimento_regimens: {e}") + + # Helper to fetch tenant/company specific data + def fetch_tenant_data(): + # Customs Brokers + try: + brokers, _ = CustomsBrokerService.get_all(db, tenant_id, company_id, limit=1000) + response.customs_brokers = [ + CustomsBrokerResponseDTO.model_validate(obj) for obj in brokers + ] + except Exception as e: + print(f"Error fetching customs brokers: {e}") + + # Clients (only clients, not providers) + try: + all_cps, _ = ClientProviderService.get_all( + db, tenant_id, company_id, limit=1000 + ) + + # Helper to safely check client type (handles string or Enum) + def is_type(obj, types): + val = obj.client_or_provider + # If it's an enum, get its value, otherwise use as string + val_str = val.value if hasattr(val, 'value') else str(val) + return val_str in types + + response.clients = [ + ClientProviderResponseDTO.model_validate(obj) for obj in all_cps + if is_type(obj, ['client', 'both']) + ] + except Exception as e: + print(f"Error fetching clients: {e}") + + try: + fetch_ref_data() + fetch_tenant_data() + except Exception as e: + print(f"Error fetching catalogs: {e}") + import traceback + traceback.print_exc() + raise e + + return response + + @staticmethod + def get_creation_data(db: Session, tenant_id: int, company_id: int) -> PedimentoCreationResponse: + catalogs = PedimentoCatalogService.get_catalogs(db, tenant_id, company_id) + return PedimentoCreationResponse( + **catalogs.model_dump(), + is_create=True + ) + + @staticmethod + def get_edition_data(db: Session, pedimento_id: int, tenant_id: int, company_id: int) -> PedimentoEditionResponse: + catalogs = PedimentoCatalogService.get_catalogs(db, tenant_id, company_id) + + from .services.pedimentos import PedimentosService + pedimento = PedimentosService.get_by_id(db, pedimento_id, tenant_id, company_id) + + if not pedimento: + return None + + # Convert SQLAlchemy object to Pydantic DTO + pedimento_dto = PedimentosResponse.model_validate(pedimento) + + return PedimentoEditionResponse( + **catalogs.model_dump(), + is_create=False, + pedimento=pedimento_dto, + pedimento_id=pedimento_id + ) diff --git a/backend/api/v1/modules/a76/pedmientos/routes/pedimentos.py b/backend/api/v1/modules/a76/pedmientos/routes/pedimentos.py index fbc8f887..b912cf39 100644 --- a/backend/api/v1/modules/a76/pedmientos/routes/pedimentos.py +++ b/backend/api/v1/modules/a76/pedmientos/routes/pedimentos.py @@ -2,13 +2,76 @@ Routes for Pedimentos CRUD operations """ +from fastapi import APIRouter, Depends, HTTPException, Query +from sqlalchemy.orm import Session + from api.v1.common.tenant_crud_routes import TenantCRUDRoutes +from core.database import get_core_db +from core.security import get_current_user from ..dtos.pedimentos import PedimentosCreate, PedimentosResponse, PedimentosUpdate from ..services.pedimentos import PedimentosService +from ..catalog_service import PedimentoCatalogService +from ..schemas import PedimentoCreationResponse, PedimentoEditionResponse -# Create router with generic CRUD routes -router = TenantCRUDRoutes( +# Create a new router for custom endpoints +router = APIRouter() + +# Add consolidated catalog endpoints FIRST (before generic CRUD routes) +# This ensures they have priority over the generic /{id} route +@router.get("/creation-data", response_model=PedimentoCreationResponse, tags=["a76 / pedimentos"]) +async def get_creation_data( + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user) +): + """ + Get all catalogs needed for creating a new pedimento. + Consolidates multiple catalog calls into a single endpoint. + """ + tenant_id = current_user["tenant_id"] + + try: + return PedimentoCatalogService.get_creation_data(db, tenant_id, company_id) + except Exception as e: + print(f"Error fetching creation data: {e}") + import traceback + traceback.print_exc() + raise HTTPException(status_code=500, detail="Error fetching creation data") + + +@router.get("/{pedimento_id}/edition-data", response_model=PedimentoEditionResponse, tags=["a76 / pedimentos"]) +async def get_edition_data( + pedimento_id: int, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user) +): + """ + Get all catalogs and pedimento data needed for editing an existing pedimento. + Consolidates multiple catalog calls + pedimento fetch into a single endpoint. + """ + tenant_id = current_user["tenant_id"] + + try: + result = PedimentoCatalogService.get_edition_data(db, pedimento_id, tenant_id, company_id) + + if result is None: + raise HTTPException(status_code=404, detail="Pedimento not found") + + return result + except HTTPException: + raise + except Exception as e: + print(f"Error fetching edition data: {e}") + import traceback + traceback.print_exc() + raise HTTPException(status_code=500, detail="Error fetching edition data") + + +# Now include generic CRUD routes +# These will be registered AFTER the custom endpoints above +crud_router = TenantCRUDRoutes( service=PedimentosService, create_schema=PedimentosCreate, update_schema=PedimentosUpdate, @@ -22,3 +85,6 @@ router = TenantCRUDRoutes( default_page_size=50, max_page_size=100, ).router + +# Include the CRUD routes into our main router +router.include_router(crud_router) diff --git a/backend/api/v1/modules/a76/pedmientos/schemas.py b/backend/api/v1/modules/a76/pedmientos/schemas.py new file mode 100644 index 00000000..aeec5ee3 --- /dev/null +++ b/backend/api/v1/modules/a76/pedmientos/schemas.py @@ -0,0 +1,38 @@ +""" +Consolidated schemas for Pedimento catalog responses +""" + +from typing import List, Optional +from pydantic import BaseModel + +# Import DTOs for catalog items +from api.v1.modules.public.reference_data.pedimento_codes.dto import PedimentoCodeDTO +from api.v1.modules.public.reference_data.customs_sections.dto import CustomsSectionDTO +from api.v1.modules.public.reference_data.code_pedimento_regimens.dto import CodePedimentoRegimenDTO +from api.v1.modules.a76.customs_brokers.dto import CustomsBrokerResponseDTO +from api.v1.modules.a76.clients_and_providers.dto import ClientProviderResponseDTO +from .dtos.pedimentos import PedimentosResponse + + +class PedimentoCatalogsResponse(BaseModel): + """Base response containing all catalogs needed for pedimento views""" + + pedimento_codes: List[PedimentoCodeDTO] = [] + customs_sections: List[CustomsSectionDTO] = [] + code_pedimento_regimens: List[CodePedimentoRegimenDTO] = [] + customs_brokers: List[CustomsBrokerResponseDTO] = [] + clients: List[ClientProviderResponseDTO] = [] + + +class PedimentoCreationResponse(PedimentoCatalogsResponse): + """Response for creating a new pedimento (catalogs only)""" + + is_create: bool = True + + +class PedimentoEditionResponse(PedimentoCatalogsResponse): + """Response for editing an existing pedimento (catalogs + pedimento data)""" + + is_create: bool = False + pedimento: Optional[PedimentosResponse] = None + pedimento_id: Optional[int] = None diff --git a/backend/api/v1/modules/a76/reports/exportacion/aviso_consolidado/service.py b/backend/api/v1/modules/a76/reports/exportacion/aviso_consolidado/service.py index 9f96a81e..3671361f 100644 --- a/backend/api/v1/modules/a76/reports/exportacion/aviso_consolidado/service.py +++ b/backend/api/v1/modules/a76/reports/exportacion/aviso_consolidado/service.py @@ -17,7 +17,7 @@ from api.v1.modules.a76.general_catalogs.company.models import Company from api.v1.modules.a76.pedmientos.models.pedimentos import Pedimentos from api.v1.modules.a76.pedmientos.models.pedimento_validation import PedimentoValidation from api.v1.modules.a76.customs_brokers.models import CustomsBroker, CustomsBrokerPersonnel -from api.v1.modules.a76.items.models import Item +from api.v1.modules.a76.items.models import LineItem from api.v1.modules.a76.clients_and_providers.models import ClientProvider, ClientProviderAddress, ClientProviderPrograms # --- SCHEMAS FOR TEMPLATE CONTEXT --- @@ -186,7 +186,7 @@ class AvisoConsolidadoExportacionService: logistics = header.logistics # Fetch Items associated with this invoice (MOVED UP FOR WEIGHT CALCULATION) - items = db.query(Item).filter(Item.invoice_id == invoice_id).all() + items = db.query(LineItem).filter(LineItem.invoice_id == invoice_id).all() # Peso Bruto peso_bruto_val = "0.0" @@ -194,14 +194,12 @@ class AvisoConsolidadoExportacionService: # Calculate sum from items first if items: - for item in items: - if item.lines: - for line in item.lines: - if line.quantity and line.quantity.gross_weight: - try: - calculated_gross_weight += float(line.quantity.gross_weight) - except (ValueError, TypeError): - pass + for item in items: + if item.quantity and item.quantity.gross_weight: + try: + calculated_gross_weight += float(item.quantity.gross_weight) + except (ValueError, TypeError): + pass if financials and financials.gross_weight and float(financials.gross_weight) > 0: peso_bruto_val = f"{financials.gross_weight:,.2f}" @@ -379,20 +377,19 @@ class AvisoConsolidadoExportacionService: cant_total = 0.0 if items: - for item in items: - if item.lines: - for line in item.lines: - # Priority: Quantity (UMA or Standard) - q = 0.0 - if line.quantity: - try: - if line.quantity.quantity_uma is not None: - q = float(line.quantity.quantity_uma) - elif line.quantity.quantity is not None: - q = float(line.quantity.quantity) - except (ValueError, TypeError): - q = 0.0 - cant_total += q + for item in items: + for line in item: + # Priority: Quantity (UMA or Standard) + q = 0.0 + if line.quantity: + try: + if line.quantity.quantity_uma is not None: + q = float(line.quantity.quantity_uma) + elif line.quantity.quantity is not None: + q = float(line.quantity.quantity) + except (ValueError, TypeError): + q = 0.0 + cant_total += q # Format: 15 chars, 3 decimals? Actually Clarion LINEPRINT usually just prints the text. # Clarion 'CLIP(FORMAT(Loc:CantTotal,@n015.3))' removes spaces. diff --git a/backend/api/v1/modules/a76/reports/exportacion/descargo/service.py b/backend/api/v1/modules/a76/reports/exportacion/descargo/service.py index 57a8d479..960ffb30 100644 --- a/backend/api/v1/modules/a76/reports/exportacion/descargo/service.py +++ b/backend/api/v1/modules/a76/reports/exportacion/descargo/service.py @@ -15,10 +15,9 @@ from datetime import datetime # --- MODELOS (Imported from system for Header info) --- from api.v1.modules.a76.invoices.models import InvoiceHeader, InvoiceComplianceMx from api.v1.modules.a76.general_catalogs.company.models import Company -from api.v1.modules.a76.items.line_items.models import LineItem from api.v1.modules.a76.items.line_quantities.models import LineQuantity from api.v1.modules.a76.parts.models import Part -from api.v1.modules.a76.items.models import Item +from api.v1.modules.a76.items.models import LineItem from api.v1.modules.a76.pedmientos.models.pedimentos import Pedimentos from api.v1.modules.a76.pedmientos.models.pedimento_dates import PedimentoDates from api.v1.modules.core.tenants.models import Tenant @@ -40,8 +39,8 @@ class FIFOAssignmentService: Returns a list of calculated discharges. """ # 1. Get Export Lines - export_lines = db.query(LineItem).join(Item).filter( - Item.invoice_id == invoice_id + export_lines = db.query(LineItem).join(LineItem).filter( + LineItem.invoice_id == invoice_id ).options( joinedload(LineItem.quantity), joinedload(LineItem.description), @@ -58,7 +57,7 @@ class FIFOAssignmentService: if qty_needed <= 0: continue - part_number = exp_line.part_number + part_number = exp_line.part_number_id if not part_number: self._log(f"Skipping line {exp_line.id}, no part number") continue @@ -79,10 +78,10 @@ class FIFOAssignmentService: # 2. Find Import Candidates (FIFO order by payment date) # Use outerjoin for pedimento dates to avoid filtering out candidates with missing dates - candidates = db.query(LineItem).join(Item).join(InvoiceHeader)\ + candidates = db.query(LineItem).join(InvoiceHeader)\ .join(InvoiceComplianceMx).join(InvoiceComplianceMx.pedimento).outerjoin(Pedimentos.pedimento_dates)\ .filter( - LineItem.part_number == part_number, + LineItem.part_number_id == part_number, InvoiceHeader.operation_type == 'imp', # Assuming 'imp' is the value for Import based on Enum ).order_by( PedimentoDates.payment_date.asc() @@ -90,7 +89,7 @@ class FIFOAssignmentService: joinedload(LineItem.quantity), joinedload(LineItem.customs), joinedload(LineItem.financial), - joinedload(LineItem.item).joinedload(Item.invoice).joinedload(InvoiceHeader.compliance_mx).joinedload(InvoiceComplianceMx.pedimento).joinedload(Pedimentos.pedimento_dates) + joinedload(LineItem.item).joinedload(LineItem.invoice).joinedload(InvoiceHeader.compliance_mx).joinedload(InvoiceComplianceMx.pedimento).joinedload(Pedimentos.pedimento_dates) ).all() self._log(f"Found {len(candidates)} candidates for {part_number}") @@ -259,16 +258,15 @@ class DescargaReportService: # --- 2. Obtener Líneas de Exportación (Lo que necesitamos cubrir) --- if progress_callback: progress_callback(20, "Obteniendo items a exportar...") - export_lines = db.query(LineItem).filter( - LineItem.item_id == Item.id, - Item.invoice_id == invoice_id + export_lines = db.query(LineItem).filter( + LineItem.invoice_id == invoice_id ).options( joinedload(LineItem.quantity), joinedload(LineItem.customs), joinedload(LineItem.description), joinedload(LineItem.unit_of_measure_info), joinedload(LineItem.part_info) - ).join(Item).all() + ).join(LineItem).all() items_reporte = [] diff --git a/backend/api/v1/modules/a76/reports/importacion/consolidados/mex/service.py b/backend/api/v1/modules/a76/reports/importacion/consolidados/mex/service.py index c84043b1..4a07a9a1 100644 --- a/backend/api/v1/modules/a76/reports/importacion/consolidados/mex/service.py +++ b/backend/api/v1/modules/a76/reports/importacion/consolidados/mex/service.py @@ -17,7 +17,7 @@ from api.v1.modules.a76.invoices.models import ( ) from api.v1.modules.a76.items.line_financials.models import LineFinancial from api.v1.modules.a76.items.line_quantities.models import LineQuantity -from api.v1.modules.a76.items.line_items.models import LineItem +from api.v1.modules.a76.items.models import LineItem from api.v1.modules.a76.clients_and_providers.models import ( ClientProvider, ClientProviderAddress, @@ -27,7 +27,7 @@ from api.v1.modules.a76.parts.models import Part from api.v1.modules.a76.pedmientos.models import Pedimentos from api.v1.modules.a76.general_catalogs.company.models import Company from api.v1.modules.a76.customs_brokers.models import CustomsBroker -from api.v1.modules.a76.items.models import Item +from api.v1.modules.a76.items.models import LineItem # --- TRANSPORTATION MODELS --- from api.v1.modules.a76.transportation.transporters.models import Transporter @@ -36,7 +36,7 @@ from api.v1.modules.a76.transportation.trailers.models import Trailer from api.v1.modules.a76.transportation.drivers.models import Driver # --- MODELO DE FRACCIONES --- -from api.v1.modules.a76.general_catalogs.tariff_fractions.models import TariffFraction +from api.v1.modules.a76.general_catalogs.fractions.tariff_fractions.models import TariffFraction # --- MODELO DE UNIDADES DE MEDIDA --- from api.v1.modules.a76.general_catalogs.units_of_measure.models import UnitOfMeasure @@ -50,6 +50,10 @@ from .schemas import ( FacturaImportacionCompleta, ) +from api.v1.modules.a76.general_catalogs.fractions.us_tariff_fractions.models import ( + USTariffFraction, +) + class ConsolidadoImportacionMexService: def __init__(self): @@ -478,8 +482,7 @@ class ConsolidadoImportacionMexService: lines = ( db.query(LineItem) - .join(Item, LineItem.item_id == Item.id) - .filter(Item.invoice_id.in_(target_invoice_ids)) + .filter(LineItem.invoice_id.in_(target_invoice_ids)) .all() ) @@ -515,11 +518,7 @@ class ConsolidadoImportacionMexService: .filter(InvoiceHeader.id.in_(target_invoice_ids)) .all() ) - invoice_map = {inv.id: inv for inv in invoices_list} - - from api.v1.modules.a76.general_catalogs.us_tariff_fractions.models import ( - USTariffFraction, - ) + invoice_map = {inv.id: inv for inv in invoices_list} for line in lines: qty = ( @@ -532,7 +531,7 @@ class ConsolidadoImportacionMexService: .filter(LineFinancial.item_line_id == line.id) .first() ) - part_master = db.query(Part).filter(Part.id == line.part_number).first() + part_master = db.query(Part).filter(Part.id == line.part_number_id).first() # --- Resolver Identificadores (MOVED INSIDE MAIN LOOP) --- us_fraction_raw = "" @@ -559,7 +558,7 @@ class ConsolidadoImportacionMexService: # --- Multi-Currency Normalization Logic --- # Determine Line Currency context # Use manual lookup instead of specific attribute - invoice_id = line.item.invoice_id if line.item else None + invoice_id = line.invoice_id line_invoice = invoice_map.get(invoice_id) if invoice_id else None line_currency_is_mxn = False diff --git a/backend/api/v1/modules/a76/reports/importacion/consolidados/temporary/mex/service.py b/backend/api/v1/modules/a76/reports/importacion/consolidados/temporary/mex/service.py index c2274822..17369185 100644 --- a/backend/api/v1/modules/a76/reports/importacion/consolidados/temporary/mex/service.py +++ b/backend/api/v1/modules/a76/reports/importacion/consolidados/temporary/mex/service.py @@ -13,7 +13,6 @@ from sqlalchemy.orm import Session from api.v1.modules.a76.invoices.models import InvoiceHeader, InvoiceLogistics, InvoiceComplianceMx from api.v1.modules.a76.items.line_financials.models import LineFinancial from api.v1.modules.a76.items.line_quantities.models import LineQuantity -from api.v1.modules.a76.items.line_items.models import LineItem from api.v1.modules.a76.clients_and_providers.models import ( ClientProvider, ClientProviderAddress, ClientProviderPrograms ) @@ -21,7 +20,7 @@ from api.v1.modules.a76.parts.models import Part from api.v1.modules.a76.pedmientos.models import Pedimentos from api.v1.modules.a76.general_catalogs.company.models import Company from api.v1.modules.a76.customs_brokers.models import CustomsBroker -from api.v1.modules.a76.items.models import Item +from api.v1.modules.a76.items.models import LineItem # --- TRANSPORTATION MODELS --- from api.v1.modules.a76.transportation.transporters.models import Transporter @@ -30,7 +29,7 @@ from api.v1.modules.a76.transportation.trailers.models import Trailer from api.v1.modules.a76.transportation.drivers.models import Driver # --- MODELO DE FRACCIONES --- -from api.v1.modules.a76.general_catalogs.tariff_fractions.models import TariffFraction +from api.v1.modules.a76.general_catalogs.fractions.tariff_fractions.models import TariffFraction # --- SCHEMAS --- from ...mex.schemas import ( @@ -314,8 +313,8 @@ class ConsolidadoImportacionMexService: # NOT consolidating all invoices from the same Pedimento. target_invoice_ids = [header.id] - lines = db.query(LineItem).join(Item, LineItem.item_id == Item.id).filter( - Item.invoice_id.in_(target_invoice_ids) + lines = db.query(LineItem).filter( + LineItem.invoice_id.in_(target_invoice_ids) ).all() partidas_list = [] @@ -345,12 +344,12 @@ class ConsolidadoImportacionMexService: invoices_list = db.query(InvoiceHeader).filter(InvoiceHeader.id.in_(target_invoice_ids)).all() invoice_map = {inv.id: inv for inv in invoices_list} - from api.v1.modules.a76.general_catalogs.us_tariff_fractions.models import USTariffFraction + from api.v1.modules.a76.general_catalogs.fractions.us_tariff_fractions.models import USTariffFraction for line in lines: qty = db.query(LineQuantity).filter(LineQuantity.item_line_id == line.id).first() fin = db.query(LineFinancial).filter(LineFinancial.item_line_id == line.id).first() - part_master = db.query(Part).filter(Part.id == line.part_number).first() + part_master = db.query(Part).filter(Part.id == line.part_number_id).first() # --- Resolver Identificadores (MOVED INSIDE MAIN LOOP) --- us_fraction_raw = "" @@ -371,7 +370,7 @@ class ConsolidadoImportacionMexService: # --- Multi-Currency Normalization Logic --- # Determine Line Currency context # Use manual lookup instead of specific attribute - invoice_id = line.item.invoice_id if line.item else None + invoice_id = line.invoice_id line_invoice = invoice_map.get(invoice_id) if invoice_id else None line_currency_is_mxn = False diff --git a/backend/api/v1/modules/a76/reports/importacion/facturas/mex/service.py b/backend/api/v1/modules/a76/reports/importacion/facturas/mex/service.py index 5ad9c5b5..bdd5adca 100644 --- a/backend/api/v1/modules/a76/reports/importacion/facturas/mex/service.py +++ b/backend/api/v1/modules/a76/reports/importacion/facturas/mex/service.py @@ -13,7 +13,6 @@ from sqlalchemy.orm import Session from api.v1.modules.a76.invoices.models import InvoiceHeader, InvoiceLogistics from api.v1.modules.a76.items.line_financials.models import LineFinancial from api.v1.modules.a76.items.line_quantities.models import LineQuantity -from api.v1.modules.a76.items.line_items.models import LineItem from api.v1.modules.a76.clients_and_providers.models import ( ClientProvider, ClientProviderAddress, @@ -23,7 +22,7 @@ from api.v1.modules.a76.parts.models import Part from api.v1.modules.a76.pedmientos.models import Pedimentos from api.v1.modules.a76.general_catalogs.company.models import Company from api.v1.modules.a76.customs_brokers.models import CustomsBroker -from api.v1.modules.a76.items.models import Item +from api.v1.modules.a76.items.models import LineItem # --- TRANSPORTATION MODELS --- from api.v1.modules.a76.transportation.transporters.models import Transporter @@ -32,10 +31,11 @@ from api.v1.modules.a76.transportation.trailers.models import Trailer from api.v1.modules.a76.transportation.drivers.models import Driver # --- MODELO DE FRACCIONES --- -from api.v1.modules.a76.general_catalogs.tariff_fractions.models import TariffFraction +from api.v1.modules.a76.general_catalogs.fractions.tariff_fractions.models import TariffFraction # --- MODELO DE UNIDADES DE MEDIDA --- from api.v1.modules.a76.general_catalogs.units_of_measure.models import UnitOfMeasure +from api.v1.modules.a76.general_catalogs.packages.models import Package # --- SCHEMAS --- from .schemas import ( @@ -422,9 +422,8 @@ class FacturaImportacionMexService: if progress_callback: progress_callback(50, "Procesando partidas...") lines = ( - db.query(LineItem) - .join(Item, LineItem.item_id == Item.id) - .filter(Item.invoice_id == header.id) + db.query(LineItem) + .filter(LineItem.invoice_id == header.id) .all() ) partidas_list = [] @@ -440,10 +439,10 @@ class FacturaImportacionMexService: .filter(LineFinancial.item_line_id == line.id) .first() ) - part_master = db.query(Part).filter(Part.id == line.part_number).first() + part_master = db.query(Part).filter(Part.id == line.part_number_id).first() desc_final = "S/D" - num_parte_final = str(line.part_number or "S/N") + num_parte_final = str(line.part_number_id or "S/N") fraccion_raw = "" origen_final = "MEX" @@ -533,7 +532,7 @@ class FacturaImportacionMexService: if uom: unidad_desc = uom.description or uom.code else: - unidad_desc = "" + unidad_desc = "" partidas_list.append( PartidaSchema( @@ -552,7 +551,7 @@ class FacturaImportacionMexService: if qty and qty.package_quantity else 0 ), - clave_bultos=(qty.package_key or "") if qty else "", + clave_bultos=(qty.package_info.key if (qty and qty.package_info) else ""), peso_neto=self.formatear_numero(qty.net_weight if qty else 0), peso_bruto=self.formatear_numero( qty.gross_weight if qty else 0 diff --git a/backend/api/v1/modules/a76/reports/importacion/facturas/temporary/mex/service.py b/backend/api/v1/modules/a76/reports/importacion/facturas/temporary/mex/service.py index 4b296f99..b61c2c87 100644 --- a/backend/api/v1/modules/a76/reports/importacion/facturas/temporary/mex/service.py +++ b/backend/api/v1/modules/a76/reports/importacion/facturas/temporary/mex/service.py @@ -13,7 +13,6 @@ from sqlalchemy.orm import Session from api.v1.modules.a76.invoices.models import InvoiceHeader, InvoiceLogistics from api.v1.modules.a76.items.line_financials.models import LineFinancial from api.v1.modules.a76.items.line_quantities.models import LineQuantity -from api.v1.modules.a76.items.line_items.models import LineItem from api.v1.modules.a76.clients_and_providers.models import ( ClientProvider, ClientProviderAddress, ClientProviderPrograms ) @@ -21,7 +20,7 @@ from api.v1.modules.a76.parts.models import Part from api.v1.modules.a76.pedmientos.models import Pedimentos from api.v1.modules.a76.general_catalogs.company.models import Company from api.v1.modules.a76.customs_brokers.models import CustomsBroker -from api.v1.modules.a76.items.models import Item +from api.v1.modules.a76.items.models import LineItem # --- TRANSPORTATION MODELS --- from api.v1.modules.a76.transportation.transporters.models import Transporter @@ -30,7 +29,7 @@ from api.v1.modules.a76.transportation.trailers.models import Trailer from api.v1.modules.a76.transportation.drivers.models import Driver # --- MODELO DE FRACCIONES --- -from api.v1.modules.a76.general_catalogs.tariff_fractions.models import TariffFraction +from api.v1.modules.a76.general_catalogs.fractions.tariff_fractions.models import TariffFraction # --- SCHEMAS --- from ...mex.schemas import ( @@ -227,16 +226,16 @@ class FacturaImportacionMexService: ) if progress_callback: progress_callback(50, "Procesando partidas...") - lines = db.query(LineItem).join(Item, LineItem.item_id == Item.id).filter(Item.invoice_id == header.id).all() + lines = db.query(LineItem).filter(LineItem.invoice_id == header.id).all() partidas_list = [] for line in lines: qty = db.query(LineQuantity).filter(LineQuantity.item_line_id == line.id).first() fin = db.query(LineFinancial).filter(LineFinancial.item_line_id == line.id).first() - part_master = db.query(Part).filter(Part.id == line.part_number).first() + part_master = db.query(Part).filter(Part.id == line.part_number_id).first() desc_final = "S/D" - num_parte_final = str(line.part_number or "S/N") + num_parte_final = str(line.part_number_id or "S/N") fraccion_raw = "" origen_final = "MEX" @@ -316,7 +315,7 @@ class FacturaImportacionMexService: cantidad_importacion=self.formatear_numero(qty.quantity if qty else 0), unidad_medida=qty.weight_unit if qty else "PZA", cantidad_bultos=int(qty.package_quantity) if qty and qty.package_quantity else 0, - clave_bultos=(qty.package_key or "") if qty else "", + clave_bultos=(qty.package_info.key if (qty and qty.package_info) else ""), peso_neto=self.formatear_numero(qty.net_weight if qty else 0), peso_bruto=self.formatear_numero(qty.gross_weight if qty else 0), valor_costo_unitario=self.formatear_numero(v_unitario), diff --git a/backend/api/v1/modules/a76/reports/importacion/facturas/usa/service.py b/backend/api/v1/modules/a76/reports/importacion/facturas/usa/service.py index d5ec1d10..fd45cd0f 100644 --- a/backend/api/v1/modules/a76/reports/importacion/facturas/usa/service.py +++ b/backend/api/v1/modules/a76/reports/importacion/facturas/usa/service.py @@ -10,18 +10,19 @@ from fastapi import HTTPException from sqlalchemy.orm import Session # --- MODELOS --- -from api.v1.modules.a76.invoices.models import InvoiceHeader, InvoiceLogistics +from api.v1.modules.a76.invoices.models import InvoiceHeader, InvoiceLogistics from api.v1.modules.a76.items.line_financials.models import LineFinancial from api.v1.modules.a76.items.line_quantities.models import LineQuantity -from api.v1.modules.a76.items.line_items.models import LineItem from api.v1.modules.a76.clients_and_providers.models import ( - ClientProvider, ClientProviderAddress, ClientProviderPrograms + ClientProvider, + ClientProviderAddress, + ClientProviderPrograms, ) from api.v1.modules.a76.parts.models import Part from api.v1.modules.a76.pedmientos.models import Pedimentos from api.v1.modules.a76.general_catalogs.company.models import Company from api.v1.modules.a76.customs_brokers.models import CustomsBroker -from api.v1.modules.a76.items.models import Item +from api.v1.modules.a76.items.models import LineItem # --- TRANSPORTATION MODELS --- from api.v1.modules.a76.transportation.transporters.models import Transporter @@ -30,32 +31,38 @@ from api.v1.modules.a76.transportation.trailers.models import Trailer from api.v1.modules.a76.transportation.drivers.models import Driver # --- MODELO DE FRACCIONES --- -from api.v1.modules.a76.general_catalogs.tariff_fractions.models import TariffFraction +from api.v1.modules.a76.general_catalogs.fractions.tariff_fractions.models import ( + TariffFraction, +) # --- SCHEMAS --- # Reuse schemas from neighbor package as they fit the same data structure from ..mex.schemas import ( - ClienteSchema, PartidaSchema, TotalesSchema, - FacturaSchema, FacturaImportacionCompleta + ClienteSchema, + PartidaSchema, + TotalesSchema, + FacturaSchema, + FacturaImportacionCompleta, ) + class FacturaImportacionUsaService: def __init__(self): self.template_dir = Path(__file__).parent.parent / "templates" self.jinja_env = Environment( loader=FileSystemLoader(self.template_dir), - autoescape=select_autoescape(['html', 'xml']) + autoescape=select_autoescape(["html", "xml"]), ) - self.template = self.jinja_env.get_template('factura_usa_ver.html') + self.template = self.jinja_env.get_template("factura_usa_ver.html") def _get_document_title(self, invoice_type: str, is_american: bool = True) -> str: """ Determina el título del documento basado en el tipo de factura. - + Args: invoice_type: Tipo de factura (TEM, DEF, MEX, CR) is_american: Si es factura americana (True) o mexicana (False) - + Returns: Título formateado para la factura """ @@ -66,7 +73,7 @@ class FacturaImportacionUsaService: "TEM": "Importación Temporal", "CR": "Importación de Cambio de Régimen", } - + # Mapeo para facturas americanas american_titles = { "MEX": "Mexican Purchases Import Invoice", @@ -74,18 +81,18 @@ class FacturaImportacionUsaService: "TEM": "Temporary Importation", "CR": "Regime Change Importation", } - + # Seleccionar el mapa correcto titles = american_titles if is_american else mexican_titles - + # Obtener el título (normalizar a mayúsculas) invoice_type_upper = invoice_type.upper() if invoice_type else "" title = titles.get(invoice_type_upper, "") - + # Fallback a genéricos si no se encuentra if not title: return "Commercial Invoice" if is_american else "Factura de Importación" - + return title def _get_wkhtmltopdf_config(self): @@ -95,28 +102,49 @@ class FacturaImportacionUsaService: return pdfkit.configuration(wkhtmltopdf=path) def formatear_numero(self, valor, decimales: int = 2): - if valor is None: return 0.0 + if valor is None: + return 0.0 try: return round(float(valor), decimales) - except: return 0.0 + except: + return 0.0 def _format_fraccion_fallback(self, fraccion_raw: str) -> str: if not fraccion_raw or len(fraccion_raw) < 8: return fraccion_raw return f"{fraccion_raw[:4]}.{fraccion_raw[4:6]}.{fraccion_raw[6:]}" - def _obtener_datos_cliente(self, db: Session, client_id: int, rol: str) -> ClienteSchema: + def _obtener_datos_cliente( + self, db: Session, client_id: int, rol: str + ) -> ClienteSchema: main = db.query(ClientProvider).filter(ClientProvider.id == client_id).first() if not main: - return ClienteSchema(header=rol, nombre="Unknown", direccion="", tax_id="", codigo_postal="", ciudad="", estado="", pais="USA") - - addr = db.query(ClientProviderAddress).filter(ClientProviderAddress.client_id == client_id).first() - prog = db.query(ClientProviderPrograms).filter(ClientProviderPrograms.client_id == client_id).first() + return ClienteSchema( + header=rol, + nombre="Unknown", + direccion="", + tax_id="", + codigo_postal="", + ciudad="", + estado="", + pais="USA", + ) + + addr = ( + db.query(ClientProviderAddress) + .filter(ClientProviderAddress.client_id == client_id) + .first() + ) + prog = ( + db.query(ClientProviderPrograms) + .filter(ClientProviderPrograms.client_id == client_id) + .first() + ) return ClienteSchema( header=rol, nombre=(main.name or main.short_name) or "N/A", - direccion=(addr.streets or "") if addr else "", + direccion=(addr.streets or "") if addr else "", num_exterior=(addr.exterior_number or "") if addr else "", num_interior=(addr.interior_number or "") if addr else "", colonia=(addr.neighborhood or "") if addr else "", @@ -124,58 +152,128 @@ class FacturaImportacionUsaService: ciudad=(addr.city or "") if addr else "", estado=(addr.state or "") if addr else "", pais=(addr.country or "USA") if addr else "USA", - tax_id=prog.tax_id if (prog and prog.tax_id) else (getattr(main, 'rfc', "") or ""), - programa="IMMEX" if (prog and prog.program) else "", - autorizacion=prog.program_number if prog else "", - prosec=prog.prosec_authorization if (prog and prog.prosec and prog.prosec_authorization) else "", - reg_emp=prog.val_certified_company_registry if (prog and hasattr(prog, 'val_certified_company_registry')) else ( - prog.certified_company_registry if (prog and prog.certified_company_registry) else "" + tax_id=( + prog.tax_id + if (prog and prog.tax_id) + else (getattr(main, "rfc", "") or "") + ), + programa="IMMEX" if (prog and prog.program) else "", + autorizacion=prog.program_number if prog else "", + prosec=( + prog.prosec_authorization + if (prog and prog.prosec and prog.prosec_authorization) + else "" + ), + reg_emp=( + prog.val_certified_company_registry + if (prog and hasattr(prog, "val_certified_company_registry")) + else ( + prog.certified_company_registry + if (prog and prog.certified_company_registry) + else "" + ) + ), + cert=( + prog.is_certified_company + if (prog and prog.is_certified_company) + else "" ), - cert=prog.is_certified_company if (prog and prog.is_certified_company) else "" ) - def obtener_datos(self, db: Session, invoice_id: int, company_id: int, progress_callback: Optional[Callable] = None, currency_code: str = 'ORIGINAL') -> FacturaImportacionCompleta: + def obtener_datos( + self, + db: Session, + invoice_id: int, + company_id: int, + progress_callback: Optional[Callable] = None, + currency_code: str = "ORIGINAL", + ) -> FacturaImportacionCompleta: try: - if progress_callback: progress_callback(10, "Searching invoice...") - header = db.query(InvoiceHeader).filter(InvoiceHeader.id == invoice_id, InvoiceHeader.company_id == company_id).first() - if not header: raise HTTPException(status_code=404, detail="Invoice not found") + if progress_callback: + progress_callback(10, "Searching invoice...") + header = ( + db.query(InvoiceHeader) + .filter( + InvoiceHeader.id == invoice_id, + InvoiceHeader.company_id == company_id, + ) + .first() + ) + if not header: + raise HTTPException(status_code=404, detail="Invoice not found") - compliance = header.compliance_mx + compliance = header.compliance_mx logistics = header.logistics if header.logistics else None financials = header.financials if header.financials else None - if progress_callback: progress_callback(20, "Fetching entry data...") - pedimento_id = compliance.pedimento_id if (compliance and compliance.pedimento_id) else header.related_doc_id - pedimento = db.query(Pedimentos).filter(Pedimentos.id == pedimento_id).first() if pedimento_id else None - - if progress_callback: progress_callback(30, "Fetching client and supplier...") + if progress_callback: + progress_callback(20, "Fetching entry data...") + pedimento_id = ( + compliance.pedimento_id + if (compliance and compliance.pedimento_id) + else header.related_doc_id + ) + pedimento = ( + db.query(Pedimentos).filter(Pedimentos.id == pedimento_id).first() + if pedimento_id + else None + ) + + if progress_callback: + progress_callback(30, "Fetching client and supplier...") proveedor_id = compliance.provider_id if compliance else None - cliente_proveedor = self._obtener_datos_cliente(db, proveedor_id, "Supplier:") if proveedor_id else ClienteSchema(header="Supplier", nombre="Unassigned", direccion="", tax_id="", codigo_postal="", ciudad="", estado="", pais="") + cliente_proveedor = ( + self._obtener_datos_cliente(db, proveedor_id, "Supplier:") + if proveedor_id + else ClienteSchema( + header="Supplier", + nombre="Unassigned", + direccion="", + tax_id="", + codigo_postal="", + ciudad="", + estado="", + pais="", + ) + ) nombre_agente = "" if compliance and compliance.customs_broker_id: - broker = db.query(CustomsBroker).filter(CustomsBroker.id == compliance.customs_broker_id).first() - if broker: nombre_agente = broker.name + broker = ( + db.query(CustomsBroker) + .filter(CustomsBroker.id == compliance.customs_broker_id) + .first() + ) + if broker: + nombre_agente = broker.name company = db.query(Company).filter(Company.id == header.company_id).first() # Datos Default (Company/Importer) cliente_default = ClienteSchema( header="Importer / Consignee:", - nombre=getattr(company, 'name', "Local Company"), + nombre=getattr(company, "name", "Local Company"), direccion="FISCAL ADDRESS", - num_exterior="", colonia="", codigo_postal="", ciudad="", estado="", pais="MEX", - tax_id=getattr(company, 'rfc', ""), - programa=getattr(company, 'program', "IMMEX"), autorizacion=getattr(company, 'program_number', "") + num_exterior="", + colonia="", + codigo_postal="", + ciudad="", + estado="", + pais="MEX", + tax_id=getattr(company, "rfc", ""), + programa=getattr(company, "program", "IMMEX"), + autorizacion=getattr(company, "program_number", ""), ) # Left Side Logic (Sold To) cliente_vendido = cliente_default if compliance and compliance.sold_to_id: # Force English header for American Invoice - clean_header = "Sold To:" + clean_header = "Sold To:" # raw_header = compliance.sold_to_header or "SOLD_TO" # clean_header = raw_header.replace("_", " ").title() + ":" - cliente_vendido = self._obtener_datos_cliente(db, compliance.sold_to_id, clean_header) - + cliente_vendido = self._obtener_datos_cliente( + db, compliance.sold_to_id, clean_header + ) + # Right Side Logic (Shipped To) cliente_enviado = cliente_default if compliance and compliance.shipped_to_id: @@ -183,26 +281,37 @@ class FacturaImportacionUsaService: clean_header_shipped = "Shipped To:" # raw_header_shipped = compliance.shipped_to_header or "SHIPPED_TO" # clean_header_shipped = raw_header_shipped.replace("_", " ").title() + ":" - - # Fetch client data - cliente_enviado = self._obtener_datos_cliente(db, compliance.shipped_to_id, clean_header_shipped) - remesa_valor = str(compliance.remesa) if (compliance and compliance.remesa) else "" - acuse_valor = str(compliance.edocument) if (compliance and compliance.edocument) else "N/A" + # Fetch client data + cliente_enviado = self._obtener_datos_cliente( + db, compliance.shipped_to_id, clean_header_shipped + ) + + remesa_valor = ( + str(compliance.remesa) if (compliance and compliance.remesa) else "" + ) + acuse_valor = ( + str(compliance.edocument) + if (compliance and compliance.edocument) + else "N/A" + ) patente_val = "" if pedimento and pedimento.license: patente_val = pedimento.license - elif 'broker' in locals() and broker and broker.license: + elif "broker" in locals() and broker and broker.license: patente_val = broker.license - # --- Transport Data Fetching --- - transporte_txt = str(logistics.transport_type) if (logistics and logistics.transport_type) else "" + transporte_txt = ( + str(logistics.transport_type) + if (logistics and logistics.transport_type) + else "" + ) num_transporte_val = (logistics.trailer_num or "") if logistics else "" - + # Init values - placas_val = (logistics.license_plate or "") if logistics else "" # Plates + placas_val = (logistics.license_plate or "") if logistics else "" # Plates placas_remolque_val = "" transportista_val = (logistics.carrier_id or "") if logistics else "" caat_val = "" @@ -212,53 +321,89 @@ class FacturaImportacionUsaService: if logistics: # 1. Transporter (CAAT / SCAC) if logistics.carrier_id: - transporter_obj = db.query(Transporter).filter(Transporter.transporter_key == logistics.carrier_id).first() + transporter_obj = ( + db.query(Transporter) + .filter(Transporter.transporter_key == logistics.carrier_id) + .first() + ) if transporter_obj: caat_val = transporter_obj.caat_code or "" - scac_val = transporter_obj.transport_code or "" # Mapping transport_code to SCAC + scac_val = ( + transporter_obj.transport_code or "" + ) # Mapping transport_code to SCAC transportista_val = transporter_obj.name or logistics.carrier_id # 2. Vehicle (Plates) if logistics.transport_id: - veh_obj = db.query(Vehicle).filter(Vehicle.vehicle_key == logistics.transport_id).first() + veh_obj = ( + db.query(Vehicle) + .filter(Vehicle.vehicle_key == logistics.transport_id) + .first() + ) if veh_obj: - placas_val = veh_obj.plate_number or placas_val - elif logistics.vehicle_num: - veh_obj = db.query(Vehicle).filter(Vehicle.vehicle_key == logistics.vehicle_num).first() - if veh_obj: - placas_val = veh_obj.plate_number or placas_val + placas_val = veh_obj.plate_number or placas_val + elif logistics.vehicle_num: + veh_obj = ( + db.query(Vehicle) + .filter(Vehicle.vehicle_key == logistics.vehicle_num) + .first() + ) + if veh_obj: + placas_val = veh_obj.plate_number or placas_val # 3. Trailer if logistics.trailer_num: - trl_obj = db.query(Trailer).filter(Trailer.trailer_number == logistics.trailer_num).first() + trl_obj = ( + db.query(Trailer) + .filter(Trailer.trailer_number == logistics.trailer_num) + .first() + ) if trl_obj: placas_remolque_val = trl_obj.plate_number or "" # 4. Driver (License) if logistics.carrier_id and logistics.driver_name: - drv_obj = db.query(Driver).filter( - Driver.transporter_key == logistics.carrier_id, - Driver.driver_name == logistics.driver_name - ).first() + drv_obj = ( + db.query(Driver) + .filter( + Driver.transporter_key == logistics.carrier_id, + Driver.driver_name == logistics.driver_name, + ) + .first() + ) if drv_obj: - licencia_cond_val = drv_obj.license_number or "" + licencia_cond_val = drv_obj.license_number or "" # Determine Currency - moneda_final = getattr(header, 'currency', "USD") or "USD" - if currency_code == 'MXN': - moneda_final = 'MXN' - elif currency_code == 'USD': - moneda_final = 'USD' + moneda_final = getattr(header, "currency", "USD") or "USD" + if currency_code == "MXN": + moneda_final = "MXN" + elif currency_code == "USD": + moneda_final = "USD" factura_schema = FacturaSchema( numero=header.invoice_number or "N/A", - titulo_documento=self._get_document_title(header.invoice_type or "", is_american=True), + titulo_documento=self._get_document_title( + header.invoice_type or "", is_american=True + ), fecha=str(header.invoice_date) if header.invoice_date else "", - tipo_cambio=float(financials.exchange_rate) if (financials and financials.exchange_rate) else (float(pedimento.exchange_rate) if pedimento and pedimento.exchange_rate else 1.0), + tipo_cambio=( + float(financials.exchange_rate) + if (financials and financials.exchange_rate) + else ( + float(pedimento.exchange_rate) + if pedimento and pedimento.exchange_rate + else 1.0 + ) + ), moneda=moneda_final, incoterm=(logistics.incoterm or "") if logistics else "", observaciones=header.observation_es or header.observation_en or "", - pedimento=f"{pedimento.year} {pedimento.customs_office[:2] if pedimento.customs_office else ''} {pedimento.license} {pedimento.pedimento_number}" if pedimento else "", + pedimento=( + f"{pedimento.year} {pedimento.customs_office[:2] if pedimento.customs_office else ''} {pedimento.license} {pedimento.pedimento_number}" + if pedimento + else "" + ), clave_pedimento=pedimento.pedimento_code if pedimento else "", regimen=header.document_type or "", patente=patente_val, @@ -271,62 +416,87 @@ class FacturaImportacionUsaService: caat=caat_val, scac=scac_val, licencia_conductor=licencia_cond_val, - aduana=compliance.aduana if (compliance and compliance.aduana) else (pedimento.customs_office[:2] if (pedimento and pedimento.customs_office) else ""), + aduana=( + compliance.aduana + if (compliance and compliance.aduana) + else ( + pedimento.customs_office[:2] + if (pedimento and pedimento.customs_office) + else "" + ) + ), precinto=(logistics.seal_number or "") if logistics else "", destino=(logistics.destination_goods or "") if logistics else "", - remesa=remesa_valor, acuse_electronico=acuse_valor + remesa=remesa_valor, + acuse_electronico=acuse_valor, ) - - if progress_callback: progress_callback(50, "Processing items...") - lines = db.query(LineItem).join(Item, LineItem.item_id == Item.id).filter(Item.invoice_id == header.id).all() + + if progress_callback: + progress_callback(50, "Processing items...") + lines = db.query(LineItem).filter(LineItem.invoice_id == header.id).all() partidas_list = [] - + for line in lines: - qty = db.query(LineQuantity).filter(LineQuantity.item_line_id == line.id).first() - fin = db.query(LineFinancial).filter(LineFinancial.item_line_id == line.id).first() - part_master = db.query(Part).filter(Part.id == line.part_number).first() + qty = ( + db.query(LineQuantity) + .filter(LineQuantity.item_line_id == line.id) + .first() + ) + fin = ( + db.query(LineFinancial) + .filter(LineFinancial.item_line_id == line.id) + .first() + ) + part_master = ( + db.query(Part).filter(Part.id == line.part_number_id).first() + ) desc_final = "N/D" - num_parte_final = str(line.part_number or "N/A") - fraccion_raw = "" + num_parte_final = str(line.part_number_id or "N/A") + fraccion_raw = "" origen_final = "MEX" if part_master: # Prefer English description if available, else Spanish - desc_final = part_master.description_english or part_master.description_spanish or "No Desc." + desc_final = ( + part_master.description_english + or part_master.description_spanish + or "No Desc." + ) num_parte_final = part_master.part_number # Prefer US Fraction (HTS) if available - fraccion_raw = part_master.us_fraction if part_master.us_fraction else "" - + fraccion_raw = ( + part_master.us_fraction if part_master.us_fraction else "" + ) + if part_master.fa_data and part_master.fa_data.origin_country: origen_final = part_master.fa_data.origin_country - # FRACTION LOGIC: Use US Fraction (us_fraction) if available, otherwise blank fraccion_imprimir = "" - + # Check part master US fraction if part_master and part_master.us_fraction: fraccion_imprimir = part_master.us_fraction.strip() - + # Optional: Format if needed, but raw is usually fine for US HTS # If valid US fraction logic requires looking up in DB, we could add that here. # For now, per requirement: "Si no tiene, pues de queda en blanco" - + # Default "General" and "0%" if no specific logic for US duties yet - preferencia_txt = "General" + preferencia_txt = "General" advalorem_txt = "0%" # Prioritize USD for American Invoice logic if available? # Sticking to same logic as Mex for now but could prioritize USD columns. # Actually, duplicate logic from mex service for now to ensure consistency. - + v_unitario = 0.0 v_total = 0.0 - + if fin: - is_mxn = (factura_schema.moneda == 'MXN') - + is_mxn = factura_schema.moneda == "MXN" + if is_mxn: v_unitario = float(fin.unit_cost_commercial_mxn or 0.0) v_total = float(fin.value_commercial_mxn or 0.0) @@ -335,13 +505,13 @@ class FacturaImportacionUsaService: v_total = float(fin.value_commercial_usd or 0.0) if not v_unitario: - v_unitario = float(fin.commercial_unit_cost or 0.0) - + v_unitario = float(fin.commercial_unit_cost or 0.0) + if not v_total: - v_total = float(fin.total_commercial_value or 0.0) + v_total = float(fin.total_commercial_value or 0.0) cantidad = float(qty.quantity) if (qty and qty.quantity) else 0.0 - + if cantidad > 0: if v_unitario > 0 and v_total == 0: v_total = v_unitario * cantidad @@ -349,39 +519,59 @@ class FacturaImportacionUsaService: v_unitario = v_total / cantidad # UOM Mapping for English context - uom_raw = qty.weight_unit if qty else "PCS" - if uom_raw == "PZA": uom_raw = "PCS" + uom_raw = line.unit_of_measure_info.code if line.unit_of_measure_info else "PCS" + if uom_raw == "PZA": + uom_raw = "PCS" - partidas_list.append(PartidaSchema( - numero_parte=num_parte_final, - descripcion=desc_final, - fraccion=fraccion_imprimir, - origen=origen_final, - advalorem=advalorem_txt, - preferencia=preferencia_txt, - cantidad_importacion=self.formatear_numero(qty.quantity if qty else 0), - unidad_medida=uom_raw, - cantidad_bultos=int(qty.package_quantity) if qty and qty.package_quantity else 0, - clave_bultos=(qty.package_key or "") if qty else "", - peso_neto=self.formatear_numero(qty.net_weight if qty else 0), - peso_bruto=self.formatear_numero(qty.gross_weight if qty else 0), - valor_costo_unitario=self.formatear_numero(v_unitario), - valor_total=self.formatear_numero(v_total) - )) + partidas_list.append( + PartidaSchema( + numero_parte=num_parte_final, + descripcion=desc_final, + fraccion=fraccion_imprimir, + origen=origen_final, + advalorem=advalorem_txt, + preferencia=preferencia_txt, + cantidad_importacion=self.formatear_numero( + qty.quantity if qty else 0 + ), + unidad_medida=uom_raw, + cantidad_bultos=( + int(qty.package_quantity) + if qty and qty.package_quantity + else 0 + ), + clave_bultos=( + qty.package_info.key if (qty and qty.package_info) else "" + ), + peso_neto=self.formatear_numero(qty.net_weight if qty else 0), + peso_bruto=self.formatear_numero( + qty.gross_weight if qty else 0 + ), + valor_costo_unitario=self.formatear_numero(v_unitario), + valor_total=self.formatear_numero(v_total), + ) + ) - totales = self.calcular_totales(partidas_list, Decimal(factura_schema.tipo_cambio)) + totales = self.calcular_totales( + partidas_list, Decimal(factura_schema.tipo_cambio) + ) return FacturaImportacionCompleta( - cliente_proveedor=cliente_proveedor, cliente_vendido=cliente_vendido, - cliente_enviado=cliente_enviado, factura=factura_schema, - partidas=partidas_list, totales=totales + cliente_proveedor=cliente_proveedor, + cliente_vendido=cliente_vendido, + cliente_enviado=cliente_enviado, + factura=factura_schema, + partidas=partidas_list, + totales=totales, ) except Exception as e: print(f"Error Service A76 USA: {e}") raise HTTPException(status_code=500, detail=f"Error: {str(e)}") - def calcular_totales(self, partidas: List[PartidaSchema], tipo_cambio: Decimal) -> TotalesSchema: + def calcular_totales( + self, partidas: List[PartidaSchema], tipo_cambio: Decimal + ) -> TotalesSchema: cant = sum(p.cantidad_importacion for p in partidas) valor = sum(p.valor_total for p in partidas) peso_n = sum(p.peso_neto for p in partidas) @@ -389,22 +579,38 @@ class FacturaImportacionUsaService: bultos = sum(p.cantidad_bultos for p in partidas) claves = [p.clave_bultos for p in partidas if p.clave_bultos] clave_comun = max(set(claves), key=claves.count) if claves else "" - # if bultos > 1 and clave_comun and not clave_comun.endswith("S"): clave_comun += "S" + # if bultos > 1 and clave_comun and not clave_comun.endswith("S"): clave_comun += "S" # Don't pluralize strictly in English without logic, kept simple. - + tc = float(tipo_cambio) if tipo_cambio else 1.0 - return TotalesSchema( - cantidad_total=self.formatear_numero(cant), bultos_total=bultos, clave_bultos=clave_comun, - peso_neto_total=self.formatear_numero(peso_n), peso_bruto_total=self.formatear_numero(peso_b), - valor_total_total=self.formatear_numero(valor), valor_total_dolares=self.formatear_numero(valor / tc if tc > 0 else 0) + return TotalesSchema( + cantidad_total=self.formatear_numero(cant), + bultos_total=bultos, + clave_bultos=clave_comun, + peso_neto_total=self.formatear_numero(peso_n), + peso_bruto_total=self.formatear_numero(peso_b), + valor_total_total=self.formatear_numero(valor), + valor_total_dolares=self.formatear_numero(valor / tc if tc > 0 else 0), ) - def generar_factura_completa(self, db: Session, invoice_id: int, company_id: int, formato: str = "pdf", progress_callback: Optional[Callable] = None, currency_code: str = 'ORIGINAL') -> Tuple[bytes, str, str]: - if progress_callback: progress_callback(5, "Starting report service...") - datos = self.obtener_datos(db, invoice_id, company_id, progress_callback, currency_code) - - if progress_callback: progress_callback(80, "Rendering template...") - + def generar_factura_completa( + self, + db: Session, + invoice_id: int, + company_id: int, + formato: str = "pdf", + progress_callback: Optional[Callable] = None, + currency_code: str = "ORIGINAL", + ) -> Tuple[bytes, str, str]: + if progress_callback: + progress_callback(5, "Starting report service...") + datos = self.obtener_datos( + db, invoice_id, company_id, progress_callback, currency_code + ) + + if progress_callback: + progress_callback(80, "Rendering template...") + # LOGO LOGIC logo_b64 = None try: @@ -419,26 +625,48 @@ class FacturaImportacionUsaService: if target_path.exists(): with open(target_path, "rb") as image_file: - encoded_string = base64.b64encode(image_file.read()).decode('utf-8') + encoded_string = base64.b64encode(image_file.read()).decode( + "utf-8" + ) mime = "image/png" - if target_path.suffix.lower() in ['.jpg', '.jpeg']: mime = "image/jpeg" + if target_path.suffix.lower() in [".jpg", ".jpeg"]: + mime = "image/jpeg" logo_b64 = f"data:{mime};base64,{encoded_string}" except Exception as e: print(f"Error loading logo: {e}") context = { - 'cliente_proveedor': datos.cliente_proveedor.model_dump(), 'cliente_vendido': datos.cliente_vendido.model_dump(), - 'cliente_enviado': datos.cliente_enviado.model_dump(), 'factura': datos.factura.model_dump(), - 'partidas': [p.model_dump() for p in datos.partidas], 'totales': datos.totales.model_dump(), - 'logo_b64': logo_b64 + "cliente_proveedor": datos.cliente_proveedor.model_dump(), + "cliente_vendido": datos.cliente_vendido.model_dump(), + "cliente_enviado": datos.cliente_enviado.model_dump(), + "factura": datos.factura.model_dump(), + "partidas": [p.model_dump() for p in datos.partidas], + "totales": datos.totales.model_dump(), + "logo_b64": logo_b64, } html_content = self.template.render(**context) nombre = f"Commercial_Invoice_{datos.factura.numero}.{formato}" - if formato == "html": return html_content.encode('utf-8'), nombre, "text/html" - - if progress_callback: progress_callback(90, "Generating PDF...") - options = {'page-size': 'Letter', 'margin-top': '0.5in', 'margin-right': '0.5in', 'margin-bottom': '0.5in', 'margin-left': '0.5in', 'encoding': "UTF-8", 'enable-local-file-access': None} - pdf = pdfkit.from_string(html_content, False, options=options, configuration=self._get_wkhtmltopdf_config()) - - if progress_callback: progress_callback(100, "Completed") + if formato == "html": + return html_content.encode("utf-8"), nombre, "text/html" + + if progress_callback: + progress_callback(90, "Generating PDF...") + options = { + "page-size": "Letter", + "margin-top": "0.5in", + "margin-right": "0.5in", + "margin-bottom": "0.5in", + "margin-left": "0.5in", + "encoding": "UTF-8", + "enable-local-file-access": None, + } + pdf = pdfkit.from_string( + html_content, + False, + options=options, + configuration=self._get_wkhtmltopdf_config(), + ) + + if progress_callback: + progress_callback(100, "Completed") return pdf, nombre, "application/pdf" diff --git a/backend/api/v1/modules/a76/reports/importacion/packing_list/service.py b/backend/api/v1/modules/a76/reports/importacion/packing_list/service.py index a6163592..8500c2d4 100644 --- a/backend/api/v1/modules/a76/reports/importacion/packing_list/service.py +++ b/backend/api/v1/modules/a76/reports/importacion/packing_list/service.py @@ -13,7 +13,6 @@ from sqlalchemy.orm import Session # --- MODELOS --- from api.v1.modules.a76.invoices.models import InvoiceHeader, InvoiceLogistics from api.v1.modules.a76.items.line_quantities.models import LineQuantity -from api.v1.modules.a76.items.line_items.models import LineItem from api.v1.modules.a76.items.line_customs.models import LineCustom from api.v1.modules.a76.clients_and_providers.models import ( ClientProvider, ClientProviderAddress, ClientProviderPrograms @@ -22,7 +21,7 @@ from api.v1.modules.a76.parts.models import Part from api.v1.modules.a76.pedmientos.models import Pedimentos from api.v1.modules.a76.general_catalogs.company.models import Company from api.v1.modules.a76.customs_brokers.models import CustomsBroker -from api.v1.modules.a76.items.models import Item +from api.v1.modules.a76.items.models import LineItem # --- TRANSPORTATION MODELS --- from api.v1.modules.a76.transportation.transporters.models import Transporter @@ -31,7 +30,7 @@ from api.v1.modules.a76.transportation.trailers.models import Trailer from api.v1.modules.a76.transportation.drivers.models import Driver # --- MODELO DE FRACCIONES --- -from api.v1.modules.a76.general_catalogs.tariff_fractions.models import TariffFraction +from api.v1.modules.a76.general_catalogs.fractions.tariff_fractions.models import TariffFraction # --- SCHEMAS --- from .schemas import ( @@ -238,40 +237,40 @@ class PackingListService: ) if progress_callback: progress_callback(50, "Procesando partidas...") - lines = db.query(LineItem).join(Item, LineItem.item_id == Item.id).filter(Item.invoice_id == header.id).all() + lines = db.query(LineItem).filter(LineItem.invoice_id == header.id).all() partidas_list = [] for line in lines: - qty = db.query(LineQuantity).filter(LineQuantity.item_line_id == line.id).first() + weight_type = db.query(InvoiceLogistics.weight_type).filter(InvoiceLogistics.invoice_id == line.invoice_id).scalar() + qty = db.query(LineQuantity).filter(LineQuantity.item_line_id == line.id).first() # --- WEIGHT CALCULATION LOGIC --- peso_neto_kg = 0.0 peso_bruto_kg = 0.0 peso_neto_lb = 0.0 - peso_bruto_lb = 0.0 + peso_bruto_lb = 0.0 - if qty: - raw_net = float(qty.net_weight or 0) - raw_gross = float(qty.gross_weight or 0) - unit = (qty.weight_unit or "KG").upper() - - if unit == "LB" or unit == "LBS": - peso_neto_lb = raw_net - peso_bruto_lb = raw_gross - peso_neto_kg = raw_net / 2.20462 - peso_bruto_kg = raw_gross / 2.20462 - else: # Default KG - peso_neto_kg = raw_net - peso_bruto_kg = raw_gross - peso_neto_lb = raw_net * 2.20462 - peso_bruto_lb = raw_gross * 2.20462 + raw_net = float(qty.net_weight or 0) + raw_gross = float(qty.gross_weight or 0) + unit = (weight_type or "KGS").upper() + + if unit == "LBS": + peso_neto_lb = raw_net + peso_bruto_lb = raw_gross + peso_neto_kg = raw_net / 2.20462 + peso_bruto_kg = raw_gross / 2.20462 + else: # Default KG + peso_neto_kg = raw_net + peso_bruto_kg = raw_gross + peso_neto_lb = raw_net * 2.20462 + peso_bruto_lb = raw_gross * 2.20462 # -------------------------------- custom_obj = db.query(LineCustom).filter(LineCustom.item_line_id == line.id).first() - part_master = db.query(Part).filter(Part.id == line.part_number).first() + part_master = db.query(Part).filter(Part.id == line.part_number_id).first() desc_final = "S/D" - num_parte_final = str(line.part_number or "S/N") + num_parte_final = str(line.part_number_id or "S/N") fraccion_raw = "" origen_final = "MEX" uom_comercial = "PZA" # Default UOM diff --git a/backend/api/v1/modules/a76/router.py b/backend/api/v1/modules/a76/router.py index 16d8c79c..8191668e 100644 --- a/backend/api/v1/modules/a76/router.py +++ b/backend/api/v1/modules/a76/router.py @@ -8,43 +8,23 @@ from fastapi import APIRouter from .customs_brokers.routes import router as customs_broker_router # Importar routers de módulos +from .general_catalogs.router import router as general_catalogs_router from .invoices.routes import router as invoices_router from .items.routes import router as items_router from .classes import router as classes_router +from .classes import router as classes_router from .clients_and_providers import router as client_and_provider_router +from .imports.routes import router as imports_router from .invoice_settings.routes import router as invoice_settings_router from .item_presets.routes import router as item_presets_router from .general_catalogs.company import router as company_router from .country_rule_oct.routes import router as country_rule_oct_router from .transportation.drivers.routes import router as drivers_router from .doc_types_dig.routes import router as doc_types_dig_router -from .general_catalogs.exchange_rate.routes import router as exchange_rate_router -from .general_catalogs.identifiers.routes import router as identifiers_router from .fraction_rule_octave.routes import router as fraction_rule_octave_router -from .general_catalogs.packages.routes import router as package_router -from .general_catalogs.ports.routes import router as ports_router -from .general_catalogs.tariff_fractions.routes import router as tariff_fractions_router -from .general_catalogs.us_tariff_fractions.routes import router as us_tariff_fractions_router -from .general_catalogs.depreciation_catalog.routes import router as depreciation_catalog_router -from .general_catalogs.fda_catalog.routes import router as fda_catalog_router from .parts import router as parts_router from .pedmientos.router import router as pedimentos_router from .permission_rule_oct.routes import router as permission_rule_oct_router -from .general_catalogs.seal.routes import router as seal_router -from .general_catalogs.units_of_measure.routes import router as units_of_measure_router -from .general_catalogs.concepts.routes import router as concepts_router -from .general_catalogs.customs_broker_concepts.routes import router as customs_broker_concepts_router -from .general_catalogs.classification_concepts.routes import router as classification_concepts_router -from .general_catalogs.unit_conversions.routes import router as unit_conversions_router -from .general_catalogs.equivalencies.routes import router as equivalencies_router -from .general_catalogs.multi_currency_types.routes import router as multi_currency_types_router -from .general_catalogs.inpc.routes import router as inpc_router -from .general_catalogs.legends.routes import router as legends_router -from .general_catalogs.signatures.routes import router as signatures_router -from .general_catalogs.error_catalogs.routes import router as error_catalogs_router -from .general_catalogs.doda.routes import router as doda_router -from .general_catalogs.prevalidators.routes import router as prevalidators_router -from .general_catalogs.electronic_notices.routes import router as electronic_notices_router from .transportation.trailers.routes import router as trailers_router from .transportation.transporters.routes import router as transporters_router from .transportation.vehicles.routes import router as vehicles_router @@ -69,63 +49,26 @@ from .reports.importacion.transmission.definitive.MAINX30.routes import router a router = APIRouter() # Registrar módulos +router.include_router(general_catalogs_router, prefix="/a76", tags=["a76 / general_catalogs"]) router.include_router(invoices_router, prefix="/a76", tags=["a76 / invoices"]) router.include_router(items_router, prefix="/a76", tags=["a76 / items"]) +router.include_router(imports_router, prefix="/a76/imports", tags=["a76 / imports"]) router.include_router(invoice_settings_router) router.include_router(item_presets_router, prefix="/a76/item-presets", tags=["a76 / item_presets"]) router.include_router(pedimentos_router, prefix="/a76") -router.include_router( - client_and_provider_router, prefix="/a76", tags=["a76 / clients_and_providers"] -) -router.include_router(company_router, prefix="/a76", tags=["a76 / company"]) -router.include_router(classes_router, prefix="/a76", tags=["a76 / classes"]) +router.include_router(client_and_provider_router, prefix="/a76", tags=["a76 / clients_and_providers"]) +router.include_router(classes_router, prefix="/a76/classes", tags=["a76 / classes"]) router.include_router(parts_router, prefix="/a76", tags=["a76 / parts"]) -router.include_router( - permission_rule_oct_router, prefix="/a76", tags=["a76 / permission_rule_oct"] -) -router.include_router(package_router, prefix="/a76") -router.include_router(ports_router, prefix="/a76") -router.include_router(tariff_fractions_router, prefix="/a76") -router.include_router(us_tariff_fractions_router, prefix="/a76") -router.include_router(depreciation_catalog_router, prefix="/a76") -router.include_router(fda_catalog_router, prefix="/a76") -router.include_router(seal_router, prefix="/a76", tags=["a76 / seal"]) -router.include_router(units_of_measure_router, prefix="/a76") -router.include_router( - fraction_rule_octave_router, prefix="/a76", tags=["a76 / fraction_rule_octave"] -) -router.include_router(identifiers_router, prefix="/a76") -router.include_router( - country_rule_oct_router, prefix="/a76", tags=["a76 / country_rule_oct"] -) -router.include_router(exchange_rate_router, prefix="/a76", - tags=["a76 / exchange_rate"]) +router.include_router(permission_rule_oct_router, prefix="/a76", tags=["a76 / permission_rule_oct"]) +router.include_router(fraction_rule_octave_router, prefix="/a76", tags=["a76 / fraction_rule_octave"]) +router.include_router(country_rule_oct_router, prefix="/a76", tags=["a76 / country_rule_oct"]) router.include_router(trailers_router, prefix="/a76/transportation", tags=["a76 / trailers"]) -router.include_router( - customs_broker_router, prefix="/a76", tags=["a76 / customs_broker"] -) +router.include_router(customs_broker_router, prefix="/a76", tags=["a76 / customs_broker"]) router.include_router(doc_types_dig_router, prefix="/a76", tags=["a76 / document_types_digitization"]) router.include_router(drivers_router, prefix="/a76", tags=["a76 / drivers"]) -router.include_router(transporters_router, prefix="/a76", - tags=["a76 / transporters"]) +router.include_router(transporters_router, prefix="/a76", tags=["a76 / transporters"]) router.include_router(vehicles_router, prefix="/a76/transportation", tags=["a76 / vehicles"]) -# Registrar catálogos generales adicionales -router.include_router(concepts_router, prefix="/a76") -router.include_router(customs_broker_concepts_router, prefix="/a76") -router.include_router(classification_concepts_router, prefix="/a76") -router.include_router(unit_conversions_router, prefix="/a76") -router.include_router(equivalencies_router, prefix="/a76") -router.include_router(multi_currency_types_router, prefix="/a76") -router.include_router(inpc_router, prefix="/a76") -router.include_router(legends_router, prefix="/a76") -router.include_router(signatures_router, prefix="/a76") -router.include_router(error_catalogs_router, prefix="/a76") -router.include_router(doda_router, prefix="/a76") -router.include_router(prevalidators_router, prefix="/a76") -router.include_router(electronic_notices_router, prefix="/a76") - - # Registrar router de tipos de material públicos router.include_router( material_types_router, diff --git a/backend/api/v1/modules/core/dashboard/service.py b/backend/api/v1/modules/core/dashboard/service.py index 9c10d7a7..64c00dba 100644 --- a/backend/api/v1/modules/core/dashboard/service.py +++ b/backend/api/v1/modules/core/dashboard/service.py @@ -12,7 +12,7 @@ from api.v1.modules.a76.invoices.models import ( InvoiceComplianceMx, OperationType, ) -from api.v1.modules.a76.items.models import Item +from api.v1.modules.a76.items.models import LineItem from api.v1.modules.a76.clients_and_providers.models import ( ClientProvider, ClientOrProviderEnum, @@ -244,9 +244,9 @@ class DashboardService: def get_items_metrics(self) -> KPIMetric: """Obtiene métricas de items/productos""" total_items = ( - self.db.query(func.count(Item.id)) + self.db.query(func.count(LineItem.id)) .filter( - Item.tenant_id == self.tenant_id, Item.company_id == self.company_id + LineItem.tenant_id == self.tenant_id, LineItem.company_id == self.company_id ) .scalar() or 0 diff --git a/backend/api/v1/modules/public/reference_data/sectors/dto.py b/backend/api/v1/modules/public/reference_data/sectors/dto.py index f25ca5dd..e97e8a1d 100644 --- a/backend/api/v1/modules/public/reference_data/sectors/dto.py +++ b/backend/api/v1/modules/public/reference_data/sectors/dto.py @@ -4,6 +4,6 @@ from pydantic import BaseModel, ConfigDict, Field class SectorDTO(BaseModel): key: str = Field(..., min_length=1, max_length=8) description: str - authorized: int + authorized: bool model_config = ConfigDict(from_attributes=True) diff --git a/backend/api/v1/modules/public/reference_data/sectors/models.py b/backend/api/v1/modules/public/reference_data/sectors/models.py index f87fa0ef..6c581cf1 100644 --- a/backend/api/v1/modules/public/reference_data/sectors/models.py +++ b/backend/api/v1/modules/public/reference_data/sectors/models.py @@ -1,5 +1,5 @@ from core.database import Base -from sqlalchemy import PrimaryKeyConstraint, SmallInteger, String +from sqlalchemy import Boolean, PrimaryKeyConstraint, SmallInteger, String from sqlalchemy.orm import Mapped, mapped_column @@ -15,9 +15,9 @@ class Sector(Base): description: Mapped[str] = mapped_column( String(150), nullable=False ) # descripción oficial (en español) - authorized: Mapped[SmallInteger] = mapped_column( - SmallInteger - ) # 1 = autorizado, 0 = no autorizado + authorized: Mapped[bool] = mapped_column( + Boolean + ) # True = autorizado, False = no autorizado def __repr__(self): return f"" diff --git a/backend/api/v1/modules/public/reference_data/sectors/routes.py b/backend/api/v1/modules/public/reference_data/sectors/routes.py index 05aa0f72..da38ac7d 100644 --- a/backend/api/v1/modules/public/reference_data/sectors/routes.py +++ b/backend/api/v1/modules/public/reference_data/sectors/routes.py @@ -1,8 +1,10 @@ -from typing import Any, Dict + +from typing import Any, Dict, Optional from core.database import get_core_db -from core.security import get_current_user, has_role +from core.security import get_current_user from fastapi import APIRouter, Depends, HTTPException, Query +from sqlalchemy import or_ from sqlalchemy.orm import Session from .dto import SectorDTO @@ -15,13 +17,25 @@ router = APIRouter(prefix="/sectors") def list_sectors( page: int = Query(1, ge=1, description="Número de página"), page_size: int = Query(50, ge=1, le=100, description="Tamaño de página"), + search: Optional[str] = Query(None, description="Término de búsqueda"), db: Session = Depends(get_core_db), current_user: dict = Depends(get_current_user), ): skip = (page - 1) * page_size query = db.query(Sector) - items = query.offset(skip).limit(page_size).all() + + if search: + search_filter = or_( + Sector.key.ilike(f"%{search}%"), + Sector.description.ilike(f"%{search}%") + ) + query = query.filter(search_filter) + total = query.count() + # Add deterministic sort order + query = query.order_by(Sector.key) + items = query.offset(skip).limit(page_size).all() + return { "items": [SectorDTO.model_validate(obj) for obj in items], "total": total, @@ -40,47 +54,3 @@ def get_sector( if not obj: raise HTTPException(status_code=404, detail="Not found") return obj - - -@router.post("/", response_model=SectorDTO, status_code=201) -def create_sector( - data: SectorDTO, - db: Session = Depends(get_core_db), - current_user: dict = Depends(has_role("admin")), -): - obj = Sector(**data.dict()) - db.add(obj) - db.commit() - db.refresh(obj) - return obj - - -@router.put("/{key}", response_model=SectorDTO) -def update_sector( - key: str, - data: SectorDTO, - db: Session = Depends(get_core_db), - current_user: dict = Depends(has_role("admin")), -): - obj = db.query(Sector).filter(Sector.key == key).first() - if not obj: - raise HTTPException(status_code=404, detail="Not found") - for field, value in data.dict().items(): - setattr(obj, field, value) - db.commit() - db.refresh(obj) - return obj - - -@router.delete("/{key}", status_code=204) -def delete_sector( - key: str, - db: Session = Depends(get_core_db), - current_user: dict = Depends(has_role("admin")), -): - obj = db.query(Sector).filter(Sector.key == key).first() - if not obj: - raise HTTPException(status_code=404, detail="Not found") - db.delete(obj) - db.commit() - return None diff --git a/backend/api/v1/modules/sitar/README.md b/backend/api/v1/modules/sitar/README.md new file mode 100644 index 00000000..53a9aa0f --- /dev/null +++ b/backend/api/v1/modules/sitar/README.md @@ -0,0 +1,320 @@ +# SITAR API Module + +Módulo reorganizado para integración con la API externa de SITAR (Sistema de Información de Aranceles). + +## Estructura + +Cada recurso ahora tiene su propia carpeta con separación de responsabilidades: + +``` +backend/api/v1/modules/sitar/ +├── common/ # Servicio base compartido +│ ├── __init__.py +│ └── base_service.py # SitarAPIBaseService con autenticación +├── tlcs/ # TLCS (Tratados de Libre Comercio) +│ ├── __init__.py +│ ├── schemas.py # TLCSResponse +│ ├── service.py # TLCSService +│ └── router.py # Endpoints FastAPI +├── fracciones/ # Fracciones arancelarias mexicanas +├── fracciones_usa/ # Fracciones USA +├── regulaciones/ # Regulaciones y restricciones +├── prosec/ # PROSEC +├── precios_estimados/ # Precios estimados +├── fundamentos_tlc/ # Fundamentos TLC +├── aladi2/ # ALADI2 +├── cuotas2/ # Cuotas compensatorias +├── cupos/ # Cupos de importación +├── fracciones_anteriores/ # Historial de fracciones +├── informacion_general/ # Información general +├── ieps/ # IEPS +├── noms/ # Normas Oficiales Mexicanas +├── rcg2/ # Reglas de Carácter General +├── reit/ # REIT +├── requisito_previo/ # Requisitos previos +├── vehiculos_marcas/ # Marcas de vehículos +├── vehiculos_modelos/ # Modelos de vehículos +├── __init__.py # Exporta todos los servicios +└── main_router.py # Router principal con todos los endpoints +``` + +## Uso del Servicio + +### Desde cualquier parte del código + +Cada recurso tiene su propio servicio **singleton** que maneja automáticamente la autenticación: + +```python +from api.v1.modules.sitar.tlcs import TLCSService +from api.v1.modules.sitar.fracciones import FraccionesService + +# Obtener instancia singleton +tlcs_service = TLCSService.get_instance() + +# Buscar TLCS (async) +tlcs_data = await tlcs_service.search( + fraccion="84716001", + pais="USA", + limit=100 +) + +# Procesar resultados +for tlcs in tlcs_data: + print(f"Tasa: {tlcs.TASATXT}, País: {tlcs.PAIS}") +``` + +### Desde código síncrono + +Si estás en contexto síncrono, usa `asyncio.run()`: + +```python +import asyncio +from api.v1.modules.sitar.tlcs import TLCSService + +tlcs_service = TLCSService.get_instance() +tlcs_data = asyncio.run(tlcs_service.search(fraccion="84716001", pais="USA")) +``` + +## Métodos Disponibles + +### TLCS (Tratados de Libre Comercio) + +- `search_tlcs(fraccion, pais, nico, skip, limit)` - Buscar TLCS +- `get_tlcs_by_id(sysid, fraccion)` - Obtener TLCS por ID + +### Fracciones Arancelarias + +- `search_fracciones(fraccion, nico, skip, limit)` - Buscar fracciones mexicanas +- `get_fraccion_by_id(sysid)` - Obtener fracción por ID +- `search_fracciones_usa(fraccion, skip, limit)` - Buscar fracciones USA +- `get_fraccion_usa_by_id(consecutivo)` - Obtener fracción USA por ID +- `search_fracciones_anteriores(fraccion_actual, fraccion_anterior, skip, limit)` - Buscar historial de fracciones +- `get_fracciones_anteriores_by_id(sysid)` - Obtener historial por ID + +### Regulaciones y Restricciones + +- `search_regulaciones(fraccion, nico, skip, limit)` - Buscar regulaciones +- `get_regulacion_by_id(sysid)` - Obtener regulación por ID +- `search_noms(fraccion, pais, nico, skip, limit)` - Buscar Normas Oficiales Mexicanas +- `get_noms_by_id(sysid)` - Obtener NOM por ID +- `search_requisito_previo(fraccion, nico, skip, limit)` - Buscar requisitos previos +- `get_requisito_previo_by_id(sysid)` - Obtener requisito previo por ID + +### PROSEC y Programas de Promoción + +- `search_prosec(fraccion, nico, skip, limit)` - Buscar PROSEC +- `get_prosec_by_id(sysid)` - Obtener PROSEC por ID +- `search_reit(fraccion, nico, skip, limit)` - Buscar REIT +- `get_reit_by_id(sysid)` - Obtener REIT por ID + +### Precios e Impuestos + +- `search_precios_estimados(fraccion, nico, skip, limit)` - Buscar precios estimados +- `get_precio_estimado_by_id(sysid)` - Obtener precio estimado por ID +- `search_ieps(fraccion, nico, skip, limit)` - Buscar IEPS +- `get_ieps_by_id(consecutivo)` - Obtener IEPS por ID + +### Fundamentos y Acuerdos + +- `search_fundamentos_tlc(fraccion, nico, tipat_only, skip, limit)` - Buscar fundamentos TLC +- `get_fundamento_tlc_by_id(sysid)` - Obtener fundamento por ID +- `search_aladi2(fraccion, pais, nico, skip, limit)` - Buscar ALADI2 +- `get_aladi2_by_id(sysid)` - Obtener ALADI2 por ID + +### Cuotas y Cupos + +- `search_cuotas2(fraccion, pais, nico, skip, limit)` - Buscar cuotas compensatorias +- `get_cuotas2_by_id(sysid)` - Obtener cuota por ID +- `search_cupos(fraccion, nico, skip, limit)` - Buscar cupos de importación +- `get_cupos_by_id(sysid)` - Obtener cupo por ID + +### Reglas de Carácter General + +- `search_rcg2(fraccion, nico, skip, limit)` - Buscar RCG2 +- `get_rcg2_by_id(sysid)` - Obtener RCG2 por ID + +### Información General + +- `search_informacion_general(fraccion, nico, skip, limit)` - Buscar información general +- `get_informacion_general_by_id(sysid)` - Obtener información general por ID + +### Vehículos + +- `search_vehiculos_marcas(fraccion, marca, skip, limit)` - Buscar marcas de vehículos +- `get_vehiculos_marcas_by_id(sysid)` - Obtener marca por ID +- `search_vehiculos_modelos(fraccion, marca, modelo, skip, limit)` - Buscar modelos de vehículos +- `get_vehiculos_modelos_by_id(sysid)` - Obtener modelo por ID + +## Configuración + +Requiere las siguientes variables de entorno: + +```bash +SITAR_API_URL=https://api.sitar.example.com +SITAR_API_USER=your_username +SITAR_API_PASSWORD=your_password +``` + +## Servicios Disponibles + +Cada módulo sigue el mismo patrón con métodos `search()` y `get_by_id()`: + +### TLCS - `TLCSService` + +```python +from api.v1.modules.sitar.tlcs import TLCSService +service = TLCSService.get_instance() +await service.search(fraccion="84716001", pais="USA", nico=None, skip=0, limit=100) +await service.get_by_id(sysid=123, fraccion="84716001") +``` + +### Fracciones - `FraccionesService` + +```python +from api.v1.modules.sitar.fracciones import FraccionesService +service = FraccionesService.get_instance() +await service.search(fraccion="84716001", nico=None, skip=0, limit=100) +await service.get_by_id(sysid=123) +``` + +### Fracciones USA - `FraccionesUSAService` + +```python +from api.v1.modules.sitar.fracciones_usa import FraccionesUSAService +service = FraccionesUSAService.get_instance() +await service.search(fraccion="84716001", skip=0, limit=100) +await service.get_by_id(consecutivo=123) +``` + +### Otros servicios disponibles: + +- **RegulacionesService** - Regulaciones y restricciones +- **ProsecService** - PROSEC (Programa de Promoción Sectorial) +- **PreciosEstimadosService** - Precios estimados +- **FundamentosTLCService** - Fundamentos de tratados de libre comercio +- **Aladi2Service** - ALADI2 (Asociación Latinoamericana de Integración) +- **Cuotas2Service** - Cuotas compensatorias +- **CuposService** - Cupos de importación +- **FraccionesAnterioresService** - Historial de fracciones +- **InformacionGeneralService** - Información general de fracciones +- **IepsService** - IEPS (Impuesto Especial sobre Producción y Servicios) +- **NomsService** - Normas Oficiales Mexicanas +- **Rcg2Service** - Reglas de Carácter General +- **ReitService** - Registro de Empresas de Industria Terminal +- **RequisitoPrevioService** - Requisitos previos +- **VehiculosMarcasService** - Marcas de vehículos +- **VehiculosModelosService** - Modelos de vehículos + +```### Desde endpoints asíncronos + +```python +from fastapi import APIRouter, HTTPException +from api.v1.modules.sitar.tlcs import TLCSService + +router = APIRouter() + +@router.get("/tariff/{fraccion}") +async def get_tariff_info(fraccion: str, country: str = "USA"): + """Endpoint que consulta información arancelaria""" + try: + tlcs_service = TLCSService.get_instance() + data = await tlcs_service.search(fraccion=fraccion, pais=country) + return {"success": True, "data": data} + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) +``` +## Arquitectura + +### Servicio Base Compartido + +Todos los servicios heredan de `SitarAPIBaseService` que maneja: + +- Autenticación con token caching +- Renovación automática de tokens +- Manejo de errores HTTP +- Timeout configurable + +### Singleton Pattern + +Cada servicio usa el patrón singleton para: + +- Compartir la conexión HTTP +- Reutilizar tokens de autenticación +- Evitar múltiples instancias + +### Separación de Responsabilidades + +- **schemas.py**: Modelos Pydantic para validación de datos +- **service.py**: Lógica de negocio y llamadas a API +- **router.py**: Endpoints FastAPI (opcional) +- **__init__.py**: Exportaciones públicas + +## Notas Importantes + +1. **Autenticación**: El token se cachea y renueva automáticamente +2. **Timeouts**: Configurado a 10 segundos por defecto +3. **Límites**: Máximo 1000 registros por consulta +4. **Errores**: Todos los servicios lanzan excepciones httpx en caso de error +5. **Async/Sync**: Los servicios son async, usa `asyncio.run()` en código síncrono + +``` + +Esto expondrá endpoints como: +- `GET /api/v1/sitar/tlcs/` - Buscar TLCS +- `GET /api/v1/sitar/fracciones/` - Buscar fracciones +- etc. + +## Ejemplo Completo + +```python +from api.v1.modules.sitar import SitarAPIService + +async def get_tariff_info(fraccion: str, country: str): + """Obtener información arancelaria completa""" + sitar = SitarAPIService.get_instance() + + try: + # Buscar TLCS + tlcs = await sitar.search_tlcs(fraccion=fraccion, pais=country) + + if tlcs: + first_tlcs = tlcs[0] + return { + "rate": first_tlcs.TASATXT, + "adv_impo": float(first_tlcs.TASA1NUM or 0.0), + "country": first_tlcs.PAIS + } + + # Si no hay TLCS, buscar fracción general + fracciones = await sitar.search_fracciones(fraccion=fraccion) + + if fracciones: + first_frac = fracciones[0] + return { + "rate": first_frac.ADVIMPOTXT, + "adv_impo": float(first_frac.ADVIMPONUM or 0.0), + "description": first_frac.DESCRIPCION + } + + return None + + except Exception as e: + print(f"Error: {e}") + return None +``` +## Manejo de Errores + +El servicio lanza excepciones `httpx.HTTPError` en caso de error: + +```python +import httpx + +try: + tlcs = await sitar.search_tlcs(fraccion="invalid") +except httpx.HTTPStatusError as e: + print(f"HTTP Error: {e.response.status_code}") +except httpx.RequestError as e: + print(f"Request Error: {e}") +except Exception as e: + print(f"General Error: {e}") +``` diff --git a/backend/api/v1/modules/sitar/__init__.py b/backend/api/v1/modules/sitar/__init__.py new file mode 100644 index 00000000..ebea325b --- /dev/null +++ b/backend/api/v1/modules/sitar/__init__.py @@ -0,0 +1,90 @@ +""" +SITAR API Module + +Módulo reorganizado para integración con la API externa de SITAR. +Cada recurso tiene su propia carpeta con schemas, service y router. + +Estructura: + backend/api/v1/modules/sitar/ + ├── common/ # Base service compartido + ├── tlcs/ # TLCS (Tratados de Libre Comercio) + ├── fracciones/ # Fracciones arancelarias mexicanas + ├── fracciones_usa/ # Fracciones arancelarias USA + ├── regulaciones/ # Regulaciones y restricciones + ├── prosec/ # PROSEC + ├── precios_estimados/ # Precios estimados + ├── fundamentos_tlc/ # Fundamentos TLC + ├── aladi2/ # ALADI2 + ├── cuotas2/ # Cuotas compensatorias + ├── cupos/ # Cupos de importación + ├── fracciones_anteriores/ # Historial de fracciones + ├── informacion_general/ # Información general + ├── ieps/ # IEPS + ├── noms/ # Normas Oficiales Mexicanas + ├── rcg2/ # Reglas de Carácter General + ├── reit/ # REIT + ├── requisito_previo/ # Requisitos previos + ├── vehiculos_marcas/ # Marcas de vehículos + └── vehiculos_modelos/ # Modelos de vehículos + +Uso: + # Importar servicios específicos + from api.v1.modules.sitar.tlcs import TLCSService + from api.v1.modules.sitar.fracciones import FraccionesService + + # Usar servicios + tlcs_service = TLCSService.get_instance() + data = await tlcs_service.search(fraccion="84716001") + + # Importar routers para FastAPI + from api.v1.modules.sitar.tlcs import router as tlcs_router + from api.v1.modules.sitar.fracciones import router as fracciones_router + + app.include_router(tlcs_router, prefix="/api/v1/sitar/tlcs", tags=["sitar-tlcs"]) +""" + +from .common import SitarAPIBaseService + +# Import all services for convenient access +from .tlcs import TLCSService +from .fracciones import FraccionesService +from .fracciones_usa import FraccionesUSAService +from .regulaciones import RegulacionesService +from .prosec import ProsecService +from .precios_estimados import PreciosEstimadosService +from .fundamentos_tlc import FundamentosTLCService +from .aladi2 import Aladi2Service +from .cuotas2 import Cuotas2Service +from .cupos import CuposService +from .fracciones_anteriores import FraccionesAnterioresService +from .informacion_general import InformacionGeneralService +from .ieps import IepsService +from .noms import NomsService +from .rcg2 import Rcg2Service +from .reit import ReitService +from .requisito_previo import RequisitoPrevioService +from .vehiculos_marcas import VehiculosMarcasService +from .vehiculos_modelos import VehiculosModelosService + +__all__ = [ + "SitarAPIBaseService", + "TLCSService", + "FraccionesService", + "FraccionesUSAService", + "RegulacionesService", + "ProsecService", + "PreciosEstimadosService", + "FundamentosTLCService", + "Aladi2Service", + "Cuotas2Service", + "CuposService", + "FraccionesAnterioresService", + "InformacionGeneralService", + "IepsService", + "NomsService", + "Rcg2Service", + "ReitService", + "RequisitoPrevioService", + "VehiculosMarcasService", + "VehiculosModelosService", +] diff --git a/backend/api/v1/modules/sitar/aladi2/__init__.py b/backend/api/v1/modules/sitar/aladi2/__init__.py new file mode 100644 index 00000000..2dfbf48c --- /dev/null +++ b/backend/api/v1/modules/sitar/aladi2/__init__.py @@ -0,0 +1,7 @@ +"""Aladi2 Module""" + +from .schemas import Aladi2Response +from .service import Aladi2Service +from .router import router + +__all__ = ["Aladi2Response", "Aladi2Service", "router"] diff --git a/backend/api/v1/modules/sitar/aladi2/router.py b/backend/api/v1/modules/sitar/aladi2/router.py new file mode 100644 index 00000000..8e3b625d --- /dev/null +++ b/backend/api/v1/modules/sitar/aladi2/router.py @@ -0,0 +1,37 @@ +"""Aladi2 Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query +from fastapi import Depends + +from core.security import get_current_user +from .service import Aladi2Service +from .schemas import Aladi2Response + +router = APIRouter() + + +@router.get("/", response_model=List[Aladi2Response]) +async def search( + fraccion: Optional[str] = Query(None), + pais: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = Aladi2Service.get_instance() + return await service.search( + fraccion=fraccion, pais=pais, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=Aladi2Response) +async def get_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await Aladi2Service.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/aladi2/schemas.py b/backend/api/v1/modules/sitar/aladi2/schemas.py new file mode 100644 index 00000000..511ba5a8 --- /dev/null +++ b/backend/api/v1/modules/sitar/aladi2/schemas.py @@ -0,0 +1,24 @@ +"""ALADI2 Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class Aladi2Response(BaseModel): + """ALADI2 (Asociación Latinoamericana de Integración)""" + + FRACCION: Optional[str] = Field(None, max_length=10) + ACUERDO: Optional[str] = Field(None, max_length=49) + PAIS: Optional[str] = Field(None, max_length=3) + TASATXT: Optional[str] = Field(None, max_length=19) + TASANUM: Optional[str] = None + TASACALCULADA: Optional[str] = Field(None, max_length=19) + TIPOTASA: Optional[int] = None + DOF: Optional[str] = Field(None, max_length=8) + NOTAS: Optional[str] = Field(None, max_length=499) + OBSERVACIONES: Optional[str] = None + NICO: Optional[str] = Field(None, max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/aladi2/service.py b/backend/api/v1/modules/sitar/aladi2/service.py new file mode 100644 index 00000000..dccf24b7 --- /dev/null +++ b/backend/api/v1/modules/sitar/aladi2/service.py @@ -0,0 +1,37 @@ +"""Aladi2 Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import Aladi2Response + + +class Aladi2Service(SitarAPIBaseService): + _instance: Optional["Aladi2Service"] = None + + @classmethod + def get_instance(cls) -> "Aladi2Service": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + pais: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[Aladi2Response]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if pais: + params["pais"] = pais + if nico: + params["nico"] = nico + data = await self._make_request("GET", "/api/v1/aladi2/", params=params) + return [Aladi2Response(**item) for item in data] + + async def get_by_id(self, sysid: int) -> Aladi2Response: + data = await self._make_request("GET", f"/api/v1/aladi2/{sysid}") + return Aladi2Response(**data) diff --git a/backend/api/v1/modules/sitar/common/__init__.py b/backend/api/v1/modules/sitar/common/__init__.py new file mode 100644 index 00000000..974c7610 --- /dev/null +++ b/backend/api/v1/modules/sitar/common/__init__.py @@ -0,0 +1,5 @@ +"""SITAR API Common Module""" + +from .base_service import SitarAPIBaseService + +__all__ = ["SitarAPIBaseService"] diff --git a/backend/api/v1/modules/sitar/common/base_service.py b/backend/api/v1/modules/sitar/common/base_service.py new file mode 100644 index 00000000..b4dbe284 --- /dev/null +++ b/backend/api/v1/modules/sitar/common/base_service.py @@ -0,0 +1,122 @@ +""" +SITAR API Base Service + +Base service class for SITAR API authentication and HTTP requests. +All specific resource services inherit from this. +""" + +import os +from typing import Optional, Dict, Any +from datetime import datetime, timedelta +import httpx + + +class SitarAPIBaseService: + """Base service for SITAR API integration with authentication""" + + _token: Optional[str] = None + _token_expires: Optional[datetime] = None + + def __init__(self): + """Initialize base service with API credentials""" + self.base_url = os.getenv("SITAR_API_URL") + self.username = os.getenv("SITAR_API_USER") + self.password = os.getenv("SITAR_API_PASSWORD") + self.timeout = 30.0 + + if not all([self.base_url, self.username, self.password]): + raise ValueError( + "Missing SITAR API configuration. " + "Set SITAR_API_URL, SITAR_API_USER, and SITAR_API_PASSWORD environment variables." + ) + + async def _get_token(self) -> str: + """ + Get authentication token, refreshing if necessary + + Returns: + str: Bearer token for API authentication + + Raises: + httpx.HTTPError: If authentication fails + """ + # Return cached token if still valid + if self._token and self._token_expires and datetime.now() < self._token_expires: + return self._token + + # Authenticate and get new token + login_url = f"{self.base_url}/fractions/api/v1/auth/login" + payload = {"username": self.username, "password": self.password} + + async with httpx.AsyncClient(timeout=self.timeout) as client: + response = await client.post(login_url, json=payload) + response.raise_for_status() + + data = response.json() + self._token = data.get("access_token") or data.get("token") + + if not self._token: + raise ValueError("No token received from SITAR API") + + # Set token expiration (assume 1 hour if not specified) + self._token_expires = datetime.now() + timedelta(hours=1) + + return self._token + + async def _make_request( + self, + method: str, + endpoint: str, + params: Optional[Dict[str, Any]] = None, + json_data: Optional[Dict[str, Any]] = None, + ) -> Any: + """ + Make authenticated request to SITAR API + + Args: + method: HTTP method (GET, POST, etc.) + endpoint: API endpoint path + params: Query parameters + json_data: JSON body data + + Returns: + JSON response data + + Raises: + httpx.HTTPError: If request fails + """ + token = await self._get_token() + # Ensure no double slash between fractures and endpoint + endpoint = endpoint.lstrip("/") + url = f"{self.base_url}/fractions/{endpoint}" + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + } + + async with httpx.AsyncClient(timeout=self.timeout) as client: + response = await client.request( + method=method, + url=url, + params=params, + json=json_data, + headers=headers, + ) + response.raise_for_status() + + # DEBUG LOGGING for SITAR inspection + if "fracciones" in url: + import logging + logger = logging.getLogger(__name__) + logger.info(f"SITAR API Response Headers for {url}: {dict(response.headers)}") + try: + data = response.json() + if isinstance(data, dict): + logger.info(f"SITAR API Response Body Keys: {list(data.keys())}") + elif isinstance(data, list) and len(data) > 0: + logger.info(f"SITAR API Response List Item Keys: {list(data[0].keys())}") + return data + except Exception: + pass + + return response.json() diff --git a/backend/api/v1/modules/sitar/cuotas2/__init__.py b/backend/api/v1/modules/sitar/cuotas2/__init__.py new file mode 100644 index 00000000..9576083d --- /dev/null +++ b/backend/api/v1/modules/sitar/cuotas2/__init__.py @@ -0,0 +1,7 @@ +"""Cuotas2 Module""" + +from .schemas import Cuotas2Response +from .service import Cuotas2Service +from .router import router + +__all__ = ["Cuotas2Response", "Cuotas2Service", "router"] diff --git a/backend/api/v1/modules/sitar/cuotas2/router.py b/backend/api/v1/modules/sitar/cuotas2/router.py new file mode 100644 index 00000000..e206b152 --- /dev/null +++ b/backend/api/v1/modules/sitar/cuotas2/router.py @@ -0,0 +1,35 @@ +"""Cuotas2 Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import Cuotas2Service +from .schemas import Cuotas2Response + +router = APIRouter() + + +@router.get("/", response_model=List[Cuotas2Response]) +async def search( + fraccion: Optional[str] = Query(None), + pais: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = Cuotas2Service.get_instance() + return await service.search( + fraccion=fraccion, pais=pais, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=Cuotas2Response) +async def get_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await Cuotas2Service.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/cuotas2/schemas.py b/backend/api/v1/modules/sitar/cuotas2/schemas.py new file mode 100644 index 00000000..d9c29164 --- /dev/null +++ b/backend/api/v1/modules/sitar/cuotas2/schemas.py @@ -0,0 +1,30 @@ +"""Cuotas2 Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class Cuotas2Response(BaseModel): + """Cuotas compensatorias""" + + FRACCION: Optional[str] = Field(None, max_length=10) + PRODUCTO: Optional[str] = Field(None, max_length=300) + PAIS: Optional[str] = Field(None, max_length=3) + DOF: Optional[str] = Field(None, max_length=8) + DOF2: Optional[str] = Field(None, max_length=149) + EMPRESA: Optional[str] = Field(None, max_length=100) + INCOTERM: Optional[str] = Field(None, max_length=10) + DOLARES: Optional[str] = None + CLAVEMONEDA: Optional[str] = Field(None, max_length=3) + CLAVEUM: Optional[str] = Field(None, max_length=2) + PORCENTAJE: Optional[str] = None + DESCRIPCIONDOLARES: Optional[str] = Field(None, max_length=50) + NOTAS: Optional[str] = None + ESTATUS: Optional[str] = Field(None, max_length=19) + NUMERORESOLUCION: Optional[int] = None + RESOLUCION: Optional[str] = Field(None, max_length=150) + NICO: Optional[str] = Field("", max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/cuotas2/service.py b/backend/api/v1/modules/sitar/cuotas2/service.py new file mode 100644 index 00000000..9edbbd06 --- /dev/null +++ b/backend/api/v1/modules/sitar/cuotas2/service.py @@ -0,0 +1,37 @@ +"""Cuotas2 Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import Cuotas2Response + + +class Cuotas2Service(SitarAPIBaseService): + _instance: Optional["Cuotas2Service"] = None + + @classmethod + def get_instance(cls) -> "Cuotas2Service": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + pais: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[Cuotas2Response]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if pais: + params["pais"] = pais + if nico: + params["nico"] = nico + data = await self._make_request("GET", "/api/v1/cuotas2/", params=params) + return [Cuotas2Response(**item) for item in data] + + async def get_by_id(self, sysid: int) -> Cuotas2Response: + data = await self._make_request("GET", f"/api/v1/cuotas2/{sysid}") + return Cuotas2Response(**data) diff --git a/backend/api/v1/modules/sitar/cupos/__init__.py b/backend/api/v1/modules/sitar/cupos/__init__.py new file mode 100644 index 00000000..d415348d --- /dev/null +++ b/backend/api/v1/modules/sitar/cupos/__init__.py @@ -0,0 +1,7 @@ +"""Cupos Module""" + +from .schemas import CuposResponse +from .service import CuposService +from .router import router + +__all__ = ["CuposResponse", "CuposService", "router"] diff --git a/backend/api/v1/modules/sitar/cupos/router.py b/backend/api/v1/modules/sitar/cupos/router.py new file mode 100644 index 00000000..b2da9438 --- /dev/null +++ b/backend/api/v1/modules/sitar/cupos/router.py @@ -0,0 +1,34 @@ +"""Cupos Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import CuposService +from .schemas import CuposResponse + +router = APIRouter() + + +@router.get("/", response_model=List[CuposResponse]) +async def search( + fraccion: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = CuposService.get_instance() + return await service.search( + fraccion=fraccion, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=CuposResponse) +async def get_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await CuposService.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/cupos/schemas.py b/backend/api/v1/modules/sitar/cupos/schemas.py new file mode 100644 index 00000000..4a6f652f --- /dev/null +++ b/backend/api/v1/modules/sitar/cupos/schemas.py @@ -0,0 +1,25 @@ +"""Cupos Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class CuposResponse(BaseModel): + """Cupos de importación""" + + FRACCION: Optional[str] = Field(None, max_length=10) + NUMEROCUPO: Optional[int] = None + DOF: Optional[str] = Field(None, max_length=8) + PERMISO: Optional[str] = Field(None, max_length=2) + CONDICION: Optional[str] = Field(None, max_length=199) + VIGENCIA: Optional[str] = Field(None, max_length=8) + PAIS: Optional[str] = Field(None, max_length=5) + OBSERVACIONES: Optional[str] = Field(None, max_length=5000) + ADVIMPO: Optional[str] = Field(None, max_length=20) + ADVEXPO: Optional[str] = Field(None, max_length=20) + TIPOOPERACION: Optional[int] = None + NICO: Optional[str] = Field("", max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/cupos/service.py b/backend/api/v1/modules/sitar/cupos/service.py new file mode 100644 index 00000000..dd308ffe --- /dev/null +++ b/backend/api/v1/modules/sitar/cupos/service.py @@ -0,0 +1,34 @@ +"""Cupos Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import CuposResponse + + +class CuposService(SitarAPIBaseService): + _instance: Optional["CuposService"] = None + + @classmethod + def get_instance(cls) -> "CuposService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[CuposResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if nico: + params["nico"] = nico + data = await self._make_request("GET", "/api/v1/cupos/", params=params) + return [CuposResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> CuposResponse: + data = await self._make_request("GET", f"/api/v1/cupos/{sysid}") + return CuposResponse(**data) diff --git a/backend/api/v1/modules/sitar/fracciones/__init__.py b/backend/api/v1/modules/sitar/fracciones/__init__.py new file mode 100644 index 00000000..c2251ff3 --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones/__init__.py @@ -0,0 +1,7 @@ +"""Fracciones Module""" + +from .schemas import FraccionesResponse +from .service import FraccionesService +from .router import router + +__all__ = ["FraccionesResponse", "FraccionesService", "router"] diff --git a/backend/api/v1/modules/sitar/fracciones/router.py b/backend/api/v1/modules/sitar/fracciones/router.py new file mode 100644 index 00000000..48e88c27 --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones/router.py @@ -0,0 +1,43 @@ +"""Fracciones Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import FraccionesService +from .schemas import FraccionesResponse + +router = APIRouter() + + +@router.get("/", response_model=List[FraccionesResponse]) +async def search_fracciones( + fraccion: Optional[str] = Query(None, description="Fracción arancelaria"), + nico: Optional[str] = Query(None, description="NICO"), + skip: int = Query(0, ge=0, description="Registros a saltar"), + limit: int = Query(100, ge=1, le=1000, description="Máximo de registros"), + current_user: dict = Depends(get_current_user), +): + """Search Mexican tariff fractions""" + try: + service = FraccionesService.get_instance() + return await service.search( + fraccion=fraccion, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException( + status_code=500, detail=f"Error fetching Fracciones data: {str(e)}" + ) + + +@router.get("/{sysid}", response_model=FraccionesResponse) +async def get_fraccion_by_id( + sysid: int, current_user: dict = Depends(get_current_user) +): + """Get single Fraccion record by SYSID""" + try: + service = FraccionesService.get_instance() + return await service.get_by_id(sysid) + except Exception as e: + raise HTTPException( + status_code=404, detail=f"Fraccion record not found: {str(e)}" + ) diff --git a/backend/api/v1/modules/sitar/fracciones/schemas.py b/backend/api/v1/modules/sitar/fracciones/schemas.py new file mode 100644 index 00000000..a657c68b --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones/schemas.py @@ -0,0 +1,39 @@ +"""Fracciones Schemas""" + +from decimal import Decimal +from typing import Optional +from pydantic import BaseModel, Field + + +class FraccionesResponse(BaseModel): + """Fracciones arancelarias mexicanas""" + + FRACCION: Optional[str] = Field(None, max_length=10) + FRACCIONPUNTO: Optional[str] = Field(None, max_length=10) + DESCRIPCION: Optional[str] = None + UMCLAVE: Optional[str] = Field(None, max_length=2) + UMABREVIACION: Optional[str] = Field(None, max_length=4) + ADVIMPOTXT: Optional[str] = Field(None, max_length=19) + ADVIMPONUM: Optional[Decimal] = None + TIPOTASAADVIMPO: Optional[int] = None + ADVEXPOTXT: Optional[str] = Field(None, max_length=19) + ADVEXPONUM: Optional[Decimal] = None + TIPOTASAADVEXPO: Optional[int] = None + TASAIVAFRANJA: Optional[Decimal] = None + TASAIVAINTERIOR: Optional[Decimal] = None + TASAISAN: Optional[Decimal] = None + ARANCELMIXTO: Optional[str] = Field(None, max_length=1) + TASAMIXTA: Optional[Decimal] = None + DOF: Optional[str] = Field(None, max_length=8) + NOTAS: Optional[str] = None + HISTORICO: Optional[str] = None + ARANCELESPECIFICO: Optional[str] = Field(None, max_length=1) + TIPOVEHICULO: Optional[str] = Field(None, max_length=1) + APLICAISAN: Optional[str] = Field(None, max_length=1) + APLICAIEPS: Optional[str] = Field(None, max_length=1) + NIVEL: Optional[int] = None + NICO: Optional[str] = Field(None, max_length=14) + SYSID: Optional[int] = None + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/fracciones/service.py b/backend/api/v1/modules/sitar/fracciones/service.py new file mode 100644 index 00000000..640cf969 --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones/service.py @@ -0,0 +1,46 @@ +"""Fracciones Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import FraccionesResponse + + +class FraccionesService(SitarAPIBaseService): + """Service for Fracciones operations""" + + _instance: Optional["FraccionesService"] = None + + @classmethod + def get_instance(cls) -> "FraccionesService": + """Get singleton instance""" + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + nico: Optional[str] = None, + description: Optional[str] = None, + nivel: Optional[int] = None, + skip: int = 0, + limit: int = 100, + ) -> List[FraccionesResponse]: + """Search Mexican tariff fractions""" + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if nico: + params["nico"] = nico + if description: + params["descripcion"] = description + if nivel is not None: + params["nivel"] = nivel + + data = await self._make_request("GET", "/api/v1/fracciones/", params=params) + return [FraccionesResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> FraccionesResponse: + """Get single Fraccion record by SYSID""" + data = await self._make_request("GET", f"/api/v1/fracciones/{sysid}") + return FraccionesResponse(**data) diff --git a/backend/api/v1/modules/sitar/fracciones_anteriores/__init__.py b/backend/api/v1/modules/sitar/fracciones_anteriores/__init__.py new file mode 100644 index 00000000..94237c91 --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones_anteriores/__init__.py @@ -0,0 +1,7 @@ +"""FraccionesAnteriores Module""" + +from .schemas import FraccionesAnterioresResponse +from .service import FraccionesAnterioresService +from .router import router + +__all__ = ["FraccionesAnterioresResponse", "FraccionesAnterioresService", "router"] diff --git a/backend/api/v1/modules/sitar/fracciones_anteriores/router.py b/backend/api/v1/modules/sitar/fracciones_anteriores/router.py new file mode 100644 index 00000000..387a741c --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones_anteriores/router.py @@ -0,0 +1,37 @@ +"""FraccionesAnteriores Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import FraccionesAnterioresService +from .schemas import FraccionesAnterioresResponse + +router = APIRouter() + + +@router.get("/", response_model=List[FraccionesAnterioresResponse]) +async def search( + fraccion_actual: Optional[str] = Query(None), + fraccion_anterior: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = FraccionesAnterioresService.get_instance() + return await service.search( + fraccion_actual=fraccion_actual, + fraccion_anterior=fraccion_anterior, + skip=skip, + limit=limit, + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=FraccionesAnterioresResponse) +async def get_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await FraccionesAnterioresService.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/fracciones_anteriores/schemas.py b/backend/api/v1/modules/sitar/fracciones_anteriores/schemas.py new file mode 100644 index 00000000..9ddd8247 --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones_anteriores/schemas.py @@ -0,0 +1,15 @@ +"""Fracciones Anteriores Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class FraccionesAnterioresResponse(BaseModel): + """Fracciones arancelarias anteriores (histórico)""" + + FRACCIONACTUAL: Optional[str] = Field(None, max_length=10) + FRACCIONANTERIOR: Optional[str] = Field(None, max_length=10) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/fracciones_anteriores/service.py b/backend/api/v1/modules/sitar/fracciones_anteriores/service.py new file mode 100644 index 00000000..a0f6d136 --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones_anteriores/service.py @@ -0,0 +1,36 @@ +"""FraccionesAnteriores Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import FraccionesAnterioresResponse + + +class FraccionesAnterioresService(SitarAPIBaseService): + _instance: Optional["FraccionesAnterioresService"] = None + + @classmethod + def get_instance(cls) -> "FraccionesAnterioresService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion_actual: Optional[str] = None, + fraccion_anterior: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[FraccionesAnterioresResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion_actual: + params["fraccion_actual"] = fraccion_actual + if fraccion_anterior: + params["fraccion_anterior"] = fraccion_anterior + data = await self._make_request( + "GET", "/api/v1/fracciones-anteriores/", params=params + ) + return [FraccionesAnterioresResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> FraccionesAnterioresResponse: + data = await self._make_request("GET", f"/api/v1/fracciones-anteriores/{sysid}") + return FraccionesAnterioresResponse(**data) diff --git a/backend/api/v1/modules/sitar/fracciones_usa/__init__.py b/backend/api/v1/modules/sitar/fracciones_usa/__init__.py new file mode 100644 index 00000000..57c44d27 --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones_usa/__init__.py @@ -0,0 +1,7 @@ +"""Fracciones USA Module""" + +from .schemas import FraccionesUSAResponse +from .service import FraccionesUSAService +from .router import router + +__all__ = ["FraccionesUSAResponse", "FraccionesUSAService", "router"] diff --git a/backend/api/v1/modules/sitar/fracciones_usa/router.py b/backend/api/v1/modules/sitar/fracciones_usa/router.py new file mode 100644 index 00000000..e4c79a8e --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones_usa/router.py @@ -0,0 +1,41 @@ +"""Fracciones USA Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import FraccionesUSAService +from .schemas import FraccionesUSAResponse + +router = APIRouter() + + +@router.get("/", response_model=List[FraccionesUSAResponse]) +async def search_fracciones_usa( + fraccion: Optional[str] = Query(None, description="Fracción arancelaria USA"), + skip: int = Query(0, ge=0, description="Registros a saltar"), + limit: int = Query(100, ge=1, le=1000, description="Máximo de registros"), + current_user: dict = Depends(get_current_user), +): + """Search USA tariff fractions""" + try: + service = FraccionesUSAService.get_instance() + return await service.search(fraccion=fraccion, skip=skip, limit=limit) + except Exception as e: + raise HTTPException( + status_code=500, detail=f"Error fetching USA Fracciones data: {str(e)}" + ) + + +@router.get("/{consecutivo}", response_model=FraccionesUSAResponse) +async def get_fraccion_usa_by_id( + consecutivo: int, + current_user: dict = Depends(get_current_user), +): + """Get single USA Fraccion record by CONSECUTIVO""" + try: + service = FraccionesUSAService.get_instance() + return await service.get_by_id(consecutivo) + except Exception as e: + raise HTTPException( + status_code=404, detail=f"USA Fraccion record not found: {str(e)}" + ) diff --git a/backend/api/v1/modules/sitar/fracciones_usa/schemas.py b/backend/api/v1/modules/sitar/fracciones_usa/schemas.py new file mode 100644 index 00000000..1c5a8ba7 --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones_usa/schemas.py @@ -0,0 +1,24 @@ +"""Fracciones USA Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class FraccionesUSAResponse(BaseModel): + """USA tariff fractions""" + + FRACCION_SIN_PUNTO: Optional[str] = None + FRACCION_CON_PUNTO: Optional[str] = None + FRACCION_MOSTRAR: Optional[str] = None + ESPECIFICO: Optional[str] = None + NIVEL: Optional[int] = None + DESCRIPCION: Optional[str] = None + UNIDADCANTIDAD: Optional[str] = None + TARIFA1: Optional[str] = None + TLC: Optional[str] = None + TARIFA2: Optional[str] = None + NOTAS: Optional[str] = None + CONSECUTIVO: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/fracciones_usa/service.py b/backend/api/v1/modules/sitar/fracciones_usa/service.py new file mode 100644 index 00000000..b1f739df --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones_usa/service.py @@ -0,0 +1,41 @@ +"""Fracciones USA Service""" + +from typing import Optional, List, Dict, Any +from ..common import SitarAPIBaseService +from .schemas import FraccionesUSAResponse + + + +class FraccionesUSAService(SitarAPIBaseService): + """Service for USA Fracciones operations""" + + _instance: Optional["FraccionesUSAService"] = None + + @classmethod + def get_instance(cls) -> "FraccionesUSAService": + """Get singleton instance""" + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + descripcion: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[FraccionesUSAResponse]: + """Search USA tariff fractions""" + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if descripcion: + params["descripcion"] = descripcion + + data = await self._make_request("GET", "api/v1/fracciones-usa/", params=params) + return [FraccionesUSAResponse(**item) for item in data] + + async def get_by_id(self, consecutivo: int) -> FraccionesUSAResponse: + """Get single USA Fraccion record by CONSECUTIVO""" + data = await self._make_request("GET", f"api/v1/fracciones-usa/{consecutivo}") + return FraccionesUSAResponse(**data) diff --git a/backend/api/v1/modules/sitar/fundamentos_tlc/__init__.py b/backend/api/v1/modules/sitar/fundamentos_tlc/__init__.py new file mode 100644 index 00000000..57253bec --- /dev/null +++ b/backend/api/v1/modules/sitar/fundamentos_tlc/__init__.py @@ -0,0 +1,7 @@ +"""Fundamentos TLC Module""" + +from .schemas import FundamentosTLCResponse +from .service import FundamentosTLCService +from .router import router + +__all__ = ["FundamentosTLCResponse", "FundamentosTLCService", "router"] diff --git a/backend/api/v1/modules/sitar/fundamentos_tlc/router.py b/backend/api/v1/modules/sitar/fundamentos_tlc/router.py new file mode 100644 index 00000000..d4cce318 --- /dev/null +++ b/backend/api/v1/modules/sitar/fundamentos_tlc/router.py @@ -0,0 +1,37 @@ +"""Fundamentos TLC Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import FundamentosTLCService +from .schemas import FundamentosTLCResponse + +router = APIRouter() + + +@router.get("/", response_model=List[FundamentosTLCResponse]) +async def search_fundamentos( + fraccion: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + tipat_only: bool = Query(False), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = FundamentosTLCService.get_instance() + return await service.search( + fraccion=fraccion, nico=nico, tipat_only=tipat_only, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=FundamentosTLCResponse) +async def get_fundamento_by_id( + sysid: int, current_user: dict = Depends(get_current_user) +): + try: + return await FundamentosTLCService.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/fundamentos_tlc/schemas.py b/backend/api/v1/modules/sitar/fundamentos_tlc/schemas.py new file mode 100644 index 00000000..2a2350b7 --- /dev/null +++ b/backend/api/v1/modules/sitar/fundamentos_tlc/schemas.py @@ -0,0 +1,27 @@ +"""Fundamentos TLC Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class FundamentosTLCResponse(BaseModel): + """Fundamentos de tratados de libre comercio""" + + FRACCION: Optional[str] = Field(None, max_length=8) + PAIS: Optional[str] = Field(None, max_length=3) + ACUERDO: Optional[str] = Field(None, max_length=5) + TASA1TXT: Optional[str] = Field(None, max_length=19) + TASA1NUM: Optional[str] = None + TASA2TXT: Optional[str] = Field(None, max_length=19) + TASA2NUM: Optional[str] = None + FUNDAMENTO1: Optional[str] = None + FUNDAMENTO2: Optional[str] = None + PERIODO: Optional[str] = Field(None, max_length=299) + MODALIDAD: Optional[str] = Field(None, max_length=999) + DOF: Optional[str] = Field(None, max_length=8) + NOTAS: Optional[str] = Field(None, max_length=20) + NICO: Optional[str] = Field("", max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/fundamentos_tlc/service.py b/backend/api/v1/modules/sitar/fundamentos_tlc/service.py new file mode 100644 index 00000000..a1c99254 --- /dev/null +++ b/backend/api/v1/modules/sitar/fundamentos_tlc/service.py @@ -0,0 +1,40 @@ +"""Fundamentos TLC Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import FundamentosTLCResponse + + +class FundamentosTLCService(SitarAPIBaseService): + _instance: Optional["FundamentosTLCService"] = None + + @classmethod + def get_instance(cls) -> "FundamentosTLCService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + nico: Optional[str] = None, + tipat_only: bool = False, + skip: int = 0, + limit: int = 100, + ) -> List[FundamentosTLCResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if nico: + params["nico"] = nico + endpoint = ( + "/api/v1/fundamentos-tlc/tipat" + if tipat_only + else "/api/v1/fundamentos-tlc/" + ) + data = await self._make_request("GET", endpoint, params=params) + return [FundamentosTLCResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> FundamentosTLCResponse: + data = await self._make_request("GET", f"/api/v1/fundamentos-tlc/{sysid}") + return FundamentosTLCResponse(**data) diff --git a/backend/api/v1/modules/sitar/ieps/__init__.py b/backend/api/v1/modules/sitar/ieps/__init__.py new file mode 100644 index 00000000..d24fdf7b --- /dev/null +++ b/backend/api/v1/modules/sitar/ieps/__init__.py @@ -0,0 +1,7 @@ +"""Ieps Module""" + +from .schemas import IepsResponse +from .service import IepsService +from .router import router + +__all__ = ["IepsResponse", "IepsService", "router"] diff --git a/backend/api/v1/modules/sitar/ieps/router.py b/backend/api/v1/modules/sitar/ieps/router.py new file mode 100644 index 00000000..6d9c1ac5 --- /dev/null +++ b/backend/api/v1/modules/sitar/ieps/router.py @@ -0,0 +1,34 @@ +"""Ieps Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import IepsService +from .schemas import IepsResponse + +router = APIRouter() + + +@router.get("/", response_model=List[IepsResponse]) +async def search( + fraccion: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = IepsService.get_instance() + return await service.search( + fraccion=fraccion, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{consecutivo}", response_model=IepsResponse) +async def get_by_id(consecutivo: int, current_user: dict = Depends(get_current_user)): + try: + return await IepsService.get_instance().get_by_id(consecutivo) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/ieps/schemas.py b/backend/api/v1/modules/sitar/ieps/schemas.py new file mode 100644 index 00000000..f65e0def --- /dev/null +++ b/backend/api/v1/modules/sitar/ieps/schemas.py @@ -0,0 +1,20 @@ +"""IEPS Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class IepsResponse(BaseModel): + """IEPS (Impuesto Especial sobre Producción y Servicios)""" + + FRACCION_SIN_PUNTO: Optional[str] = Field(None, max_length=10) + FRACCION_CON_PUNTO: Optional[str] = Field(None, max_length=10) + FUNDAMENTO: Optional[str] = Field(None, max_length=1000) + CONDICION: Optional[str] = Field(None, max_length=5000) + TASA: Optional[str] = None + TASAESPECIFICO: Optional[str] = None + NICO: Optional[str] = Field("", max_length=2) + CONSECUTIVO: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/ieps/service.py b/backend/api/v1/modules/sitar/ieps/service.py new file mode 100644 index 00000000..72db617c --- /dev/null +++ b/backend/api/v1/modules/sitar/ieps/service.py @@ -0,0 +1,34 @@ +"""Ieps Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import IepsResponse + + +class IepsService(SitarAPIBaseService): + _instance: Optional["IepsService"] = None + + @classmethod + def get_instance(cls) -> "IepsService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[IepsResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if nico: + params["nico"] = nico + data = await self._make_request("GET", "/api/v1/ieps/", params=params) + return [IepsResponse(**item) for item in data] + + async def get_by_id(self, consecutivo: int) -> IepsResponse: + data = await self._make_request("GET", f"/api/v1/ieps/{consecutivo}") + return IepsResponse(**data) diff --git a/backend/api/v1/modules/sitar/informacion_general/__init__.py b/backend/api/v1/modules/sitar/informacion_general/__init__.py new file mode 100644 index 00000000..ea0001eb --- /dev/null +++ b/backend/api/v1/modules/sitar/informacion_general/__init__.py @@ -0,0 +1,7 @@ +"""InformacionGeneral Module""" + +from .schemas import InformacionGeneralResponse +from .service import InformacionGeneralService +from .router import router + +__all__ = ["InformacionGeneralResponse", "InformacionGeneralService", "router"] diff --git a/backend/api/v1/modules/sitar/informacion_general/router.py b/backend/api/v1/modules/sitar/informacion_general/router.py new file mode 100644 index 00000000..9209c9f7 --- /dev/null +++ b/backend/api/v1/modules/sitar/informacion_general/router.py @@ -0,0 +1,34 @@ +"""InformacionGeneral Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import InformacionGeneralService +from .schemas import InformacionGeneralResponse + +router = APIRouter() + + +@router.get("/", response_model=List[InformacionGeneralResponse]) +async def search( + fraccion: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = InformacionGeneralService.get_instance() + return await service.search( + fraccion=fraccion, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=InformacionGeneralResponse) +async def get_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await InformacionGeneralService.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/informacion_general/schemas.py b/backend/api/v1/modules/sitar/informacion_general/schemas.py new file mode 100644 index 00000000..1b044670 --- /dev/null +++ b/backend/api/v1/modules/sitar/informacion_general/schemas.py @@ -0,0 +1,21 @@ +"""Información General Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class InformacionGeneralResponse(BaseModel): + """Información general de fracciones""" + + OBSERVACIONES: Optional[str] = Field(None, max_length=1000) + NOTAOBSERVACIONES: Optional[str] = Field(None, max_length=1000) + FRACCION: Optional[str] = Field(None, max_length=10) + TIPOOPERACION: Optional[int] = None + ORDEN: Optional[int] = None + LEYENDA: Optional[str] = None + NOTA: Optional[str] = None + NICO: Optional[str] = Field("", max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/informacion_general/service.py b/backend/api/v1/modules/sitar/informacion_general/service.py new file mode 100644 index 00000000..4b47f8db --- /dev/null +++ b/backend/api/v1/modules/sitar/informacion_general/service.py @@ -0,0 +1,36 @@ +"""InformacionGeneral Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import InformacionGeneralResponse + + +class InformacionGeneralService(SitarAPIBaseService): + _instance: Optional["InformacionGeneralService"] = None + + @classmethod + def get_instance(cls) -> "InformacionGeneralService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[InformacionGeneralResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if nico: + params["nico"] = nico + data = await self._make_request( + "GET", "/api/v1/informacion-general/", params=params + ) + return [InformacionGeneralResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> InformacionGeneralResponse: + data = await self._make_request("GET", f"/api/v1/informacion-general/{sysid}") + return InformacionGeneralResponse(**data) diff --git a/backend/api/v1/modules/sitar/noms/__init__.py b/backend/api/v1/modules/sitar/noms/__init__.py new file mode 100644 index 00000000..4262ff90 --- /dev/null +++ b/backend/api/v1/modules/sitar/noms/__init__.py @@ -0,0 +1,7 @@ +"""Noms Module""" + +from .schemas import NomsResponse +from .service import NomsService +from .router import router + +__all__ = ["NomsResponse", "NomsService", "router"] diff --git a/backend/api/v1/modules/sitar/noms/router.py b/backend/api/v1/modules/sitar/noms/router.py new file mode 100644 index 00000000..13ef23c7 --- /dev/null +++ b/backend/api/v1/modules/sitar/noms/router.py @@ -0,0 +1,35 @@ +"""Noms Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import NomsService +from .schemas import NomsResponse + +router = APIRouter() + + +@router.get("/", response_model=List[NomsResponse]) +async def search( + fraccion: Optional[str] = Query(None), + pais: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = NomsService.get_instance() + return await service.search( + fraccion=fraccion, pais=pais, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=NomsResponse) +async def get_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await NomsService.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/noms/schemas.py b/backend/api/v1/modules/sitar/noms/schemas.py new file mode 100644 index 00000000..e02de133 --- /dev/null +++ b/backend/api/v1/modules/sitar/noms/schemas.py @@ -0,0 +1,27 @@ +"""NOMs Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class NomsResponse(BaseModel): + """Normas Oficiales Mexicanas""" + + FRACCION: Optional[str] = Field("", max_length=10) + IMPORTACION: Optional[str] = Field("", max_length=1) + EXPORTACION: Optional[str] = Field("", max_length=1) + PERMISO: Optional[str] = Field("", max_length=19) + ACUERDO: Optional[str] = Field("", max_length=100) + CONDICION: Optional[str] = Field("") + FUNDAMENTO: Optional[str] = Field("") + DOF: Optional[str] = Field("", max_length=8) + FORMATONOM: Optional[str] = Field("", max_length=100) + INSTRUCCIONES: Optional[str] = Field("", max_length=100) + CRITERIO: Optional[str] = Field("", max_length=254) + COMPLEMENTO: Optional[str] = Field("", max_length=999) + NICO: Optional[str] = Field("", max_length=2) + PAIS: Optional[str] = Field("", max_length=3) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/noms/service.py b/backend/api/v1/modules/sitar/noms/service.py new file mode 100644 index 00000000..bc2231af --- /dev/null +++ b/backend/api/v1/modules/sitar/noms/service.py @@ -0,0 +1,37 @@ +"""Noms Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import NomsResponse + + +class NomsService(SitarAPIBaseService): + _instance: Optional["NomsService"] = None + + @classmethod + def get_instance(cls) -> "NomsService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + pais: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[NomsResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if pais: + params["pais"] = pais + if nico: + params["nico"] = nico + data = await self._make_request("GET", "/api/v1/noms/", params=params) + return [NomsResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> NomsResponse: + data = await self._make_request("GET", f"/api/v1/noms/{sysid}") + return NomsResponse(**data) diff --git a/backend/api/v1/modules/sitar/precios_estimados/__init__.py b/backend/api/v1/modules/sitar/precios_estimados/__init__.py new file mode 100644 index 00000000..8fb56810 --- /dev/null +++ b/backend/api/v1/modules/sitar/precios_estimados/__init__.py @@ -0,0 +1,7 @@ +"""Precios Estimados Module""" + +from .schemas import PreciosEstimados2Response +from .service import PreciosEstimadosService +from .router import router + +__all__ = ["PreciosEstimados2Response", "PreciosEstimadosService", "router"] diff --git a/backend/api/v1/modules/sitar/precios_estimados/router.py b/backend/api/v1/modules/sitar/precios_estimados/router.py new file mode 100644 index 00000000..a063fc7e --- /dev/null +++ b/backend/api/v1/modules/sitar/precios_estimados/router.py @@ -0,0 +1,34 @@ +"""Precios Estimados Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import PreciosEstimadosService +from .schemas import PreciosEstimados2Response + +router = APIRouter() + + +@router.get("/", response_model=List[PreciosEstimados2Response]) +async def search_precios( + fraccion: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = PreciosEstimadosService.get_instance() + return await service.search( + fraccion=fraccion, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=PreciosEstimados2Response) +async def get_precio_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await PreciosEstimadosService.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/precios_estimados/schemas.py b/backend/api/v1/modules/sitar/precios_estimados/schemas.py new file mode 100644 index 00000000..62753b6b --- /dev/null +++ b/backend/api/v1/modules/sitar/precios_estimados/schemas.py @@ -0,0 +1,18 @@ +"""Precios Estimados Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class PreciosEstimados2Response(BaseModel): + """Precios Estimados""" + + FRACCION: Optional[str] = Field(None, max_length=10) + UMC: Optional[str] = Field(None, max_length=2) + PRECIO: Optional[str] = None + DOF: Optional[str] = Field(None, max_length=8) + NICO: Optional[str] = Field("", max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/precios_estimados/service.py b/backend/api/v1/modules/sitar/precios_estimados/service.py new file mode 100644 index 00000000..312d58a8 --- /dev/null +++ b/backend/api/v1/modules/sitar/precios_estimados/service.py @@ -0,0 +1,36 @@ +"""Precios Estimados Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import PreciosEstimados2Response + + +class PreciosEstimadosService(SitarAPIBaseService): + _instance: Optional["PreciosEstimadosService"] = None + + @classmethod + def get_instance(cls) -> "PreciosEstimadosService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[PreciosEstimados2Response]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if nico: + params["nico"] = nico + data = await self._make_request( + "GET", "/api/v1/precios-estimados2/", params=params + ) + return [PreciosEstimados2Response(**item) for item in data] + + async def get_by_id(self, sysid: int) -> PreciosEstimados2Response: + data = await self._make_request("GET", f"/api/v1/precios-estimados2/{sysid}") + return PreciosEstimados2Response(**data) diff --git a/backend/api/v1/modules/sitar/prosec/__init__.py b/backend/api/v1/modules/sitar/prosec/__init__.py new file mode 100644 index 00000000..6cf9bfc2 --- /dev/null +++ b/backend/api/v1/modules/sitar/prosec/__init__.py @@ -0,0 +1,7 @@ +"""PROSEC Module""" + +from .schemas import ProsecResponse +from .service import ProsecService +from .router import router + +__all__ = ["ProsecResponse", "ProsecService", "router"] diff --git a/backend/api/v1/modules/sitar/prosec/router.py b/backend/api/v1/modules/sitar/prosec/router.py new file mode 100644 index 00000000..22a15267 --- /dev/null +++ b/backend/api/v1/modules/sitar/prosec/router.py @@ -0,0 +1,42 @@ +"""PROSEC Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import ProsecService +from .schemas import ProsecResponse + +router = APIRouter() + + +@router.get("/", response_model=List[ProsecResponse]) +async def search_prosec( + fraccion: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + sector: Optional[str] = Query(None), + articulo: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = ProsecService.get_instance() + return await service.search( + fraccion=fraccion, + nico=nico, + sector=sector, + articulo=articulo, + skip=skip, + limit=limit, + ) + except Exception as e: + raise HTTPException(status_code=500, detail=f"Error: {str(e)}") + + +@router.get("/{sysid}", response_model=ProsecResponse) +async def get_prosec_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + service = ProsecService.get_instance() + return await service.get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=f"Not found: {str(e)}") diff --git a/backend/api/v1/modules/sitar/prosec/schemas.py b/backend/api/v1/modules/sitar/prosec/schemas.py new file mode 100644 index 00000000..13d7b96c --- /dev/null +++ b/backend/api/v1/modules/sitar/prosec/schemas.py @@ -0,0 +1,21 @@ +"""PROSEC Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class ProsecResponse(BaseModel): + """PROSEC (Programa de Promoción Sectorial)""" + + FRACCION: Optional[str] = Field(None, max_length=10) + PRODUCTO: Optional[str] = Field(None, max_length=999) + TASA: Optional[str] = Field(None, max_length=19) + SECTOR: Optional[str] = Field(None, max_length=2) + ANEXO: Optional[str] = Field(None, max_length=19) + DOF: Optional[str] = Field(None, max_length=8) + NOTAS: Optional[str] = Field(None, max_length=5000) + NICO: Optional[str] = Field("", max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/prosec/service.py b/backend/api/v1/modules/sitar/prosec/service.py new file mode 100644 index 00000000..f4a9c7bf --- /dev/null +++ b/backend/api/v1/modules/sitar/prosec/service.py @@ -0,0 +1,43 @@ +"""PROSEC Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import ProsecResponse + + +class ProsecService(SitarAPIBaseService): + """Service for PROSEC operations""" + + _instance: Optional["ProsecService"] = None + + @classmethod + def get_instance(cls) -> "ProsecService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + nico: Optional[str] = None, + sector: Optional[str] = None, + articulo: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[ProsecResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if nico: + params["nico"] = nico + if sector: + params["sector"] = sector + if articulo: + params["articulo"] = articulo + + data = await self._make_request("GET", "/api/v1/prosec/", params=params) + return [ProsecResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> ProsecResponse: + data = await self._make_request("GET", f"/api/v1/prosec/{sysid}") + return ProsecResponse(**data) diff --git a/backend/api/v1/modules/sitar/rcg2/__init__.py b/backend/api/v1/modules/sitar/rcg2/__init__.py new file mode 100644 index 00000000..6cc53a00 --- /dev/null +++ b/backend/api/v1/modules/sitar/rcg2/__init__.py @@ -0,0 +1,7 @@ +"""Rcg2 Module""" + +from .schemas import Rcg2Response +from .service import Rcg2Service +from .router import router + +__all__ = ["Rcg2Response", "Rcg2Service", "router"] diff --git a/backend/api/v1/modules/sitar/rcg2/router.py b/backend/api/v1/modules/sitar/rcg2/router.py new file mode 100644 index 00000000..d07dac54 --- /dev/null +++ b/backend/api/v1/modules/sitar/rcg2/router.py @@ -0,0 +1,34 @@ +"""Rcg2 Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import Rcg2Service +from .schemas import Rcg2Response + +router = APIRouter() + + +@router.get("/", response_model=List[Rcg2Response]) +async def search( + fraccion: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = Rcg2Service.get_instance() + return await service.search( + fraccion=fraccion, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=Rcg2Response) +async def get_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await Rcg2Service.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/rcg2/schemas.py b/backend/api/v1/modules/sitar/rcg2/schemas.py new file mode 100644 index 00000000..977cb8af --- /dev/null +++ b/backend/api/v1/modules/sitar/rcg2/schemas.py @@ -0,0 +1,26 @@ +"""RCG2 Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class Rcg2Response(BaseModel): + """Reglas de Carácter General""" + + FRACCION: Optional[str] = Field(None, max_length=10) + ANEXO: Optional[str] = Field(None, max_length=19) + SECTOR: Optional[str] = None + REGIMEN: Optional[str] = None + CONDICION: Optional[str] = None + ADUANAS: Optional[str] = Field(None, max_length=1000) + DOF: Optional[str] = Field(None, max_length=8) + ARCHIVOCRITERIO: Optional[str] = Field(None, max_length=1000) + TIPO: Optional[str] = Field(None, max_length=1) + IMPO: Optional[int] = None + EXPO: Optional[int] = None + WEB_DOCUMENTO_ID: Optional[int] = None + NICO: Optional[str] = Field("", max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/rcg2/service.py b/backend/api/v1/modules/sitar/rcg2/service.py new file mode 100644 index 00000000..4e04ac29 --- /dev/null +++ b/backend/api/v1/modules/sitar/rcg2/service.py @@ -0,0 +1,34 @@ +"""Rcg2 Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import Rcg2Response + + +class Rcg2Service(SitarAPIBaseService): + _instance: Optional["Rcg2Service"] = None + + @classmethod + def get_instance(cls) -> "Rcg2Service": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[Rcg2Response]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if nico: + params["nico"] = nico + data = await self._make_request("GET", "/api/v1/rcg2/", params=params) + return [Rcg2Response(**item) for item in data] + + async def get_by_id(self, sysid: int) -> Rcg2Response: + data = await self._make_request("GET", f"/api/v1/rcg2/{sysid}") + return Rcg2Response(**data) diff --git a/backend/api/v1/modules/sitar/regulaciones/__init__.py b/backend/api/v1/modules/sitar/regulaciones/__init__.py new file mode 100644 index 00000000..cff4beb3 --- /dev/null +++ b/backend/api/v1/modules/sitar/regulaciones/__init__.py @@ -0,0 +1,7 @@ +"""Regulaciones Module""" + +from .schemas import RegulacionesResponse +from .service import RegulacionesService +from .router import router + +__all__ = ["RegulacionesResponse", "RegulacionesService", "router"] diff --git a/backend/api/v1/modules/sitar/regulaciones/router.py b/backend/api/v1/modules/sitar/regulaciones/router.py new file mode 100644 index 00000000..ea1359b7 --- /dev/null +++ b/backend/api/v1/modules/sitar/regulaciones/router.py @@ -0,0 +1,37 @@ +"""Regulaciones Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import RegulacionesService +from .schemas import RegulacionesResponse + +router = APIRouter() + + +@router.get("/", response_model=List[RegulacionesResponse]) +async def search_regulaciones( + fraccion: Optional[str] = Query(None, description="Fracción arancelaria"), + nico: Optional[str] = Query(None, description="NICO"), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = RegulacionesService.get_instance() + return await service.search( + fraccion=fraccion, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=f"Error: {str(e)}") + + +@router.get("/{sysid}", response_model=RegulacionesResponse) +async def get_regulacion_by_id( + sysid: int, current_user: dict = Depends(get_current_user) +): + try: + service = RegulacionesService.get_instance() + return await service.get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=f"Not found: {str(e)}") diff --git a/backend/api/v1/modules/sitar/regulaciones/schemas.py b/backend/api/v1/modules/sitar/regulaciones/schemas.py new file mode 100644 index 00000000..ddb6f4b3 --- /dev/null +++ b/backend/api/v1/modules/sitar/regulaciones/schemas.py @@ -0,0 +1,19 @@ +"""Regulaciones Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class RegulacionesResponse(BaseModel): + """Regulaciones y restricciones""" + + FRACCION: Optional[str] = Field(None, max_length=10) + PERMISO: Optional[str] = Field(None, max_length=2) + ACUERDO: Optional[str] = Field(None, max_length=15) + CLAVE: Optional[str] = Field(None, max_length=10) + DESCRIPCION: Optional[str] = None + NICO: Optional[str] = Field("", max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/regulaciones/service.py b/backend/api/v1/modules/sitar/regulaciones/service.py new file mode 100644 index 00000000..ca534e0d --- /dev/null +++ b/backend/api/v1/modules/sitar/regulaciones/service.py @@ -0,0 +1,37 @@ +"""Regulaciones Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import RegulacionesResponse + + +class RegulacionesService(SitarAPIBaseService): + """Service for Regulaciones operations""" + + _instance: Optional["RegulacionesService"] = None + + @classmethod + def get_instance(cls) -> "RegulacionesService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[RegulacionesResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if nico: + params["nico"] = nico + + data = await self._make_request("GET", "/api/v1/regulaciones/", params=params) + return [RegulacionesResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> RegulacionesResponse: + data = await self._make_request("GET", f"/api/v1/regulaciones/{sysid}") + return RegulacionesResponse(**data) diff --git a/backend/api/v1/modules/sitar/reit/__init__.py b/backend/api/v1/modules/sitar/reit/__init__.py new file mode 100644 index 00000000..e462b3c0 --- /dev/null +++ b/backend/api/v1/modules/sitar/reit/__init__.py @@ -0,0 +1,7 @@ +"""Reit Module""" + +from .schemas import ReitResponse +from .service import ReitService +from .router import router + +__all__ = ["ReitResponse", "ReitService", "router"] diff --git a/backend/api/v1/modules/sitar/reit/router.py b/backend/api/v1/modules/sitar/reit/router.py new file mode 100644 index 00000000..e5204115 --- /dev/null +++ b/backend/api/v1/modules/sitar/reit/router.py @@ -0,0 +1,34 @@ +"""Reit Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import ReitService +from .schemas import ReitResponse + +router = APIRouter() + + +@router.get("/", response_model=List[ReitResponse]) +async def search( + fraccion: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = ReitService.get_instance() + return await service.search( + fraccion=fraccion, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=ReitResponse) +async def get_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await ReitService.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/reit/schemas.py b/backend/api/v1/modules/sitar/reit/schemas.py new file mode 100644 index 00000000..9d079198 --- /dev/null +++ b/backend/api/v1/modules/sitar/reit/schemas.py @@ -0,0 +1,25 @@ +"""REIT Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class ReitResponse(BaseModel): + """Registro de Empresas de Industria Terminal""" + + FRACCION: Optional[str] = Field(None, max_length=10) + ARTICULO: Optional[str] = Field(None, max_length=50) + FUNDAMENTO: Optional[str] = Field(None, max_length=1500) + ACUERDO: Optional[str] = Field(None, max_length=500) + PERMISO: Optional[str] = Field(None, max_length=2) + DOF: Optional[str] = Field(None, max_length=8) + DOCUMENTO: Optional[str] = Field(None, max_length=200) + TEMPORALIDAD: Optional[int] = None + TEMPORALIDADSERVICIO: Optional[int] = None + TEMPORALIDADCERTIFICADA: Optional[int] = None + WEB_DOCUMENTO_ID: Optional[int] = None + NICO: Optional[str] = Field("", max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/reit/service.py b/backend/api/v1/modules/sitar/reit/service.py new file mode 100644 index 00000000..86d871c9 --- /dev/null +++ b/backend/api/v1/modules/sitar/reit/service.py @@ -0,0 +1,34 @@ +"""Reit Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import ReitResponse + + +class ReitService(SitarAPIBaseService): + _instance: Optional["ReitService"] = None + + @classmethod + def get_instance(cls) -> "ReitService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[ReitResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if nico: + params["nico"] = nico + data = await self._make_request("GET", "/api/v1/reit/", params=params) + return [ReitResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> ReitResponse: + data = await self._make_request("GET", f"/api/v1/reit/{sysid}") + return ReitResponse(**data) diff --git a/backend/api/v1/modules/sitar/requisito_previo/__init__.py b/backend/api/v1/modules/sitar/requisito_previo/__init__.py new file mode 100644 index 00000000..65b96cf6 --- /dev/null +++ b/backend/api/v1/modules/sitar/requisito_previo/__init__.py @@ -0,0 +1,7 @@ +"""RequisitoPrevio Module""" + +from .schemas import RequisitoPrevioResponse +from .service import RequisitoPrevioService +from .router import router + +__all__ = ["RequisitoPrevioResponse", "RequisitoPrevioService", "router"] diff --git a/backend/api/v1/modules/sitar/requisito_previo/router.py b/backend/api/v1/modules/sitar/requisito_previo/router.py new file mode 100644 index 00000000..aa2354f5 --- /dev/null +++ b/backend/api/v1/modules/sitar/requisito_previo/router.py @@ -0,0 +1,34 @@ +"""RequisitoPrevio Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import RequisitoPrevioService +from .schemas import RequisitoPrevioResponse + +router = APIRouter() + + +@router.get("/", response_model=List[RequisitoPrevioResponse]) +async def search( + fraccion: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = RequisitoPrevioService.get_instance() + return await service.search( + fraccion=fraccion, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=RequisitoPrevioResponse) +async def get_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await RequisitoPrevioService.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/requisito_previo/schemas.py b/backend/api/v1/modules/sitar/requisito_previo/schemas.py new file mode 100644 index 00000000..bc711e76 --- /dev/null +++ b/backend/api/v1/modules/sitar/requisito_previo/schemas.py @@ -0,0 +1,28 @@ +"""Requisito Previo Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class RequisitoPrevioResponse(BaseModel): + """Requisitos previos""" + + FRACCION: Optional[str] = Field(None, max_length=8) + DESCRIPCION: Optional[str] = Field(None, max_length=1999) + OBSERVACION: Optional[str] = Field(None, max_length=1999) + DOF: Optional[str] = Field(None, max_length=8) + VIGENCIA: Optional[str] = Field(None, max_length=8) + NUMEROACUERDO: Optional[int] = None + NUMEROCRITERIO: Optional[int] = None + NUMEROFORMATO: Optional[int] = None + NUMEROINSTRUCCIONES: Optional[int] = None + HISTORICO: Optional[str] = Field(None, max_length=2000) + NOTA: Optional[str] = Field(None, max_length=5000) + PERMISO: Optional[str] = Field(None, max_length=2) + IMPO: Optional[int] = None + EXPO: Optional[int] = None + NICO: Optional[str] = Field("", max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/requisito_previo/service.py b/backend/api/v1/modules/sitar/requisito_previo/service.py new file mode 100644 index 00000000..84c74ac5 --- /dev/null +++ b/backend/api/v1/modules/sitar/requisito_previo/service.py @@ -0,0 +1,36 @@ +"""RequisitoPrevio Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import RequisitoPrevioResponse + + +class RequisitoPrevioService(SitarAPIBaseService): + _instance: Optional["RequisitoPrevioService"] = None + + @classmethod + def get_instance(cls) -> "RequisitoPrevioService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[RequisitoPrevioResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if nico: + params["nico"] = nico + data = await self._make_request( + "GET", "/api/v1/requisito-previo/", params=params + ) + return [RequisitoPrevioResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> RequisitoPrevioResponse: + data = await self._make_request("GET", f"/api/v1/requisito-previo/{sysid}") + return RequisitoPrevioResponse(**data) diff --git a/backend/api/v1/modules/sitar/router.py b/backend/api/v1/modules/sitar/router.py new file mode 100644 index 00000000..4370839c --- /dev/null +++ b/backend/api/v1/modules/sitar/router.py @@ -0,0 +1,90 @@ +""" +SITAR API Main Router + +Router principal que incluye todos los sub-routers de SITAR. +Registra este router en tu aplicación FastAPI principal. + +Usage: + from api.v1.modules.sitar.main_router import router as sitar_router + + app.include_router( + sitar_router, + prefix="/api/v1/sitar", + tags=["sitar"] + ) +""" + +from fastapi import APIRouter + +# Import all sub-routers +from .tlcs.router import router as tlcs_router +from .fracciones.router import router as fracciones_router +from .fracciones_usa.router import router as fracciones_usa_router +from .regulaciones.router import router as regulaciones_router +from .prosec.router import router as prosec_router +from .precios_estimados.router import router as precios_estimados_router +from .fundamentos_tlc.router import router as fundamentos_tlc_router +from .aladi2.router import router as aladi2_router +from .cuotas2.router import router as cuotas2_router +from .cupos.router import router as cupos_router +from .fracciones_anteriores.router import router as fracciones_anteriores_router +from .informacion_general.router import router as informacion_general_router +from .ieps.router import router as ieps_router +from .noms.router import router as noms_router +from .rcg2.router import router as rcg2_router +from .reit.router import router as reit_router +from .requisito_previo.router import router as requisito_previo_router +from .vehiculos_marcas.router import router as vehiculos_marcas_router +from .vehiculos_modelos.router import router as vehiculos_modelos_router + +# Create main router +router = APIRouter() + +# Include all sub-routers with their prefixes +router.include_router(tlcs_router, prefix="/tlcs", tags=["sitar-tlcs"]) +router.include_router( + fracciones_router, prefix="/fracciones", tags=["sitar-fracciones"] +) +router.include_router( + fracciones_usa_router, prefix="/fracciones-usa", tags=["sitar-fracciones-usa"] +) +router.include_router( + regulaciones_router, prefix="/regulaciones", tags=["sitar-regulaciones"] +) +router.include_router(prosec_router, prefix="/prosec", tags=["sitar-prosec"]) +router.include_router( + precios_estimados_router, + prefix="/precios-estimados", + tags=["sitar-precios-estimados"], +) +router.include_router( + fundamentos_tlc_router, prefix="/fundamentos-tlc", tags=["sitar-fundamentos-tlc"] +) +router.include_router(aladi2_router, prefix="/aladi2", tags=["sitar-aladi2"]) +router.include_router(cuotas2_router, prefix="/cuotas2", tags=["sitar-cuotas2"]) +router.include_router(cupos_router, prefix="/cupos", tags=["sitar-cupos"]) +router.include_router( + fracciones_anteriores_router, + prefix="/fracciones-anteriores", + tags=["sitar-fracciones-anteriores"], +) +router.include_router( + informacion_general_router, + prefix="/informacion-general", + tags=["sitar-informacion-general"], +) +router.include_router(ieps_router, prefix="/ieps", tags=["sitar-ieps"]) +router.include_router(noms_router, prefix="/noms", tags=["sitar-noms"]) +router.include_router(rcg2_router, prefix="/rcg2", tags=["sitar-rcg2"]) +router.include_router(reit_router, prefix="/reit", tags=["sitar-reit"]) +router.include_router( + requisito_previo_router, prefix="/requisito-previo", tags=["sitar-requisito-previo"] +) +router.include_router( + vehiculos_marcas_router, prefix="/vehiculos-marcas", tags=["sitar-vehiculos-marcas"] +) +router.include_router( + vehiculos_modelos_router, + prefix="/vehiculos-modelos", + tags=["sitar-vehiculos-modelos"], +) diff --git a/backend/api/v1/modules/sitar/tlcs/__init__.py b/backend/api/v1/modules/sitar/tlcs/__init__.py new file mode 100644 index 00000000..4ebb568d --- /dev/null +++ b/backend/api/v1/modules/sitar/tlcs/__init__.py @@ -0,0 +1,7 @@ +"""TLCS Module""" + +from .schemas import TLCSResponse +from .service import TLCSService +from .router import router + +__all__ = ["TLCSResponse", "TLCSService", "router"] diff --git a/backend/api/v1/modules/sitar/tlcs/router.py b/backend/api/v1/modules/sitar/tlcs/router.py new file mode 100644 index 00000000..0da8b4d3 --- /dev/null +++ b/backend/api/v1/modules/sitar/tlcs/router.py @@ -0,0 +1,44 @@ +"""TLCS Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import TLCSService +from .schemas import TLCSResponse + +router = APIRouter() + + +@router.get("/", response_model=List[TLCSResponse]) +async def search_tlcs( + fraccion: Optional[str] = Query(None, description="Fracción arancelaria"), + pais: Optional[str] = Query(None, description="Código de país"), + nico: Optional[str] = Query(None, description="NICO"), + skip: int = Query(0, ge=0, description="Registros a saltar"), + limit: int = Query(100, ge=1, le=1000, description="Máximo de registros"), + current_user: dict = Depends(get_current_user), +): + """Search TLCS records""" + try: + service = TLCSService.get_instance() + return await service.search( + fraccion=fraccion, pais=pais, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException( + status_code=500, detail=f"Error fetching TLCS data: {str(e)}" + ) + + +@router.get("/{sysid}/{fraccion}", response_model=TLCSResponse) +async def get_tlcs_by_id( + sysid: int, + fraccion: str, + current_user: dict = Depends(get_current_user), +): + """Get single TLCS record by SYSID and FRACCION""" + try: + service = TLCSService.get_instance() + return await service.get_by_id(sysid, fraccion) + except Exception as e: + raise HTTPException(status_code=404, detail=f"TLCS record not found: {str(e)}") diff --git a/backend/api/v1/modules/sitar/tlcs/schemas.py b/backend/api/v1/modules/sitar/tlcs/schemas.py new file mode 100644 index 00000000..944731ea --- /dev/null +++ b/backend/api/v1/modules/sitar/tlcs/schemas.py @@ -0,0 +1,23 @@ +"""TLCS Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class TLCSResponse(BaseModel): + """TLCS (Tratados de Libre Comercio) response model""" + + FRACCION: Optional[str] = Field(None, max_length=8) + PAIS: Optional[str] = Field(None, max_length=3) + TASATXT: Optional[str] = Field(None, max_length=19) + TASANUM: Optional[str] = None + TASACALCULADA: Optional[str] = Field(None, max_length=19) + TLC: Optional[str] = Field(None, max_length=6) + NOTA: Optional[str] = None + DOF: Optional[str] = Field(None, max_length=8) + OBSERVACION: Optional[str] = None + NICO: Optional[str] = Field("", max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/tlcs/service.py b/backend/api/v1/modules/sitar/tlcs/service.py new file mode 100644 index 00000000..f9cef291 --- /dev/null +++ b/backend/api/v1/modules/sitar/tlcs/service.py @@ -0,0 +1,55 @@ +"""TLCS Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import TLCSResponse + + +class TLCSService(SitarAPIBaseService): + """Service for TLCS operations""" + + _instance: Optional["TLCSService"] = None + + @classmethod + def get_instance(cls) -> "TLCSService": + """Get singleton instance""" + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + pais: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[TLCSResponse]: + """ + Search TLCS records + + Args: + fraccion: Tariff fraction code + pais: Country code + nico: NICO code + skip: Records to skip + limit: Maximum records to return + + Returns: + List of TLCS records + """ + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion[:8] + if pais: + params["pais"] = pais + if nico: + params["nico"] = nico + + data = await self._make_request("GET", "/api/v1/tlcs/", params=params) + return [TLCSResponse(**item) for item in data] + + async def get_by_id(self, sysid: int, fraccion: str) -> TLCSResponse: + """Get single TLCS record by SYSID and FRACCION""" + data = await self._make_request("GET", f"/api/v1/tlcs/{sysid}/{fraccion}") + return TLCSResponse(**data) diff --git a/backend/api/v1/modules/sitar/vehiculos_marcas/__init__.py b/backend/api/v1/modules/sitar/vehiculos_marcas/__init__.py new file mode 100644 index 00000000..2ef02a73 --- /dev/null +++ b/backend/api/v1/modules/sitar/vehiculos_marcas/__init__.py @@ -0,0 +1,7 @@ +"""VehiculosMarcas Module""" + +from .schemas import VehiculosMarcasResponse +from .service import VehiculosMarcasService +from .router import router + +__all__ = ["VehiculosMarcasResponse", "VehiculosMarcasService", "router"] diff --git a/backend/api/v1/modules/sitar/vehiculos_marcas/router.py b/backend/api/v1/modules/sitar/vehiculos_marcas/router.py new file mode 100644 index 00000000..3c792c13 --- /dev/null +++ b/backend/api/v1/modules/sitar/vehiculos_marcas/router.py @@ -0,0 +1,34 @@ +"""VehiculosMarcas Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import VehiculosMarcasService +from .schemas import VehiculosMarcasResponse + +router = APIRouter() + + +@router.get("/", response_model=List[VehiculosMarcasResponse]) +async def search( + fraccion: Optional[str] = Query(None), + marca: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = VehiculosMarcasService.get_instance() + return await service.search( + fraccion=fraccion, marca=marca, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=VehiculosMarcasResponse) +async def get_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await VehiculosMarcasService.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/vehiculos_marcas/schemas.py b/backend/api/v1/modules/sitar/vehiculos_marcas/schemas.py new file mode 100644 index 00000000..979a8fba --- /dev/null +++ b/backend/api/v1/modules/sitar/vehiculos_marcas/schemas.py @@ -0,0 +1,15 @@ +"""Vehiculos Marcas Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class VehiculosMarcasResponse(BaseModel): + """Marcas de vehículos""" + + FRACCION: Optional[str] = Field(None, max_length=8) + MARCA: Optional[str] = Field(None, max_length=60) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/vehiculos_marcas/service.py b/backend/api/v1/modules/sitar/vehiculos_marcas/service.py new file mode 100644 index 00000000..46681203 --- /dev/null +++ b/backend/api/v1/modules/sitar/vehiculos_marcas/service.py @@ -0,0 +1,36 @@ +"""VehiculosMarcas Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import VehiculosMarcasResponse + + +class VehiculosMarcasService(SitarAPIBaseService): + _instance: Optional["VehiculosMarcasService"] = None + + @classmethod + def get_instance(cls) -> "VehiculosMarcasService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + marca: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[VehiculosMarcasResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if marca: + params["marca"] = marca + data = await self._make_request( + "GET", "/api/v1/vehiculos-marcas/", params=params + ) + return [VehiculosMarcasResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> VehiculosMarcasResponse: + data = await self._make_request("GET", f"/api/v1/vehiculos-marcas/{sysid}") + return VehiculosMarcasResponse(**data) diff --git a/backend/api/v1/modules/sitar/vehiculos_modelos/__init__.py b/backend/api/v1/modules/sitar/vehiculos_modelos/__init__.py new file mode 100644 index 00000000..e2f516f6 --- /dev/null +++ b/backend/api/v1/modules/sitar/vehiculos_modelos/__init__.py @@ -0,0 +1,7 @@ +"""VehiculosModelos Module""" + +from .schemas import VehiculosModelosResponse +from .service import VehiculosModelosService +from .router import router + +__all__ = ["VehiculosModelosResponse", "VehiculosModelosService", "router"] diff --git a/backend/api/v1/modules/sitar/vehiculos_modelos/router.py b/backend/api/v1/modules/sitar/vehiculos_modelos/router.py new file mode 100644 index 00000000..58110333 --- /dev/null +++ b/backend/api/v1/modules/sitar/vehiculos_modelos/router.py @@ -0,0 +1,35 @@ +"""VehiculosModelos Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import VehiculosModelosService +from .schemas import VehiculosModelosResponse + +router = APIRouter() + + +@router.get("/", response_model=List[VehiculosModelosResponse]) +async def search( + fraccion: Optional[str] = Query(None), + marca: Optional[str] = Query(None), + modelo: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = VehiculosModelosService.get_instance() + return await service.search( + fraccion=fraccion, marca=marca, modelo=modelo, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=VehiculosModelosResponse) +async def get_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await VehiculosModelosService.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/vehiculos_modelos/schemas.py b/backend/api/v1/modules/sitar/vehiculos_modelos/schemas.py new file mode 100644 index 00000000..0153c215 --- /dev/null +++ b/backend/api/v1/modules/sitar/vehiculos_modelos/schemas.py @@ -0,0 +1,38 @@ +"""Vehiculos Modelos Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class VehiculosModelosResponse(BaseModel): + """Modelos de vehículos""" + + FRACCION: Optional[str] = Field(None, max_length=8) + MARCA: Optional[str] = Field(None, max_length=60) + MODELO: Optional[str] = Field(None, max_length=80) + TIPO: Optional[str] = Field(None, max_length=1) + CLAVEUM: Optional[str] = Field(None, max_length=2) + A20: Optional[str] = Field(None, max_length=19) + A19: Optional[str] = Field(None, max_length=19) + A18: Optional[str] = Field(None, max_length=19) + A17: Optional[str] = Field(None, max_length=19) + A16: Optional[str] = Field(None, max_length=19) + A15: Optional[str] = Field(None, max_length=19) + A14: Optional[str] = Field(None, max_length=19) + A13: Optional[str] = Field(None, max_length=19) + A12: Optional[str] = Field(None, max_length=19) + A11: Optional[str] = Field(None, max_length=19) + A10: Optional[str] = Field(None, max_length=19) + A9: Optional[str] = Field(None, max_length=19) + A8: Optional[str] = Field(None, max_length=19) + A7: Optional[str] = Field(None, max_length=19) + A6: Optional[str] = Field(None, max_length=19) + A5: Optional[str] = Field(None, max_length=19) + A4: Optional[str] = Field(None, max_length=19) + A3: Optional[str] = Field(None, max_length=19) + A2: Optional[str] = Field(None, max_length=19) + A1: Optional[str] = Field(None, max_length=19) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/vehiculos_modelos/service.py b/backend/api/v1/modules/sitar/vehiculos_modelos/service.py new file mode 100644 index 00000000..8dd18399 --- /dev/null +++ b/backend/api/v1/modules/sitar/vehiculos_modelos/service.py @@ -0,0 +1,39 @@ +"""VehiculosModelos Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import VehiculosModelosResponse + + +class VehiculosModelosService(SitarAPIBaseService): + _instance: Optional["VehiculosModelosService"] = None + + @classmethod + def get_instance(cls) -> "VehiculosModelosService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + marca: Optional[str] = None, + modelo: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[VehiculosModelosResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if marca: + params["marca"] = marca + if modelo: + params["modelo"] = modelo + data = await self._make_request( + "GET", "/api/v1/vehiculos-modelos/", params=params + ) + return [VehiculosModelosResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> VehiculosModelosResponse: + data = await self._make_request("GET", f"/api/v1/vehiculos-modelos/{sysid}") + return VehiculosModelosResponse(**data) diff --git a/backend/api/v1/router.py b/backend/api/v1/router.py index f893402c..474bd601 100644 --- a/backend/api/v1/router.py +++ b/backend/api/v1/router.py @@ -10,6 +10,7 @@ from .modules.core.router import router as core_router from .modules.a76.router import router as a76_router from .modules.a24.router import router as a24_router from .modules.public.router import router as public_router +from .modules.sitar.router import router as sitar_router # Router principal @@ -20,6 +21,7 @@ router.include_router(core_router) router.include_router(a76_router) router.include_router(a24_router) router.include_router(public_router) +router.include_router(sitar_router, prefix="/sitar") # Health check diff --git a/backend/core/celery_app.py b/backend/core/celery_app.py index c9335e5d..542567e6 100644 --- a/backend/core/celery_app.py +++ b/backend/core/celery_app.py @@ -1,6 +1,10 @@ import os from celery import Celery +# Import models in correct order for SQLAlchemy relationship resolution +# CRITICAL: FaLineItem must be imported BEFORE LineItem +from api.v1.modules.a24.fa.fa_item_lines.models import FaLineItem # noqa: F401 +from api.v1.modules.a76.items.models import LineItem # noqa: F401 valkey_url = os.getenv("VALKEY_URL", "redis://valkey:6379/0") @@ -14,6 +18,7 @@ celery_app = Celery( "api.v1.modules.a76.reports.importacion.packing_list.task", "api.v1.modules.a76.reports.exportacion.aviso_consolidado.task", "api.v1.modules.a76.reports.exportacion.descargo.task", + "api.v1.modules.a76.imports.tasks", "api.v1.modules.a76.reports.exportacion.transmission.MAINX30.task", "api.v1.modules.a76.reports.importacion.transmission.temporal.MAINX30.task", "api.v1.modules.a76.reports.importacion.transmission.definitive.MAINX30.task" @@ -31,4 +36,4 @@ celery_app.conf.update( ) if __name__ == "__main__": - celery_app.start() \ No newline at end of file + celery_app.start() diff --git a/backend/core/error_handlers.py b/backend/core/error_handlers.py index e1f7783a..833d54b8 100644 --- a/backend/core/error_handlers.py +++ b/backend/core/error_handlers.py @@ -5,7 +5,7 @@ Manejadores globales de excepciones para FastAPI import logging from typing import Any, Dict -from fastapi import Request, status +from fastapi import Request, status, HTTPException from fastapi.responses import JSONResponse from fastapi.encoders import jsonable_encoder from fastapi.exceptions import RequestValidationError @@ -138,6 +138,23 @@ async def sqlalchemy_error_handler( ) +async def http_exception_handler( + request: Request, + exc: HTTPException, +) -> JSONResponse: + """ + Manejador para HTTPException de FastAPI + """ + return JSONResponse( + status_code=exc.status_code, + content={ + "error": "HTTP_ERROR", + "message": exc.detail, + "status_code": exc.status_code, + }, + ) + + async def general_exception_handler( request: Request, exc: Exception, @@ -172,6 +189,7 @@ def register_exception_handlers(app) -> None: app: Instancia de FastAPI """ app.add_exception_handler(BaseAPIException, base_exception_handler) + app.add_exception_handler(HTTPException, http_exception_handler) app.add_exception_handler(RequestValidationError, validation_exception_handler) app.add_exception_handler(IntegrityError, integrity_error_handler) app.add_exception_handler(SQLAlchemyError, sqlalchemy_error_handler) diff --git a/backend/core/middleware.py b/backend/core/middleware.py index d7da611b..d4c9c594 100644 --- a/backend/core/middleware.py +++ b/backend/core/middleware.py @@ -1,7 +1,8 @@ import logging import time from typing import Callable -from fastapi import HTTPException, Request, Response +from fastapi import Request, Response +from fastapi.responses import JSONResponse from starlette.middleware.base import BaseHTTPMiddleware from .config import settings from .database import CoreSessionLocal @@ -34,9 +35,13 @@ class TenantMiddleware(BaseHTTPMiddleware): # 4. Validación estricta de Token (solo para lo que no es público ni OPTIONS) auth_header = request.headers.get("Authorization") if not auth_header or not auth_header.startswith("Bearer "): - raise HTTPException( - status_code=401, - detail="Missing or invalid authorization header" + return JSONResponse( + status_code=401, + content={ + "error": "HTTP_ERROR", + "message": "Missing or invalid authorization header", + "status_code": 401, + } ) token = auth_header.split(" ")[1] @@ -48,7 +53,14 @@ class TenantMiddleware(BaseHTTPMiddleware): request.state.user_info = user_info except Exception as e: logger.error(f"❌ Tenant validation error: {str(e)}") - raise HTTPException(status_code=401, detail="Invalid authentication") + return JSONResponse( + status_code=401, + content={ + "error": "HTTP_ERROR", + "message": "Invalid authentication", + "status_code": 401, + } + ) # 5. Continuar con la petición real return await call_next(request) @@ -104,19 +116,28 @@ class LicenseValidationMiddleware(BaseHTTPMiddleware): license_info = license_service.validate_license(tenant_id) if not license_info["is_valid"]: - raise HTTPException( + return JSONResponse( status_code=402, - detail=f"License validation failed: {license_info['reason']}", + content={ + "error": "HTTP_ERROR", + "message": f"License validation failed: {license_info['reason']}", + "status_code": 402, + } ) # Agregar info de licencia al request state request.state.license_info = license_info - except HTTPException: - raise except Exception as e: logger.error(f"License validation error: {str(e)}") - raise HTTPException(status_code=500, detail="License validation error") + return JSONResponse( + status_code=500, + content={ + "error": "HTTP_ERROR", + "message": "License validation error", + "status_code": 500, + } + ) finally: db.close() diff --git a/backend/main.py b/backend/main.py index 795e5c8a..b1740f07 100644 --- a/backend/main.py +++ b/backend/main.py @@ -6,6 +6,75 @@ Backend API con FastAPI + Keycloak + SQLAlchemy import logging import subprocess +# Importar modelos para registrar con SQLAlchemy + +# Reference Data (Dependencies) +from api.v1.modules.public.reference_data.countries.models import Country +from api.v1.modules.public.reference_data.currency_types.models import CurrencyType +from api.v1.modules.public.reference_data.customs_sections.models import CustomsSection +from api.v1.modules.public.reference_data.customs_warehouses.models import CustomsWarehouse +from api.v1.modules.public.reference_data.incoterms.models import Incoterm +from api.v1.modules.public.reference_data.invoice_types.models import InvoiceType +from api.v1.modules.public.reference_data.material_types.models import MaterialType +from api.v1.modules.public.reference_data.payment_methods.models import PaymentMethod +from api.v1.modules.public.reference_data.pedimento_codes.models import PedimentoCode +from api.v1.modules.public.reference_data.pedimento_regimens.models import RegimenPedimento +from api.v1.modules.public.reference_data.sectors.models import Sector +from api.v1.modules.public.reference_data.states.models import State +from api.v1.modules.public.reference_data.transport_modes.models import TransportMode +from api.v1.modules.public.reference_data.transport_types.models import TransportType +from api.v1.modules.public.reference_data.valuation_methods.models import ValuationMethod +from api.v1.modules.a76.general_catalogs.units_of_measure.models import UnitOfMeasure +from api.v1.modules.a76.general_catalogs.exchange_rate.models import ExchangeRate +from api.v1.modules.a76.general_catalogs.identifiers.models import Identifier +from api.v1.modules.a76.classes.models import Class +from api.v1.modules.a76.general_catalogs.classification_concepts.models import ClassificationConcept +from api.v1.modules.a76.general_catalogs.concepts.models import Concept +from api.v1.modules.a76.general_catalogs.customs_broker_concepts.models import CustomsBrokerConcept +from api.v1.modules.a76.general_catalogs.depreciation_catalog.models import DepreciationCatalog +from api.v1.modules.a76.general_catalogs.doda.models import Doda +from api.v1.modules.a76.general_catalogs.electronic_notices.models import ElectronicNotice +from api.v1.modules.a76.general_catalogs.equivalencies.models import Equivalency +from api.v1.modules.a76.general_catalogs.error_catalogs.models import ErrorCatalog +from api.v1.modules.a76.general_catalogs.fda_catalog.models import FDACatalog +from api.v1.modules.a76.general_catalogs.inpc.models import INPC +from api.v1.modules.a76.general_catalogs.legends.models import Legend +from api.v1.modules.a76.general_catalogs.multi_currency_types.models import MultiCurrencyType +from api.v1.modules.a76.general_catalogs.packages.models import Package +from api.v1.modules.a76.general_catalogs.ports.models import Port +from api.v1.modules.a76.general_catalogs.prevalidators.models import Prevalidator +from api.v1.modules.a76.general_catalogs.seal.models import Seal +from api.v1.modules.a76.general_catalogs.signatures.models import Signature +from api.v1.modules.a76.general_catalogs.fractions.tariff_fractions.models import ( + TariffFraction, +) +from api.v1.modules.a76.general_catalogs.unit_conversions.models import UnitConversion +from api.v1.modules.a76.general_catalogs.fractions.us_tariff_fractions.models import ( + USTariffFraction, +) + +# Core Modules & Reference Data (Dependencies) +from api.v1.modules.a76.clients_and_providers.models import ClientProvider +from api.v1.modules.a76.customs_brokers.models import CustomsBroker +from api.v1.modules.a76.general_catalogs.company.models import Company + +# Core Modules & Transactional Models +from api.v1.modules.a76.items.models import LineItem +from api.v1.modules.a76.items.series.models import Serie +from api.v1.modules.a76.parts.models import Part +from api.v1.modules.a24.fa.fa_parts.models import FaPart +from api.v1.modules.a24.inv.inv_parts.models import InvPart +from api.v1.modules.a76.manifests.manifest.models import Manifest +from api.v1.modules.a76.manifests.concept_manifestation.models import ConceptManifestation +from api.v1.modules.a76.manifests.value_manifestation.models import ValueManifestation + +# Transactional Primary Models +from api.v1.modules.a76.pedmientos.models.pedimentos import Pedimentos +from api.v1.modules.a76.invoices.models import InvoiceHeader, InvoiceSalesDetails +from api.v1.modules.a76.audit_log.events import register_audit_listeners + +# Core Modules (Secondary) + from api.v1.router import router as api_v1_router from core.config import settings from core.database import init_db @@ -23,13 +92,17 @@ from fastapi.staticfiles import StaticFiles from pathlib import Path # Importar modelos para registrar con SQLAlchemy -from api.v1.modules.a76.items.models import Item +# IMPORTANT: Import FaLineItem BEFORE LineItem for relationship resolution +from api.v1.modules.a24.fa.fa_item_lines.models import FaLineItem +from api.v1.modules.a76.items.models import LineItem from api.v1.modules.a76.items.series.models import Serie from api.v1.modules.a76.parts.models import Part from api.v1.modules.a24.fa.fa_parts.models import FaPart from api.v1.modules.a24.inv.inv_parts.models import InvPart from api.v1.modules.a76.manifests.manifest.models import Manifest -from api.v1.modules.a76.manifests.concept_manifestation.models import ConceptManifestation +from api.v1.modules.a76.manifests.concept_manifestation.models import ( + ConceptManifestation, +) from api.v1.modules.a76.manifests.value_manifestation.models import ValueManifestation # Configurar logging @@ -68,18 +141,6 @@ async def validation_exception_handler(request: Request, exc: RequestValidationE ) -# Add HTTP exception handler -@app.exception_handler(HTTPException) -async def http_exception_handler(request: Request, exc: HTTPException): - logger.error( - f"HTTP {exc.status_code} for {request.method} {request.url.path}: {exc.detail}" - ) - return JSONResponse( - status_code=exc.status_code, - content={"detail": exc.detail}, - ) - - def run_migrations(): subprocess.run(["alembic", "upgrade", "head"], check=True) @@ -112,6 +173,7 @@ app.add_middleware(TenantMiddleware) # Middleware de Contexto de Usuario (Audit Log) from api.v1.modules.a76.audit_log.middleware import UserContextMiddleware + app.add_middleware(UserContextMiddleware) # Importar modelos para Audit Log @@ -123,107 +185,128 @@ from api.v1.modules.a76.audit_log.events import register_audit_listeners from api.v1.modules.a76.clients_and_providers.models import ClientProvider from api.v1.modules.a76.customs_brokers.models import CustomsBroker from api.v1.modules.a76.parts.models import Part -from api.v1.modules.a76.items.models import Item +from api.v1.modules.a76.items.models import LineItem from api.v1.modules.a76.general_catalogs.company.models import Company # Reference Data from api.v1.modules.public.reference_data.countries.models import Country from api.v1.modules.public.reference_data.currency_types.models import CurrencyType from api.v1.modules.public.reference_data.customs_sections.models import CustomsSection -from api.v1.modules.public.reference_data.customs_warehouses.models import CustomsWarehouse +from api.v1.modules.public.reference_data.customs_warehouses.models import ( + CustomsWarehouse, +) from api.v1.modules.public.reference_data.incoterms.models import Incoterm from api.v1.modules.public.reference_data.invoice_types.models import InvoiceType from api.v1.modules.public.reference_data.material_types.models import MaterialType from api.v1.modules.public.reference_data.payment_methods.models import PaymentMethod from api.v1.modules.public.reference_data.pedimento_codes.models import PedimentoCode -from api.v1.modules.public.reference_data.pedimento_regimens.models import RegimenPedimento +from api.v1.modules.public.reference_data.pedimento_regimens.models import ( + RegimenPedimento, +) from api.v1.modules.public.reference_data.sectors.models import Sector from api.v1.modules.public.reference_data.states.models import State from api.v1.modules.public.reference_data.transport_modes.models import TransportMode from api.v1.modules.public.reference_data.transport_types.models import TransportType -from api.v1.modules.public.reference_data.valuation_methods.models import ValuationMethod +from api.v1.modules.public.reference_data.valuation_methods.models import ( + ValuationMethod, +) from api.v1.modules.a76.general_catalogs.units_of_measure.models import UnitOfMeasure from api.v1.modules.a76.general_catalogs.exchange_rate.models import ExchangeRate from api.v1.modules.a76.general_catalogs.identifiers.models import Identifier from api.v1.modules.a76.classes.models import Class -from api.v1.modules.a76.general_catalogs.classification_concepts.models import ClassificationConcept +from api.v1.modules.a76.general_catalogs.classification_concepts.models import ( + ClassificationConcept, +) from api.v1.modules.a76.general_catalogs.concepts.models import Concept -from api.v1.modules.a76.general_catalogs.customs_broker_concepts.models import CustomsBrokerConcept -from api.v1.modules.a76.general_catalogs.depreciation_catalog.models import DepreciationCatalog +from api.v1.modules.a76.general_catalogs.customs_broker_concepts.models import ( + CustomsBrokerConcept, +) +from api.v1.modules.a76.general_catalogs.depreciation_catalog.models import ( + DepreciationCatalog, +) from api.v1.modules.a76.general_catalogs.doda.models import Doda -from api.v1.modules.a76.general_catalogs.electronic_notices.models import ElectronicNotice +from api.v1.modules.a76.general_catalogs.electronic_notices.models import ( + ElectronicNotice, +) from api.v1.modules.a76.general_catalogs.equivalencies.models import Equivalency from api.v1.modules.a76.general_catalogs.error_catalogs.models import ErrorCatalog from api.v1.modules.a76.general_catalogs.fda_catalog.models import FDACatalog from api.v1.modules.a76.general_catalogs.inpc.models import INPC from api.v1.modules.a76.general_catalogs.legends.models import Legend -from api.v1.modules.a76.general_catalogs.multi_currency_types.models import MultiCurrencyType +from api.v1.modules.a76.general_catalogs.multi_currency_types.models import ( + MultiCurrencyType, +) from api.v1.modules.a76.general_catalogs.packages.models import Package from api.v1.modules.a76.general_catalogs.ports.models import Port from api.v1.modules.a76.general_catalogs.prevalidators.models import Prevalidator from api.v1.modules.a76.general_catalogs.seal.models import Seal from api.v1.modules.a76.general_catalogs.signatures.models import Signature -from api.v1.modules.a76.general_catalogs.tariff_fractions.models import TariffFraction +from api.v1.modules.a76.general_catalogs.fractions.tariff_fractions.models import ( + TariffFraction, +) from api.v1.modules.a76.general_catalogs.unit_conversions.models import UnitConversion -from api.v1.modules.a76.general_catalogs.us_tariff_fractions.models import USTariffFraction +from api.v1.modules.a76.general_catalogs.fractions.us_tariff_fractions.models import ( + USTariffFraction, +) + # Registrar Listeners de Auditoría @app.on_event("startup") def register_audit(): - register_audit_listeners([ - # Core Transactions - Pedimentos, - InvoiceHeader, - InvoiceSalesDetails, - Item, - - # Sidebar Core Modules - ClientProvider, - CustomsBroker, - Part, - Company, - - # Reference Data - Country, - CurrencyType, - CustomsSection, - CustomsWarehouse, - Incoterm, - InvoiceType, - MaterialType, - PaymentMethod, - PedimentoCode, - RegimenPedimento, - Sector, - State, - TransportMode, - TransportType, - ValuationMethod, - UnitOfMeasure, - ExchangeRate, - Identifier, - Class, - ClassificationConcept, - Concept, - CustomsBrokerConcept, - DepreciationCatalog, - Doda, - ElectronicNotice, - Equivalency, - ErrorCatalog, - FDACatalog, - INPC, - Legend, - MultiCurrencyType, - Package, - Port, - Prevalidator, - Seal, - Signature, - TariffFraction, - UnitConversion, - USTariffFraction - ]) + register_audit_listeners( + [ + # Core Transactions + Pedimentos, + InvoiceHeader, + InvoiceSalesDetails, + LineItem, + # Sidebar Core Modules + ClientProvider, + CustomsBroker, + Part, + Company, + # Reference Data + Country, + CurrencyType, + CustomsSection, + CustomsWarehouse, + Incoterm, + InvoiceType, + MaterialType, + PaymentMethod, + PedimentoCode, + RegimenPedimento, + Sector, + State, + TransportMode, + TransportType, + ValuationMethod, + UnitOfMeasure, + ExchangeRate, + Identifier, + Class, + ClassificationConcept, + Concept, + CustomsBrokerConcept, + DepreciationCatalog, + Doda, + ElectronicNotice, + Equivalency, + ErrorCatalog, + FDACatalog, + INPC, + Legend, + MultiCurrencyType, + Package, + Port, + Prevalidator, + Seal, + Signature, + TariffFraction, + UnitConversion, + USTariffFraction, + ] + ) # Crear directorio de uploads si no existe y montar archivos estáticos diff --git a/frontend/messages/en.json b/frontend/messages/en.json index cf838b4f..fc56fcdf 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -63,6 +63,16 @@ "back_flush": "Back Flush", "crossing_notice": "Crossing Notice" }, + "fractions": { + "title": "Fractions", + "sitar": "Fraction Sitar", + "sitar_seventh_amendment": "Fraction Sitar - Seventh Amendment", + "sitar_us": "Fraction Sitar US", + "american": "Fraction American", + "canadian": "Fraction Canadian", + "historical": "Fraction Historical", + "sectors": "Sectors" + }, "goods": { "title": "Goods", "classes": "Classes", diff --git a/frontend/messages/es.json b/frontend/messages/es.json index 1ea855b2..413726cd 100644 --- a/frontend/messages/es.json +++ b/frontend/messages/es.json @@ -62,6 +62,16 @@ "electronic_notices": "Avisos electrónicos", "back_flush": "Back Flush", "crossing_notice": "Aviso de cruce" + }, + "fractions": { + "title": "Fracciones", + "sitar": "Fracciones Sitar", + "sitar_seventh_amendment": "Fracciones Sitar - 7ma enmienda", + "sitar_us": "Fracciones Sitar US", + "american": "Fracciones Americana", + "canadian": "Fracciones Canadiense", + "historical": "Fracciones Historicas", + "sectors": "Sectores" }, "goods": { "title": "Mercancías", diff --git a/frontend/src/lib/api/dashboard/a76/classes.ts b/frontend/src/lib/api/dashboard/a76/classes.ts index aaad2231..236c2cdb 100644 --- a/frontend/src/lib/api/dashboard/a76/classes.ts +++ b/frontend/src/lib/api/dashboard/a76/classes.ts @@ -101,5 +101,21 @@ export const classesApi = { */ createFA: (data: any, company_id: number): Promise> => { return api.post(`/v1/a76/classes/fa?company_id=${company_id}`, data); + }, + + /** + * Get all classes with FA data in a single query (optimized, eliminates N+1) + */ + getWithFAData: (params: { + company_id: number; + page?: number; + page_size?: number; + }): Promise> => { + const query = new URLSearchParams({ + company_id: params.company_id.toString(), + page: (params.page || 1).toString(), + page_size: (params.page_size || 1000).toString() + }); + return api.get(`/v1/a76/classes/with-fa-data?${query.toString()}`); } }; \ No newline at end of file diff --git a/frontend/src/lib/api/dashboard/a76/general_catalogs/company.ts b/frontend/src/lib/api/dashboard/a76/general_catalogs/company.ts index ee507945..586fedf7 100644 --- a/frontend/src/lib/api/dashboard/a76/general_catalogs/company.ts +++ b/frontend/src/lib/api/dashboard/a76/general_catalogs/company.ts @@ -1,6 +1,91 @@ import { api } from '$lib/api'; import type { ApiResponse } from '$lib/api'; +export interface CompanyAddress { + id?: number; + address_type: string; + street?: string | null; + exterior_number?: string | null; + interior_number?: string | null; + postal_code?: string | null; + neighborhood?: string | null; + city?: string | null; + municipality?: string | null; + state?: string | null; + country?: string | null; + phone?: string | null; + fax?: string | null; + email?: string | null; +} + +export interface CompanyCertification { + id?: number; + is_certified_company?: string | null; + certified_company_registration?: string | null; + certified_company_start_date?: number | null; + certified_company_end_date?: number | null; + annex31_certification_date?: number | null; + annex31_certification_number?: string | null; + annex31_modality?: string | null; + annex31_company_type?: string | null; + annex31_renewal_date?: number | null; + annex31_final_certification_date?: number | null; + is_oea_company?: number | null; + neec_company?: number | null; +} + +export interface CompanyDigitalCertificate { + id?: number; + certificate_type: string; + cer_file_path?: string | null; + key_file_path?: string | null; + password?: string | null; + access_key?: string | null; + cer_expiration_date?: number | null; + key_expiration_date?: number | null; +} + +export interface CompanyVU { + id?: number; + webservice_user?: string | null; + webservice_password?: string | null; + email?: string | null; + figure_type?: string | null; + central_path?: string | null; + xml_files_path?: string | null; + query_rfc?: string | null; + validation_rfc?: string | null; + configuration_source?: string | null; + measurement_units?: string | null; +} + +export interface CompanyElectronicAgent { + id?: number; + input_folder?: string | null; + output_folder?: string | null; + send_mask?: string | null; + response_mask?: string | null; + response_extension?: string | null; + counter_start?: number | null; + counter_end?: number | null; + counter_next?: number | null; +} + +export interface CompanyPrevalidator { + id?: number; + customs?: string | null; + key?: string | null; + patent?: string | null; + description?: string | null; +} + +export interface CompanyCFDI { + id?: number; + xml_save_path?: string | null; + cfdi_app_path?: string | null; + pac_app_path?: string | null; +} + export interface Company { id: number; tenant_id: number; @@ -19,7 +104,7 @@ export interface Company { responsible_last_name: string | null; responsible_mother_last_name: string | null; responsible_rfc?: string | null; - position?: string | null; + position?: string | null; has_express_line?: boolean; is_service_company?: boolean; order_format_type?: string | null; @@ -32,6 +117,136 @@ export interface Company { inter_db_name?: string | null; prevalidator_key?: string | null; seventh_amendment?: boolean; + // Sectores + sector1?: string | null; + sector2?: string | null; + sector3?: string | null; + // Flags técnicos + active_labels?: number | null; + active_fractions?: number | null; + activate_caat?: number | null; + trans_interface?: number | null; + american_costs?: number | null; + scaf_readonly?: number | null; + parts_replacement?: number | null; + activate_facmexame?: number | null; + part_reference?: number | null; + international_firm?: number | null; + // Configuraciones + ftp_key?: string | null; + sifra_path?: string | null; + version_type?: string | null; + sql_language?: string | null; + balance_operation_mode?: string | null; + // Campos de certificación (CompanyCertification aplanado) + is_certified_company?: string | null; + certified_company_registration?: string | null; + certified_company_start_date?: number | null; + certified_company_end_date?: number | null; + annex31_certification_date?: number | null; + annex31_certification_number?: string | null; + annex31_modality?: string | null; + annex31_company_type?: string | null; + annex31_renewal_date?: number | null; + annex31_final_certification_date?: number | null; + is_oea_company?: number | null; + neec_company?: number | null; + // Campos de dirección principal (CompanyAddress - main) + main_street?: string | null; + main_exterior_number?: string | null; + main_interior_number?: string | null; + main_postal_code?: string | null; + main_neighborhood?: string | null; + main_city?: string | null; + main_municipality?: string | null; + main_state?: string | null; + main_country?: string | null; + main_phone?: string | null; + main_fax?: string | null; + main_email?: string | null; + // Campos de dirección industrial 1 (CompanyAddress - industrial1) + ind1_street?: string | null; + ind1_exterior_number?: string | null; + ind1_interior_number?: string | null; + ind1_postal_code?: string | null; + ind1_neighborhood?: string | null; + ind1_city?: string | null; + ind1_municipality?: string | null; + ind1_state?: string | null; + ind1_country?: string | null; + ind1_phone?: string | null; + ind1_fax?: string | null; + ind1_email?: string | null; + // Campos de dirección industrial 2 (CompanyAddress - industrial2) + ind2_street?: string | null; + ind2_exterior_number?: string | null; + ind2_interior_number?: string | null; + ind2_postal_code?: string | null; + ind2_neighborhood?: string | null; + ind2_city?: string | null; + ind2_municipality?: string | null; + ind2_state?: string | null; + ind2_country?: string | null; + ind2_phone?: string | null; + ind2_fax?: string | null; + ind2_email?: string | null; + // Campos de prevalidador (CompanyPrevalidator aplanado) + prev_customs?: string | null; + prev_key?: string | null; + prev_patent?: string | null; + prev_description?: string | null; + // Campos de ventanilla única (CompanyVU aplanado) + vu_webservice_user?: string | null; + vu_webservice_password?: string | null; + vu_email?: string | null; + vu_figure_type?: string | null; + vu_central_path?: string | null; + vu_xml_files_path?: string | null; + vu_query_rfc?: string | null; + vu_validation_rfc?: string | null; + vu_configuration_source?: string | null; + vu_measurement_units?: string | null; + // Campos de agente aduanal electrónico (CompanyElectronicAgent aplanado) + ea_input_folder?: string | null; + ea_output_folder?: string | null; + ea_send_mask?: string | null; + ea_response_mask?: string | null; + ea_response_extension?: string | null; + ea_counter_start?: number | null; + ea_counter_end?: number | null; + ea_counter_next?: number | null; + // Campos de CFDI (CompanyCFDI aplanado) + cfdi_xml_save_path?: string | null; + cfdi_app_path?: string | null; + cfdi_pac_app_path?: string | null; + // Digital Certificates (Flattened) + fiel_cer?: string | null; + fiel_key?: string | null; + fiel_pass?: string | null; + fiel_access?: string | null; + fiel_cer_exp?: number | null; + fiel_key_exp?: number | null; + cfdi_cert_cer?: string | null; + cfdi_cert_key?: string | null; + cfdi_cert_pass?: string | null; + cfdi_cert_access?: string | null; + cfdi_cert_cer_exp?: number | null; + cfdi_cert_key_exp?: number | null; + cancel_cer?: string | null; + cancel_key?: string | null; + cancel_pass?: string | null; + cancel_access?: string | null; + cancel_cer_exp?: number | null; + cancel_key_exp?: number | null; + // Submodelos + + addresses?: CompanyAddress[]; + certification?: CompanyCertification | null; + digital_certificates?: CompanyDigitalCertificate[]; + ventanilla_unica?: CompanyVU | null; + electronic_agent?: CompanyElectronicAgent | null; + prevalidator?: CompanyPrevalidator | null; + cfdi?: CompanyCFDI | null; created_at: string | null; updated_at: string | null; } @@ -58,31 +273,139 @@ export interface CompanyCreate { order_format_type?: string | null; ctpat_svi?: string | null; trusted_exporter_number?: string | null; + logo?: string | null; + previous_code?: number | null; + client_name?: string | null; + subassembly_mode?: string | null; + inter_db_name?: string | null; + prevalidator_key?: string | null; + seventh_amendment?: boolean; + // Digital Certificates + fiel_cer?: string | null; + fiel_key?: string | null; + fiel_pass?: string | null; + fiel_access?: string | null; + fiel_cer_exp?: number | null; + fiel_key_exp?: number | null; + cfdi_cert_cer?: string | null; + cfdi_cert_key?: string | null; + cfdi_cert_pass?: string | null; + cfdi_cert_access?: string | null; + cfdi_cert_cer_exp?: number | null; + cfdi_cert_key_exp?: number | null; + cancel_cer?: string | null; + cancel_key?: string | null; + cancel_pass?: string | null; + cancel_access?: string | null; + cancel_cer_exp?: number | null; + cancel_key_exp?: number | null; + // Sectores + + sector1?: string | null; + sector2?: string | null; + sector3?: string | null; + // Flags técnicos + active_labels?: number | null; + active_fractions?: number | null; + activate_caat?: number | null; + trans_interface?: number | null; + american_costs?: number | null; + scaf_readonly?: number | null; + parts_replacement?: number | null; + activate_facmexame?: number | null; + part_reference?: number | null; + international_firm?: number | null; + // Configuraciones + ftp_key?: string | null; + sifra_path?: string | null; + version_type?: string | null; + sql_language?: string | null; + balance_operation_mode?: string | null; + // Campos de certificación + is_certified_company?: string | null; + certified_company_registration?: string | null; + certified_company_start_date?: number | null; + certified_company_end_date?: number | null; + annex31_certification_date?: number | null; + annex31_certification_number?: string | null; + annex31_modality?: string | null; + annex31_company_type?: string | null; + annex31_renewal_date?: number | null; + annex31_final_certification_date?: number | null; + is_oea_company?: number | null; + neec_company?: number | null; + // Campos de dirección principal + main_street?: string | null; + main_exterior_number?: string | null; + main_interior_number?: string | null; + main_postal_code?: string | null; + main_neighborhood?: string | null; + main_city?: string | null; + main_municipality?: string | null; + main_state?: string | null; + main_country?: string | null; + main_phone?: string | null; + main_fax?: string | null; + main_email?: string | null; + // Campos de dirección industrial 1 + ind1_street?: string | null; + ind1_exterior_number?: string | null; + ind1_interior_number?: string | null; + ind1_postal_code?: string | null; + ind1_neighborhood?: string | null; + ind1_city?: string | null; + ind1_municipality?: string | null; + ind1_state?: string | null; + ind1_country?: string | null; + ind1_phone?: string | null; + ind1_fax?: string | null; + ind1_email?: string | null; + // Campos de dirección industrial 2 + ind2_street?: string | null; + ind2_exterior_number?: string | null; + ind2_interior_number?: string | null; + ind2_postal_code?: string | null; + ind2_neighborhood?: string | null; + ind2_city?: string | null; + ind2_municipality?: string | null; + ind2_state?: string | null; + ind2_country?: string | null; + ind2_phone?: string | null; + ind2_fax?: string | null; + ind2_email?: string | null; + // Campos de prevalidador + prev_customs?: string | null; + prev_key?: string | null; + prev_patent?: string | null; + prev_description?: string | null; + // Campos de ventanilla única + vu_webservice_user?: string | null; + vu_webservice_password?: string | null; + vu_email?: string | null; + vu_figure_type?: string | null; + vu_central_path?: string | null; + vu_xml_files_path?: string | null; + vu_query_rfc?: string | null; + vu_validation_rfc?: string | null; + vu_configuration_source?: string | null; + vu_measurement_units?: string | null; + // Campos de agente aduanal electrónico + ea_input_folder?: string | null; + ea_output_folder?: string | null; + ea_send_mask?: string | null; + ea_response_mask?: string | null; + ea_response_extension?: string | null; + ea_counter_start?: number | null; + ea_counter_end?: number | null; + ea_counter_next?: number | null; + // Campos de CFDI + cfdi_xml_save_path?: string | null; + cfdi_app_path?: string | null; + cfdi_pac_app_path?: string | null; } -export interface CompanyUpdate { - name?: string | null; - rfc?: string | null; - curp?: string | null; - main_activity?: string | null; - program?: string | null; - program_number?: string | null; - prosec?: number | null; - prosec_authorization?: string | null; - manufacturer_id?: string | null; - broker_company?: string | null; - responsible?: string | null; - responsible_name?: string | null; - responsible_last_name?: string | null; - responsible_mother_last_name?: string | null; - responsible_rfc?: string | null; - position?: string | null; - has_express_line?: boolean; - is_service_company?: boolean; - order_format_type?: string | null; - ctpat_svi?: string | null; - trusted_exporter_number?: string | null; -} +export interface CompanyUpdate extends CompanyCreate { } + export interface CompanyListResponse { items: Company[]; @@ -124,12 +447,12 @@ export async function deleteCompany(id: number): Promise> { export async function uploadCompanyLogo(id: number, file: File): Promise> { const formData = new FormData(); formData.append('file', file); - + // Para FormData, usamos fetch directamente ya que necesitamos omitir Content-Type // para que el navegador establezca el boundary automáticamente const token = localStorage.getItem('access_token'); const API_BASE_URL = (import.meta.env.VITE_API_URL || '').replace(/\/+$/, ''); - + const response = await fetch(`${API_BASE_URL}/v1/a76/company/${id}/upload-logo`, { method: 'POST', headers: { @@ -138,16 +461,48 @@ export async function uploadCompanyLogo(id: number, file: File): Promise> { + const formData = new FormData(); + formData.append('file', file); + + // Add certificate type query param + const token = localStorage.getItem('access_token'); + const API_BASE_URL = (import.meta.env.VITE_API_URL || '').replace(/\/+$/, ''); + + const response = await fetch(`${API_BASE_URL}/v1/a76/company/${id}/upload-certificate?certificate_type=${type}`, { + method: 'POST', + headers: { + 'Authorization': `Bearer ${token}`, + }, + body: formData, + credentials: 'include' + }); + + const data = await response.json(); + + if (!response.ok) { + return { + error: data.detail || data.message || 'Error al subir el certificado', + status: response.status + }; + } + return { data, status: response.status diff --git a/frontend/src/lib/api/dashboard/a76/general_catalogs/historical-tariff-fractions.ts b/frontend/src/lib/api/dashboard/a76/general_catalogs/historical-tariff-fractions.ts new file mode 100644 index 00000000..99d9689a --- /dev/null +++ b/frontend/src/lib/api/dashboard/a76/general_catalogs/historical-tariff-fractions.ts @@ -0,0 +1,103 @@ +import { api } from '$lib/api'; +import type { ApiResponse } from '$lib/api'; + +export interface HistoricalFraction { + id: number; + historical_fraction: string | null; + unit_of_measure_code: string | null; + country: string | null; + fraction_type: string | null; + sector: string | null; + import_tax_rate: number | null; + export_tax_rate: number | null; + publication_date: string | null; + is_immex: boolean | null; + normal_temporality: boolean | null; + services_temporality: boolean | null; + certified_temporality: boolean | null; + by_log: boolean | null; + end_date: string | null; +} + +export interface HistoricalFractionCreate { + historical_fraction: string; + unit_of_measure_code?: string | null; + country?: string | null; + fraction_type?: string | null; + sector?: string | null; + import_tax_rate?: number | null; + export_tax_rate?: number | null; + publication_date?: string | null; + is_immex?: boolean | null; + normal_temporality?: boolean | null; + services_temporality?: boolean | null; + certified_temporality?: boolean | null; + by_log?: boolean | null; + end_date?: string | null; +} + +export interface HistoricalFractionUpdate { + historical_fraction?: string; + unit_of_measure_code?: string | null; + country?: string | null; + fraction_type?: string | null; + sector?: string | null; + import_tax_rate?: number | null; + export_tax_rate?: number | null; + publication_date?: string | null; + is_immex?: boolean | null; + normal_temporality?: boolean | null; + services_temporality?: boolean | null; + certified_temporality?: boolean | null; + by_log?: boolean | null; + end_date?: string | null; +} + +export interface HistoricalFractionList { + items: HistoricalFraction[]; + total: number; + page: number; + page_size: number; + pages: number; +} + +export async function getHistoricalFractions( + companyId: number, + historicalFraction?: string, + page = 1, + pageSize = 50 +): Promise { + const params = new URLSearchParams({ + company_id: companyId.toString(), + page: page.toString(), + page_size: pageSize.toString() + }); + + if (historicalFraction) params.append('historical_fraction', historicalFraction); + + const response = await api.get(`/v1/a76/fractions/historical-tariff-fractions/?${params.toString()}`); + if (!response.data) throw new Error('Error fetching historical fractions'); + return response.data; +} + +export async function createHistoricalFraction( + companyId: number, + data: HistoricalFractionCreate +): Promise> { + return await api.post(`/v1/a76/fractions/historical-tariff-fractions/?company_id=${companyId}`, data); +} + +export async function updateHistoricalFraction( + companyId: number, + id: number, + data: HistoricalFractionUpdate +): Promise> { + return await api.put(`/v1/a76/fractions/historical-tariff-fractions/${id}/?company_id=${companyId}`, data); +} + +export async function deleteHistoricalFraction( + companyId: number, + id: number +): Promise> { + return await api.delete(`/v1/a76/fractions/historical-tariff-fractions/${id}/?company_id=${companyId}`); +} diff --git a/frontend/src/lib/api/dashboard/a76/general_catalogs/tariff-fractions.ts b/frontend/src/lib/api/dashboard/a76/general_catalogs/tariff-fractions.ts index 7983e362..5da92ab0 100644 --- a/frontend/src/lib/api/dashboard/a76/general_catalogs/tariff-fractions.ts +++ b/frontend/src/lib/api/dashboard/a76/general_catalogs/tariff-fractions.ts @@ -11,8 +11,10 @@ export interface TariffFraction { umt: string | null; adv_impo: string | null; adv_expo: string | null; - created_at: string | null; updated_at: string | null; + dof: string | null; + aplica_ieps: string | null; + um_code: string | null; } export interface TariffFractionCreate { @@ -67,22 +69,33 @@ export async function getTariffFractionById( export async function createTariffFraction( data: TariffFractionCreate, - companyId: number + companyId: number, + catalog = 'mex' ): Promise> { - return await api.post(`/v1/a76/tariff-fractions/?company_id=${companyId}`, data); + return await api.post( + `/v1/a76/tariff-fractions/?company_id=${companyId}&catalog=${catalog}`, + data + ); } export async function updateTariffFraction( id: number, data: TariffFractionUpdate, - companyId: number + companyId: number, + catalog = 'mex' ): Promise> { - return await api.put(`/v1/a76/tariff-fractions/${id}/?company_id=${companyId}`, data); + return await api.put( + `/v1/a76/tariff-fractions/${id}/?company_id=${companyId}&catalog=${catalog}`, + data + ); } export async function deleteTariffFraction( id: number, - companyId: number + companyId: number, + catalog = 'mex' ): Promise> { - return await api.delete(`/v1/a76/tariff-fractions/${id}/?company_id=${companyId}`); + return await api.delete( + `/v1/a76/tariff-fractions/${id}/?company_id=${companyId}&catalog=${catalog}` + ); } diff --git a/frontend/src/lib/api/dashboard/a76/invoices.ts b/frontend/src/lib/api/dashboard/a76/invoices.ts index 99973e13..ea5c2194 100644 --- a/frontend/src/lib/api/dashboard/a76/invoices.ts +++ b/frontend/src/lib/api/dashboard/a76/invoices.ts @@ -392,6 +392,26 @@ export const invoicesApi = { return api.delete(`/v1/a76/invoices/${invoiceId}?${params.toString()}`); }, + /** + * Obtiene datos para la creación de una factura (catálogos consolidados) + */ + getCreationData: (companyId: number) => { + const params = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.get(`/v1/a76/invoices/creation-data?${params.toString()}`); + }, + + /** + * Obtiene datos para la edición de una factura (catálogos consolidados + factura) + */ + getEditionData: (invoiceId: number, companyId: number) => { + const params = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.get(`/v1/a76/invoices/${invoiceId}/edition-data?${params.toString()}`); + }, + // --- Nested Resources --- /** diff --git a/frontend/src/lib/api/dashboard/a76/items.ts b/frontend/src/lib/api/dashboard/a76/items.ts index 353ddcfa..2b10b734 100644 --- a/frontend/src/lib/api/dashboard/a76/items.ts +++ b/frontend/src/lib/api/dashboard/a76/items.ts @@ -17,7 +17,11 @@ export interface LineCustoms { origin_country?: string; destination_country?: string; advalorem?: string; - advalorem_american?: number; // Backend: Decimal + advalorem_numeric?: number; + advalorem_american?: number; + advalorem_tlcan?: number; + rate?: string; + depreciation_rate?: number; sector?: string; } @@ -31,11 +35,13 @@ export interface LineFinancials { unit_cost_commercial_usd?: number; // Values + value_mc?: number; value_usd?: number; value_mxn?: number; value_returned_usd?: number; value_returned_mxn?: number; customs_value_usd?: number; + customs_value_mxn?: number; } export interface LineQuantities { @@ -53,9 +59,9 @@ export interface LineQuantities { gross_weight?: number; // Packaging - package_key?: string; + package_id?: number; // Changed from string to number - this is the ID from packages catalog package_quantity?: number; - package_description?: string; + package_description?: string; // This is for display purposes only } export interface LineDescriptions { @@ -105,8 +111,7 @@ export interface FaLineItem { // Subitems is_subitem?: boolean; - contains_subitems?: boolean; - includes_subitems?: boolean; + contains_subitems?: boolean; subitem_number?: number; // Special flags @@ -119,9 +124,9 @@ export interface FaLineItem { updated_at?: string; } -export interface LineItem { - id?: number; - item_id?: number; +export interface Item { + id?: number; + invoice_id: number; line_number: number; // Identification @@ -159,20 +164,7 @@ export interface LineItem { class_description?: string; // Computed field from unit_of_measure_info relation - unit_of_measure_code?: string; - - // Nested relations (Singular names to match backend Pydantic models) - customs?: LineCustoms; - financial?: LineFinancials; - quantity?: LineQuantities; - description?: LineDescriptions; - reference?: LineReferences; - fa_data?: FaLineItem; // Fixed Asset specific data -} - -export interface Item { - id?: number; - invoice_id: number; + unit_of_measure_code?: string; reference_number?: string; order?: string; guide_number?: string; @@ -182,8 +174,14 @@ export interface Item { location?: string; created_at?: string; updated_at?: string; - - lines?: LineItem[]; + + // Nested relations (Singular names to match backend Pydantic models) + customs?: LineCustoms; + financial?: LineFinancials; + quantity?: LineQuantities; + description?: LineDescriptions; + reference?: LineReferences; + fa_data?: FaLineItem; // Fixed Asset specific data } export interface ItemListResponse { @@ -193,28 +191,11 @@ export interface ItemListResponse { limit: number; } -export interface CreateItemData { +export interface CreateItemData extends Omit { invoice_id: number; - reference_number?: string; - order?: string; - guide_number?: string; - depreciation_date?: number; - rectification?: number; - warehouse?: string; - location?: string; - lines?: LineItem[]; } -export interface UpdateItemData { - reference_number?: string; - order?: string; - guide_number?: string; - depreciation_date?: number; - rectification?: boolean; - warehouse?: string; - location?: string; - lines?: LineItem[]; -} +export interface UpdateItemData extends Partial> {} /** * API para Items diff --git a/frontend/src/lib/api/dashboard/general_catalogs/canadian.ts b/frontend/src/lib/api/dashboard/general_catalogs/canadian.ts new file mode 100644 index 00000000..0b5b73f2 --- /dev/null +++ b/frontend/src/lib/api/dashboard/general_catalogs/canadian.ts @@ -0,0 +1,77 @@ + +import { api } from '$lib/api'; + +export interface CanadianFraction { + id: number; + fraction: string; + ad_valorem: number | null; + unit_of_measure: string | null; + country_code: string; + description: string | null; + created_at: string; + updated_at: string; +} + +export interface CanadianFractionList { + items: CanadianFraction[]; + total: number; + page: number; + page_size: number; + pages: number; +} + +export interface CanadianFractionCreate { + fraction: string; + ad_valorem?: number; + unit_of_measure?: string; + country_code: string; + description?: string; +} + +export interface CanadianFractionUpdate { + fraction?: string; + ad_valorem?: number; + unit_of_measure?: string; + country_code?: string; + description?: string; +} + +const BASE_URL = '/v1/a76/fractions/canadian-tariff-fractions/'; + +export async function getCanadianFractions( + companyId: number, + page = 1, + pageSize = 50, + search?: string +): Promise { + const params = new URLSearchParams({ + company_id: companyId.toString(), + page: page.toString(), + page_size: pageSize.toString() + }); + + if (search) params.append('search', search); + + const response = await api.get(`${BASE_URL}?${params.toString()}`); + if (!response.data) throw new Error('Error fetching Canadian fractions'); + return response.data; +} + +export async function createCanadianFraction(companyId: number, data: CanadianFractionCreate): Promise { + const params = new URLSearchParams({ company_id: companyId.toString() }); + const response = await api.post(`${BASE_URL}?${params.toString()}`, data); + if (!response.data) throw new Error('Error creating Canadian fraction'); + return response.data; +} + +export async function updateCanadianFraction(companyId: number, id: number, data: CanadianFractionUpdate): Promise { + const params = new URLSearchParams({ company_id: companyId.toString() }); + const response = await api.put(`${BASE_URL}${id}?${params.toString()}`, data); + if (!response.data) throw new Error('Error updating Canadian fraction'); + return response.data; +} + +export async function deleteCanadianFraction(companyId: number, id: number): Promise { + const params = new URLSearchParams({ company_id: companyId.toString() }); + await api.delete(`${BASE_URL}${id}?${params.toString()}`); +} diff --git a/frontend/src/lib/api/dashboard/general_catalogs/sectors.ts b/frontend/src/lib/api/dashboard/general_catalogs/sectors.ts new file mode 100644 index 00000000..b92acd2f --- /dev/null +++ b/frontend/src/lib/api/dashboard/general_catalogs/sectors.ts @@ -0,0 +1,35 @@ + +import { api } from '$lib/api'; +import type { ApiResponse } from '$lib/api'; + +export interface Sector { + key: string; + description: string; + authorized: boolean; +} + +export interface SectorListResponse { + items: Sector[]; + total: number; + page: number; + page_size: number; +} + +export async function getSectors( + page = 1, + pageSize = 50, + search?: string +): Promise { + const params = new URLSearchParams({ + page: page.toString(), + page_size: pageSize.toString() + }); + + if (search) { + params.append('search', search); + } + + const response = await api.get(`/v1/public/reference_data/sectors/?${params.toString()}`); + if (!response.data) throw new Error('Error fetching sectors'); + return response.data; +} diff --git a/frontend/src/lib/components/dashboard/csv-upload/ConfigFooter.svelte b/frontend/src/lib/components/dashboard/csv-upload/ConfigFooter.svelte new file mode 100644 index 00000000..1adb87aa --- /dev/null +++ b/frontend/src/lib/components/dashboard/csv-upload/ConfigFooter.svelte @@ -0,0 +1,96 @@ + + + +
+
+
+ + Configuración: {activeTab} +
+ + {#if currentFields.length > 0} +
+ {#each currentFields as field} +
+ {#if field.type !== 'boolean'} + + {/if} + + {#if field.type === 'text'} + + {:else if field.type === 'boolean'} +
+ + +
+ {:else if field.type === 'select' && field.options} + + {:else if field.type === 'radio' && field.options} + + {#each field.options as opt} +
+ + +
+ {/each} +
+ {/if} +
+ {/each} +
+ {:else} +
+ No hay configuraciones específicas para este módulo. +
+ {/if} +
+
diff --git a/frontend/src/lib/components/dashboard/csv-upload/ProcessingResultModal.svelte b/frontend/src/lib/components/dashboard/csv-upload/ProcessingResultModal.svelte new file mode 100644 index 00000000..7375b3ab --- /dev/null +++ b/frontend/src/lib/components/dashboard/csv-upload/ProcessingResultModal.svelte @@ -0,0 +1,275 @@ + + + + + +
+
+ {#if isPending} + + {:else if isFinished && !hasErrors} + + {:else} + + {/if} +
+ +
+ + {#if isPending} + Validación de Importación + {:else if isFinished} + {hasErrors ? 'Importación con Observaciones' : 'Importación Exitosa'} + {/if} + + + {#if isPending} + Revise el análisis preliminar antes de confirmar la carga de datos. + {:else if isFinished} + El proceso de importación ha finalizado. + {/if} + +
+
+ + +
+ + {#if isPending} +
+ +
+ Total Filas + {scanResults.total_rows || 0} +
+ + +
+ Válidos + {scanResults.valid_rows || 0} +
+ + +
+ Errores + {scanResults.error_count || 0} +
+
+ + {#if scanResults.error_count > 0} +
+ +
+

Se detectaron problemas en el archivo

+

+ Las filas con errores serán omitidas automáticamente. Solo se importarán los + registros válidos. +

+
+
+ {:else} +
+ +
+

Archivo validado correctamente

+

Todos los registros parecen correctos y listos para importar.

+
+
+ {/if} + {/if} + + + {#if isFinished} +
+ +
+ +
+
+ + Insertados +
+ {commitResults.inserted || 0} +
+ + +
+
+ + Rechazados +
+ {totalSkipped} +
+
+ + + {#if commitResults.skipped_details && commitResults.skipped_details.length > 0} +
+
+
+ Detalle de Errores +
+ + {commitResults.skipped_details.length} filas + +
+
+ + + + + + + + + + {#each commitResults.skipped_details as detail} + + + + + + {/each} + +
LíneaReferenciaMotivo
{detail.line}{detail.invoice || '-'}{detail.reason}
+
+
+ {/if} +
+ {/if} +
+ + +
+ {#if isPending} + + + {:else if isFinished} + + {/if} +
+
+
diff --git a/frontend/src/lib/components/dashboard/csv-upload/UniversalUploadModal.svelte b/frontend/src/lib/components/dashboard/csv-upload/UniversalUploadModal.svelte new file mode 100644 index 00000000..721cd901 --- /dev/null +++ b/frontend/src/lib/components/dashboard/csv-upload/UniversalUploadModal.svelte @@ -0,0 +1,123 @@ + + + + + + + {#if config.icon} + + {/if} + Importar {config.title} + + + Selecciona tu archivo CSV para procesar. +
+ + La configuración activa del pie de página se aplicará a esta carga. + +
+
+ +
+ +
+
+ + {#if file} + +
+ {file.name} + {(file.size / 1024).toFixed(2)} KB +
+ {:else} + + Arrastra tu archivo aquí o haz clic + Soporta CSV, TXT + {/if} +
+
+ + + {#if Object.keys(currentSettings).length > 0} +
+ Configuración Activa: +
    + {#each Object.entries(currentSettings) as [key, value]} +
  • {key}: {value}
  • + {/each} +
+
+ {/if} +
+ + + + + +
+
diff --git a/frontend/src/lib/components/dashboard/csv-upload/UploadLauncherGrid.svelte b/frontend/src/lib/components/dashboard/csv-upload/UploadLauncherGrid.svelte new file mode 100644 index 00000000..8084f135 --- /dev/null +++ b/frontend/src/lib/components/dashboard/csv-upload/UploadLauncherGrid.svelte @@ -0,0 +1,264 @@ + + +
+ {#if groupedItems.ungrouped.length > 0} +
+ {#each groupedItems.ungrouped as item} +
handleDragEnter(e, item.id, item.disabled)} + ondragleave={handleDragLeave} + ondragover={(e) => handleDragOver(e, item.disabled)} + ondrop={(e) => handleDrop(e, item)} + oncontextmenu={(e) => handleContextMenu(e, item)} + roles="button" + tabindex={item.disabled ? -1 : 0} + onclick={() => handleClick(item.id, item.disabled)} + onkeydown={(e) => !item.disabled && e.key === 'Enter' && handleClick(item.id)} + > + handleFileChange(e, item)} + disabled={item.disabled} + /> + + + {#if item.disabled} +
+ + Próximamente + +
+ {/if} + + + {#if !item.disabled && dragOverId === item.id} +
+ +
+ ¡Suelta el archivo! + {:else} +
+ +
+
{item.title}
+ {/if} +
+
+
+ {/each} +
+ {/if} + + {#each Object.entries(groupedItems.groups) as [groupName, groupItems]} +
+

+ {groupName} +

+
+ {#each groupItems as item} +
handleDragEnter(e, item.id, item.disabled)} + ondragleave={handleDragLeave} + ondragover={(e) => handleDragOver(e, item.disabled)} + ondrop={(e) => handleDrop(e, item)} + oncontextmenu={(e) => handleContextMenu(e, item)} + role="button" + tabindex={item.disabled ? -1 : 0} + onclick={() => handleClick(item.id, item.disabled)} + onkeydown={(e) => !item.disabled && e.key === 'Enter' && handleClick(item.id)} + > + handleFileChange(e, item)} + disabled={item.disabled} + /> + + + {#if item.disabled} +
+ + Próximamente + +
+ {/if} + + + {#if !item.disabled && dragOverId === item.id} +
+ +
+ ¡Suelta el archivo! + {:else} +
+ +
+
{item.title}
+ {/if} +
+
+
+ {/each} +
+
+ {/each} +
diff --git a/frontend/src/lib/components/dashboard/general_catalogs/customs_broker_concepts/create-edit-dialog.svelte b/frontend/src/lib/components/dashboard/general_catalogs/customs_broker_concepts/create-edit-dialog.svelte index 930275f5..30f7a7c0 100644 --- a/frontend/src/lib/components/dashboard/general_catalogs/customs_broker_concepts/create-edit-dialog.svelte +++ b/frontend/src/lib/components/dashboard/general_catalogs/customs_broker_concepts/create-edit-dialog.svelte @@ -122,7 +122,7 @@ id="broker_key" bind:value={formData.broker_key} placeholder="Ej: 01001" - maxlength="5" + maxlength={5} disabled={isEdit} /> @@ -133,7 +133,7 @@ id="concept" bind:value={formData.concept} placeholder="Ej: 001" - maxlength="15" + maxlength={15} disabled={isEdit} /> diff --git a/frontend/src/lib/components/dashboard/general_catalogs/identifiers/create-edit-dialog.svelte b/frontend/src/lib/components/dashboard/general_catalogs/identifiers/create-edit-dialog.svelte index 6e57fd57..73dd547f 100644 --- a/frontend/src/lib/components/dashboard/general_catalogs/identifiers/create-edit-dialog.svelte +++ b/frontend/src/lib/components/dashboard/general_catalogs/identifiers/create-edit-dialog.svelte @@ -5,6 +5,11 @@ import { Label } from '$lib/components/ui/label'; import { companyStore } from '$lib/stores/company.svelte'; import { obtenerAtajosFormularioIdentificadores } from '$lib/config/shortcuts/dashboard/general_catalogs/identifiers/edit'; + import { + createIdentifier, + updateIdentifier, + type Identifier + } from '$lib/api/dashboard/a76/general_catalogs/identifiers'; let { open = $bindable(false), diff --git a/frontend/src/lib/components/dashboard/general_catalogs/sectors/SectorsList.svelte b/frontend/src/lib/components/dashboard/general_catalogs/sectors/SectorsList.svelte new file mode 100644 index 00000000..78137b1f --- /dev/null +++ b/frontend/src/lib/components/dashboard/general_catalogs/sectors/SectorsList.svelte @@ -0,0 +1,188 @@ + + +
+
+

{title}

+
+ + + +
+
+ + +
+
+
+ +
+ + + + Clave + Descripción + Estatus + + + + {#if loading && page === 1} + + +
+ +
+
+
+ {:else if sectors.length === 0} + + + No se encontraron sectores. + + + {:else} + {#each sectors as sector} + + {sector.key} + {sector.description} + + {#if sector.authorized} + Autorizado + {:else} + No Autorizado + {/if} + + + {/each} + {/if} + {#if loading && page > 1} + + +
+ +
+
+
+ {/if} +
+
+
+ +
+
+ Mostrando {sectors.length} de {total} registros +
+ +
+
+
+
+
diff --git a/frontend/src/lib/components/dashboard/goods/classes/forms/FixedAssetClassForm.svelte b/frontend/src/lib/components/dashboard/goods/classes/forms/FixedAssetClassForm.svelte index 3e48edfc..e0977939 100644 --- a/frontend/src/lib/components/dashboard/goods/classes/forms/FixedAssetClassForm.svelte +++ b/frontend/src/lib/components/dashboard/goods/classes/forms/FixedAssetClassForm.svelte @@ -143,16 +143,30 @@ let showUnitDialog = $state(false); let searchUnit = $state(''); + import TariffFractionSelector from '$lib/components/dashboard/goods/modales/TariffFractionSelector.svelte'; + let showFractionDialog = $state(false); - let tariffFractions = $state([]); - let searchFraction = $state(''); - let currentPage = $state(1); - let totalFractions = $state(0); - let hasMoreFractions = $state(true); - let isLoadingFractions = $state(false); - let searchTimeout: ReturnType; + // Removing inline tariff fraction state + // let tariffFractions = ... + + function openFractionSearch() { + showFractionDialog = true; + } let showUSFractionDialog = $state(false); + // ... + + // loadFractions removed + + function selectFraction(fraction: TariffFraction) { + formData.fraction = fraction.fraction; + formData.fraction_umt = (fraction.umt ?? '') as string; + formData.fraction_uma_key = (fraction.nico ?? '') as string; + // Actualizar tarifa de importación + formData.import_tariff_code = fraction.fraction || ''; + formData.import_tariff_type = (fraction.umt ?? '') as string; + showFractionDialog = false; + } let usTariffFractions = $state([]); let searchUSFraction = $state(''); let currentUSPage = $state(1); @@ -262,56 +276,6 @@ searchUnit = ''; } - async function openFractionSearch() { - showFractionDialog = true; - searchFraction = ''; - tariffFractions = []; - currentPage = 1; - totalFractions = 0; - hasMoreFractions = true; - await loadFractions('', 1); - } - - async function loadFractions(search: string, page: number = currentPage) { - const companyId = companyStore.activeCompany?.id; - if (!companyId || isLoadingFractions) return; - - isLoadingFractions = true; - try { - const filters = search ? { search } : {}; - const pageSize = 100; - - const response = await getTariffFractions(page, pageSize, companyId, filters); - - if (response.data) { - if (page === 1) { - tariffFractions = [...response.data.items]; - } else { - tariffFractions = [...tariffFractions, ...response.data.items]; - } - - totalFractions = response.data.total; - currentPage = page; - hasMoreFractions = tariffFractions.length < response.data.total; - } - } catch (error) { - console.error('Error cargando fracciones arancelarias:', error); - } finally { - isLoadingFractions = false; - } - } - - function selectFraction(fraction: TariffFraction) { - formData.fraction = fraction.fraction; - formData.fraction_umt = (fraction.umt ?? '') as string; - formData.fraction_uma_key = (fraction.nico ?? '') as string; - // Actualizar tarifa de importación - formData.import_tariff_code = fraction.fraction || ''; - formData.import_tariff_type = (fraction.umt ?? '') as string; - showFractionDialog = false; - searchFraction = ''; - } - async function openUSFractionSearch() { showUSFractionDialog = true; searchUSFraction = ''; @@ -565,7 +529,7 @@
-
+
@@ -596,7 +560,7 @@ -
+
- + {formData.material_description || ''}
{#if validationErrors.material_key} -

{validationErrors.material_key}

+

{validationErrors.material_key}

{/if}
@@ -635,7 +599,7 @@ onblur={() => validateField('description_es')} /> {#if validationErrors.description_es} -

{validationErrors.description_es}

+

{validationErrors.description_es}

{/if}
@@ -651,12 +615,12 @@
-
+
-
+
- + {formData.unit_of_measure_description || ''}
{#if validationErrors.unit_of_measure} -

{validationErrors.unit_of_measure}

+

{validationErrors.unit_of_measure}

{/if}
@@ -683,7 +647,7 @@ -
+
{#if validationErrors.fraction} -

{validationErrors.fraction}

+

{validationErrors.fraction}

{/if}
-
+
-
+
-
+
-
+
-
+
- - - + - + CATALOGO DE FRACCIONES AMERICANAS @@ -950,9 +859,9 @@ class="mt-1" />
-
+
- + @@ -964,7 +873,7 @@ {#each usTariffFractions as fraction (fraction.id)} selectUSFraction(fraction)} > @@ -996,7 +905,7 @@ - + CATALOGO DE DEPRECIACION @@ -1010,9 +919,9 @@ class="mt-1" /> -
+
Código Prefijo
{fraction.code}
- + @@ -1022,7 +931,7 @@ {#each depreciationCatalog as item (item.id)} selectDepreciation(item)} > @@ -1052,7 +961,7 @@ - + CATALOGO FDA @@ -1066,9 +975,9 @@ class="mt-1" /> -
+
Fracción Descripción
{item.fraction}
- + @@ -1077,7 +986,7 @@ {#each fdaCatalog as item (item.id)} selectFDA(item)} > @@ -1106,7 +1015,7 @@ - + CATALOGO DE CARTA PORTE @@ -1120,9 +1029,9 @@ class="mt-1" /> -
+
Clave FDA Descripción
{item.fda_key}
- + @@ -1131,7 +1040,7 @@ {#each cartaPorteCatalog as item (item.id)} { formData.carta_porte_code = item.code; showCartaPorteDialog = false; diff --git a/frontend/src/lib/components/dashboard/goods/fractions/CanadianFractionDialog.svelte b/frontend/src/lib/components/dashboard/goods/fractions/CanadianFractionDialog.svelte new file mode 100644 index 00000000..2ccf045e --- /dev/null +++ b/frontend/src/lib/components/dashboard/goods/fractions/CanadianFractionDialog.svelte @@ -0,0 +1,180 @@ + + + + + + {fraction ? 'Editar' : 'Crear'} Fracción Canadiense + + {fraction + ? 'Modifica los detalles de la fracción seleccionada.' + : 'Ingresa los datos para la nueva fracción.'} + + + +
+
+
+ + +
+
+ + +
+
+ +
+ + @@ -445,5 +449,5 @@
- - + + diff --git a/frontend/src/lib/components/dashboard/invoices/edit/items/items-tab-form.svelte b/frontend/src/lib/components/dashboard/invoices/edit/items/items-tab-form.svelte index 4da902cc..a8e24e06 100644 --- a/frontend/src/lib/components/dashboard/invoices/edit/items/items-tab-form.svelte +++ b/frontend/src/lib/components/dashboard/invoices/edit/items/items-tab-form.svelte @@ -74,26 +74,23 @@ // 4. Derived Values (Ordered correctly to avoid TDZ) const flattenedLines = $derived.by(() => { const sourceItems = items?.length ? items : formData?.items || []; - return (sourceItems || []).flatMap((item: any, itemIndex: number) => { - const lines = item?.lines || []; - return lines.map((line: any, idx: number) => ({ - ...line, - id: line?.id || `${item?.id || itemIndex}-line-${line?.line_number ?? idx + 1}`, - line_number: line?.line_number ?? idx + 1, - reference_number: line?.reference_number ?? item?.reference_number, - is_subitem: line?.is_subitem ?? false, - class_code: line?.class_code ?? line?.class_id, - class_description: - line?.class_description || - line?.description?.description_spanish || - line?.description?.description_english || - '', - unit_of_measure_code: line?.quantity?.unit_of_measure || line?.unit_of_measure, - fa_data: line?.fa_data || {}, - warehouse: line?.warehouse || item?.warehouse, - full_item: item - })); - }); + return (sourceItems || []).map((item: any, itemIndex: number) => ({ + ...item, + id: item?.id || `item-${itemIndex}`, + line_number: item?.line_number ?? itemIndex + 1, + reference_number: item?.reference_number, + is_subitem: item?.is_subitem ?? false, + class_code: item?.class_code ?? item?.class_id, + class_description: + item?.class_description || + item?.description?.description_spanish || + item?.description?.description_english || + '', + unit_of_measure_code: item?.quantity?.unit_of_measure || item?.unit_of_measure, + fa_data: item?.fa_data || {}, + warehouse: item?.warehouse, + full_item: item + })); }); const isAllSelected = $derived( @@ -248,80 +245,76 @@ // Auto-asignar valores desde la factura con estructura completa editingItem = { invoice_id: invoice?.id, + line_number: 1, + // LineItem fields + part_number: undefined, + component_part_number: undefined, + class_id: undefined, + identifier: undefined, + unit_of_measure: undefined, + alternate_unit: undefined, + permit_number: undefined, + page_line: undefined, + has_certificate: false, + certificate_number: undefined, + tax_payment: false, + payment_method: undefined, + igi_amount: undefined, + is_military_mcia: false, + wildcard_field: undefined, reference_number: '', order: invoice?.purchase_order || '', warehouse: '', - location: '', - lines: [ - { - line_number: 1, - // LineItem fields - part_number: undefined, - component_part_number: undefined, - class_id: undefined, - identifier: undefined, - unit_of_measure: undefined, - alternate_unit: undefined, - permit_number: undefined, - page_line: undefined, - has_certificate: false, - certificate_number: undefined, - tax_payment: false, - payment_method: undefined, - igi_amount: undefined, - is_military_mcia: false, - wildcard_field: undefined, - // Nested relations - financial: { - unit_cost_usd: undefined, - unit_cost_mxn: undefined, - unit_cost_capture: undefined, - unit_cost_commercial_usd: undefined, - value_usd: undefined, - value_mxn: undefined, - value_returned_usd: undefined, - value_returned_mxn: undefined, - customs_value_usd: undefined - }, - quantity: { - quantity: undefined, - unit_of_measure: undefined, - quantity_temp_export: undefined, - quantity_returned: undefined, - net_weight: undefined, - gross_weight: undefined, - package_key: undefined, - package_quantity: undefined, - package_description: undefined - }, - customs: { - fraction: undefined, - fraction_type: undefined, - american_fraction: undefined, - origin_country: undefined, - destination_country: undefined, - advalorem: undefined, - advalorem_american: undefined, - sector: undefined - }, - description: { - description_spanish: undefined, - description_english: undefined, - extra_description: undefined, - additional_info_spanish: undefined, - brand: undefined, - model: undefined, - has_serial: false, - eighth_rule_fraction: undefined, - eighth_rule_line: undefined, - consider_a31: false, - machinery_location: undefined - }, - reference: { - serie_id: undefined - } - } - ] + location: '', + // Nested relations + financial: { + unit_cost_usd: undefined, + unit_cost_mxn: undefined, + unit_cost_capture: undefined, + unit_cost_commercial_usd: undefined, + value_usd: undefined, + value_mxn: undefined, + value_returned_usd: undefined, + value_returned_mxn: undefined, + customs_value_usd: undefined + }, + quantity: { + quantity: undefined, + unit_of_measure: undefined, + quantity_temp_export: undefined, + quantity_returned: undefined, + net_weight: undefined, + gross_weight: undefined, + package_id: undefined, + package_quantity: undefined, + package_description: undefined + }, + customs: { + fraction: undefined, + fraction_type: undefined, + american_fraction: undefined, + origin_country: undefined, + destination_country: undefined, + advalorem: undefined, + advalorem_american: undefined, + sector: undefined + }, + description: { + description_spanish: undefined, + description_english: undefined, + extra_description: undefined, + additional_info_spanish: undefined, + brand: undefined, + model: undefined, + has_serial: false, + eighth_rule_fraction: undefined, + eighth_rule_line: undefined, + consider_a31: false, + machinery_location: undefined + }, + reference: { + serie_id: undefined + } }; } @@ -376,14 +369,14 @@ function saveItemToPreset() { // Sanitizar datos para la plantilla - const cleanedItem = JSON.parse(JSON.stringify(editingItem)); + let cleanedItem = JSON.parse(JSON.stringify(editingItem)); - // Limpiar líneas para asegurar que son compatibles - if (cleanedItem.lines) { - cleanedItem.lines = cleanedItem.lines.map((line: any) => ({ - ...cleanLineData(line), + // Limpiar item para asegurar que es compatible + if (cleanedItem) { + cleanedItem = { + ...cleanLineData(cleanedItem), id: undefined // Las plantillas no deben tener IDs reales - })); + }; } if (editingBuilderIndex !== null) { @@ -409,35 +402,30 @@ function cloneItemForPreset(item: Item) { const { id, tenant_id, company_id, created_at, updated_at, temp_id, ...rest } = item as any; return { - ...rest, + ...sanitizeLineForPreset(rest), id: undefined, - invoice_id: undefined, - lines: (item.lines || []).map(sanitizeLineForPreset) + invoice_id: undefined }; } function buildManualItem(draft: any, index: number) { - return { + return cleanLineData({ id: undefined, temp_id: undefined, invoice_id: undefined, reference_number: draft.reference_number || undefined, - lines: [ - cleanLineData({ - line_number: index + 1, - description: { - description_spanish: draft.description || 'Sin descripción' - }, - quantity: { - quantity: Number(draft.quantity) || 0 - }, - financial: { - unit_cost_usd: - draft.unit_cost_usd !== null ? Number(draft.unit_cost_usd) || 0 : undefined - } - }) - ] - }; + line_number: index + 1, + description: { + description_spanish: draft.description || 'Sin descripción' + }, + quantity: { + quantity: Number(draft.quantity) || 0 + }, + financial: { + unit_cost_usd: + draft.unit_cost_usd !== null ? Number(draft.unit_cost_usd) || 0 : undefined + } + }); } function handleAddManualItem() { @@ -466,15 +454,11 @@ } // Inject into active sheet if open + // No se pueden inyectar múltiples líneas en un item, ya que ahora un item ES una línea if (showItemSheet) { - const presetLines = selectedPreset.items.flatMap((item: any) => item.lines || []); - const cleanedNewLines = presetLines.map((line: any) => ({ - ...sanitizeLineForPreset(line), - id: undefined // Force new IDs - })); - - editingItem.lines = [...(editingItem.lines || []), ...cleanedNewLines]; - toast.success('Líneas inyectadas en la partida actual'); + toast.warning('No se puede inyectar plantilla en modo edición', { + description: 'Las plantillas solo se pueden aplicar directamente a la factura' + }); showUsePresetDialog = false; return; } @@ -517,13 +501,13 @@ isSavingPreset = true; try { - // We group everything as ONE Partida Template for injection - const lines = builderItems.flatMap((item: Item, idx: number) => { - return (item.lines || []).map((line: any) => ({ - ...cleanLineData(line), - line_number: line.line_number || idx + 1, // Ensure line_number is present + // We group everything as items for the template + const lines = builderItems.map((item: Item, idx: number) => { + return { + ...cleanLineData(item), + line_number: item.line_number || idx + 1, // Ensure line_number is present id: undefined // Ensure no IDs are saved in the preset - })); + }; }); const payloadItems = [ @@ -569,22 +553,20 @@ // Enrich item with descriptive data for display async function enrichItemData(item: Partial) { - if (!item.lines || item.lines.length === 0 || !activeCompanyId) return; - - const line = item.lines[0]; + if (!item || !activeCompanyId) return; // Load class data - if (line.class_id) { + if (item.class_id) { try { const response = await fetch( - `/api-sveltekit/classes/${line.class_id}?company_id=${activeCompanyId}`, + `/api-sveltekit/classes/${item.class_id}?company_id=${activeCompanyId}`, { method: 'GET', headers: { 'Content-Type': 'application/json' } } ); if (response.ok) { const classData = await response.json(); - (line as any).class_code = classData.class_code; - (line as any).class_unit_of_measure = classData.unit_of_measure; - (line as any).class_description = classData.description_es || classData.description_en; + (item as any).class_code = classData.class_code; + (item as any).class_unit_of_measure = classData.unit_of_measure; + (item as any).class_description = classData.description_es || classData.description_en; } } catch (error) { console.error('Error loading class data:', error); @@ -592,17 +574,17 @@ } // Load part number data - if (line.part_number) { + if (item.part_number) { try { const response = await fetch( - `/api-sveltekit/parts/${line.part_number}?company_id=${activeCompanyId}`, + `/api-sveltekit/parts/${item.part_number}?company_id=${activeCompanyId}`, { method: 'GET', headers: { 'Content-Type': 'application/json' } } ); if (response.ok) { const partData = await response.json(); - (line as any).part_number = partData.part_number; - (line as any).part_description_es = partData.description_spanish; - (line as any).part_description_en = partData.description_english; + (item as any).part_number = partData.part_number; + (item as any).part_description_es = partData.description_spanish; + (item as any).part_description_en = partData.description_english; } } catch (error) { console.error('Error loading part data:', error); @@ -610,16 +592,16 @@ } // Load unit of measure data - if (line.unit_of_measure) { + if (item.unit_of_measure) { try { - const response = await fetch(`/api-sveltekit/units-of-measure/${line.unit_of_measure}`, { + const response = await fetch(`/api-sveltekit/units-of-measure/${item.unit_of_measure}`, { method: 'GET', headers: { 'Content-Type': 'application/json' } }); if (response.ok) { const unitData = await response.json(); - (line as any).unit_code = unitData.code; - (line as any).unit_description = unitData.description || unitData.description_en; + (item as any).unit_code = unitData.code; + (item as any).unit_description = unitData.description || unitData.description_en; } } catch (error) { console.error('Error loading unit data:', error); @@ -627,17 +609,17 @@ } // Load country data (if needed) - if (line.customs?.origin_country) { + if (item.customs?.origin_country) { try { const response = await fetch( - `/api-sveltekit/countries?search=${line.customs.origin_country}`, + `/api-sveltekit/countries?search=${item.customs.origin_country}`, { method: 'GET', headers: { 'Content-Type': 'application/json' } } ); if (response.ok) { const data = await response.json(); if (data.items && data.items.length > 0) { const country = data.items[0]; - (line.customs as any).origin_country_name = + (item.customs as any).origin_country_name = country.description || country.description_en; } } @@ -647,79 +629,124 @@ } // Load fraction data (if needed) - if (line.customs?.fraction) { + if (item.customs?.fraction) { try { const response = await fetch( - `/api-sveltekit/tariff-fractions?search=${line.customs.fraction}`, + `/api-sveltekit/tariff-fractions?search=${item.customs.fraction}`, { method: 'GET', headers: { 'Content-Type': 'application/json' } } ); if (response.ok) { const data = await response.json(); if (data.items && data.items.length > 0) { const fraction = data.items[0]; - (line.customs as any).fraction_description = fraction.description; + (item.customs as any).fraction_description = fraction.description; } } } catch (error) { console.error('Error loading fraction data:', error); } } + + // Load package data (if needed) + const packageId = item.quantity?.package_id; + if (packageId && item.quantity) { + try { + const response = await fetch('/api-sveltekit/packages', { + method: 'GET', + headers: { 'Content-Type': 'application/json' } + }); + if (response.ok) { + const data = await response.json(); + const packages = data.items || data.data || data; + if (Array.isArray(packages)) { + const pkg = packages.find((p: any) => p.id === packageId); + if (pkg) { + (item.quantity as any).package_description = pkg.description_es || pkg.description_en || pkg.key; + (item.quantity as any).package_key = pkg.key; + (item.quantity as any).package_weight_unit = pkg.weight_unit || 0; + } + } + } + } catch (error) { + console.error('Error loading package data:', error); + } + } + + // Load payment method description (if needed) + if (item.payment_method) { + try { + const response = await fetch('/api-sveltekit/payment-methods', { + method: 'GET', + headers: { 'Content-Type': 'application/json' } + }); + if (response.ok) { + const data = await response.json(); + const methods = data.items || data.data || data; + if (Array.isArray(methods)) { + const method = methods.find((m: any) => m.key === item.payment_method); + if (method) { + (item as any).payment_method_description = method.description; + } + } + } + } catch (error) { + console.error('Error loading payment method data:', error); + } + } } // Normalize numeric values from strings to numbers function normalizeItemData(item: Partial): Partial { - if (item.lines && item.lines.length > 0) { - item.lines = item.lines.map((line) => { - const normalizedLine = { ...line }; + if (item) { + const normalizedItem = { ...item }; - // Normalize financials - if (normalizedLine.financial) { - normalizedLine.financial = { - ...normalizedLine.financial, - unit_cost_usd: - normalizedLine.financial.unit_cost_usd != null - ? Number(normalizedLine.financial.unit_cost_usd) - : undefined, - unit_cost_mxn: - normalizedLine.financial.unit_cost_mxn != null - ? Number(normalizedLine.financial.unit_cost_mxn) - : undefined, - value_usd: - normalizedLine.financial.value_usd != null - ? Number(normalizedLine.financial.value_usd) - : undefined, - value_mxn: - normalizedLine.financial.value_mxn != null - ? Number(normalizedLine.financial.value_mxn) - : undefined - }; - } + // Normalize financials + if (normalizedItem.financial) { + normalizedItem.financial = { + ...normalizedItem.financial, + unit_cost_usd: + normalizedItem.financial.unit_cost_usd != null + ? Number(normalizedItem.financial.unit_cost_usd) + : undefined, + unit_cost_mxn: + normalizedItem.financial.unit_cost_mxn != null + ? Number(normalizedItem.financial.unit_cost_mxn) + : undefined, + value_usd: + normalizedItem.financial.value_usd != null + ? Number(normalizedItem.financial.value_usd) + : undefined, + value_mxn: + normalizedItem.financial.value_mxn != null + ? Number(normalizedItem.financial.value_mxn) + : undefined + }; + } - // Normalize quantities - if (normalizedLine.quantity) { - normalizedLine.quantity = { - ...normalizedLine.quantity, - quantity: - normalizedLine.quantity.quantity != null - ? Number(normalizedLine.quantity.quantity) - : undefined, - net_weight: - normalizedLine.quantity.net_weight != null - ? Number(normalizedLine.quantity.net_weight) - : undefined, - gross_weight: - normalizedLine.quantity.gross_weight != null - ? Number(normalizedLine.quantity.gross_weight) - : undefined, - package_quantity: - normalizedLine.quantity.package_quantity != null - ? Number(normalizedLine.quantity.package_quantity) - : undefined - }; - } + // Normalize quantities + if (normalizedItem.quantity) { + normalizedItem.quantity = { + ...normalizedItem.quantity, + quantity: + normalizedItem.quantity.quantity != null + ? Number(normalizedItem.quantity.quantity) + : undefined, + net_weight: + normalizedItem.quantity.net_weight != null + ? Number(normalizedItem.quantity.net_weight) + : undefined, + gross_weight: + normalizedItem.quantity.gross_weight != null + ? Number(normalizedItem.quantity.gross_weight) + : undefined, + package_quantity: + normalizedItem.quantity.package_quantity != null + ? Number(normalizedItem.quantity.package_quantity) + : undefined + }; + } - return normalizedLine; - }); + return normalizedItem; } return item; @@ -735,16 +762,12 @@ isSaving = true; try { - // Clean lines data before sending - const cleanedLines = (editingItem.lines || []).map(cleanLineData); + // Clean item data before sending + const cleanedItem = cleanLineData(editingItem); const response = await itemsApi.create(activeCompanyId, { - invoice_id: invoice.id, - reference_number: editingItem.reference_number, - order: editingItem.order, - warehouse: editingItem.warehouse, - location: editingItem.location, - lines: cleanedLines + ...cleanedItem, + invoice_id: invoice.id }); // Verificar si hay errores de validación @@ -804,16 +827,10 @@ isSaving = true; try { - // Clean lines data before sending - const cleanedLines = (editingItem.lines || []).map(cleanLineData); + // Clean item data before sending + const cleanedItem = cleanLineData(editingItem); - const response = await itemsApi.update(selectedItem.id, activeCompanyId, { - reference_number: editingItem.reference_number, - order: editingItem.order, - warehouse: editingItem.warehouse, - location: editingItem.location, - lines: cleanedLines - }); + const response = await itemsApi.update(selectedItem.id, activeCompanyId, cleanedItem); // Verificar si hay errores de validación if ('error' in response) { @@ -869,52 +886,51 @@ function saveItem() { // Validar campos obligatorios antes de guardar - const line = editingItem.lines?.[0]; const missingFields: string[] = []; - if (!line) { + if (!editingItem) { toast.warning('Error de datos', { - description: 'No se encontró información de la línea del item' + description: 'No se encontró información del item' }); return; } // 1. Clase - if (!line.class_id) { + if (!editingItem.class_id) { missingFields.push('Clase'); } // 2. Cantidad - if (!line.quantity?.quantity || line.quantity.quantity <= 0) { + if (!editingItem.quantity?.quantity || editingItem.quantity.quantity <= 0) { missingFields.push('Cantidad'); } // 3. Unidad de Medida - if (!line.unit_of_measure) { + if (!editingItem.unit_of_measure) { missingFields.push('U.M. (Unidad de Medida)'); } // 4. Costo Unitario (al menos uno debe estar presente) const hasCost = - line.financial?.unit_cost_usd || - line.financial?.unit_cost_mxn || - line.financial?.unit_cost_capture; + editingItem.financial?.unit_cost_usd || + editingItem.financial?.unit_cost_mxn || + editingItem.financial?.unit_cost_capture; if (!hasCost) { missingFields.push('Costo Unitario (USD, MXN o Captura)'); } // 5. País de Origen - if (!line.customs?.origin_country) { + if (!editingItem.customs?.origin_country) { missingFields.push('País de Origen'); } // 6. Tipo de Tarifa - if (!line.customs?.fraction_type) { + if (!editingItem.customs?.fraction_type) { missingFields.push('Tipo de Tarifa'); } // 7. Descripción en Español - if (!line.description?.description_spanish?.trim()) { + if (!editingItem.description?.description_spanish?.trim()) { missingFields.push('Descripción en Español'); } @@ -1406,7 +1422,7 @@
- {item.lines?.[0]?.description?.description_spanish || + {item?.description?.description_spanish || 'Sin descripción'} {#if item.reference_number} @@ -1417,10 +1433,10 @@
- {item.lines?.[0]?.quantity?.quantity || 0} + {item?.quantity?.quantity || 0} - ${(item.lines?.[0]?.financial?.unit_cost_usd || 0).toLocaleString( + ${(item?.financial?.unit_cost_usd || 0).toLocaleString( undefined, { minimumFractionDigits: 2 } )} @@ -1537,7 +1553,7 @@
- {item.lines?.[0]?.description?.description_spanish || 'Sin descripción'} + {item?.[0]?.description?.description_spanish || 'Sin descripción'} Ref: {item.reference_number || '-'} - {item.lines?.[0]?.quantity?.quantity || 0} + {item?.[0]?.quantity?.quantity || 0}
diff --git a/frontend/src/lib/components/dashboard/reference_data/incoterms/data-table.svelte b/frontend/src/lib/components/dashboard/reference_data/incoterms/data-table.svelte index 4c448e3d..3d5b2a66 100644 --- a/frontend/src/lib/components/dashboard/reference_data/incoterms/data-table.svelte +++ b/frontend/src/lib/components/dashboard/reference_data/incoterms/data-table.svelte @@ -1,123 +1,106 @@ -
-
- - - {#each table.getHeaderGroups() as headerGroup (headerGroup.id)} - - {#each headerGroup.headers as header (header.id)} - - {#if !header.isPlaceholder} - - {/if} - - {/each} - - {/each} - - - {#each table.getRowModel().rows as row (row.id)} - - {#each row.getVisibleCells() as cell (cell.id)} - +
+ + + {#each table.getHeaderGroups() as headerGroup (headerGroup.id)} + + {#each headerGroup.headers as header (header.id)} + + {#if !header.isPlaceholder} - - {/each} - - {:else} - - - No hay resultados. + {/if} + + {/each} + + {/each} + + + {#each table.getRowModel().rows as row (row.id)} + + {#each row.getVisibleCells() as cell (cell.id)} + + - - {/each} - - - {#if hasMore} - - -
- {#if loading} -
-
- Cargando más... -
- {:else} -
- Desplázate para cargar más -
- {/if} -
-
-
- {/if} -
-
+ {/each} + + {:else} + + + No hay resultados. + + + {/each} + + +
+ +
+
+ Total: {totalItems} registros +
+
+ +
diff --git a/frontend/src/lib/components/sidebar/modules.ts b/frontend/src/lib/components/sidebar/modules.ts index ee0a8d9a..90c86c47 100644 --- a/frontend/src/lib/components/sidebar/modules.ts +++ b/frontend/src/lib/components/sidebar/modules.ts @@ -8,12 +8,14 @@ import { FileText, Frame, GalleryVerticalEnd, + Hash, LayoutDashboard, Package, Settings2, Shield, Users, Ship, + MoreHorizontal, } from 'lucide-svelte'; import * as m from "$lib/paraglide/messages.js"; import { Title } from '../ui/alert'; @@ -296,6 +298,41 @@ export function getSidebarData(): SidebarData { }, ], }, + { + title: m["sidebar.fractions.title"](), + url: "#", + icon: Hash, + items: [ + { + title: m["sidebar.fractions.sitar"](), + url: "/dashboard/general_catalogs/tariff-fractions/sitar", + }, + { + title: m["sidebar.fractions.sitar_seventh_amendment"](), + url: "/dashboard/general_catalogs/tariff-fractions/seventh-amendment", + }, + { + title: m["sidebar.fractions.sitar_us"](), + url: "/dashboard/general_catalogs/tariff-fractions/us", + }, + { + title: m["sidebar.fractions.american"](), + url: "/dashboard/general_catalogs/tariff-fractions/american", + }, + { + title: m["sidebar.fractions.canadian"](), + url: "/dashboard/general_catalogs/tariff-fractions/canadian", + }, + { + title: m["sidebar.fractions.historical"](), + url: "/dashboard/general_catalogs/tariff-fractions/historical", + }, + { + title: m["sidebar.fractions.sectors"](), + url: "/dashboard/general_catalogs/sectors", + }, + ], + }, { title: m["sidebar.goods.title"](), url: "#", @@ -423,6 +460,7 @@ export function getSidebarData(): SidebarData { }, ], }, + { title: m["sidebar.clients_and_providers"](), url: "/dashboard/clients_and_providers", diff --git a/frontend/src/lib/components/sidebar/nav-projects.svelte b/frontend/src/lib/components/sidebar/nav-projects.svelte index e231955d..f67a27e2 100644 --- a/frontend/src/lib/components/sidebar/nav-projects.svelte +++ b/frontend/src/lib/components/sidebar/nav-projects.svelte @@ -1,4 +1,5 @@ - @@ -66,11 +78,28 @@ {/each} + - + More + + + + + + + + Carga CSV + + + + diff --git a/frontend/src/lib/config/csv-upload.ts b/frontend/src/lib/config/csv-upload.ts new file mode 100644 index 00000000..656b0459 --- /dev/null +++ b/frontend/src/lib/config/csv-upload.ts @@ -0,0 +1,366 @@ +import { + User, + Users, + FileText, + Truck, + Container, + Ship, + Plane, + Package, + Briefcase, + Globe, + CreditCard, + DollarSign, + Calendar, + Hash, + MapPin, + ShieldCheck, + FileDigit, + Scale, +} from 'lucide-svelte'; + +// --- Interfaces --- + +export interface CsvUploadItem { + id: string; + title: string; + icon: any; + group?: string; // For grouping within a tab + modelTarget?: string; // The backend model this maps to + description?: string; + templateUrl?: string; // Path to the template file in static/ + disabled?: boolean; // New property to mark items as "Coming Soon" +} + +export interface CsvUploadField { + name: string; + label: string; + type: 'text' | 'select' | 'boolean' | 'date' | 'radio'; + options?: { label: string; value: string | boolean | number }[]; + required?: boolean; + defaultValue?: any; +} + +// Map of Tab ID -> Array of Fields +export const tabSettings: Record = { + catalogos: [ + { + name: 'mode', + label: 'Modo de Carga', + type: 'radio', + options: [ + { label: 'Actualizar', value: 'update' }, + { label: 'Reemplazar', value: 'replace' } + ], + defaultValue: 'update' + } + ], + transportes: [ + { + name: 'mode', + label: 'Modo de Carga', + type: 'radio', + options: [ + { label: 'Actualizar', value: 'update' }, + { label: 'Reemplazar', value: 'replace' } + ], + defaultValue: 'update' + } + ], + importacion: [ + { + name: 'autonumber_remesas', + label: 'Autonumerar Remesas', + type: 'boolean', + defaultValue: false + }, + { + name: 'recalculate_dates', + label: 'Recalcular Fechas', + type: 'boolean', + defaultValue: false + }, + { + name: 'dateFormat', + label: 'Formato de Fecha', + type: 'select', + options: [ + { label: 'DD/MM/YYYY', value: 'dd/mm/yyyy' }, + { label: 'MM/DD/YYYY', value: 'mm/dd/yyyy' }, + { label: 'YYYY-MM-DD', value: 'yyyy-mm-dd' } + ], + defaultValue: 'dd/mm/yyyy' + } + ], + exportacion: [ + { + name: 'invoice_type', + label: 'Tipo de Factura', + type: 'select', + options: [ + { label: 'AFIJO', value: 'AFIJO' }, + { label: 'NORMAL', value: 'NORMAL' }, + ], + defaultValue: 'AFIJO', + }, + { + name: 'is_regime_change', + label: 'Es Cambio de Régimen', + type: 'boolean', + defaultValue: false, + }, + { + name: 'dateFormat', + label: 'Formato de Fecha', + type: 'select', + options: [ + { label: 'DD/MM/YYYY', value: 'dd/mm/yyyy' }, + { label: 'MM/DD/YYYY', value: 'mm/dd/yyyy' }, + { label: 'YYYY-MM-DD', value: 'yyyy-mm-dd' } + ], + defaultValue: 'dd/mm/yyyy' + } + ] +}; + +// --- DATA DEFINITIONS (Items only, no config) --- + +export const catalogosConfig: CsvUploadItem[] = [ + { + id: 'customs_brokers', + title: 'Agentes Aduanales', + icon: User, + modelTarget: 'CustomsBroker', + templateUrl: '/csv/EstructuraCatAgenteAduanal.xls' + }, + { + id: 'clients_providers', + title: 'Clientes y Proveedores', + icon: Users, + modelTarget: 'ClientProvider', + templateUrl: '/csv/EstructuraCatClienteProv.xls' + }, + { + id: 'exchange_rates', + title: 'Tipo de Cambios', + icon: DollarSign, + modelTarget: 'ExchangeRate', + templateUrl: '/csv/EstructuraCatTiposCambio.xls' + }, + { + id: 'american_fractions', + title: 'Fracc. Ame.', + icon: Globe, + modelTarget: 'AmericanFraction', + templateUrl: '/csv/EstructuraCatFraccAme.xls' + }, + { + id: 'material_classes', + title: 'Clases de Materiales', + icon: Package, + modelTarget: 'MaterialClass', + templateUrl: '/csv/EstructuraCatClasesAF.xls' + }, + { + id: 'items', + title: 'Partidas (Permisos)', + icon: FileText, + group: 'Permisos', + modelTarget: 'ItemPermission', + templateUrl: '/csv/EstructuraCatPartesAF.xls' + }, + { + id: 'headers', + title: 'Encabezados (Permisos)', + icon: FileText, + group: 'Permisos', + modelTarget: 'HeaderPermission', + disabled: true, + }, + { + id: 'historical_fractions', + title: 'Fracciones Históricas', + icon: Calendar, + modelTarget: 'HistoricalFraction', + disabled: true, + }, + { + id: 'pedimentos', + title: 'Pedimentos', + icon: FileDigit, + modelTarget: 'Pedimento', + templateUrl: '/csv/EstructuraCatPedimentos.xls' + }, +]; + +export const transportesConfig: CsvUploadItem[] = [ + { + id: 'transports', + title: 'Transportes', + icon: Truck, + modelTarget: 'Transport', + templateUrl: '/csv/EstructuraCatTransportes.xls' + }, + { + id: 'drivers', + title: 'Conductores', + icon: User, + modelTarget: 'Driver', + templateUrl: '/csv/EstructuraCatConductor.xls' + }, + { + id: 'trailers', + title: 'Trailers y Cajas', + icon: Container, + modelTarget: 'Trailer', + templateUrl: '/csv/EstructuraCatTrailers.xls' + }, +]; + +export const importacionConfig: CsvUploadItem[] = [ + // Impo Temp + { + id: 'imp_temp_header', + title: 'Encabezado', + icon: FileText, + group: 'Impo. Temp.', + modelTarget: 'invoice_header', + templateUrl: '/csv/EstructuraEncFacImpoTemp.xls' + }, + { + id: 'imp_temp_details', + title: 'Partidas', + icon: Package, + group: 'Impo. Temp.', + modelTarget: 'invoice_details', + templateUrl: '/csv/EstructuraParFacImpoTempAF.xls' + }, + { + id: 'imp_temp_series', + title: 'Series', + icon: Hash, + group: 'Impo. Temp.', + modelTarget: 'InvoiceSeries', + disabled: true, + }, + // Impo Def + { + id: 'imp_def_header', + title: 'Encabezado', + icon: FileText, + group: 'Impo. Def.', + modelTarget: 'InvoiceHeader', + templateUrl: '/csv/EstructuraEncFacImpoDef.xls' + }, + { + id: 'imp_def_details', + title: 'Partidas', + icon: Package, + group: 'Impo. Def.', + modelTarget: 'InvoiceSalesDetails', + templateUrl: '/csv/EstructuraParFacImpoDefAF.xls' + }, + { + id: 'imp_def_series', + title: 'Series', + icon: Hash, + group: 'Impo. Def.', + modelTarget: 'InvoiceSeries', + disabled: true, + }, + // Compras Mex + { + id: 'comp_mex_header', + title: 'Encabezado', + icon: FileText, + group: 'Compras Mex.', + modelTarget: 'InvoiceHeader', + disabled: true, + }, + { + id: 'comp_mex_details', + title: 'Partidas', + icon: Package, + group: 'Compras Mex.', + modelTarget: 'InvoiceSalesDetails', + disabled: true, + }, + { + id: 'comp_mex_series', + title: 'Series', + icon: Hash, + group: 'Compras Mex.', + modelTarget: 'InvoiceSeries', + disabled: true, + }, +]; + +export const exportacionConfig: CsvUploadItem[] = [ + // Expo Def / Cam. Reg. + { + id: 'exp_def_header', + title: 'Encabezado', + icon: FileText, + group: 'Expo. Def./Cam. Reg.', + modelTarget: 'InvoiceHeader', + templateUrl: '/csv/EstructuraEncFacExpoCamReg.xls' + }, + { + id: 'exp_def_details', + title: 'Partidas', + icon: Package, + group: 'Expo. Def./Cam. Reg.', + modelTarget: 'InvoiceSalesDetails', + templateUrl: '/csv/EstructuraParExpoCamReg.xls' + }, + { + id: 'exp_def_series', + title: 'Series', + icon: Hash, + group: 'Expo. Def./Cam. Reg.', + modelTarget: 'InvoiceSeries', + disabled: true, + }, + { + id: 'exp_def_nodes', + title: 'NODES', + icon: Briefcase, + group: 'Expo. Def./Cam. Reg.', + modelTarget: 'Nodes', + disabled: true, + }, + // Expo Rep + { + id: 'exp_rep_header', + title: 'Encabezado', + icon: FileText, + group: 'Expo. Rep.', + modelTarget: 'InvoiceHeader', + disabled: true, + }, + { + id: 'exp_rep_details', + title: 'Partidas', + icon: Package, + group: 'Expo. Rep.', + modelTarget: 'InvoiceSalesDetails', + disabled: true, + }, + { + id: 'exp_rep_series', + title: 'Series', + icon: Hash, + group: 'Expo. Rep.', + modelTarget: 'InvoiceSeries', + disabled: true, + }, + // Manifiesto + { + id: 'manifest_header', + title: 'Encabezado', + icon: FileText, + group: 'Manifiesto', + modelTarget: 'Manifest', + disabled: true, + }, +]; diff --git a/frontend/src/lib/config/shortcuts/dashboard/general_catalogs/company_information/edit.ts b/frontend/src/lib/config/shortcuts/dashboard/general_catalogs/company_information/edit.ts index 4abae76c..775ae7ac 100644 --- a/frontend/src/lib/config/shortcuts/dashboard/general_catalogs/company_information/edit.ts +++ b/frontend/src/lib/config/shortcuts/dashboard/general_catalogs/company_information/edit.ts @@ -6,16 +6,15 @@ export const obtenerAtajosFormularioEmpresa = (acciones: { manejarCerrar: () => void; }): ShortcutDef[] => [ { key: 'Alt+Digit1', description: 'Pestaña General', action: () => acciones.cambiarPestana('general') }, - { key: 'Alt+Digit2', description: 'Pestaña Programas', action: () => acciones.cambiarPestana('programas') }, + { key: 'Alt+Digit2', description: 'Pestaña Programa', action: () => acciones.cambiarPestana('programa') }, { key: 'Alt+Digit3', description: 'Pestaña Responsable', action: () => acciones.cambiarPestana('responsable') }, - { key: 'Alt+Digit4', description: 'Pestaña Config', action: () => acciones.cambiarPestana('config') }, + { key: 'Alt+Digit4', description: 'Pestaña Certificaciones', action: () => acciones.cambiarPestana('certificaciones') }, + { key: 'Alt+Digit5', description: 'Pestaña Direcciones', action: () => acciones.cambiarPestana('direcciones') }, + { key: 'Alt+Digit6', description: 'Pestaña Config', action: () => acciones.cambiarPestana('config') }, { key: 'Control+KeyS', description: 'Guardar Empresa', - action: (e) => { - e.preventDefault(); - acciones.manejarGuardar(); - } + action: () => acciones.manejarGuardar() }, { key: 'Escape', diff --git a/frontend/src/lib/stores/company.svelte.ts b/frontend/src/lib/stores/company.svelte.ts index 9f04bcdb..ddcbf4b9 100644 --- a/frontend/src/lib/stores/company.svelte.ts +++ b/frontend/src/lib/stores/company.svelte.ts @@ -76,11 +76,12 @@ class CompanyStore { this._loading = true; try { - const response = await fetch('/api/v1/a76/company/my-companies', { - credentials: 'include' - }); - if (response.ok) { - const newCompanies = await response.json(); + // Importamos dinámicamente para evitar dependencias circulares si las hubiera + const { api } = await import('$lib/api'); + const response = await api.get('/v1/a76/company/my-companies'); + + if (response.data) { + const newCompanies = response.data; // Detectar si el tenant ha cambiado if (newCompanies.length > 0) { @@ -88,7 +89,6 @@ class CompanyStore { // Si el tenant cambió, limpiar el store primero if (this._currentTenantId !== null && this._currentTenantId !== newTenantId) { - this.clear(); } @@ -102,7 +102,7 @@ class CompanyStore { this.setActiveCompany(this._companies[0], true); // silent=true para inicialización } } else { - console.error('Error loading companies:', response.statusText); + console.error('Error loading companies:', response.error); // Si falla la carga (ej: 401), limpiar el store if (response.status === 401) { this.clear(); @@ -120,7 +120,7 @@ class CompanyStore { * @param company - La compañía a establecer como activa * @param silent - Si es true, no dispara el evento companyChanged (para inicialización) */ - setActiveCompany(company: Company, silent: boolean = false) { + async setActiveCompany(company: Company, silent: boolean = false) { const previousCompanyId = this._activeCompany?.id; this._activeCompany = company; @@ -130,8 +130,20 @@ class CompanyStore { } // Guardar en cookie para acceso desde el servidor (SSR) - if (typeof document !== 'undefined') { - document.cookie = `active_company_id=${company.id}; path=/; max-age=${60 * 60 * 24 * 30}; SameSite=Lax`; + // Usar el endpoint del servidor para garantizar que la cookie esté disponible en SSR + if (browser) { + try { + await fetch('/api-sveltekit/company/set-active', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ companyId: company.id }), + credentials: 'include' + }); + } catch (error) { + console.error('Error setting active company cookie:', error); + } } // Despachar evento personalizado solo si: diff --git a/frontend/src/lib/utils/items-logic.ts b/frontend/src/lib/utils/items-logic.ts index c29a87c6..9d577c11 100644 --- a/frontend/src/lib/utils/items-logic.ts +++ b/frontend/src/lib/utils/items-logic.ts @@ -1,7 +1,6 @@ export interface Item { id?: number; - lines?: any[]; [key: string]: any; } @@ -71,36 +70,34 @@ export function cleanLineData(line: any) { // Normalize numeric values from strings to numbers (for editing) export function normalizeItemData(item: Partial): Partial { - if (item.lines && item.lines.length > 0) { - item.lines = item.lines.map((line) => { - const normalizedLine = { ...line }; + if (item) { + const normalizedItem = { ...item }; - // Normalize financials - if (normalizedLine.financial) { - const f = normalizedLine.financial; - normalizedLine.financial = { - ...f, - unit_cost_usd: f.unit_cost_usd != null ? Number(f.unit_cost_usd) : undefined, - unit_cost_mxn: f.unit_cost_mxn != null ? Number(f.unit_cost_mxn) : undefined, - value_usd: f.value_usd != null ? Number(f.value_usd) : undefined, - value_mxn: f.value_mxn != null ? Number(f.value_mxn) : undefined - }; - } + // Normalize financials + if (normalizedItem.financial) { + const f = normalizedItem.financial; + normalizedItem.financial = { + ...f, + unit_cost_usd: f.unit_cost_usd != null ? Number(f.unit_cost_usd) : undefined, + unit_cost_mxn: f.unit_cost_mxn != null ? Number(f.unit_cost_mxn) : undefined, + value_usd: f.value_usd != null ? Number(f.value_usd) : undefined, + value_mxn: f.value_mxn != null ? Number(f.value_mxn) : undefined + }; + } - // Normalize quantities - if (normalizedLine.quantity) { - const q = normalizedLine.quantity; - normalizedLine.quantity = { - ...q, - quantity: q.quantity != null ? Number(q.quantity) : undefined, - net_weight: q.net_weight != null ? Number(q.net_weight) : undefined, - gross_weight: q.gross_weight != null ? Number(q.gross_weight) : undefined, - package_quantity: q.package_quantity != null ? Number(q.package_quantity) : undefined - }; - } + // Normalize quantities + if (normalizedItem.quantity) { + const q = normalizedItem.quantity; + normalizedItem.quantity = { + ...q, + quantity: q.quantity != null ? Number(q.quantity) : undefined, + net_weight: q.net_weight != null ? Number(q.net_weight) : undefined, + gross_weight: q.gross_weight != null ? Number(q.gross_weight) : undefined, + package_quantity: q.package_quantity != null ? Number(q.package_quantity) : undefined + }; + } - return normalizedLine; - }); + return normalizedItem; } return item; diff --git a/frontend/src/routes/api-sveltekit/classes/+server.ts b/frontend/src/routes/api-sveltekit/classes/+server.ts index 1d44c79d..f5ea10d4 100644 --- a/frontend/src/routes/api-sveltekit/classes/+server.ts +++ b/frontend/src/routes/api-sveltekit/classes/+server.ts @@ -36,7 +36,6 @@ export const GET: RequestHandler = async ({ cookies, url }) => { try { const fetchUrl = `${baseUrl}v1/a76/classes?${queryString}`; - console.log('Fetching classes from:', fetchUrl); const response = await fetch( fetchUrl, diff --git a/frontend/src/routes/api-sveltekit/classes/[id]/+server.ts b/frontend/src/routes/api-sveltekit/classes/[id]/+server.ts index d8de375c..43180934 100644 --- a/frontend/src/routes/api-sveltekit/classes/[id]/+server.ts +++ b/frontend/src/routes/api-sveltekit/classes/[id]/+server.ts @@ -32,7 +32,6 @@ export const GET: RequestHandler = async ({ cookies, url, params }) => { try { const fetchUrl = `${baseUrl}v1/a76/classes/${id}?company_id=${companyId}`; - console.log('Fetching class from:', fetchUrl); const response = await fetch( fetchUrl, diff --git a/frontend/src/routes/api-sveltekit/company/set-active/+server.ts b/frontend/src/routes/api-sveltekit/company/set-active/+server.ts new file mode 100644 index 00000000..3820adfa --- /dev/null +++ b/frontend/src/routes/api-sveltekit/company/set-active/+server.ts @@ -0,0 +1,29 @@ +/** + * API route para establecer la compañía activa en una cookie + */ +import { json } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; + +export const POST: RequestHandler = async ({ cookies, request }) => { + try { + const { companyId } = await request.json(); + + if (!companyId || typeof companyId !== 'number') { + return json({ error: 'Invalid company ID' }, { status: 400 }); + } + + // Establecer la cookie desde el servidor + cookies.set('active_company_id', companyId.toString(), { + path: '/', + maxAge: 60 * 60 * 24 * 30, // 30 días + sameSite: 'lax', + httpOnly: false, // Permitir acceso desde JavaScript + secure: process.env.NODE_ENV === 'production' + }); + + return json({ success: true, companyId }); + } catch (error) { + console.error('Error setting active company:', error); + return json({ error: 'Internal server error' }, { status: 500 }); + } +}; diff --git a/frontend/src/routes/api-sveltekit/historical-tariff-fractions/rate/+server.ts b/frontend/src/routes/api-sveltekit/historical-tariff-fractions/rate/+server.ts new file mode 100644 index 00000000..2d51bb1a --- /dev/null +++ b/frontend/src/routes/api-sveltekit/historical-tariff-fractions/rate/+server.ts @@ -0,0 +1,71 @@ +import type { RequestHandler } from './$types'; + +export const GET: RequestHandler = async ({ cookies, url }) => { + const token = cookies.get('access_token'); + + // Configurar la URL de la API usando las variables de entorno + let apiUrl = process.env.INTERNAL_API_URL; + if (!apiUrl) { + apiUrl = process.env.VITE_API_URL; + // Reemplazar 'localhost' con 'backend' para llamadas desde el servidor (SSR) + apiUrl = apiUrl?.replace('localhost', 'backend').replace('127.0.0.1', 'backend'); + } + + // Normalizar la URL + const baseUrl = apiUrl?.endsWith('/') ? apiUrl : `${apiUrl}/`; + + // Get query parameters (historical_fraction, country, fraction_type, invoice_date, sector) + const searchParams = new URLSearchParams(url.search); + const queryString = searchParams.toString(); + + try { + const fetchUrl = `${baseUrl}v1/a76/historical-tariff-fractions/rate?${queryString}`; + + const response = await fetch(fetchUrl, { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + Authorization: `Bearer ${token}` + } + }); + + if (!response.ok) { + const errorText = await response.text(); + console.error('Error response from backend:', errorText); + return new Response( + JSON.stringify({ + error: 'Failed to fetch historical tariff rate', + details: errorText + }), + { + status: response.status, + headers: { + 'Content-Type': 'application/json' + } + } + ); + } + + const data = await response.json(); + return new Response(JSON.stringify(data), { + status: 200, + headers: { + 'Content-Type': 'application/json' + } + }); + } catch (error) { + console.error('Error in historical-tariff-fractions/rate API route:', error); + return new Response( + JSON.stringify({ + error: 'Internal server error', + message: error instanceof Error ? error.message : 'Unknown error' + }), + { + status: 500, + headers: { + 'Content-Type': 'application/json' + } + } + ); + } +}; diff --git a/frontend/src/routes/api-sveltekit/packages/+server.ts b/frontend/src/routes/api-sveltekit/packages/+server.ts new file mode 100644 index 00000000..a78d61e0 --- /dev/null +++ b/frontend/src/routes/api-sveltekit/packages/+server.ts @@ -0,0 +1,80 @@ +import type { RequestHandler } from './$types'; + +export const GET: RequestHandler = async ({ cookies, url }) => { + const token = cookies.get('access_token'); + + // Obtener company_id de la cookie + const companyId = cookies.get('active_company_id'); + + if (!companyId) { + return new Response( + JSON.stringify({ error: 'No company selected' }), + { + status: 400, + headers: { + 'Content-Type': 'application/json' + } + } + ); + } + + // Configurar la URL de la API usando las variables de entorno + let apiUrl = process.env.INTERNAL_API_URL; + if (!apiUrl) { + apiUrl = process.env.VITE_API_URL; + // Reemplazar 'localhost' con 'backend' para llamadas desde el servidor (SSR) + apiUrl = apiUrl?.replace('localhost', 'backend').replace('127.0.0.1', 'backend'); + } + + // Normalizar la URL + const baseUrl = apiUrl?.endsWith('/') ? apiUrl : `${apiUrl}/`; + + // Get query parameters and add company_id + const searchParams = new URLSearchParams(url.search); + searchParams.set('company_id', companyId); + const queryString = searchParams.toString(); + + try { + const fetchUrl = `${baseUrl}v1/a76/packages?${queryString}`; + + const response = await fetch( + fetchUrl, + { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + Authorization: `Bearer ${token}` + } + } + ); + + const data = await response.json(); + + if (!response.ok) { + return new Response(JSON.stringify(data), { + status: response.status, + headers: { + 'Content-Type': 'application/json' + } + }); + } + + return new Response(JSON.stringify(data), { + status: 200, + headers: { + 'Content-Type': 'application/json' + } + }); + } catch (error) { + console.error('Error fetching packages:', error); + return new Response( + JSON.stringify({ error: 'Failed to fetch packages' }), + { + status: 500, + headers: { + 'Content-Type': 'application/json' + } + } + ); + } +}; diff --git a/frontend/src/routes/api-sveltekit/parts/+server.ts b/frontend/src/routes/api-sveltekit/parts/+server.ts index 8fcc4b47..fe1b1f23 100644 --- a/frontend/src/routes/api-sveltekit/parts/+server.ts +++ b/frontend/src/routes/api-sveltekit/parts/+server.ts @@ -35,8 +35,7 @@ export const GET: RequestHandler = async ({ cookies, url }) => { const queryString = searchParams.toString(); try { - const fetchUrl = `${baseUrl}v1/a76/parts?${queryString}`; - console.log('Fetching parts from:', fetchUrl); + const fetchUrl = `${baseUrl}v1/a76/parts?${queryString}`; const response = await fetch( fetchUrl, diff --git a/frontend/src/routes/api-sveltekit/parts/[id]/+server.ts b/frontend/src/routes/api-sveltekit/parts/[id]/+server.ts index ba82f40d..ef9662f0 100644 --- a/frontend/src/routes/api-sveltekit/parts/[id]/+server.ts +++ b/frontend/src/routes/api-sveltekit/parts/[id]/+server.ts @@ -31,8 +31,7 @@ export const GET: RequestHandler = async ({ cookies, url, params }) => { const baseUrl = apiUrl?.endsWith('/') ? apiUrl : `${apiUrl}/`; try { - const fetchUrl = `${baseUrl}v1/a76/parts/${id}?company_id=${companyId}`; - console.log('Fetching part from:', fetchUrl); + const fetchUrl = `${baseUrl}v1/a76/parts/${id}?company_id=${companyId}`; const response = await fetch( fetchUrl, diff --git a/frontend/src/routes/api-sveltekit/payment-methods/+server.ts b/frontend/src/routes/api-sveltekit/payment-methods/+server.ts new file mode 100644 index 00000000..688259a0 --- /dev/null +++ b/frontend/src/routes/api-sveltekit/payment-methods/+server.ts @@ -0,0 +1,64 @@ +import type { RequestHandler } from './$types'; + +export const GET: RequestHandler = async ({ cookies, url }) => { + const token = cookies.get('access_token'); + + // Configurar la URL de la API usando las variables de entorno + let apiUrl = process.env.INTERNAL_API_URL; + if (!apiUrl) { + apiUrl = process.env.VITE_API_URL; + // Reemplazar 'localhost' con 'backend' para llamadas desde el servidor (SSR) + apiUrl = apiUrl?.replace('localhost', 'backend').replace('127.0.0.1', 'backend'); + } + + // Normalizar la URL + const baseUrl = apiUrl?.endsWith('/') ? apiUrl : `${apiUrl}/`; + + // Get query parameters + const searchParams = new URLSearchParams(url.search); + const queryString = searchParams.toString(); + + try { + const fetchUrl = `${baseUrl}v1/public/reference_data/payment-methods${queryString ? `?${queryString}` : ''}`; + + const response = await fetch( + fetchUrl, + { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + Authorization: `Bearer ${token}` + } + } + ); + + const data = await response.json(); + + if (!response.ok) { + return new Response(JSON.stringify(data), { + status: response.status, + headers: { + 'Content-Type': 'application/json' + } + }); + } + + return new Response(JSON.stringify(data), { + status: 200, + headers: { + 'Content-Type': 'application/json' + } + }); + } catch (error) { + console.error('Error fetching payment methods:', error); + return new Response( + JSON.stringify({ error: 'Failed to fetch payment methods' }), + { + status: 500, + headers: { + 'Content-Type': 'application/json' + } + } + ); + } +}; diff --git a/frontend/src/routes/api-sveltekit/tariff-fractions/+server.ts b/frontend/src/routes/api-sveltekit/tariff-fractions/+server.ts index 1a15e7d8..52a37f85 100644 --- a/frontend/src/routes/api-sveltekit/tariff-fractions/+server.ts +++ b/frontend/src/routes/api-sveltekit/tariff-fractions/+server.ts @@ -20,8 +20,6 @@ export const GET: RequestHandler = async ({ cookies, url }) => { try { const fetchUrl = `${baseUrl}v1/a76/tariff-fractions?${queryString}`; - console.log('Fetching tariff fractions from:', fetchUrl); - console.log('Token:', token ? 'Present' : 'Missing'); const response = await fetch( fetchUrl, @@ -35,8 +33,6 @@ export const GET: RequestHandler = async ({ cookies, url }) => { ); const data = await response.json(); - console.log('Response status:', response.status); - console.log('Response data:', JSON.stringify(data).substring(0, 200)); if (!response.ok) { return new Response(JSON.stringify(data), { diff --git a/frontend/src/routes/api-sveltekit/units-of-measure/+server.ts b/frontend/src/routes/api-sveltekit/units-of-measure/+server.ts index 35a9fc11..200120c7 100644 --- a/frontend/src/routes/api-sveltekit/units-of-measure/+server.ts +++ b/frontend/src/routes/api-sveltekit/units-of-measure/+server.ts @@ -36,8 +36,6 @@ export const GET: RequestHandler = async ({ cookies, url }) => { try { const fetchUrl = `${baseUrl}v1/a76/units-of-measure?${queryString}`; - console.log('Fetching units from:', fetchUrl); - console.log('Token:', token ? 'Present' : 'Missing'); const response = await fetch( fetchUrl, @@ -51,8 +49,6 @@ export const GET: RequestHandler = async ({ cookies, url }) => { ); const data = await response.json(); - console.log('Response status:', response.status); - console.log('Response data:', JSON.stringify(data).substring(0, 200)); if (!response.ok) { return new Response(JSON.stringify(data), { diff --git a/frontend/src/routes/api-sveltekit/units-of-measure/[id]/+server.ts b/frontend/src/routes/api-sveltekit/units-of-measure/[id]/+server.ts index 110e12c4..08813905 100644 --- a/frontend/src/routes/api-sveltekit/units-of-measure/[id]/+server.ts +++ b/frontend/src/routes/api-sveltekit/units-of-measure/[id]/+server.ts @@ -31,8 +31,7 @@ export const GET: RequestHandler = async ({ cookies, params, url }) => { const baseUrl = apiUrl?.endsWith('/') ? apiUrl : `${apiUrl}/`; try { - const fetchUrl = `${baseUrl}v1/a76/units-of-measure/${id}?company_id=${companyId}`; - console.log('Fetching unit of measure from:', fetchUrl); + const fetchUrl = `${baseUrl}v1/a76/units-of-measure/${id}?company_id=${companyId}`; const response = await fetch( fetchUrl, diff --git a/frontend/src/routes/dashboard/clients_and_providers/edit/[[id]]/+page.svelte b/frontend/src/routes/dashboard/clients_and_providers/edit/[[id]]/+page.svelte index d0821f13..ba7e4207 100644 --- a/frontend/src/routes/dashboard/clients_and_providers/edit/[[id]]/+page.svelte +++ b/frontend/src/routes/dashboard/clients_and_providers/edit/[[id]]/+page.svelte @@ -49,7 +49,7 @@ name: '', short_name: '', curp: '', - client_or_provider: 'client', + client_or_provider: 'both', type_nat_foreign: 'N', responsible: '', position: '', @@ -224,7 +224,7 @@ } catch (e: any) { console.error(e); error = e.message || 'Error al guardar'; - toast.error(error); + toast.error(error || 'Error al guardar'); } finally { loading = false; } @@ -314,7 +314,11 @@
- + (formData.client_or_provider = v)} + > {typeLabels[formData.client_or_provider] || 'Selecciona un tipo'} @@ -357,7 +361,11 @@
- + (formData.type_nat_foreign = v)} + > {formData.type_nat_foreign === 'N' ? 'Nacional' diff --git a/frontend/src/routes/dashboard/csv-upload/+page.svelte b/frontend/src/routes/dashboard/csv-upload/+page.svelte new file mode 100644 index 00000000..6c55bc56 --- /dev/null +++ b/frontend/src/routes/dashboard/csv-upload/+page.svelte @@ -0,0 +1,209 @@ + + +
+ +
+
+

Importación Masiva de Datos (CSV)

+
+ + + + Catálogos + Transportes + Importación + Exportación + + +
+ +
+

Catálogos Generales

+
+ +
+ + +
+

Logística y Transporte

+
+ +
+ + +
+

Operaciones de Importación

+
+ +
+ + +
+

Operaciones de Exportación

+
+ +
+
+
+ +
+
+ + + {#if allSettings[activeTab]} +
+ +
+ {/if} +
+ + { + if (currentJobId && activeModelTarget) { + try { + isUploading = true; + const res = await api.imports.commit(currentJobId, activeModelTarget); + if (res.data?.commit_job_id) { + currentJobId = res.data.commit_job_id; + pollStatus(); + } + } catch (err) { + toast.error('Error al iniciar la importación'); + isUploading = false; + } + } + }} + onCancel={() => { + currentJobId = null; + scanResults = null; + commitResults = null; + showResultModal = false; + }} + onClose={() => { + currentJobId = null; + scanResults = null; + commitResults = null; + showResultModal = false; + }} +/> diff --git a/frontend/src/routes/dashboard/general_catalogs/classification_concepts/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/classification_concepts/+page.server.ts index d5aa261b..f6619ae7 100644 --- a/frontend/src/routes/dashboard/general_catalogs/classification_concepts/+page.server.ts +++ b/frontend/src/routes/dashboard/general_catalogs/classification_concepts/+page.server.ts @@ -39,7 +39,7 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { page_size: pageSize.toString(), ...filters }); - const response = await authenticatedFetch(`v1/a76/classification-concepts?${queryParams.toString()}`, { method: 'GET' }, cookies, fetch); + const response = await authenticatedFetch(`v1/a76/classification-concepts/?${queryParams.toString()}`, { method: 'GET' }, cookies, fetch); if (!response.ok) { return { error: 'Failed to load', classifications: { items: [], total: 0, page, page_size: pageSize, pages: 0 } }; diff --git a/frontend/src/routes/dashboard/general_catalogs/classification_concepts/+page.svelte b/frontend/src/routes/dashboard/general_catalogs/classification_concepts/+page.svelte index d914cb4b..ce51bb9b 100644 --- a/frontend/src/routes/dashboard/general_catalogs/classification_concepts/+page.svelte +++ b/frontend/src/routes/dashboard/general_catalogs/classification_concepts/+page.svelte @@ -89,7 +89,6 @@ />
diff --git a/frontend/src/routes/dashboard/general_catalogs/company_information/+page.svelte b/frontend/src/routes/dashboard/general_catalogs/company_information/+page.svelte index 7412466e..43c1d7d2 100644 --- a/frontend/src/routes/dashboard/general_catalogs/company_information/+page.svelte +++ b/frontend/src/routes/dashboard/general_catalogs/company_information/+page.svelte @@ -1,9 +1,9 @@ -
+
@@ -338,7 +772,7 @@
{:else}
@@ -382,7 +816,7 @@
- +
@@ -413,6 +847,24 @@
+ +
+

Sectores

+
+
+ + +
+
+ + +
+
+ + +
+
+
@@ -442,49 +894,925 @@
- -
-
- - + +
+

Certificaciones OEA/NEEC

+
+
+ + +
+
+ + +
-
- - -
-
- - +
+
+ + +
+
+ (formData.is_oea_company = checked ? 1 : 0)} + /> + +
+
+ (formData.neec_company = checked ? 1 : 0)} + /> + +
-
-
- - + +
+

Certificación General

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
-
- - +
+ +
+

Anexo 31

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
-
- - +
+ + + +
+

Dirección Principal

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
-
- - +
+ +
+

Dirección Industrial 1

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
-
- - +
+ +
+

Dirección Industrial 2

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
-
- - +
+ + + +
+

Configuración General

+
+
+ + +
+
+ + +
+
+ + +
-
- - +
+ +
+

Configuraciones Técnicas

+
+
+ (formData.active_labels = checked ? 1 : 0)} + /> + +
+
+ (formData.active_fractions = checked ? 1 : 0)} + /> + +
+
+ (formData.activate_caat = checked ? 1 : 0)} + /> + +
+
+ (formData.trans_interface = checked ? 1 : 0)} + /> + +
+
+ (formData.american_costs = checked ? 1 : 0)} + /> + +
+
+ (formData.scaf_readonly = checked ? 1 : 0)} + /> + +
+
+ (formData.parts_replacement = checked ? 1 : 0)} + /> + +
+
+ (formData.activate_facmexame = checked ? 1 : 0)} + /> + +
+
+ (formData.part_reference = checked ? 1 : 0)} + /> + +
+
+ (formData.international_firm = checked ? 1 : 0)} + /> + +
+
+
+ +
+

Identificadores y Operación

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+

Configuraciones Avanzadas

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+

Prevalidador Aduanal

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+

Ventanilla Única

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+

Agente Aduanal Electrónico

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+

CFDI - Facturación Electrónica

+
+
+ + +
+
+ + +
+
+ + +
+
+
+ + + + +
+
+ +

Firma Electrónica Avanzada (FIEL)

+
+
+
+ +
+ handleCertificateSelect(e, 'fiel_cer')} + /> + +
+
+
+ +
+ handleCertificateSelect(e, 'fiel_key')} + /> + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
+ +

Certificado de Sellos Digitales (CSD)

+
+
+
+ +
+ handleCertificateSelect(e, 'cfdi_cert_cer')} + /> + +
+
+
+ +
+ handleCertificateSelect(e, 'cfdi_cert_key')} + /> + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
+ +

Certificado de Cancelación (Opcional)

+
+
+
+ +
+ handleCertificateSelect(e, 'cancel_cer')} + /> + +
+
+
+ +
+ handleCertificateSelect(e, 'cancel_key')} + /> + +
+
+
+ + +
+
+ + +
@@ -494,36 +1822,45 @@ -
-
- +
- + General - + - Programas + Programa Responsable + + + Certif. + + + + Direcc. + Config + + + Certif. Digitales +
-
- + {#if activeCompanyId} + + {/if}
diff --git a/frontend/src/routes/dashboard/general_catalogs/doda/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/doda/+page.server.ts index 6b220633..e3c9a28f 100644 --- a/frontend/src/routes/dashboard/general_catalogs/doda/+page.server.ts +++ b/frontend/src/routes/dashboard/general_catalogs/doda/+page.server.ts @@ -2,7 +2,7 @@ import type { PageServerLoad } from './$types'; import { getAuthTokens, authenticatedFetch } from '$lib/server/api'; export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { - await parent(); + const parentData = await parent(); const { accessToken } = getAuthTokens(cookies); if (!accessToken) { @@ -12,7 +12,12 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { try { const page = Number(url.searchParams.get('page')) || 1; const pageSize = Number(url.searchParams.get('pageSize')) || 50; - const companyId = url.searchParams.get('company_id') || cookies.get('active_company_id'); + + // Obtener company_id de la cookie o usar el primero disponible + const cookieCompanyId = cookies.get('active_company_id'); + const companyId = cookieCompanyId + ? parseInt(cookieCompanyId) + : parentData.companies?.[0]?.id; if (!companyId) { return { error: 'No company selected', dodas: { items: [], total: 0, page: 1, page_size: 50, pages: 0 } }; @@ -26,7 +31,7 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { const queryParams = new URLSearchParams({ page: page.toString(), page_size: pageSize.toString(), - company_id: companyId, + company_id: companyId.toString(), ...filters }); const response = await authenticatedFetch(`v1/a76/doda?${queryParams.toString()}`, { method: 'GET' }, cookies, fetch); diff --git a/frontend/src/routes/dashboard/general_catalogs/electronic_notices/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/electronic_notices/+page.server.ts index 5c862256..c801c44a 100644 --- a/frontend/src/routes/dashboard/general_catalogs/electronic_notices/+page.server.ts +++ b/frontend/src/routes/dashboard/general_catalogs/electronic_notices/+page.server.ts @@ -2,7 +2,7 @@ import type { PageServerLoad } from './$types'; import { getAuthTokens, authenticatedFetch } from '$lib/server/api'; export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { - await parent(); + const parentData = await parent(); const { accessToken } = getAuthTokens(cookies); if (!accessToken) { @@ -12,7 +12,12 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { try { const page = Number(url.searchParams.get('page')) || 1; const pageSize = Number(url.searchParams.get('pageSize')) || 50; - const companyId = url.searchParams.get('company_id') || cookies.get('active_company_id'); + + // Obtener company_id de la cookie o usar el primero disponible + const cookieCompanyId = cookies.get('active_company_id'); + const companyId = cookieCompanyId + ? parseInt(cookieCompanyId) + : parentData.companies?.[0]?.id; if (!companyId) { return { error: 'No company selected', notices: { items: [], total: 0, page: 1, page_size: 50, pages: 0 } }; @@ -28,7 +33,7 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { const queryParams = new URLSearchParams({ page: page.toString(), page_size: pageSize.toString(), - company_id: companyId, + company_id: companyId.toString(), ...filters }); const response = await authenticatedFetch(`v1/a76/electronic-notices?${queryParams.toString()}`, { method: 'GET' }, cookies, fetch); diff --git a/frontend/src/routes/dashboard/general_catalogs/equivalencies/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/equivalencies/+page.server.ts index efae176a..b1b1a5c7 100644 --- a/frontend/src/routes/dashboard/general_catalogs/equivalencies/+page.server.ts +++ b/frontend/src/routes/dashboard/general_catalogs/equivalencies/+page.server.ts @@ -2,7 +2,7 @@ import type { PageServerLoad } from './$types'; import { getAuthTokens, authenticatedFetch } from '$lib/server/api'; export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { - await parent(); + const parentData = await parent(); const { accessToken } = getAuthTokens(cookies); if (!accessToken) { @@ -12,7 +12,12 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { try { const page = Number(url.searchParams.get('page')) || 1; const pageSize = Number(url.searchParams.get('pageSize')) || 50; - const companyId = url.searchParams.get('company_id') || cookies.get('active_company_id'); + + // Obtener company_id de la cookie o usar el primero disponible + const cookieCompanyId = cookies.get('active_company_id'); + const companyId = cookieCompanyId + ? parseInt(cookieCompanyId) + : parentData.companies?.[0]?.id; if (!companyId) { return { error: 'No company selected', equivalencies: { items: [], total: 0, page: 1, page_size: 50, pages: 0 } }; @@ -28,7 +33,7 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { const queryParams = new URLSearchParams({ page: page.toString(), page_size: pageSize.toString(), - company_id: companyId, + company_id: companyId.toString(), ...filters }); diff --git a/frontend/src/routes/dashboard/general_catalogs/identifiers/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/identifiers/+page.server.ts index 06db1266..38a1865f 100644 --- a/frontend/src/routes/dashboard/general_catalogs/identifiers/+page.server.ts +++ b/frontend/src/routes/dashboard/general_catalogs/identifiers/+page.server.ts @@ -2,7 +2,7 @@ import type { PageServerLoad } from './$types'; import { getAuthTokens, authenticatedFetch } from '$lib/server/api'; export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { - await parent(); + const parentData = await parent(); const { accessToken } = getAuthTokens(cookies); if (!accessToken) { @@ -12,7 +12,12 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { try { const page = Number(url.searchParams.get('page')) || 1; const pageSize = Number(url.searchParams.get('pageSize')) || 50; - const companyId = url.searchParams.get('company_id') || cookies.get('active_company_id'); + + // Obtener company_id de la cookie o usar el primero disponible + const cookieCompanyId = cookies.get('active_company_id'); + const companyId = cookieCompanyId + ? parseInt(cookieCompanyId) + : parentData.companies?.[0]?.id; if (!companyId) { return { error: 'No company selected', identifiers: { items: [], total: 0, page: 1, page_size: 50, pages: 0 } }; @@ -28,11 +33,11 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { const queryParams = new URLSearchParams({ page: page.toString(), page_size: pageSize.toString(), - company_id: companyId, + company_id: companyId.toString(), ...filters }); - const response = await authenticatedFetch(`v1/a76/identifiers?${queryParams.toString()}`, { method: 'GET' }, cookies, fetch); + const response = await authenticatedFetch(`v1/a76/identifiers/?${queryParams.toString()}`, { method: 'GET' }, cookies, fetch); if (!response.ok) { return { error: 'Failed to load', identifiers: { items: [], total: 0, page, page_size: pageSize, pages: 0 } }; diff --git a/frontend/src/routes/dashboard/general_catalogs/inpc/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/inpc/+page.server.ts index f85f60f6..97c8b44a 100644 --- a/frontend/src/routes/dashboard/general_catalogs/inpc/+page.server.ts +++ b/frontend/src/routes/dashboard/general_catalogs/inpc/+page.server.ts @@ -2,7 +2,7 @@ import type { PageServerLoad } from './$types'; import { getAuthTokens, authenticatedFetch } from '$lib/server/api'; export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { - await parent(); + const parentData = await parent(); const { accessToken } = getAuthTokens(cookies); if (!accessToken) { @@ -12,7 +12,12 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { try { const page = Number(url.searchParams.get('page')) || 1; const pageSize = Number(url.searchParams.get('pageSize')) || 50; - const companyId = url.searchParams.get('company_id') || cookies.get('active_company_id'); + + // Obtener company_id de la cookie o usar el primero disponible + const cookieCompanyId = cookies.get('active_company_id'); + const companyId = cookieCompanyId + ? parseInt(cookieCompanyId) + : parentData.companies?.[0]?.id; if (!companyId) { return { error: 'No company selected', inpc: { items: [], total: 0, page: 1, page_size: 50, pages: 0 } }; @@ -28,7 +33,7 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { const queryParams = new URLSearchParams({ page: page.toString(), page_size: pageSize.toString(), - company_id: companyId, + company_id: companyId.toString(), ...filters }); diff --git a/frontend/src/routes/dashboard/general_catalogs/packages/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/packages/+page.server.ts index 5ca0c933..1d3f1082 100644 --- a/frontend/src/routes/dashboard/general_catalogs/packages/+page.server.ts +++ b/frontend/src/routes/dashboard/general_catalogs/packages/+page.server.ts @@ -59,7 +59,7 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { }); const response = await authenticatedFetch( - `v1/a76/packages?${queryParams.toString()}`, + `v1/a76/packages/?${queryParams.toString()}`, { method: 'GET' }, cookies, fetch diff --git a/frontend/src/routes/dashboard/general_catalogs/ports/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/ports/+page.server.ts index 3f8e57dd..917a60db 100644 --- a/frontend/src/routes/dashboard/general_catalogs/ports/+page.server.ts +++ b/frontend/src/routes/dashboard/general_catalogs/ports/+page.server.ts @@ -2,7 +2,8 @@ import { getServerApiUrl, getAuthTokens } from '$lib/server/api'; import type { PageServerLoad } from './$types'; import { redirect } from '@sveltejs/kit'; -export const load: PageServerLoad = async ({ cookies, fetch, url }) => { +export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { + const parentData = await parent(); const { accessToken } = getAuthTokens(cookies); if (!accessToken) { throw redirect(302, '/login'); @@ -10,7 +11,12 @@ export const load: PageServerLoad = async ({ cookies, fetch, url }) => { const page = Number(url.searchParams.get('page')) || 1; const pageSize = Number(url.searchParams.get('page_size')) || 50; - const companyId = url.searchParams.get('company_id') || cookies.get('active_company_id'); + + // Obtener company_id de la cookie o usar el primero disponible + const cookieCompanyId = cookies.get('active_company_id'); + const companyId = cookieCompanyId + ? parseInt(cookieCompanyId) + : parentData.companies?.[0]?.id; if (!companyId) { return { @@ -27,7 +33,7 @@ export const load: PageServerLoad = async ({ cookies, fetch, url }) => { const query = new URLSearchParams({ page: page.toString(), page_size: pageSize.toString(), - company_id: companyId + company_id: companyId.toString() }); const endpoint = `${apiUrl}v1/a76/ports?${query.toString()}`; diff --git a/frontend/src/routes/dashboard/general_catalogs/prevalidators/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/prevalidators/+page.server.ts index 7e18fd83..0f2da684 100644 --- a/frontend/src/routes/dashboard/general_catalogs/prevalidators/+page.server.ts +++ b/frontend/src/routes/dashboard/general_catalogs/prevalidators/+page.server.ts @@ -2,7 +2,7 @@ import type { PageServerLoad } from './$types'; import { getAuthTokens, authenticatedFetch } from '$lib/server/api'; export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { - await parent(); + const parentData = await parent(); const { accessToken } = getAuthTokens(cookies); if (!accessToken) { @@ -12,7 +12,12 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { try { const page = Number(url.searchParams.get('page')) || 1; const pageSize = Number(url.searchParams.get('pageSize')) || 50; - const companyId = url.searchParams.get('company_id') || cookies.get('active_company_id'); + + // Obtener company_id de la cookie o usar el primero disponible + const cookieCompanyId = cookies.get('active_company_id'); + const companyId = cookieCompanyId + ? parseInt(cookieCompanyId) + : parentData.companies?.[0]?.id; if (!companyId) { return { error: 'No company selected', prevalidators: { items: [], total: 0, page: 1, page_size: 50, pages: 0 } }; @@ -28,7 +33,7 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { const queryParams = new URLSearchParams({ page: page.toString(), page_size: pageSize.toString(), - company_id: companyId, + company_id: companyId.toString(), ...filters }); const response = await authenticatedFetch(`v1/a76/prevalidators?${queryParams.toString()}`, { method: 'GET' }, cookies, fetch); diff --git a/frontend/src/routes/dashboard/general_catalogs/sectors/+page.svelte b/frontend/src/routes/dashboard/general_catalogs/sectors/+page.svelte new file mode 100644 index 00000000..e91a0ce9 --- /dev/null +++ b/frontend/src/routes/dashboard/general_catalogs/sectors/+page.svelte @@ -0,0 +1,5 @@ + + + diff --git a/frontend/src/routes/dashboard/general_catalogs/signatures/+page.server.ts b/frontend/src/routes/dashboard/general_catalogs/signatures/+page.server.ts index 3a18dde6..35e6c600 100644 --- a/frontend/src/routes/dashboard/general_catalogs/signatures/+page.server.ts +++ b/frontend/src/routes/dashboard/general_catalogs/signatures/+page.server.ts @@ -2,7 +2,7 @@ import type { PageServerLoad } from './$types'; import { getAuthTokens, authenticatedFetch } from '$lib/server/api'; export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { - await parent(); + const parentData = await parent(); const { accessToken } = getAuthTokens(cookies); if (!accessToken) { @@ -12,7 +12,12 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { try { const page = Number(url.searchParams.get('page')) || 1; const pageSize = Number(url.searchParams.get('pageSize')) || 50; - const companyId = url.searchParams.get('company_id') || cookies.get('active_company_id'); + + // Obtener company_id de la cookie o usar el primero disponible + const cookieCompanyId = cookies.get('active_company_id'); + const companyId = cookieCompanyId + ? parseInt(cookieCompanyId) + : parentData.companies?.[0]?.id; if (!companyId) { return { error: 'No company selected', signatures: { items: [], total: 0, page: 1, page_size: 50, pages: 0 } }; @@ -23,7 +28,7 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { if (code) filters.code = code; - const queryParams = new URLSearchParams({ page: page.toString(), page_size: pageSize.toString(), company_id: companyId, ...filters }); + const queryParams = new URLSearchParams({ page: page.toString(), page_size: pageSize.toString(), company_id: companyId.toString(), ...filters }); const response = await authenticatedFetch(`v1/a76/signatures?${queryParams.toString()}`, { method: 'GET' }, cookies, fetch); if (!response.ok) { diff --git a/frontend/src/routes/dashboard/general_catalogs/tariff-fractions/+page.svelte b/frontend/src/routes/dashboard/general_catalogs/tariff-fractions/+page.svelte index a5abd0d8..9ad3119a 100644 --- a/frontend/src/routes/dashboard/general_catalogs/tariff-fractions/+page.svelte +++ b/frontend/src/routes/dashboard/general_catalogs/tariff-fractions/+page.svelte @@ -13,14 +13,15 @@ import { obtenerAtajosListaFracciones } from '$lib/config/shortcuts/dashboard/general_catalogs/tariff_fractions/list'; import { onMount } from 'svelte'; + // Estado let tariffFractions = $state([]); - let filteredFractions = $state([]); let searchQuery = $state(''); let isLoading = $state(false); let currentPage = $state(1); let totalPages = $state(1); let totalRecords = $state(0); const pageSize = 50; + let searchTimeout: NodeJS.Timeout; // Atajos useShortcuts( @@ -35,24 +36,24 @@ loadTariffFractions(); }); - // Filtrar fracciones cuando cambia la búsqueda + // Efecto para búsqueda con debounce $effect(() => { - if (searchQuery.trim() === '') { - filteredFractions = tariffFractions; - } else { - const query = searchQuery.toLowerCase(); - filteredFractions = tariffFractions.filter( - (fraction) => - fraction.code.toLowerCase().includes(query) || - fraction.fraction.toLowerCase().includes(query) || - (fraction.description ?? '').toLowerCase().includes(query) || - (fraction.nico ?? '').toLowerCase().includes(query) || - (fraction.umt ?? '').toLowerCase().includes(query) - ); - } + // Limpiar timeout anterior + clearTimeout(searchTimeout); + + // Setup nuevo timeout + searchTimeout = setTimeout(() => { + // Resetear a página 1 cuando cambia la búsqueda + if (currentPage !== 1) { + currentPage = 1; + } + loadTariffFractions(1, searchQuery); + }, 500); + + return () => clearTimeout(searchTimeout); }); - async function loadTariffFractions(page: number = 1) { + async function loadTariffFractions(page: number = 1, search: string = '') { const companyId = companyStore.activeCompany?.id; if (!companyId) { console.error('No hay compañía activa'); @@ -61,10 +62,15 @@ isLoading = true; try { - const response = await getTariffFractions(page, pageSize, companyId); + // Preparar filtros + const filters: Record = {}; + if (search.trim()) { + filters.search = search.trim(); + } + + const response = await getTariffFractions(page, pageSize, companyId, filters); if (response.data) { tariffFractions = response.data.items; - filteredFractions = response.data.items; totalPages = response.data.pages; totalRecords = response.data.total; currentPage = response.data.page; @@ -78,31 +84,31 @@ async function goToPage(page: number) { if (page >= 1 && page <= totalPages && page !== currentPage) { - await loadTariffFractions(page); + await loadTariffFractions(page, searchQuery); } }
- + Catálogo de Fracciones SITAR - SCAII -

Nomenclatura arancelaria mexicana completa

+

Nomenclatura arancelaria mexicana completa

-
-
+
+
@@ -120,13 +126,13 @@ Cargando...
{:else} - Mostrando {filteredFractions.length} de {totalRecords} fracciones arancelarias + Mostrando {tariffFractions.length} de {totalRecords} fracciones arancelarias {#if searchQuery} (filtrado) {/if} {/if}
- {#if !searchQuery && totalPages > 1} + {#if totalPages > 1}
Página {currentPage} de {totalPages}
@@ -134,9 +140,9 @@
-
+
- + Código Fracción @@ -148,9 +154,9 @@ - {#if filteredFractions.length === 0} + {#if tariffFractions.length === 0} - + {#if isLoading} Cargando fracciones arancelarias... {:else if searchQuery} @@ -161,7 +167,7 @@ {:else} - {#each filteredFractions as fraction (fraction.id)} + {#each tariffFractions as fraction (fraction.id)} {fraction.code} - {#if !searchQuery && totalPages > 1} + {#if totalPages > 1}
- -
-
Código Descripción
- - - - - - - - - - - - - {#if isLoading} + +
+
- - ClaseDescripción EspañolDescripción InglésTipoU.MFracción U.M.T. Fracción US
+ - + + + + + + + + + - {:else if filteredClasses.length === 0} - - - - {:else} - {#each filteredClasses as cls (cls.id)} - selectClass(cls)} - > - - - - - - - + + + {#if isLoading} + + - {/each} - {/if} - -
Cargando... + + ClaseDescripción EspañolDescripción InglésTipoU.MFracciónU.M.T.Fracción US
- No hay clases de activo fijo registradas -
- - - - {cls.class_code} - - {cls.description_es || ''}{cls.description_en || ''} - - {cls.material_key || ''} - - {cls.unit_of_measure || ''}{cls.fraction || ''} - {cls.us_fraction || '-'}
Cargando...
+ {:else if filteredClasses.length === 0} + + + No hay clases de activo fijo registradas + + + {:else} + {#each filteredClasses as cls (cls.id)} + selectClass(cls)} + > + + + + + + {cls.class_code} + + + {cls.description_es || ''} + {cls.description_en || ''} + + + {cls.material_key || ''} + + + {cls.unit_of_measure || ''} + {cls.fraction || ''} - + {cls.us_fraction || '-'} + + {/each} + {/if} + + +
-
-
-
-

Código de Clase

-

- {formData.class_code || '---'} -

-
+
+
+

+ Código de Clase +

+

+ {formData.class_code || '---'} +

+
-
-
-
- -

{formData.description_es || 'Sin descripción'}

-
-
- -

{formData.description_en || 'No translation available'}

-
+
+
+
+ +

+ {formData.description_es || 'Sin descripción'} +

- -
-
- -
- - {formData.material_key || '-'} -
-
-
- - {formData.unit_of_measure || '-'} -
-
- -
- -

- {formData.fraction || '0000.00.00'} +

+ +

+ {formData.description_en || 'No translation available'}

+ +
+
+ +
+ + {formData.material_key || '-'} +
+
+
+ + {formData.unit_of_measure || '-'} +
+
+ +
+ +

+ {formData.fraction || '0000.00.00'} +

+
+
-
-
+
+
- - - + +
- - + + {selectedClass ? 'Editar' : 'Nueva'} Clase de Activo Fijo - + {#if validationError} -
+
-
+
!
-

Error de Validación

-

{validationError}

+

Error de Validación

+

{validationError}

-
{/if} - +
- validationError = ''} + onClearError={() => (validationError = '')} onSave={async (data: Partial) => { // Evitar múltiples clics - if (isSaving) { + if (isSaving) { return; } isSaving = true; - validationError = ''; - + validationError = ''; + try { const cleanData = $state.snapshot(data); const companyId = companyStore.activeCompany?.id; - + if (!companyId) { throw new Error('No hay empresa seleccionada'); } let response; - + if (selectedClass?.id) { - // === ACTUALIZACIÓN === - - response = await classesApi.update(selectedClass.id, { - class_code: cleanData.class_code?.trim() || '', - description_es: cleanData.description_es?.trim() || '', - description_en: cleanData.description_en?.trim() || '', - material_key: cleanData.material_key?.trim() || '', - unit_of_measure: cleanData.unit_of_measure?.trim() || '', - fraction: cleanData.fraction?.trim() || '', - us_fraction: cleanData.us_fraction || '', - physical_review: cleanData.physical_review ? 1 : 0, - iva_exempt_fraction: cleanData.iva_exempt_fraction || '' - }, companyId); - + // === ACTUALIZACIÓN === + + response = await classesApi.update( + selectedClass.id, + { + class_code: cleanData.class_code?.trim() || '', + description_es: cleanData.description_es?.trim() || '', + description_en: cleanData.description_en?.trim() || '', + material_key: cleanData.material_key?.trim() || '', + unit_of_measure: cleanData.unit_of_measure?.trim() || '', + fraction: cleanData.fraction?.trim() || '', + us_fraction: cleanData.us_fraction || '', + physical_review: cleanData.physical_review ? 1 : 0, + iva_exempt_fraction: cleanData.iva_exempt_fraction || '' + }, + companyId + ); + // ¡IMPORTANTE! fetchApi NO lanza excepciones, retorna { error, status } if (response.error) { console.error('❌ Error en respuesta de actualización:', response); throw new Error(response.error); } - } else { - // === CREACIÓN === - const payload = { + // === CREACIÓN === + const payload = { class_code: cleanData.class_code?.trim() || '', description_es: cleanData.description_es?.trim() || '', description_en: cleanData.description_en?.trim() || '', @@ -748,24 +773,25 @@ depreciation_rate: cleanData.depreciation_rate || null, fda_code: cleanData.fda_code || null, class_enabled: true - }; - + }; + response = await classesApi.createFA(payload, companyId); - + if (response.error) { console.error('❌ Error del servidor:', response.error); throw new Error(response.error); - } + } } - // === ÉXITO TOTAL === + // === ÉXITO TOTAL === const wasUpdate = !!selectedClass?.id; await loadClasses(); showInsertDialog = false; selectedClass = null; validationError = ''; - toast.success(wasUpdate ? 'Clase actualizada correctamente' : 'Clase creada correctamente'); - + toast.success( + wasUpdate ? 'Clase actualizada correctamente' : 'Clase creada correctamente' + ); } catch (error: any) { // === ERROR === console.error('========================================'); @@ -775,9 +801,9 @@ console.error('Error.response.data:', error?.response?.data); console.error('Error.detail:', error?.detail); console.error('========================================'); - + let errorMsg = 'Error al guardar'; - + // Primero intentar con error.detail (fetch directo) if (error?.detail) { if (typeof error.detail === 'string') { @@ -798,41 +824,48 @@ else if (error?.message) { errorMsg = error.message; } - + console.error('📝 Mensaje de error extraído:', errorMsg); - + validationError = errorMsg; console.error('🔴 validationError asignado:', validationError); console.error('🔴 showInsertDialog permanece:', showInsertDialog); console.error('========================================'); - + // NO cerramos el diálogo, permanece abierto } finally { - isSaving = false; + isSaving = false; } }} - onCancel={() => { + onCancel={() => { showInsertDialog = false; selectedClass = null; }} />
- - - + @@ -848,17 +881,17 @@

- ¿Estás seguro que deseas eliminar la clase {selectedClass?.class_code}? + ¿Estás seguro que deseas eliminar la clase {selectedClass?.class_code}?

-

+

{selectedClass?.description_es}

-

- Esta acción no se puede deshacer. -

+

Esta acción no se puede deshacer.

- + diff --git a/frontend/src/routes/dashboard/goods/parts/+page.svelte.backup b/frontend/src/routes/dashboard/goods/parts/+page.svelte.backup deleted file mode 100644 index dae74cc6..00000000 --- a/frontend/src/routes/dashboard/goods/parts/+page.svelte.backup +++ /dev/null @@ -1,184 +0,0 @@ - - -
-
-
-

Catálogo de Partes

-

Gestiona las partes y componentes del sistema.

-
-
- - -
-
- - - - Búsqueda Rápida - Ingresa el número de parte o descripción para filtrar. - - -
-
- e.key === 'Enter' && handleSearch()} - /> -
- - - {#if isSearching || searchCode} - - {/if} -
-
-
- - - - - {#if isSearching} - Resultados de la búsqueda ({searchResults.length}) - {:else} - Listado General ({partsList.length} registros) - {/if} - - - - {#if listError} -
- {listError} -
- {/if} - - {}} - /> -
-
-
\ No newline at end of file diff --git a/frontend/src/routes/dashboard/invoices/+page.svelte b/frontend/src/routes/dashboard/invoices/+page.svelte index 1b14ae64..c09cd9e3 100644 --- a/frontend/src/routes/dashboard/invoices/+page.svelte +++ b/frontend/src/routes/dashboard/invoices/+page.svelte @@ -190,8 +190,7 @@ selectedInvoiceId = null; } else { selectedInvoiceId = invoice.id; - } - console.log('Selected Invoice ID:', selectedInvoiceId); + } } const selectedInvoice = $derived( diff --git a/frontend/src/routes/dashboard/invoices/edit/[id]/+page.server.ts b/frontend/src/routes/dashboard/invoices/edit/[id]/+page.server.ts index 6efe0aff..eb71d203 100644 --- a/frontend/src/routes/dashboard/invoices/edit/[id]/+page.server.ts +++ b/frontend/src/routes/dashboard/invoices/edit/[id]/+page.server.ts @@ -26,358 +26,110 @@ export const load: PageServerLoad = async ({ params, cookies, fetch, url }) => { parsedOperationType = operationTypeParam; } - // Cargar datos de referencia necesarios - const invoiceTypesPromise = authenticatedFetch( - 'v1/public/reference_data/invoice-types/?page=1&page_size=100', - {}, - cookies, - fetch - ); + try { + let invoiceData: any = null; + let catalogsData: any = {}; + let defaultSettings: any = null; + let isCreate = false; - const customsBrokersPromise = authenticatedFetch( - `v1/a76/customs-brokers/?company_id=${companyId}&page=1&page_size=100`, - {}, - cookies, - fetch - ); + // Fetch Default Settings separately if applicable (for creation) + const settingsPromise = (params.id === 'new' && parsedOperationType && invoiceTypeParam && companyId) + ? authenticatedFetch( + `v1/a76/invoice-settings/${invoiceTypeParam}?operation_type=${parsedOperationType}&company_id=${companyId}`, + {}, + cookies, + fetch + ).then(res => res.ok ? res.json() : null).catch(err => { + console.error('Error fetching defaults:', err); + return null; + }) + : Promise.resolve(null); - // Cargar clientes y proveedores - const clientsPromise = authenticatedFetch( - `v1/a76/clients-providers/?company_id=${companyId}&type=client&page=1&page_size=1000`, - {}, - cookies, - fetch - ); - const providersPromise = authenticatedFetch( - `v1/a76/clients-providers/?company_id=${companyId}&type=provider&page=1&page_size=1000`, - {}, - cookies, - fetch - ); - - // Cargar tipos de moneda, transporte, etc. - const currencyTypesPromise = authenticatedFetch( - 'v1/public/reference_data/currency-types/?page=1&page_size=100', - {}, - cookies, - fetch - ); - - const transportTypesPromise = authenticatedFetch( - 'v1/public/reference_data/transport-types/?page=1&page_size=100', - {}, - cookies, - fetch - ); - - const transportersPromise = authenticatedFetch( - `v1/a76/transportation/transporters/?company_id=${companyId}&page=1&page_size=100`, - {}, - cookies, - fetch - ); - - const vehiclesPromise = authenticatedFetch( - `v1/a76/transportation/vehicles/?company_id=${companyId}&page=1&page_size=100`, - {}, - cookies, - fetch - ); - - const driversPromise = authenticatedFetch( - `v1/a76/transportation/drivers/?company_id=${companyId}`, - {}, - cookies, - fetch - ); - - const trailersPromise = authenticatedFetch( - `v1/a76/transportation/trailers/?company_id=${companyId}&page=1&page_size=100`, - {}, - cookies, - fetch - ); - - const customsSectionsPromise = authenticatedFetch( - 'v1/public/reference_data/customs-sections/?page=1&page_size=100', - {}, - cookies, - fetch - ); - - const codePedimentoRegimensPromise = authenticatedFetch( - 'v1/public/reference_data/code-pedimento-regimens/?page=1&page_size=1000', - {}, - cookies, - fetch - ); - - const sealsPromise = authenticatedFetch( - `v1/a76/seals/?company_id=${companyId}&page=1&page_size=100`, - {}, - cookies, - fetch - ); - - const incotermsPromise = authenticatedFetch( - 'v1/public/reference_data/incoterms/?page=1&page_size=100', - {}, - cookies, - fetch - ); - - const pedimentosPromise = authenticatedFetch( - `v1/a76/pedimentos/?company_id=${companyId}&page=1&page_size=100`, - {}, - cookies, - fetch - ); - - const transportModesPromise = authenticatedFetch( - 'v1/public/reference_data/transport-modes/?page=1&page_size=100', - {}, - cookies, - fetch - ); - - // Si el ID es "new", es una creación - if (params.id === 'new') { - try { - // Fetch default settings if type, operation and company are present - const settingsPromise = (parsedOperationType && invoiceTypeParam && companyId) - ? authenticatedFetch( - `v1/a76/invoice-settings/${invoiceTypeParam}?operation_type=${parsedOperationType}&company_id=${companyId}`, + if (params.id === 'new') { + isCreate = true; + // Call Consolidated Creation Endpoint + const [creationResponse, settingsResult] = await Promise.all([ + authenticatedFetch( + `v1/a76/invoices/creation-data?company_id=${companyId}`, {}, cookies, fetch - ).catch((err) => { - console.error('Error fetching defaults in server load:', err); - return null; - }) - : Promise.resolve(null); - - const [ - invoiceTypesResponse, - customsBrokersResponse, - clientsResponse, - providersResponse, - currencyTypesResponse, - transportTypesResponse, - transportersResponse, - vehiclesResponse, - driversResponse, - trailersResponse, - customsSectionsResponse, - codePedimentoRegimensResponse, - sealsResponse, - incotermsResponse, - pedimentosResponse, - transportModesResponse, - settingsResponse - ] = await Promise.all([ - invoiceTypesPromise, - customsBrokersPromise, - clientsPromise, - providersPromise, - currencyTypesPromise, - transportTypesPromise, - transportersPromise, - vehiclesPromise, - driversPromise, - trailersPromise, - customsSectionsPromise, - codePedimentoRegimensPromise, - sealsPromise, - incotermsPromise, - pedimentosPromise, - transportModesPromise, + ), settingsPromise ]); - const invoiceTypes = invoiceTypesResponse.ok ? await invoiceTypesResponse.json() : { items: [] }; - const customsBrokers = customsBrokersResponse.ok ? await customsBrokersResponse.json() : { items: [] }; - const clients = clientsResponse.ok ? await clientsResponse.json() : { items: [] }; - const providers = providersResponse.ok ? await providersResponse.json() : { items: [] }; - const currencyTypes = currencyTypesResponse.ok ? await currencyTypesResponse.json() : { items: [] }; - const transportTypes = transportTypesResponse.ok ? await transportTypesResponse.json() : { items: [] }; - const transporters = transportersResponse.ok ? await transportersResponse.json() : { items: [] }; - const vehicles = vehiclesResponse.ok ? await vehiclesResponse.json() : { items: [] }; - const drivers = driversResponse.ok ? await driversResponse.json() : { items: [] }; - const trailers = trailersResponse.ok ? await trailersResponse.json() : { items: [] }; - const customsSections = customsSectionsResponse.ok ? await customsSectionsResponse.json() : { items: [] }; - const codePedimentoRegimens = codePedimentoRegimensResponse.ok ? await codePedimentoRegimensResponse.json() : { items: [] }; - const seals = sealsResponse.ok ? await sealsResponse.json() : { items: [] }; - const incoterms = incotermsResponse.ok ? await incotermsResponse.json() : { items: [] }; - const pedimentos = pedimentosResponse.ok ? await pedimentosResponse.json() : { items: [] }; - const transportModes = transportModesResponse.ok ? await transportModesResponse.json() : { items: [] }; - - let defaultSettings = null; - if (settingsResponse && settingsResponse.ok) { - const settingsData = await settingsResponse.json(); - defaultSettings = settingsData.settings || null; + if (creationResponse.ok) { + catalogsData = await creationResponse.json(); + } else { + console.error('Error fetching creation data:', creationResponse.status); + // We continuing with empty catalogs might be better than crashing? + // But UI will likely be broken. Let's rely on empty arrays initialization below. } - return { - invoice: null, - invoiceId: null, - isCreate: true, - invoiceTypes: invoiceTypes.items || [], - customsBrokers: customsBrokers.items || [], - clients: clients.items || [], - providers: providers.items || [], - currencyTypes: currencyTypes.items || [], - transportTypes: transportTypes.items || [], - transporters: transporters.items || [], - vehicles: vehicles.items || [], - drivers: drivers.items || [], - trailers: trailers.items || [], - customsSections: customsSections.items || [], - codePedimentoRegimens: codePedimentoRegimens.items || [], - seals: seals.items || [], - incoterms: incoterms.items || [], - pedimentos: pedimentos.items || [], - transportModes: transportModes.items || [], - defaultSettings, - // Filtros desde query parameters para preselección - filters: { - operation_type: parsedOperationType, - invoice_type: invoiceTypeParam || null + if (settingsResult && settingsResult.settings) { + defaultSettings = settingsResult.settings; + } + + } else { + // Edition Mode + const invoiceId = parseInt(params.id); + if (isNaN(invoiceId)) { + throw error(400, 'ID de factura inválido'); + } + + // Call Consolidated Edition Endpoint + const editionResponse = await authenticatedFetch( + `v1/a76/invoices/${invoiceId}/edition-data?company_id=${companyId}`, + {}, + cookies, + fetch + ); + + if (!editionResponse.ok) { + if (editionResponse.status === 404) { + throw error(404, 'Factura no encontrada'); } - }; - } catch (err) { - console.error('Error loading data for new invoice:', err); - // En caso de error, devolver estructura mínima para que la página pueda cargar - return { - invoice: null, - invoiceId: null, - isCreate: true, - invoiceTypes: [], - customsBrokers: [], - clients: [], - providers: [], - currencyTypes: [], - transportTypes: [], - transporters: [], - vehicles: [], - drivers: [], - trailers: [], - customsSections: [], - codePedimentoRegimens: [], - seals: [], - incoterms: [], - pedimentos: [], - transportModes: [], - filters: { - operation_type: parsedOperationType, - invoice_type: invoiceTypeParam || null - } - }; - } - } + throw error(editionResponse.status, 'Error al cargar la factura'); + } - const invoiceId = parseInt(params.id); - if (isNaN(invoiceId)) { - throw error(400, 'ID de factura inválido'); - } - - try { - // Cargar la factura desde el backend - const response = await authenticatedFetch( - `v1/a76/invoices/${invoiceId}?company_id=${companyId}`, - {}, - cookies, - fetch - ); - - if (!response.ok) { - throw error(response.status, 'Error al cargar la factura'); + const editionData = await editionResponse.json(); + catalogsData = editionData; // It includes catalogs + invoice + invoiceData = editionData.invoice; } - const invoice = await response.json(); - - // Cargar también los datos de referencia para edición - const [ - invoiceTypesResponse, - customsBrokersResponse, - clientsResponse, - providersResponse, - currencyTypesResponse, - transportTypesResponse, - transportersResponse, - vehiclesResponse, - driversResponse, - trailersResponse, - customsSectionsResponse, - codePedimentoRegimensResponse, - sealsResponse, - incotermsResponse, - pedimentosResponse, - transportModesResponse - ] = await Promise.all([ - invoiceTypesPromise, - customsBrokersPromise, - clientsPromise, - providersPromise, - currencyTypesPromise, - transportTypesPromise, - transportersPromise, - vehiclesPromise, - driversPromise, - trailersPromise, - customsSectionsPromise, - codePedimentoRegimensPromise, - sealsPromise, - incotermsPromise, - pedimentosPromise, - transportModesPromise - ]); - - const invoiceTypes = invoiceTypesResponse.ok ? await invoiceTypesResponse.json() : { items: [] }; - const customsBrokers = customsBrokersResponse.ok ? await customsBrokersResponse.json() : { items: [] }; - const clients = clientsResponse.ok ? await clientsResponse.json() : { items: [] }; - const providers = providersResponse.ok ? await providersResponse.json() : { items: [] }; - const currencyTypes = currencyTypesResponse.ok ? await currencyTypesResponse.json() : { items: [] }; - const transportTypes = transportTypesResponse.ok ? await transportTypesResponse.json() : { items: [] }; - const transporters = transportersResponse.ok ? await transportersResponse.json() : { items: [] }; - const vehicles = vehiclesResponse.ok ? await vehiclesResponse.json() : { items: [] }; - const drivers = driversResponse.ok ? await driversResponse.json() : { items: [] }; - const trailers = trailersResponse.ok ? await trailersResponse.json() : { items: [] }; - const customsSections = customsSectionsResponse.ok ? await customsSectionsResponse.json() : { items: [] }; - const codePedimentoRegimens = codePedimentoRegimensResponse.ok ? await codePedimentoRegimensResponse.json() : { items: [] }; - const seals = sealsResponse.ok ? await sealsResponse.json() : { items: [] }; - const incoterms = incotermsResponse.ok ? await incotermsResponse.json() : { items: [] }; - const pedimentos = pedimentosResponse.ok ? await pedimentosResponse.json() : { items: [] }; - const transportModes = transportModesResponse.ok ? await transportModesResponse.json() : { items: [] }; - + // Map snake_case response to camelCase props expected by Svelte Page + // Providing empty arrays as defaults if something is missing return { - invoice, - invoiceId, - isCreate: false, - invoiceTypes: invoiceTypes.items || [], - customsBrokers: customsBrokers.items || [], - clients: clients.items || [], - providers: providers.items || [], - currencyTypes: currencyTypes.items || [], - transportTypes: transportTypes.items || [], - transporters: transporters.items || [], - vehicles: vehicles.items || [], - drivers: drivers.items || [], - trailers: trailers.items || [], - customsSections: customsSections.items || [], - codePedimentoRegimens: codePedimentoRegimens.items || [], - seals: seals.items || [], - incoterms: incoterms.items || [], - pedimentos: pedimentos.items || [], - transportModes: transportModes.items || [], - // Filtros desde query parameters para preselección + invoice: invoiceData, + invoiceId: params.id === 'new' ? null : parseInt(params.id), + isCreate: isCreate, + invoiceTypes: catalogsData.invoice_types || [], + customsBrokers: catalogsData.customs_brokers || [], + clients: catalogsData.clients || [], + providers: catalogsData.providers || [], + currencyTypes: catalogsData.currency_types || [], + transportTypes: catalogsData.transport_types || [], + transporters: catalogsData.transporters || [], + vehicles: catalogsData.vehicles || [], + drivers: catalogsData.drivers || [], + trailers: catalogsData.trailers || [], + customsSections: catalogsData.customs_sections || [], + codePedimentoRegimens: catalogsData.code_pedimento_regimens || [], + seals: catalogsData.seals || [], + incoterms: catalogsData.incoterms || [], + pedimentos: catalogsData.pedimentos || [], + transportModes: catalogsData.transport_modes || [], + defaultSettings: defaultSettings, filters: { operation_type: parsedOperationType, invoice_type: invoiceTypeParam || null } }; - } catch (err) { - console.error('Error loading invoice:', err); - throw error(500, 'Error al cargar la factura'); + + } catch (err: any) { + console.error('Error in load function:', err); + if (err && err.status === 404) throw err; // Propagate 404 + throw error(500, 'Error interno al cargar la página'); } }; diff --git a/frontend/src/routes/dashboard/invoices/edit/[id]/+page.svelte b/frontend/src/routes/dashboard/invoices/edit/[id]/+page.svelte index 4b41e85f..506ec342 100644 --- a/frontend/src/routes/dashboard/invoices/edit/[id]/+page.svelte +++ b/frontend/src/routes/dashboard/invoices/edit/[id]/+page.svelte @@ -38,6 +38,7 @@ import ExchangeRateDialog from '$lib/components/dashboard/exchange_rate/create-edit-dialog.svelte'; import { useShortcuts } from '$lib/hooks/use-shortcuts'; import { obtenerAtajosEdicionFactura } from '$lib/config/shortcuts/dashboard/invoices/edit'; + import { api } from '$lib/api'; // Cargar companyStore solo en el cliente - no usamos sidebar en esta página let companyStore: any = $state(undefined); @@ -221,29 +222,199 @@ return { ...skeleton, ...filtered }; } + // Función para mapear la factura existente a los formData + function mapInvoiceToTopFields(invoice: any) { + if (!invoice) return topFieldsSkeleton; + + let operationType: string | null = null; + if (invoice.operation_type) { + operationType = invoice.operation_type; + } else if (data.filters?.operation_type !== undefined) { + operationType = data.filters.operation_type ?? null; + } + + return { + is_pedimento_pending: invoice.compliance_mx?.is_pedimento_pending || false, + pedimento_id: invoice.compliance_mx?.pedimento_id || '', + remesa: invoice.compliance_mx?.remesa || '', + invoice_number: invoice.invoice_number || '', + invoice_date: invoice.invoice_date || new Date().toISOString().split('T')[0], + emission_date: invoice.emission_date || new Date().toISOString().split('T')[0], + operation_type: operationType, + invoice_type: invoice.invoice_type || (data.filters?.invoice_type ?? ''), + fecha_pedimento_del: '', + fecha_pedimento_al: '', + clave_pedimento: '', + regimen_pedimento: '' + }; + } + + function mapInvoiceToGeneral(invoice: any) { + if (!invoice) return generalSkeleton; + + return { + provider_header: invoice.compliance_mx?.provider_header || 'proveedor', + provider_id: invoice.compliance_mx?.provider_id || null, + sold_to_header: invoice.compliance_mx?.sold_to_header || 'consignado_a', + sold_to_id: invoice.compliance_mx?.sold_to_id || null, + shipped_to_header: invoice.compliance_mx?.shipped_to_header || 'enviado_a', + shipped_to_id: invoice.compliance_mx?.shipped_to_id || null, + customs_broker_id: invoice.compliance_mx?.customs_broker_id || null, + customs_broker_us_id: invoice.compliance_mx?.customs_broker_us_id || null, + currency_type: invoice.financials?.currency_type || '', + currency: invoice.financials?.currency || 'foreign', + exchange_rate: invoice.financials?.exchange_rate || null, + weight_type: 'kgs', + iva_factor: invoice.financials?.iva_factor || null, + carrier_id: invoice.logistics?.carrier_id || null, + transport_id: invoice.logistics?.transport_id || '', + driver_name: invoice.logistics?.driver_name || '', + transport_type: invoice.logistics?.transport_type || '', + transport_num: invoice.logistics?.vehicle_num || '', + aduana: invoice.compliance_mx?.aduana || '', + document_type: invoice.document_type || '' + }; + } + + function mapInvoiceToObservations(invoice: any) { + if (!invoice) return observationSkeleton; + + return { + observation_es: invoice.observation_es || '', + observation_en: invoice.observation_en || '', + freight: invoice.financials?.freight || null, + insurance_value: invoice.financials?.insurance_value || null, + insurance: invoice.financials?.insurance || null, + packaging: invoice.financials?.packaging || null, + other_increments: invoice.financials?.other_increments || null, + total_increments_mn: invoice.financials?.total_increments_mn || null, + total_increments_me: invoice.financials?.total_increments_me || null, + incoterm: invoice.logistics?.incoterm || null, + enclosure: invoice.compliance_mx?.enclosure || null, + num_seals: null, + movement_type: invoice.compliance_mx?.movement_type || '', + alternate_invoice: invoice.alternate_invoice || '', + valuation_method: invoice.compliance_mx?.value_method || null + }; + } + + function mapInvoiceToItems(invoice: any) { + if (!invoice) return ensureItemsFormData(null); + + return { + items: invoice.items || [] + }; + } + + function mapInvoiceToOthers(invoice: any) { + if (!invoice) return othersSkeleton; + + return { + comments_status: invoice.comments_status || '', + transport_mode: invoice.logistics?.transport_mode || 'TRUCK', + is_mixed: invoice.compliance_mx?.is_mixed || false, + print_stamp: invoice.print_stamp || false, + rule_3121_parties_ii: invoice.compliance_mx?.rule_3121_parties_ii || false, + related_doc_id: invoice.related_doc_id || null, + code_signature: invoice.compliance_mx?.code_signature || '', + electronic_signature: invoice.compliance_mx?.electronic_signature || '', + mandatory_person: invoice.compliance_mx?.mandatory_person || '', + contingency_mode: invoice.compliance_mx?.contingency_mode || false, + cove: invoice.compliance_mx?.cove || '', + operation_num: invoice.compliance_mx?.operation_num || '', + adendas: invoice.compliance_mx?.adendas || '', + observations_vu: invoice.compliance_mx?.observations_vu || '', + certified_number: invoice.compliance_mx?.certified_number || '', + bill_number: invoice.logistics?.bill_number || '', + guide_number: invoice.logistics?.guide_number || '', + shipment_number: invoice.logistics?.shipment_number || '', + option_iv18: invoice.compliance_mx?.option_iv18 || '', + delivered_status: invoice.delivered_status || false, + received_by: invoice.received_by || '', + delivery_date: invoice.delivery_date || '' + }; + } + + function mapInvoiceToContinuation(invoice: any) { + if (!invoice) return continuationSkeleton; + + return { + numero_tipo_transporte: invoice.logistics?.numero_tipo_transporte || '', + es_ferrocarril: invoice.logistics?.es_ferrocarril || 'no', + numero_bl: invoice.logistics?.numero_bl || '', + cantidad_guias_embarque: invoice.logistics?.cantidad_guias_embarque || null, + destino_origen: invoice.logistics?.destino_origen || '', + puerto_entrada: invoice.logistics?.puerto_entrada || '', + vehicle_data: invoice.logistics?.vehicle_data || '', + fue_revisado_equipo: invoice.logistics?.fue_revisado_equipo || false, + sub_division: invoice.compliance_mx?.subdivision || false, + funge_como_cd: invoice.logistics?.acts_as_cd || false, + llego_pedimento: invoice.compliance_mx?.llego_pedimento || false, + errores_facturacion: invoice.errores_facturacion || [], + semaforo_verde_aduana_mexicana: invoice.compliance_mx?.semaforo_verde_aduana_mexicana || false, + semaforo_verde_aduana_americana: invoice.compliance_mx?.semaforo_verde_aduana_americana || false, + semaforo_rojo_aduana_mexicana: invoice.compliance_mx?.semaforo_rojo_aduana_mexicana || false, + semaforo_rojo_aduana_americana: invoice.compliance_mx?.semaforo_rojo_aduana_americana || false, + is_mixed: invoice.compliance_mx?.is_mixed || false, + reason_export: invoice.compliance_mx?.reason_export || '1', + purchase_order: invoice.purchase_order || '', + payment_terms: invoice.payment_terms || '', + handling_fees: invoice.financials?.handling_fees || 0, + cfdi_uuid: invoice.cfdi_uuid || '', + path_pdf: invoice.path_pdf || '', + path_xml: invoice.path_xml || '' + }; + } + // Referencias a los componentes de formulario para obtener sus datos + // Si estamos en modo edición (!data.isCreate) y tenemos una factura, usarla + // Si estamos en modo creación, usar defaultSettings let InvoiceTopFieldsFormData = $state( - mergeDefaults(topFieldsSkeleton, data.defaultSettings?.InvoiceTopFieldsFormData) + !data.isCreate && data.invoice + ? mapInvoiceToTopFields(data.invoice) + : mergeDefaults(topFieldsSkeleton, data.defaultSettings?.InvoiceTopFieldsFormData) ); let generalFormData = $state( - mergeDefaults(generalSkeleton, data.defaultSettings?.generalFormData) + !data.isCreate && data.invoice + ? mapInvoiceToGeneral(data.invoice) + : mergeDefaults(generalSkeleton, data.defaultSettings?.generalFormData) ); let observationFormData = $state( - mergeDefaults(observationSkeleton, data.defaultSettings?.observationFormData) + !data.isCreate && data.invoice + ? mapInvoiceToObservations(data.invoice) + : mergeDefaults(observationSkeleton, data.defaultSettings?.observationFormData) + ); + let itemsFormData = $state( + !data.isCreate && data.invoice + ? mapInvoiceToItems(data.invoice) + : ensureItemsFormData(data.defaultSettings?.itemsFormData) ); - let itemsFormData = $state(ensureItemsFormData(data.defaultSettings?.itemsFormData)); let othersFormData = $state( - mergeDefaults(othersSkeleton, data.defaultSettings?.othersFormData) + !data.isCreate && data.invoice + ? mapInvoiceToOthers(data.invoice) + : mergeDefaults(othersSkeleton, data.defaultSettings?.othersFormData) ); let continuationFormData = $state( - mergeDefaults(continuationSkeleton, data.defaultSettings?.continuationFormData) + !data.isCreate && data.invoice + ? mapInvoiceToContinuation(data.invoice) + : mergeDefaults(continuationSkeleton, data.defaultSettings?.continuationFormData) ); // Estados para saber si existen datos previos - let observationExists = $state(!!data.defaultSettings?.observationFormData); - let itemsExists = $state(!!(data.defaultSettings?.itemsFormData?.items?.length)); - let othersExists = $state(!!data.defaultSettings?.othersFormData); - let continuationExists = $state(!!data.defaultSettings?.continuationFormData); + let observationExists = $state( + !data.isCreate ? !!data.invoice : !!data.defaultSettings?.observationFormData + ); + let itemsExists = $state( + !data.isCreate + ? !!(data.invoice?.items && data.invoice.items.length > 0) + : !!data.defaultSettings?.itemsFormData?.items?.length + ); + let othersExists = $state( + !data.isCreate ? !!data.invoice : !!data.defaultSettings?.othersFormData + ); + let continuationExists = $state( + !data.isCreate ? !!data.invoice : !!data.defaultSettings?.continuationFormData + ); let calculatedExchangeRate = $state( data.invoice?.financials?.exchange_rate ?? null @@ -313,8 +484,7 @@ const actualResponse = response as any; const items = actualResponse.data?.items || []; - if (items.length === 0) { - console.log('No exchange rate found for', date); + if (items.length === 0) { if (!uiStore.isExchangeRateDialogOpen) { missingExchangeRateDate = date; showExchangeRateDialog = true; @@ -525,7 +695,7 @@ } let isLoadingDefaults = $state(false); - + // Compute initial key from source data to avoid state reference warning const initialLoadedKey = data.defaultSettings?.InvoiceTopFieldsFormData ? `${data.defaultSettings.InvoiceTopFieldsFormData.invoice_type || ''}-${data.defaultSettings.InvoiceTopFieldsFormData.operation_type || ''}` @@ -552,22 +722,12 @@ isLoadingDefaults = true; try { - const token = data.user?.token; - const headers: HeadersInit = { - 'Content-Type': 'application/json' - }; - if (token) { - headers['Authorization'] = `Bearer ${token}`; - } - - const res = await fetch( - `/api/v1/a76/invoice-settings/${InvoiceTopFieldsFormData.invoice_type}?operation_type=${InvoiceTopFieldsFormData.operation_type}&company_id=${companyStore.activeCompany.id}`, - { headers } + const res = await api.get( + `/v1/a76/invoice-settings/${InvoiceTopFieldsFormData.invoice_type}?operation_type=${InvoiceTopFieldsFormData.operation_type}&company_id=${companyStore.activeCompany.id}` ); - if (res.ok) { - const settingsData = await res.json(); - const settings = settingsData.settings || {}; + if (!res.error && res.data) { + const settings = res.data.settings || {}; // Mark as loaded even if empty to prevent retries for the same combination lastLoadedKey = currentKey; @@ -593,7 +753,7 @@ InvoiceTopFieldsFormData.operation_type || data.filters?.operation_type; observationExists = !!settings.observationFormData; - itemsExists = !!(itemsFormData.items?.length); + itemsExists = !!itemsFormData.items?.length; othersExists = !!settings.othersFormData; continuationExists = !!settings.continuationFormData; diff --git a/frontend/src/routes/dashboard/invoices/items/presets/+page.svelte b/frontend/src/routes/dashboard/invoices/items/presets/+page.svelte index d9192f2e..3fc358b1 100644 --- a/frontend/src/routes/dashboard/invoices/items/presets/+page.svelte +++ b/frontend/src/routes/dashboard/invoices/items/presets/+page.svelte @@ -153,17 +153,13 @@ function handleAddItem() { isItemEditMode = false; editingItemIndex = null; - editingItem = { - lines: [ - { - line_number: (selectedPreset.items?.length || 0) + 1, - quantity: { quantity: 1 }, - financial: { unit_cost_usd: 0 }, - customs: {}, - description: {}, - reference: {} - } - ] + editingItem = { + line_number: (selectedPreset.items?.length || 0) + 1, + quantity: { quantity: 1 }, + financial: { unit_cost_usd: 0 }, + customs: {}, + description: {}, + reference: {} }; showItemSheet = true; } @@ -463,7 +459,7 @@
- {item.lines?.[0]?.description?.description_spanish || 'Sin descripción'} + {item?.description?.description_spanish || 'Sin descripción'} {#if item.reference_number} @@ -473,12 +469,12 @@
{item.lines?.[0]?.quantity?.quantity || 0}{item?.quantity?.quantity || 0} - ${(item.lines?.[0]?.financial?.unit_cost_usd || 0).toLocaleString()} + ${(item?.financial?.unit_cost_usd || 0).toLocaleString()}
@@ -496,7 +492,7 @@ onclick={() => handleDeleteItem(i)} class="h-8 w-8 text-zinc-500 hover:text-destructive" > - +
diff --git a/frontend/src/routes/dashboard/pedimentos/edit/[id]/+page.server.ts b/frontend/src/routes/dashboard/pedimentos/edit/[id]/+page.server.ts index 2df3627f..2a67bd94 100644 --- a/frontend/src/routes/dashboard/pedimentos/edit/[id]/+page.server.ts +++ b/frontend/src/routes/dashboard/pedimentos/edit/[id]/+page.server.ts @@ -16,72 +16,44 @@ export const load: PageServerLoad = async ({ params, cookies, fetch }) => { throw error(400, 'No se encontró una compañía seleccionada'); } - // Cargar pedimento_codes (datos de referencia) - const pedimentoCodesPromise = authenticatedFetch( - 'v1/public/reference_data/pedimento-codes?page=1&page_size=100', - {}, - cookies, - fetch - ); - - // Cargar customs_sections (datos de referencia) - const customsSectionsPromise = authenticatedFetch( - 'v1/public/reference_data/customs-sections?page=1&page_size=100', - {}, - cookies, - fetch - ); - - // Cargar customs_brokers (datos de referencia) - const customsBrokersPromise = authenticatedFetch( - `v1/a76/customs-brokers?company_id=${companyId}`, - {}, - cookies, - fetch - ); - - // Cargar clientes (para el select de client_id) - const clientsPromise = authenticatedFetch( - `v1/a76/clients-providers?company_id=${companyId}&type=client&page=1&page_size=1000`, - {}, - cookies, - fetch - ); - - // Cargar code-pedimento-regimens (para interdependencia de campos) - const codePedimentoRegimensPromise = authenticatedFetch( - 'v1/public/reference_data/code-pedimento-regimens?page=1&page_size=100', - {}, - cookies, - fetch - ); - // Si el ID es "new", es una creación if (params.id === 'new') { try { - const [pedimentoCodesResponse, customsSectionsResponse, customsBrokersResponse, clientsResponse, codePedimentoRegimensResponse] = await Promise.all([ - pedimentoCodesPromise, - customsSectionsPromise, - customsBrokersPromise, - clientsPromise, - codePedimentoRegimensPromise - ]); + // Call consolidated creation endpoint + const response = await authenticatedFetch( + `v1/a76/pedimentos/creation-data?company_id=${companyId}`, + {}, + cookies, + fetch + ); - const pedimentoCodes = pedimentoCodesResponse.ok ? await pedimentoCodesResponse.json() : { items: [] }; - const customsSections = customsSectionsResponse.ok ? await customsSectionsResponse.json() : { items: [] }; - const customsBrokers = customsBrokersResponse.ok ? await customsBrokersResponse.json() : { items: [] }; - const clients = clientsResponse.ok ? await clientsResponse.json() : { items: [] }; - const codePedimentoRegimens = codePedimentoRegimensResponse.ok ? await codePedimentoRegimensResponse.json() : { items: [] }; + if (!response.ok) { + console.error('Error fetching creation data:', response.status); + // Graceful degradation: return empty data + return { + pedimento: null, + pedimentoId: null, + isCreate: true, + pedimentoCodes: [], + customsSections: [], + customsBrokers: [], + clients: [], + codePedimentoRegimens: [], + error: 'Error al cargar catálogos. Verifique la conexión con el backend.' + }; + } + + const data = await response.json(); return { pedimento: null, pedimentoId: null, isCreate: true, - pedimentoCodes: pedimentoCodes.items || [], - customsSections: customsSections.items || [], - customsBrokers: customsBrokers.items || [], - clients: clients.items || [], - codePedimentoRegimens: codePedimentoRegimens.items || [] + pedimentoCodes: data.pedimento_codes || [], + customsSections: data.customs_sections || [], + customsBrokers: data.customs_brokers || [], + clients: data.clients || [], + codePedimentoRegimens: data.code_pedimento_regimens || [] }; } catch (e) { console.error('❌ Error loading new pedimento data:', e); @@ -106,11 +78,9 @@ export const load: PageServerLoad = async ({ params, cookies, fetch }) => { } try { - - - // Cargar el pedimento desde el backend usando authenticatedFetch + // Call consolidated edition endpoint const response = await authenticatedFetch( - `v1/a76/pedimentos/${pedimentoId}?company_id=${companyId}`, + `v1/a76/pedimentos/${pedimentoId}/edition-data?company_id=${companyId}`, {}, cookies, fetch @@ -126,32 +96,17 @@ export const load: PageServerLoad = async ({ params, cookies, fetch }) => { throw error(response.status, 'Error al cargar el pedimento'); } - const pedimento = await response.json(); - - // Cargar pedimento_codes y customs_sections - const [pedimentoCodesResponse, customsSectionsResponse, customsBrokersResponse, clientsResponse, codePedimentoRegimensResponse] = await Promise.all([ - pedimentoCodesPromise, - customsSectionsPromise, - customsBrokersPromise, - clientsPromise, - codePedimentoRegimensPromise - ]); - - const pedimentoCodes = pedimentoCodesResponse.ok ? await pedimentoCodesResponse.json() : { items: [] }; - const customsSections = customsSectionsResponse.ok ? await customsSectionsResponse.json() : { items: [] }; - const customsBrokers = customsBrokersResponse.ok ? await customsBrokersResponse.json() : { items: [] }; - const clients = clientsResponse.ok ? await clientsResponse.json() : { items: [] }; - const codePedimentoRegimens = codePedimentoRegimensResponse.ok ? await codePedimentoRegimensResponse.json() : { items: [] }; + const data = await response.json(); return { - pedimento, - pedimentoId, + pedimento: data.pedimento, + pedimentoId: data.pedimento_id, isCreate: false, - pedimentoCodes: pedimentoCodes.items || [], - customsSections: customsSections.items || [], - customsBrokers: customsBrokers.items || [], - clients: clients.items || [], - codePedimentoRegimens: codePedimentoRegimens.items || [] + pedimentoCodes: data.pedimento_codes || [], + customsSections: data.customs_sections || [], + customsBrokers: data.customs_brokers || [], + clients: data.clients || [], + codePedimentoRegimens: data.code_pedimento_regimens || [] }; } catch (e) { console.error('Error loading pedimento:', e); diff --git a/frontend/src/routes/dashboard/reference_data/incoterms/+page.server.ts b/frontend/src/routes/dashboard/reference_data/incoterms/+page.server.ts index bb15f72e..776fe196 100644 --- a/frontend/src/routes/dashboard/reference_data/incoterms/+page.server.ts +++ b/frontend/src/routes/dashboard/reference_data/incoterms/+page.server.ts @@ -24,7 +24,7 @@ export const load: PageServerLoad = async ({ cookies, fetch, url, parent }) => { // Usar authenticatedFetch para manejar automáticamente el refresh de tokens const response = await authenticatedFetch( - `v1/public/reference_data/incoterms?page=${page}&page_size=${pageSize}`, + `v1/public/reference_data/incoterms/?page=${page}&page_size=${pageSize}`, {}, cookies, fetch diff --git a/frontend/src/routes/dashboard/reference_data/incoterms/+page.svelte b/frontend/src/routes/dashboard/reference_data/incoterms/+page.svelte index a1bd8c0a..9a1b417c 100644 --- a/frontend/src/routes/dashboard/reference_data/incoterms/+page.svelte +++ b/frontend/src/routes/dashboard/reference_data/incoterms/+page.svelte @@ -2,7 +2,7 @@ import { page } from '$app/stores'; import { goto } from '$app/navigation'; import { browser } from '$app/environment'; - import { createColumns } from '$lib/components/dashboard/reference_data/incoterms/columns.js'; + import { createColumns } from '$lib/components/dashboard/reference_data/incoterms/columns'; import DataTable from '$lib/components/dashboard/reference_data/incoterms/data-table.svelte'; import CreateEditDialog from '$lib/components/dashboard/reference_data/incoterms/create-edit-dialog.svelte'; import { Button } from '$lib/components/ui/button'; @@ -59,11 +59,7 @@

Catálogo de Incoterms

-
- +
diff --git a/frontend/static/csv/EstructuraCatAgenteAduanal.xls b/frontend/static/csv/EstructuraCatAgenteAduanal.xls new file mode 100644 index 00000000..8978a33e --- /dev/null +++ b/frontend/static/csv/EstructuraCatAgenteAduanal.xls @@ -0,0 +1 @@ +TIPO(MEX=Mexicano,AME=AMERICANO) CLAVE AADUANAL PATENTE NOMBRE RFC DIRECCION CODIGO POSTAL CIUDAD ESTADO PAIS TELEFONO NUMERO FAX CORREO ELECTRONICO CURP diff --git a/frontend/static/csv/EstructuraCatClasesAF.xls b/frontend/static/csv/EstructuraCatClasesAF.xls new file mode 100644 index 00000000..96b7891a --- /dev/null +++ b/frontend/static/csv/EstructuraCatClasesAF.xls @@ -0,0 +1 @@ +CLAVE CLASE DESCRIPCION ESPAOL DESCRIPCION INGLES TIPO DE MATERIAL U.M. COMERCIAL FRACCION ARANCELARIA FRACCION AMERICANA TASA DE DEPRECIACION REVISION FISICA (1/0) CODIGO DE PRODUCTO/SERVICIO CP diff --git a/frontend/static/csv/EstructuraCatClienteProv.xls b/frontend/static/csv/EstructuraCatClienteProv.xls new file mode 100644 index 00000000..1b2096cc --- /dev/null +++ b/frontend/static/csv/EstructuraCatClienteProv.xls @@ -0,0 +1 @@ +PROCEDENCIA CLIENTE(E=Extranjero, N=Nacional) TIPO(C=Cliente,P=Proveedor,A=Ambos) CLAVE CLIENTE NOMBRE RFC CALLES NUM. EXTERIOR CODIGO POSTAL COLONIA o PARQUE IND. CIUDAD ESTADO PAIS TELEFONO NUMERO FAX CORREO ELECTRONICO CURP TIPO DE PROGRAMA SECON NUMERO DE PROGRAMA SECON FECHA AUT. SECON ##/##/#### ES PROGRAMA PROSEC? (SI o NO) NUMERO DE PROGRAMA PROSEC VINCULACION ES EMPRESA CERTIFICADA? REGISTRO DE EMPRESA CERT. INFORMACION ADICIONAL CONTACTO CLAVE MANUFACTURERO TAX I.D. CLAVE BROKER AMERICANO EXPO CLAVE BROKER AMERICANO IMPO CLAVE TRANSFERENCIA A.A. TRANSFORMADOR/SUBMAQUILA CLAVE INTERFACE diff --git a/frontend/static/csv/EstructuraCatConductor.xls b/frontend/static/csv/EstructuraCatConductor.xls new file mode 100644 index 00000000..30482cb7 --- /dev/null +++ b/frontend/static/csv/EstructuraCatConductor.xls @@ -0,0 +1 @@ +TRANSPORTISTA LINEA CLAVE CONDUCTOR LICENCIA PERMISO LINEA EXPRESS IDENTIFICACION ACE FECHA NACIMIENTO SEXO PAIS NACIMIENTO TRANSPORTA MAT. PELIGROSO? PERMISO MAT. PELIGROSO NOMBRE(S) APELLIDO PATERNO FORMA IDENTIFICACION 1 NUM. IDENTIFICACION 1 ESTADO PAIS FORMA IDENTIFICACION 2 NUM. IDENTIFICACION 2 ESTADO PAIS diff --git a/frontend/static/csv/EstructuraCatFraccAme.xls b/frontend/static/csv/EstructuraCatFraccAme.xls new file mode 100644 index 00000000..dc1f5495 --- /dev/null +++ b/frontend/static/csv/EstructuraCatFraccAme.xls @@ -0,0 +1 @@ +FRACCION ARANCELARIA PREFIJO UNIDAD DE MEDIDA DESCRIPCION TIPO DE ADVALOREM ADVALOREM % ADVALOREM DLLS diff --git a/frontend/static/csv/EstructuraCatPartesAF.xls b/frontend/static/csv/EstructuraCatPartesAF.xls new file mode 100644 index 00000000..e989d04f --- /dev/null +++ b/frontend/static/csv/EstructuraCatPartesAF.xls @@ -0,0 +1 @@ +NUMERO DE PARTE DESCRIPCION EN ESPAOL DESCRIPCION EN INGLES CLASE UNIDAD DE MEDIDA COMERCIAL COSTO UNITARIO TIPO MONEDA COSTO CLAVE MONEDA PESO UNITARIO TIPO PESO FRACCION PAIS PREFERENCIA SECTOR RUTA DE LA IMAGEN diff --git a/frontend/static/csv/EstructuraCatPedimentos.xls b/frontend/static/csv/EstructuraCatPedimentos.xls new file mode 100644 index 00000000..b2e2f7f2 --- /dev/null +++ b/frontend/static/csv/EstructuraCatPedimentos.xls @@ -0,0 +1 @@ +NUMERO DE PEDIMENTO (##-####-######) TIPO MOV(I=Impotacin,E=Expotacin) CLAVE PEDIMENTO REGIMEN FECHA INICIO FECHA FINAL FECHA DE PAGO ADUANA Y SECCION DE CRUCE ACUSE ELECTRONICO INDIVIDUAL o CONSOLIDADO (IND,CON) MET TRANS ENTRADA MET TRANS ARRIVO MET TRANS SALIDA IEPS DTA CNT PREVALIDACION MONTO TIGIE PAGO IMPUESTO? (S/N) ES MIXTO (SI/NO) OBS RECTIFICA OPCION DESTINO(Interior del Pais/Regin Fronteriza/Franja Fronteriza) VALOR IVA VALOR ME VALOR ADUANAS FLETE VALOR SEGUROS SEGUROS EMBALAJES OTROS INCREMENTABLES ESTATUS (ABIERTO/CERRADO) PERSONA REV FECHA CIERRE FECHA REVISION FECHA AUTORIZACION FECHA RECIBIDO REPRESENTANTE AA CLAVE DEST ORIGEN FECHA ENTRADA RECINTO FECHA EXTRACCION RECINTO ERRORES FORMA PAGO DTA FORMA PAGO IGI FORMA PAGO PREVAL FORMA PAGO IVA RECARGOS MULTAS IVA DE PREV CUOTAS CONPENSATORIAS IDENTIFICADORES IEPS 2 FORMA DE PAGO IEPS 2 DTA 2 FORMA DE PAGO DTA 2 IVA 2 FORMA DE PAGO IVA 2 IGI 2 FORMA DE PAGO IGI 2 PREVALIDACION FORMA DE PAGO PREVALIDACION 2 CNT 2 FORMA DE PAGO CNT 2 diff --git a/frontend/static/csv/EstructuraCatTiposCambio.xls b/frontend/static/csv/EstructuraCatTiposCambio.xls new file mode 100644 index 00000000..916d24d3 --- /dev/null +++ b/frontend/static/csv/EstructuraCatTiposCambio.xls @@ -0,0 +1 @@ +FECHA (##/##/####) TIPO DE CAMBIO diff --git a/frontend/static/csv/EstructuraCatTrailers.xls b/frontend/static/csv/EstructuraCatTrailers.xls new file mode 100644 index 00000000..52f1e1d0 --- /dev/null +++ b/frontend/static/csv/EstructuraCatTrailers.xls @@ -0,0 +1 @@ +CLAVE TRAILER/CAJA NUMERO ACE TIPO DE TRAILER PRECINTO CODIGO DE ENTIDAD PLACAS ESTADO PAIS diff --git a/frontend/static/csv/EstructuraCatTransportes.xls b/frontend/static/csv/EstructuraCatTransportes.xls new file mode 100644 index 00000000..32093ebf --- /dev/null +++ b/frontend/static/csv/EstructuraCatTransportes.xls @@ -0,0 +1 @@ +CLAVE CLAVE ACE CLAVE TRANSPORTE VIN TIPO TRANSPORTE CODIGO DE ENTIDAD TRANSPONDEDOR NUMERO DOT PLACAS CIUDAD ESTADO PAIS PRECINTO EMPRESA ASEGURADORA NUM. ASEGURADORA MONTO ASEGURADO FECHA DE ASEGURADORA diff --git a/frontend/static/csv/EstructuraEncFacExpoCamReg.xls b/frontend/static/csv/EstructuraEncFacExpoCamReg.xls new file mode 100644 index 00000000..0fe4fd4c --- /dev/null +++ b/frontend/static/csv/EstructuraEncFacExpoCamReg.xls @@ -0,0 +1 @@ +PEDIMENTO REMESA NUMERO FACTURA FECHA FACTURA TIPO DE CAMBIO REGIMEN CLAVE PROVEEDOR CLAVE VENDIDO A: CLAVE ENVIADO A AGENTE ADUANAL CLAVE TRANSPORTISTA NOMBRE CONDUCTOR TIPO TRANSPORTE NUMERO TRANSPORTE TIPO MONEDA CLAVE MONEDA FLETES VALOR SEGUROS SEGUROS EMBALAJES OTROS INCREMENTABLES CLAVE INCOTERM PRECINTO TIPO PESO MANIFIESTO E-DOCUMENT NUM. OPERACION ENVIADO POR ADUANA DE CRUCE OBSERVACIONES E OBSERVACIONES I FACTURA ALTERNA diff --git a/frontend/static/csv/EstructuraEncFacImpoDef.xls b/frontend/static/csv/EstructuraEncFacImpoDef.xls new file mode 100644 index 00000000..2708c0ed --- /dev/null +++ b/frontend/static/csv/EstructuraEncFacImpoDef.xls @@ -0,0 +1 @@ +PEDIMENTO REMESA NUMERO FACTURA FECHA FACTURA TIPO DE CAMBIO REGIMEN CLAVE PROVEEDOR CLAVE VENDIDO A: CLAVE ENVIADO A AGENTE ADUANAL CLAVE TRANSPORTISTA NOMBRE CONDUCTOR TIPO TRANSPORTE NUMERO TRANSPORTE TIPO MONEDA CLAVE MONEDA FLETES VALOR SEGUROS SEGUROS EMBALAJES OTROS INCREMENTABLES CLAVE INCOTERM PRECINTO FECHA EMISION TIPO PESO E-DOCUMENT NUM. OPERACION ADUANA DE CRUCE OBSERVACIONES E OBSERVACIONES I diff --git a/frontend/static/csv/EstructuraEncFacImpoTemp.xls b/frontend/static/csv/EstructuraEncFacImpoTemp.xls new file mode 100644 index 00000000..13fcbd22 --- /dev/null +++ b/frontend/static/csv/EstructuraEncFacImpoTemp.xls @@ -0,0 +1 @@ +PEDIMENTO REMESA NUMERO FACTURA FECHA FACTURA TIPO DE CAMBIO REGIMEN CLAVE PROVEEDOR CLAVE VENDIDO A: CLAVE ENVIADO A AGENTE ADUANAL CLAVE TRANSPORTISTA NOMBRE CONDUCTOR TIPO TRANSPORTE NUMERO TRANSPORTE TIPO MONEDA CLAVE MONEDA FLETES VALOR SEGUROS SEGUROS EMBALAJES OTROS INCREMENTABLES CLAVE INCOTERM PRECINTO FECHA EMISION TIPO PESO E-DOCUMENT NUM. OPERACION ADUANA DE CRUCE OBSERVACIONES E OBSERVACIONES I FACTURA ALTERNA diff --git a/frontend/static/csv/EstructuraParExpoCamReg.xls b/frontend/static/csv/EstructuraParExpoCamReg.xls new file mode 100644 index 00000000..76bd69af --- /dev/null +++ b/frontend/static/csv/EstructuraParExpoCamReg.xls @@ -0,0 +1 @@ +NUMERO FACTURA EXPO. LINEA EXPO. TIPO DE IMPO. FACTURA IMPO. LINEA IMPO. GENERA DESCARGA CANTIDAD EXPORTADA/DESCARGAR COSTO UNITARIO PESO NETO PESO BRUTO SE PAGO IMPUESTO? (SI o NO) FORMA DE PAGO DESCRIPCION EXTRA INFORMACION ADICIONAL AGREGAR(A)/SUSTITUIR(S) LOTE NUMERO ENTRADA ES PARTIDA/SUBPARTIDA LINEA PRINCIPAL FRACCION AMERICANA FRACCION ARANCELARIA diff --git a/frontend/static/csv/EstructuraParFacImpoDefAF.xls b/frontend/static/csv/EstructuraParFacImpoDefAF.xls new file mode 100644 index 00000000..93bcae74 --- /dev/null +++ b/frontend/static/csv/EstructuraParFacImpoDefAF.xls @@ -0,0 +1 @@ +NUMERO FACTURA LINEA CLASE CANTIDAD IMPORTADA UNIDAD DE MEDIDA COSTO UNITARIO PESO NETO PESO BRUTO CANTIDAD BULTOS CLAVE BULTOS PAIS ORIGEN FRACCION ARANCELARIA PREFERENCIA ARANCELARIA SECTOR FRACCION AMERICANA ORDEN DE COMPRA DESCRIPCION ESPAOL DESCRIPCION INGLES MARCA MODELO ES PARTIDA O SUBPARTIDA LINEA PRINCIPAL NUM. PARTE SE PAGO IMPUESTO? (SI o NO) FORMA DE PAGO METODO DE VALORACION DESCRIPCION EXTRA INFORMACION ADICIONAL AGREGAR(A)/SUSTITUIR(S) VALOR TOTAL LOTE NUMERO ENTRADA ID TYPE diff --git a/frontend/static/csv/EstructuraParFacImpoTempAF.xls b/frontend/static/csv/EstructuraParFacImpoTempAF.xls new file mode 100644 index 00000000..cc78d0b5 --- /dev/null +++ b/frontend/static/csv/EstructuraParFacImpoTempAF.xls @@ -0,0 +1 @@ +NUMERO FACTURA LINEA CLASE CANTIDAD IMPORTADA UNIDAD DE MEDIDA COSTO UNITARIO PESO NETO PESO BRUTO CANTIDAD BULTOS CLAVE BULTOS PAIS ORIGEN FRACCION ARANCELARIA PREFERENCIA ARANCELARIA SECTOR FRACCION AMERICANA ORDEN DE COMPRA DESCRIPCION ESPAOL DESCRIPCION INGLES MARCA MODELO ES PARTIDA O SUBPARTIDA LINEA PRINCIPAL NUM. PARTE SE PAGO IMPUESTO? (SI o NO) FORMA DE PAGO METODO DE VALORACION DESCRIPCION EXTRA INFORMACION ADICIONAL AGREGAR(A)/SUSTITUIR(S) TOTAL NUMERO ENTRADA LOTE ID TYPE diff --git a/frontend/test_bits.js b/frontend/test_bits.js deleted file mode 100644 index 6228649d..00000000 --- a/frontend/test_bits.js +++ /dev/null @@ -1,7 +0,0 @@ -import { Dialog } from "bits-ui"; -console.log("Dialog is:", Dialog); -try { - console.log("Dialog.Root is:", Dialog.Root); -} catch (e) { - console.log("Error accessing Dialog.Root:", e.message); -} diff --git a/scripts/init_first_time.sh b/scripts/init_first_time.sh index e9416f4a..1137af42 100755 --- a/scripts/init_first_time.sh +++ b/scripts/init_first_time.sh @@ -12,6 +12,11 @@ # 6. Relación usuario-tenant en tabla user_tenants # 7. Actualización del tenant_id del usuario con el valor real # 8. Licencia Enterprise para el tenant (ilimitada, 1 año de vigencia) +# 9. [OPCIONAL] Datos iniciales de ejemplo si se pasa --seed-data +# +# Uso: +# ./init_first_time.sh # Solo configuración básica +# ./init_first_time.sh --seed-data # Configuración + datos de ejemplo # # Requisitos: # - Keycloak corriendo en http://localhost:8080 @@ -28,6 +33,22 @@ set -euo pipefail # Modo strict: exit on error, undefined vars, pipe failures # Trap para cleanup en caso de error trap 'echo -e "\n${RED}✗ Error en línea $LINENO. Script abortado.${NC}" >&2' ERR +# Parsear argumentos +SEED_DATA=false +while [[ $# -gt 0 ]]; do + case $1 in + --seed-data) + SEED_DATA=true + shift + ;; + *) + echo "Uso: $0 [--seed-data]" + echo " --seed-data: Carga datos de ejemplo en las tablas" + exit 1 + ;; + esac +done + # Colores para output RED='\033[0;31m' GREEN='\033[0;32m' @@ -112,6 +133,171 @@ create_tenant_mapper() { fi } +############################################################################### +# Funciones de seed data +############################################################################### + +# Insertar datos de ejemplo para customs_brokers +seed_customs_brokers() { + echo " → Insertando customs brokers..." + exec_pg_sql " + INSERT INTO a76.customs_brokers (tenant_id, company_id, type, broker_key, name, address, postal_code, city, state, phone, email, country, tax_id, license, company, contact, created_at, updated_at) + VALUES + (${TENANT_ID}, ${COMPANY_ID}, 'persona', 'CB001', 'Agente Aduanal García', 'Av. Reforma 123', '01000', 'Ciudad de México', 'CDMX', '5555555555', 'garcia@aduanas.com', 'MEX', 'GAAR800101ABC', '1234', 'García y Asociados', 'Juan García', now(), now()), + (${TENANT_ID}, ${COMPANY_ID}, 'persona', 'CB002', 'Agente Aduanal López', 'Blvd. Díaz Ordaz 456', '22000', 'Tijuana', 'BC', '6641234567', 'lopez@customs.com', 'MEX', 'LOPL750505XYZ', '2345', 'López Customs', 'María López', now(), now()), + (${TENANT_ID}, ${COMPANY_ID}, 'persona', 'CB003', 'Agente Aduanal Martínez', 'Calle Industria 789', '45000', 'Guadalajara', 'JAL', '3339876543', 'martinez@broker.com', 'MEX', 'MARM850315DEF', '3456', 'Martínez Brokerage', 'Pedro Martínez', now(), now()) + ON CONFLICT (broker_key, tenant_id, company_id) DO NOTHING; + " >/dev/null 2>&1 +} + +# Insertar datos de ejemplo para clients_and_providers +seed_clients_and_providers() { + echo " → Insertando clientes y proveedores..." + exec_pg_sql " + INSERT INTO a76.clients_and_providers (tenant_id, company_id, type_nat_foreign, name, short_name, rfc, client_or_provider, web_key, is_active, created_at, updated_at) + VALUES + (${TENANT_ID}, ${COMPANY_ID}, 'N', 'Proveedor Tecnológico SA de CV', 'PROVTECH', 'PTE901201ABC', 'BOTH', 'PROV001', true, now(), now()), + (${TENANT_ID}, ${COMPANY_ID}, 'N', 'Cliente Industrial del Norte SA', 'CINORTE', 'CIN850615XYZ', 'BOTH', 'CLI001', true, now(), now()), + (${TENANT_ID}, ${COMPANY_ID}, 'E', 'Global Supplies Inc', 'GLOBSUP', 'GSI123456789', 'BOTH', 'BOTH001', true, now(), now()), + (${TENANT_ID}, ${COMPANY_ID}, 'N', 'Manufacturas del Bajío SA', 'MANBAJIO', 'MDB920310DEF', 'BOTH', 'CLI002', true, now(), now()) + RETURNING id; + " >/dev/null 2>&1 +} + +# Insertar datos de ejemplo para packages +seed_packages() { + echo " → Insertando tipos de paquete..." + exec_pg_sql " + INSERT INTO a76.packages (tenant_id, company_id, key, description_es, description_en, weight_unit, plurals, plural_in, code_ace, code_aamex, created_at, updated_at) + VALUES + (${TENANT_ID}, ${COMPANY_ID}, 'PK01', 'Caja de Cartón', 'Cardboard Box', 0.5, 'CAJS', 'BOXS', 'CB01', 'CAJA001', now(), now()), + (${TENANT_ID}, ${COMPANY_ID}, 'PK02', 'Pallet de Madera', 'Wooden Pallet', 15.0, 'PLTS', 'PLTS', 'WP01', 'PALL001', now(), now()), + (${TENANT_ID}, ${COMPANY_ID}, 'PK03', 'Tambor Metálico', 'Metal Drum', 10.0, 'TMBS', 'DRMS', 'MD01', 'TAMB001', now(), now()), + (${TENANT_ID}, ${COMPANY_ID}, 'PK04', 'Contenedor', 'Container', 2000.0, 'CONT', 'CONT', 'CT01', 'CONT001', now(), now()) + ON CONFLICT (tenant_id, company_id, key) DO NOTHING; + " >/dev/null 2>&1 +} + +# Insertar datos de ejemplo para classes +seed_classes() { + echo " → Insertando clases..." + exec_pg_sql "INSERT INTO a76.classes (tenant_id, company_id, class_code, description_es, description_en, material_key, unit_of_measure, fraction, us_fraction, created_at, updated_at) VALUES (${TENANT_ID}, ${COMPANY_ID}, 'CLS001', 'Componentes Electrónicos', 'Electronic Components', 'MP', 'PZA', '8542.31.01', '8542.31.0000', now(), now()), (${TENANT_ID}, ${COMPANY_ID}, 'CLS002', 'Partes Automotrices', 'Automotive Parts', 'MP', 'KGS', '8708.29.99', '8708.29.9900', now(), now()), (${TENANT_ID}, ${COMPANY_ID}, 'CLS003', 'Textiles y Telas', 'Textiles and Fabrics', 'MP', 'MT', '5407.20.01', '5407.20.0100', now(), now()), (${TENANT_ID}, ${COMPANY_ID}, 'CLS004', 'Equipo de Computación', 'Computer Equipment', 'MP', 'PZA', '8471.30.01', '8471.30.0100', now(), now()) ON CONFLICT (tenant_id, company_id, class_code) DO NOTHING;" >/dev/null 2>&1 +} + +# Insertar datos de ejemplo para parts +seed_parts() { + echo " → Insertando partes/componentes..." + + # Obtener un client_id para asociar las partes + local client_id + client_id=$(exec_pg_sql "SELECT id FROM a76.clients_and_providers WHERE tenant_id = ${TENANT_ID} AND company_id = ${COMPANY_ID} LIMIT 1;" | xargs) + + if [ -n "$client_id" ]; then + exec_pg_sql "INSERT INTO a76.parts (tenant_id, company_id, client_id, part_number, description_spanish, description_english, part_class, currency_key, unit_of_measure, unit_cost, fraction, us_fraction, created_at, updated_at) VALUES (${TENANT_ID}, ${COMPANY_ID}, ${client_id}, 'PART-001', 'Microcontrolador ARM Cortex-M4', 'ARM Cortex-M4 Microcontroller', 'CLS001', 'USD', 'PZA', 15.50, '8542.31.01', '8542.31.0000', now(), now()), (${TENANT_ID}, ${COMPANY_ID}, ${client_id}, 'PART-002', 'Filtro de Aceite Automotriz', 'Automotive Oil Filter', 'CLS002', 'USD', 'PZA', 8.75, '8421.23.01', '8421.23.0100', now(), now()), (${TENANT_ID}, ${COMPANY_ID}, ${client_id}, 'PART-003', 'Tela de Algodón para Tapicería', 'Cotton Upholstery Fabric', 'CLS003', 'USD', 'MT', 12.00, '5208.31.01', '5208.31.0100', now(), now()), (${TENANT_ID}, ${COMPANY_ID}, ${client_id}, 'PART-004', 'Disco Duro SSD 500GB', '500GB SSD Hard Drive', 'CLS004', 'USD', 'PZA', 65.00, '8471.70.01', '8471.70.0100', now(), now()), (${TENANT_ID}, ${COMPANY_ID}, ${client_id}, 'PART-005', 'Sensor de Temperatura Digital', 'Digital Temperature Sensor', 'CLS001', 'USD', 'PZA', 5.25, '9025.19.01', '9025.19.0100', now(), now()) ON CONFLICT (tenant_id, company_id, part_number) DO NOTHING;" >/dev/null 2>&1 + fi +} + +# Insertar datos de ejemplo para pedimentos +seed_pedimentos() { + echo " → Insertando pedimentos..." + + # Primero obtener IDs de clientes + local client_ids + client_ids=$(exec_pg_sql "SELECT id FROM a76.clients_and_providers WHERE tenant_id = ${TENANT_ID} AND company_id = ${COMPANY_ID} AND client_or_provider IN ('CLIENT', 'BOTH') LIMIT 2;") + local client_id_1=$(echo "$client_ids" | sed -n '1p' | xargs) + local client_id_2=$(echo "$client_ids" | sed -n '2p' | xargs) + + if [ -n "$client_id_1" ]; then + exec_pg_sql "INSERT INTO a76.pedimentos (tenant_id, company_id, year, customs_office, license, pedimento_number, client_id, operation_type, pedimento_type, pedimento_code, regime, status, created_at, updated_at) VALUES (${TENANT_ID}, ${COMPANY_ID}, '24', '47', '3807', '8001234', ${client_id_1}, 'imp', 'normal', 'V1', 'ITE', 'draft', now(), now()), (${TENANT_ID}, ${COMPANY_ID}, '24', '47', '3807', '8001235', ${client_id_1}, 'exp', 'normal', 'V1', 'ETE', 'draft', now(), now()) ON CONFLICT (tenant_id, company_id, year, customs_office, license, pedimento_number) DO NOTHING;" >/dev/null 2>&1 + fi + + if [ -n "$client_id_2" ]; then + exec_pg_sql "INSERT INTO a76.pedimentos (tenant_id, company_id, year, customs_office, license, pedimento_number, client_id, operation_type, pedimento_type, pedimento_code, regime, status, created_at, updated_at) VALUES (${TENANT_ID}, ${COMPANY_ID}, '24', '47', '3807', '8001236', ${client_id_2}, 'imp', 'consolidated', 'V1', 'ITE', 'draft', now(), now()) ON CONFLICT (tenant_id, company_id, year, customs_office, license, pedimento_number) DO NOTHING;" >/dev/null 2>&1 + fi +} + +# Insertar datos de ejemplo para invoices +seed_invoices() { + echo " → Insertando facturas..." + + # Obtener IDs de clientes/proveedores + local provider_ids + provider_ids=$(exec_pg_sql "SELECT id FROM a76.clients_and_providers WHERE tenant_id = ${TENANT_ID} AND company_id = ${COMPANY_ID} AND client_or_provider IN ('PROVIDER', 'BOTH') LIMIT 2;") + local provider_id_1=$(echo "$provider_ids" | sed -n '1p' | xargs) + local provider_id_2=$(echo "$provider_ids" | sed -n '2p' | xargs) + + # Insertar facturas en invoice_header (mínimo requerido) + exec_pg_sql "INSERT INTO a76.invoice_header (tenant_id, company_id, system, operation_type, invoice_type, invoice_number, invoice_date, is_updated, created_at, updated_at) VALUES (${TENANT_ID}, ${COMPANY_ID}, 'fixed_asset', 'imp', 'DEF', 'INV-2024-001', '2024-01-10', false, now(), now()), (${TENANT_ID}, ${COMPANY_ID}, 'fixed_asset', 'exp', 'EXDEF', 'INV-2024-002', '2024-02-15', false, now(), now()), (${TENANT_ID}, ${COMPANY_ID}, 'fixed_asset', 'imp', 'TEM', 'INV-2024-003', '2024-03-05', false, now(), now()) ON CONFLICT DO NOTHING;" >/dev/null 2>&1 + + # Obtener IDs de las facturas recién creadas + local invoice_ids + invoice_ids=$(exec_pg_sql "SELECT id FROM a76.invoice_header WHERE tenant_id = ${TENANT_ID} AND company_id = ${COMPANY_ID} AND invoice_number IN ('INV-2024-001', 'INV-2024-002', 'INV-2024-003') ORDER BY invoice_number;") + local invoice_id_1=$(echo "$invoice_ids" | sed -n '1p' | xargs) + local invoice_id_2=$(echo "$invoice_ids" | sed -n '2p' | xargs) + local invoice_id_3=$(echo "$invoice_ids" | sed -n '3p' | xargs) + + # Insertar datos financieros para las facturas + if [ -n "$invoice_id_1" ]; then + exec_pg_sql "INSERT INTO a76.invoice_financials (tenant_id, company_id, invoice_id, currency, exchange_rate, created_at, updated_at) VALUES (${TENANT_ID}, ${COMPANY_ID}, ${invoice_id_1}, 'foreign', 17.50, now(), now()) ON CONFLICT DO NOTHING;" >/dev/null 2>&1 + fi + + if [ -n "$invoice_id_2" ]; then + exec_pg_sql "INSERT INTO a76.invoice_financials (tenant_id, company_id, invoice_id, currency, exchange_rate, created_at, updated_at) VALUES (${TENANT_ID}, ${COMPANY_ID}, ${invoice_id_2}, 'foreign', 17.45, now(), now()) ON CONFLICT DO NOTHING;" >/dev/null 2>&1 + fi + + if [ -n "$invoice_id_3" ]; then + exec_pg_sql "INSERT INTO a76.invoice_financials (tenant_id, company_id, invoice_id, currency, exchange_rate, created_at, updated_at) VALUES (${TENANT_ID}, ${COMPANY_ID}, ${invoice_id_3}, 'local', 1.00, now(), now()) ON CONFLICT DO NOTHING;" >/dev/null 2>&1 + fi + + # Insertar datos de compliance mexicano con proveedores + if [ -n "$invoice_id_1" ] && [ -n "$provider_id_1" ]; then + exec_pg_sql "INSERT INTO a76.invoice_compliance_mx (tenant_id, company_id, invoice_id, provider_id, created_at, updated_at) VALUES (${TENANT_ID}, ${COMPANY_ID}, ${invoice_id_1}, ${provider_id_1}, now(), now()) ON CONFLICT DO NOTHING;" >/dev/null 2>&1 + fi + + if [ -n "$invoice_id_2" ] && [ -n "$provider_id_1" ]; then + exec_pg_sql "INSERT INTO a76.invoice_compliance_mx (tenant_id, company_id, invoice_id, provider_id, created_at, updated_at) VALUES (${TENANT_ID}, ${COMPANY_ID}, ${invoice_id_2}, ${provider_id_1}, now(), now()) ON CONFLICT DO NOTHING;" >/dev/null 2>&1 + fi + + if [ -n "$invoice_id_3" ] && [ -n "$provider_id_2" ]; then + exec_pg_sql "INSERT INTO a76.invoice_compliance_mx (tenant_id, company_id, invoice_id, provider_id, created_at, updated_at) VALUES (${TENANT_ID}, ${COMPANY_ID}, ${invoice_id_3}, ${provider_id_2}, now(), now()) ON CONFLICT DO NOTHING;" >/dev/null 2>&1 + fi + + # Insertar datos de logística con incoterm + if [ -n "$invoice_id_1" ]; then + exec_pg_sql "INSERT INTO a76.invoice_logistics (tenant_id, company_id, invoice_id, transport_type, weight_type, incoterm, created_at, updated_at) VALUES (${TENANT_ID}, ${COMPANY_ID}, ${invoice_id_1}, 'none', 'kgs', 'FOB', now(), now()) ON CONFLICT DO NOTHING;" >/dev/null 2>&1 + fi + + if [ -n "$invoice_id_2" ]; then + exec_pg_sql "INSERT INTO a76.invoice_logistics (tenant_id, company_id, invoice_id, transport_type, weight_type, incoterm, created_at, updated_at) VALUES (${TENANT_ID}, ${COMPANY_ID}, ${invoice_id_2}, 'none', 'kgs', 'CIF', now(), now()) ON CONFLICT DO NOTHING;" >/dev/null 2>&1 + fi + + if [ -n "$invoice_id_3" ]; then + exec_pg_sql "INSERT INTO a76.invoice_logistics (tenant_id, company_id, invoice_id, transport_type, weight_type, incoterm, created_at, updated_at) VALUES (${TENANT_ID}, ${COMPANY_ID}, ${invoice_id_3}, 'none', 'kgs', 'EXW', now(), now()) ON CONFLICT DO NOTHING;" >/dev/null 2>&1 + fi +} + +# Ejecutar todas las funciones de seed +execute_seed_data() { + echo -e "\n${YELLOW}[SEED] Cargando datos de ejemplo...${NC}" + + seed_customs_brokers + seed_clients_and_providers + seed_packages + seed_classes + seed_parts + seed_pedimentos + seed_invoices + + echo -e "${GREEN}✓ Datos de ejemplo cargados exitosamente${NC}" + echo -e "${YELLOW} • 3 Agentes aduanales${NC}" + echo -e "${YELLOW} • 4 Clientes/Proveedores${NC}" + echo -e "${YELLOW} • 4 Tipos de paquete${NC}" + echo -e "${YELLOW} • 4 Clases${NC}" + echo -e "${YELLOW} • 5 Parts/Componentes${NC}" + echo -e "${YELLOW} • 3 Pedimentos${NC}" + echo -e "${YELLOW} • 3 Facturas${NC}" +} + # Variables de configuración KEYCLOAK_URL="${KEYCLOAK_URL:-http://localhost:8080/kcauth}" KEYCLOAK_ADMIN="${KEYCLOAK_ADMIN:-admin}" @@ -559,8 +745,10 @@ fi # Obtener información de la company COMPANY_INFO=$(exec_pg_sql "SELECT id, name FROM a76.company WHERE tenant_id = ${TENANT_ID} LIMIT 1;") +COMPANY_ID=$(exec_pg_sql "SELECT id FROM a76.company WHERE tenant_id = ${TENANT_ID} LIMIT 1;" | xargs) echo -e "${GREEN}✓ Company: ${COMPANY_INFO}${NC}" +echo -e "${GREEN}✓ Company ID: ${COMPANY_ID}${NC}" # Agregar tenant_id al usuario demo en Keycloak echo -e "\n${YELLOW}Asignando tenant_id al usuario demo...${NC}" @@ -635,6 +823,13 @@ else fi fi +############################################################################### +# 9. Cargar datos de ejemplo (opcional) +############################################################################### +if [ "$SEED_DATA" = true ]; then + execute_seed_data +fi + ############################################################################### # Resumen final ############################################################################### @@ -673,6 +868,18 @@ echo -e " ${GREEN}✓${NC} Plan: Enterprise (ilimitado)" echo -e " ${GREEN}✓${NC} Status: Activa" echo -e " ${GREEN}✓${NC} Features: API, Reportes Avanzados, Integraciones, Soporte Dedicado" echo -e " ${GREEN}✓${NC} Vigencia: 1 año" + +if [ "$SEED_DATA" = true ]; then +echo -e "\n${YELLOW}Datos de ejemplo:${NC}" +echo -e " ${GREEN}✓${NC} Agentes aduanales: 3" +echo -e " ${GREEN}✓${NC} Clientes/Proveedores: 4" +echo -e " ${GREEN}✓${NC} Tipos de paquete: 4" +echo -e " ${GREEN}✓${NC} Clases: 4" +echo -e " ${GREEN}✓${NC} Parts/Componentes: 5" +echo -e " ${GREEN}✓${NC} Pedimentos: 3" +echo -e " ${GREEN}✓${NC} Facturas: 3" +fi + echo -e "\n${YELLOW}Puedes acceder al sistema en:${NC}" echo -e " ${GREEN}http://localhost:5173${NC}" echo -e "\n${GREEN}════════════════════════════════════════════════════════${NC}\n"