--CREATE DATABASE zclas WITH ENCODING='UTF8' CONNECTION LIMIT=-1;
-- Extensions
CREATE EXTENSION IF NOT EXISTS postgis WITH SCHEMA public;
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

-- Schemas
CREATE SCHEMA history;

-- Public functions

CREATE OR REPLACE FUNCTION public.f_for_trg_control_changes()
  RETURNS trigger AS
$BODY$
BEGIN
    IF (TG_OP = 'UPDATE') THEN
        IF (NEW.rowversion != OLD.rowversion) THEN
            RAISE EXCEPTION 'row_has_different_version';
        END IF;
        IF (NEW.action_code != 'd') THEN
            NEW.action_code := 'u';
        END IF;
        IF OLD.rowversion > 200000000 THEN
            NEW.rowversion = 1;
        ELSE
            NEW.rowversion = OLD.rowversion + 1;
        END IF;
    ELSIF (TG_OP = 'INSERT') THEN
        NEW.action_code := 'i';
        NEW.rowversion = 1;
    END IF;
    NEW.action_time := now();
    IF NEW.action_user is null then
      NEW.action_user = 'db:' || current_user;
    END IF;
    RETURN NEW;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE COST 100;
ALTER FUNCTION public.f_for_trg_control_changes() OWNER TO postgres;
COMMENT ON FUNCTION public.f_for_trg_control_changes() IS 'This function is used to implement optimistic locking on the main data tables. The control is done using rowversion field. It also sets action code, time and user, triggered the change. Row version will be incremented automatically';

CREATE OR REPLACE FUNCTION public.f_for_trg_track_history()
  RETURNS trigger AS
$BODY$
DECLARE
    table_name_history varchar;
    insert_col_part varchar;
    values_part varchar;
BEGIN
    table_name_history = 'history.' || TG_TABLE_NAME;
    insert_col_part = (select string_agg(column_name, ',') 
      from information_schema.columns  
      where table_schema= TG_TABLE_SCHEMA and table_name = TG_TABLE_NAME);
    values_part = '$1.' || replace(insert_col_part, ',' , ',$1.');

    IF (TG_OP = 'DELETE') THEN
        OLD.action_code := 'd';
    END IF;

    EXECUTE 'INSERT INTO ' || table_name_history || '(' || insert_col_part || ') SELECT ' || values_part || ';' USING OLD;
    
    IF (TG_OP = 'DELETE') THEN
        RETURN OLD;
    ELSE
        RETURN NEW;
    END IF;
    RETURN NULL;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION public.f_for_trg_track_history() OWNER TO postgres;
COMMENT ON FUNCTION public.f_for_trg_track_history() IS 'This function is used to record changes on the main table into the history table.';

CREATE OR REPLACE FUNCTION public.get_translation(
    mixed_value character varying,
    language_code character varying)
  RETURNS character varying AS
$BODY$
DECLARE
  delimiter_word varchar;
  language_index integer;
  result varchar;
BEGIN
  if mixed_value is null then
    return mixed_value;
  end if;
  
  delimiter_word = '::::';
  language_index = (select item_order from public.ref_language where lower(code)=lower(language_code));
  
  if language_index is null then
    language_index = (select item_order from public.ref_language where is_default limit 1);
  end if;

  if language_index is null then
    return mixed_value;
  end if;
  
  result = split_part(mixed_value, delimiter_word, language_index);
  
  if result is null or result = '' then
    language_index = (select item_order from public.ref_language where is_default limit 1);
    
    if language_index is null then
      return mixed_value;
    end if;
    
    result = split_part(mixed_value, delimiter_word, language_index);
    
    if result is null or result = '' then
      result = mixed_value;
    end if;
    
  end if;
  return result;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION public.get_translation(character varying, character varying)
  OWNER TO postgres;
COMMENT ON FUNCTION public.get_translation(character varying, character varying) IS 'This function is used to translate the values that are supposed to be multilingual like the reference data values';

-- Transaction type

CREATE TABLE public.ref_transaction_type
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_transaction_type_pkey PRIMARY KEY (code),
  CONSTRAINT ref_transaction_type_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_transaction_type OWNER TO postgres;
COMMENT ON TABLE public.ref_transaction_type IS 'Contains a list of transaction types';
COMMENT ON COLUMN public.ref_transaction_type.code IS 'Transaction type code.';
COMMENT ON COLUMN public.ref_transaction_type.val IS 'Transaction type name.';
COMMENT ON COLUMN public.ref_transaction_type.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_transaction_type.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_transaction_type.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_transaction_type.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_transaction_type.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_transaction_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_transaction_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_transaction_type
(
  code character varying(20),
  val character varying(500),
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_transaction_type OWNER TO postgres;

-- Workflow action types

CREATE TABLE public.workflow_action_type
(
  code character varying(20) NOT NULL, 
  val character varying NOT NULL,
  allow_next_step boolean NOT NULL DEFAULT true, 
  description character varying, 
  active boolean NOT NULL DEFAULT true,
  rowversion integer NOT NULL DEFAULT 0, 
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50), 
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT workflow_action_type_pkey PRIMARY KEY (code),
  CONSTRAINT workflow_action_type_display_value_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.workflow_action_type
  OWNER TO postgres;
COMMENT ON TABLE public.workflow_action_type
  IS 'Workflow action types.';
COMMENT ON COLUMN public.workflow_action_type.code IS 'Workflow action code.';
COMMENT ON COLUMN public.workflow_action_type.val IS 'Action name that will be inherited to the workflow action by default.';
COMMENT ON COLUMN public.workflow_action_type.allow_next_step IS 'Allows referencing next step for the workflow action.';
COMMENT ON COLUMN public.workflow_action_type.description IS 'Action type description.';
COMMENT ON COLUMN public.workflow_action_type.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.workflow_action_type.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.workflow_action_type.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.workflow_action_type.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.workflow_action_type.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.workflow_action_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.workflow_action_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.workflow_action_type
(
  code character varying(20), 
  val character varying,
  allow_next_step boolean, 
  description character varying, 
  active boolean,
  rowversion integer, 
  action_code character(1),
  action_user character varying(50), 
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.workflow_action_type
  OWNER TO postgres;
  
-- Workflow steps

CREATE TABLE public.workflow_step
(
  id character varying(40) NOT NULL,
  val character varying(500) NOT NULL,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT workflow_step_pkey PRIMARY KEY (id),
  CONSTRAINT workflow_step_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.workflow_step OWNER TO postgres;
COMMENT ON TABLE public.workflow_step IS 'Contains a list of workflow steps';
COMMENT ON COLUMN public.workflow_step.id IS 'Workflow step id.';
COMMENT ON COLUMN public.workflow_step.val IS 'Workflow step name.';
COMMENT ON COLUMN public.workflow_step.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.workflow_step.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.workflow_step.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.workflow_step.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.workflow_step.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.workflow_step
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.workflow_step
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.workflow_step
(
  id character varying(40),
  val character varying(500),
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.workflow_step OWNER TO postgres;

-- Workflow step actions

CREATE TABLE public.workflow_step_action
(
  id character varying(40) NOT NULL DEFAULT uuid_generate_v1(), 
  workflow_step_id character varying(40) NOT NULL, 
  transaction_type_code character varying(20),
  val character varying NOT NULL,
  action_type character varying(20) NOT NULL,
  next_workflow_step_id character varying(40), 
  workflow_end boolean NOT NULL DEFAULT false, 
  report_name character varying(500),
  action_order smallint NOT NULL DEFAULT 0, -- Action order inside the step
  doc_type character varying(100),
  rowversion integer NOT NULL DEFAULT 0, 
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50), 
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT workflow_step_action_pkey PRIMARY KEY (id),
  CONSTRAINT fk_workflow_step_action_action_type FOREIGN KEY (action_type)
      REFERENCES public.workflow_action_type (code) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE,
  CONSTRAINT fk_workflow_step_action_transaction_type FOREIGN KEY (transaction_type_code)
      REFERENCES public.ref_transaction_type (code) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE,
  CONSTRAINT fk_workflow_step_action_next_workflow_step_id FOREIGN KEY (next_workflow_step_id)
      REFERENCES public.workflow_step (id) MATCH SIMPLE
      ON UPDATE RESTRICT ON DELETE RESTRICT,
  CONSTRAINT fk_workflow_step_action_workflow_step_id FOREIGN KEY (workflow_step_id)
      REFERENCES public.workflow_step (id) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE,
  CONSTRAINT workflow_step_action_val_unique UNIQUE (workflow_step_id, transaction_type_code, val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.workflow_step_action
  OWNER TO postgres;
COMMENT ON TABLE public.workflow_step_action
  IS 'Workflow step actions.';
COMMENT ON COLUMN public.workflow_step_action.id IS 'Primary key.';
COMMENT ON COLUMN public.workflow_step_action.workflow_step_id IS 'Reference to the workflow step.';
COMMENT ON COLUMN public.workflow_step_action.transaction_type_code IS 'Transaction type code. If null, then the action is applicable to all transaction types for a given workflow step';
COMMENT ON COLUMN public.workflow_step_action.val IS 'Displayed name of the action.';
COMMENT ON COLUMN public.workflow_step_action.action_type IS 'Action type code.';
COMMENT ON COLUMN public.workflow_step_action.next_workflow_step_id IS 'Reference to the next workflow step, which will be assigned to the claim.';
COMMENT ON COLUMN public.workflow_step_action.workflow_end IS 'Flag, indicating that the workflow should be finished.';
COMMENT ON COLUMN public.workflow_step_action.report_name IS 'Report name that can be displayed for printing actions. It can be a report, accepting universal parameters, like claim object.';
COMMENT ON COLUMN public.workflow_step_action.action_order IS 'Action order inside the step';
COMMENT ON COLUMN public.workflow_step_action.doc_type IS 'Used for add documents actions. Lists document source types that can be added through the current action. Comma-separated list can be used for listing multiple source types. If no value is provided, all source types are allowed.';
COMMENT ON COLUMN public.workflow_step_action.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.workflow_step_action.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.workflow_step_action.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.workflow_step_action.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.workflow_step_action
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();
 
CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.workflow_step_action
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();
 
 CREATE TABLE history.workflow_step_action
(
  id character varying(40), 
  workflow_step_id character varying(40), 
  transaction_type_code character varying(20),
  val character varying,
  action_type character varying(20),
  next_workflow_step_id character varying(40), 
  workflow_end boolean, 
  report_name character varying(500),
  action_order smallint, 
  doc_type character varying(100),
  rowversion integer, 
  action_code character(1),
  action_user character varying(50), 
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.workflow_step_action
  OWNER TO postgres;

-- Role

CREATE TABLE public.approle
(
  code character varying(20) NOT NULL,
  role_name character varying(500) NOT NULL,
  description character varying(2000),
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT approle_pkey PRIMARY KEY (code),
  CONSTRAINT approle_val_unique UNIQUE (role_name)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.approle OWNER TO postgres;
COMMENT ON TABLE public.approle IS 'Contains list of application security roles used to define access to different parts of the application';
COMMENT ON COLUMN public.approle.code IS 'Code of the security role.';
COMMENT ON COLUMN public.approle.role_name IS 'Name of the role.';
COMMENT ON COLUMN public.approle.description IS 'Role description.';
COMMENT ON COLUMN public.approle.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.approle.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.approle.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.approle.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.approle
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.approle
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.approle
(
  code character varying(20),
  role_name character varying(500),
  description character varying(2000),
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.approle OWNER TO postgres;  

-- Roles to worjflow steps

CREATE TABLE public.approle_workflow_step
(
  role_code character varying(20) NOT NULL, 
  workflow_step_id character varying(40) NOT NULL, 
  rowversion integer NOT NULL DEFAULT 0, 
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar, 
  action_user character varying(50), 
  action_time timestamp without time zone NOT NULL DEFAULT now(), 
  CONSTRAINT approle_workflow_step_pkey PRIMARY KEY (role_code, workflow_step_id),
  CONSTRAINT approle_workflow_step_approle_fk FOREIGN KEY (role_code)
      REFERENCES public.approle (code) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE,
  CONSTRAINT approle_workflow_step_workflow_step_fk FOREIGN KEY (workflow_step_id)
      REFERENCES public.workflow_step (id) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.approle_workflow_step
  OWNER TO postgres;
COMMENT ON TABLE public.approle_workflow_step IS 'Contains relations between user roles and workflow steps.';
COMMENT ON COLUMN public.approle_workflow_step.role_code IS 'Role code.';
COMMENT ON COLUMN public.approle_workflow_step.workflow_step_id IS 'Workflow step id.';
COMMENT ON COLUMN public.approle_workflow_step.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.approle_workflow_step.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.approle_workflow_step.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.approle_workflow_step.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.approle_workflow_step
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.approle_workflow_step
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.approle_workflow_step
(
  role_code character varying(20), 
  workflow_step_id character varying(40),
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.approle_workflow_step OWNER TO postgres;

-- Transaction type workflow steps
/*
CREATE TABLE public.transaction_type_workflow_step
(
  transaction_type_code character varying(20) NOT NULL, 
  workflow_step_id character varying(40) NOT NULL, 
  rowversion integer NOT NULL DEFAULT 0, 
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar, 
  action_user character varying(50), 
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT transaction_type_workflow_step_pkey PRIMARY KEY (transaction_type_code, workflow_step_id),
  CONSTRAINT transaction_type_workflow_step_ref_transaction_type_fk FOREIGN KEY (transaction_type_code)
      REFERENCES public.ref_transaction_type (code) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE,
  CONSTRAINT transaction_type_workflow_step_workflow_step_fk FOREIGN KEY (workflow_step_id)
      REFERENCES public.workflow_step (id) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.transaction_type_workflow_step
  OWNER TO postgres;
COMMENT ON TABLE public.transaction_type_workflow_step
  IS 'Contains relations between transaction types and workflow steps.';
COMMENT ON COLUMN public.transaction_type_workflow_step.transaction_type_code IS 'Transaction type code.';
COMMENT ON COLUMN public.transaction_type_workflow_step.workflow_step_id IS 'Workflow step id.';
COMMENT ON COLUMN public.transaction_type_workflow_step.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.transaction_type_workflow_step.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.transaction_type_workflow_step.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.transaction_type_workflow_step.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.transaction_type_workflow_step
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.transaction_type_workflow_step
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.transaction_type_workflow_step
(
  transaction_type_code character varying(20), 
  workflow_step_id character varying(40), 
  rowversion integer, 
  action_code character(1), 
  action_user character varying(50), 
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.transaction_type_workflow_step OWNER TO postgres;
*/

-- Finction to get user's workflow steps

create or replace function public.get_user_workflow_steps (user_name varchar(40)) 
returns table (
 workflow_step_id varchar(40)
) 
language plpgsql
as $$
begin
 return query 
   select rw.workflow_step_id from public.approle_workflow_step rw inner join public.user_role ur on rw.role_code = ur.rolename and ur.username = user_name;
end;$$

-- Application type group

CREATE TABLE public.ref_app_type_group
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_app_type_group_pkey PRIMARY KEY (code),
  CONSTRAINT ref_app_type_group_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_app_type_group OWNER TO postgres;
COMMENT ON TABLE public.ref_app_type_group IS 'Contains a list of application type groups, which is for logical grouping of application types and can be used for arranging main menu.';
COMMENT ON COLUMN public.ref_app_type_group.code IS 'Application type group code.';
COMMENT ON COLUMN public.ref_app_type_group.val IS 'Application type group name.';
COMMENT ON COLUMN public.ref_app_type_group.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_app_type_group.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_app_type_group.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_app_type_group.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_app_type_group.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_app_type_group
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_app_type_group
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_app_type_group
(
  code character varying(20),
  val character varying(500),
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_app_type_group OWNER TO postgres;

-- Application type

CREATE TABLE public.ref_app_type
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  app_type_group_code character varying(20) NOT NULL,
  transaction_type_code character varying(20) NOT NULL,
  fee double precision DEFAULT 0,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_app_type_pkey PRIMARY KEY (code),
  CONSTRAINT ref_app_type_val_unique UNIQUE (val),
  CONSTRAINT ref_app_type_app_group_type_fk FOREIGN KEY (app_type_group_code)
      REFERENCES public.ref_app_type_group (code) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT ref_app_type_transaction_type_fk FOREIGN KEY (transaction_type_code)
      REFERENCES public.ref_transaction_type (code) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_app_type OWNER TO postgres;
COMMENT ON TABLE public.ref_app_type IS 'Contains a list of application types.';
COMMENT ON COLUMN public.ref_app_type.code IS 'Application type code.';
COMMENT ON COLUMN public.ref_app_type.val IS 'Application type name.';
COMMENT ON COLUMN public.ref_app_type.app_type_group_code IS 'Application type group code.';
COMMENT ON COLUMN public.ref_app_type.transaction_type_code IS 'Transaction type code.';
COMMENT ON COLUMN public.ref_app_type.fee IS 'Application fee';
COMMENT ON COLUMN public.ref_app_type.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_app_type.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_app_type.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_app_type.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_app_type.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_app_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_app_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_app_type
(
  code character varying(20),
  val character varying(500),
  app_type_group_code character varying(20),
  transaction_type_code character varying(20),
  fee double precision,
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_app_type OWNER TO postgres;

-- Right type group

CREATE TABLE public.ref_right_type_group
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_right_type_group_pkey PRIMARY KEY (code),
  CONSTRAINT ref_right_type_group_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_right_type_group OWNER TO postgres;
COMMENT ON TABLE public.ref_right_type_group IS 'Contains list of right type groups, such as ownership, restriction, responsibility';
COMMENT ON COLUMN public.ref_right_type_group.code IS 'Right type group code.';
COMMENT ON COLUMN public.ref_right_type_group.val IS 'Right type group name.';
COMMENT ON COLUMN public.ref_right_type_group.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_right_type_group.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_right_type_group.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_right_type_group.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_right_type_group.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_right_type_group
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_right_type_group
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_right_type_group
(
  code character varying(20),
  val character varying(500),
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_right_type_group OWNER TO postgres;

-- Right type

CREATE TABLE public.ref_right_type
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  right_type_group_code character varying(20) NOT NULL,
  allow_multiple boolean NOT NULL DEFAULT false,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_right_type_pkey PRIMARY KEY (code),
  CONSTRAINT ref_right_type_val_unique UNIQUE (val),
  CONSTRAINT ref_right_type_ref_right_type_group_fk FOREIGN KEY (right_type_group_code)
      REFERENCES public.ref_right_type_group (code) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_right_type OWNER TO postgres;
COMMENT ON TABLE public.ref_right_type IS 'Contains list of right types.';
COMMENT ON COLUMN public.ref_right_type.code IS 'Right type code.';
COMMENT ON COLUMN public.ref_right_type.val IS 'Right type name.';
COMMENT ON COLUMN public.ref_right_type.right_type_group_code IS 'Right type group code.';
COMMENT ON COLUMN public.ref_right_type.allow_multiple IS 'Indicates whether multiple registrations of this right type can be done for one parcel.';
COMMENT ON COLUMN public.ref_right_type.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_right_type.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_right_type.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_right_type.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_right_type.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_right_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_right_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_right_type
(
  code character varying(20),
  val character varying(500),
  right_type_group_code character varying(20),
  allow_multiple boolean,
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_right_type OWNER TO postgres;

-- Application type and right type relations

CREATE TABLE public.ref_app_type_right_type
(
  app_type_code character varying(20) NOT NULL,
  right_type_code character varying(20) NOT NULL,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_app_type_right_type_pkey PRIMARY KEY (app_type_code, right_type_code),
  CONSTRAINT ref_app_type_right_type_ref_app_type_fk FOREIGN KEY (app_type_code)
      REFERENCES public.ref_app_type (code) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE,
  CONSTRAINT ref_app_type_right_type_ref_right_type_fk FOREIGN KEY (right_type_code)
      REFERENCES public.ref_right_type (code) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_app_type_right_type OWNER TO postgres;
COMMENT ON TABLE public.ref_app_type_right_type IS 'Contains relations between application types and right types.';
COMMENT ON COLUMN public.ref_app_type_right_type.app_type_code IS 'Application type code.';
COMMENT ON COLUMN public.ref_app_type_right_type.right_type_code IS 'Right type code.';
COMMENT ON COLUMN public.ref_app_type_right_type.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_app_type_right_type.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_app_type_right_type.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_app_type_right_type.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_app_type_right_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_app_type_right_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_app_type_right_type
(
  app_type_code character varying(20),
  right_type_code character varying(20),
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_app_type_right_type OWNER TO postgres;

-- Application status

CREATE TABLE public.ref_app_status
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_app_status_pkey PRIMARY KEY (code),
  CONSTRAINT ref_app_status_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_app_status OWNER TO postgres;
COMMENT ON TABLE public.ref_app_status IS 'Contains list of application statuses';
COMMENT ON COLUMN public.ref_app_status.code IS 'Application status code.';
COMMENT ON COLUMN public.ref_app_status.val IS 'Application status name.';
COMMENT ON COLUMN public.ref_app_status.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_app_status.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_app_status.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_app_status.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_app_status.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_app_status
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_app_status
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_app_status
(
  code character varying(20),
  val character varying(500),
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_app_status OWNER TO postgres;

-- Registration statuses

CREATE TABLE public.ref_reg_status
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_reg_status_pkey PRIMARY KEY (code),
  CONSTRAINT ref_reg_status_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_reg_status OWNER TO postgres;
COMMENT ON TABLE public.ref_reg_status IS 'Contains list of registration statuses, applicable to rights and administrative units.';
COMMENT ON COLUMN public.ref_reg_status.code IS 'Registration status code.';
COMMENT ON COLUMN public.ref_reg_status.val IS 'Registration status name.';
COMMENT ON COLUMN public.ref_reg_status.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_reg_status.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_reg_status.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_reg_status.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_reg_status.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_reg_status
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_reg_status
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_reg_status
(
  code character varying(20),
  val character varying(500),
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_reg_status OWNER TO postgres;

-- Provinces

CREATE TABLE public.ref_province
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  geom geometry,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_province_pkey PRIMARY KEY (code),
  CONSTRAINT ref_province_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_province OWNER TO postgres;
COMMENT ON TABLE public.ref_province IS 'Contains list of provinces';
COMMENT ON COLUMN public.ref_province.code IS 'Province code.';
COMMENT ON COLUMN public.ref_province.val IS 'Province name.';
COMMENT ON COLUMN public.ref_province.geom IS 'Province boundary.';
COMMENT ON COLUMN public.ref_province.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_province.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_province.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_province.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_province.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_province
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_province
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_province
(
  code character varying(20),
  val character varying(500),
  geom geometry,
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_province OWNER TO postgres;

-- Genders

CREATE TABLE public.ref_gender
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_gender_pkey PRIMARY KEY (code),
  CONSTRAINT ref_gender_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_gender OWNER TO postgres;
COMMENT ON TABLE public.ref_gender IS 'Contains list of genders';
COMMENT ON COLUMN public.ref_gender.code IS 'Gender code.';
COMMENT ON COLUMN public.ref_gender.val IS 'Gender name.';
COMMENT ON COLUMN public.ref_gender.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_gender.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_gender.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_gender.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_gender.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_gender
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_gender
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_gender
(
  code character varying(20),
  val character varying(500),
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_gender OWNER TO postgres;


-- Chiefdoms

CREATE TABLE public.ref_chiefdom
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  province_code character varying(20) NOT NULL,
  household_name character varying(500),
  chief_name character varying(150),
  chief_gender_code character varying(20),
  establishment_date date,
  custom_text1 character varying(2000),
  custom_text2 character varying(2000),
  srs integer,
  geom geometry,
  logo bytea,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_chiefdom_pkey PRIMARY KEY (code),
  CONSTRAINT ref_chiefdom_val_unique UNIQUE (val),
  CONSTRAINT ref_chiefdom_ref_province_fk FOREIGN KEY (province_code)
      REFERENCES public.ref_province (code) MATCH SIMPLE,
  CONSTRAINT ref_chiefdom_ref_gender_fk FOREIGN KEY (chief_gender_code)
      REFERENCES public.ref_gender (code) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_chiefdom OWNER TO postgres;
COMMENT ON TABLE public.ref_chiefdom IS 'Contains list of chiefdoms';
COMMENT ON COLUMN public.ref_chiefdom.code IS 'Chiefdom code.';
COMMENT ON COLUMN public.ref_chiefdom.val IS 'Chiefdom name.';
COMMENT ON COLUMN public.ref_chiefdom.province_code IS 'Province code.';
COMMENT ON COLUMN public.ref_chiefdom.household_name IS 'Household name.';
COMMENT ON COLUMN public.ref_chiefdom.chief_name IS 'Full name of the chief.';
COMMENT ON COLUMN public.ref_chiefdom.chief_gender_code IS 'Chief gender.';
COMMENT ON COLUMN public.ref_chiefdom.establishment_date IS 'Chiefdom establishment date';
COMMENT ON COLUMN public.ref_chiefdom.custom_text1 IS 'Custom text for using on the certificate annex.';
COMMENT ON COLUMN public.ref_chiefdom.custom_text2 IS 'Second custom text for using on the certificate annex.';
COMMENT ON COLUMN public.ref_chiefdom.srs IS 'Spatial reference ID.';
COMMENT ON COLUMN public.ref_chiefdom.geom IS 'Chiefdom boundary.';
COMMENT ON COLUMN public.ref_chiefdom.logo IS 'Logo for certificate.';
COMMENT ON COLUMN public.ref_chiefdom.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_chiefdom.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_chiefdom.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_chiefdom.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_chiefdom.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_chiefdom
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_chiefdom
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_chiefdom
(
  code character varying(20),
  val character varying(500),
  province_code character varying(20),
  household_name character varying(500),
  chief_name character varying(150),
  chief_gender_code character varying(20),
  establishment_date date,
  custom_text1 character varying(2000),
  custom_text2 character varying(2000),
  srs integer,
  geom geometry,
  logo bytea,
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_chiefdom OWNER TO postgres;

-- Areas

CREATE TABLE public.ref_area
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  chiefdom_code character varying(20) NOT NULL,
  geom geometry,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_area_pkey PRIMARY KEY (code),
  CONSTRAINT ref_area_ref_chiefdom_fk FOREIGN KEY (chiefdom_code)
      REFERENCES public.ref_chiefdom (code) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_area OWNER TO postgres;
COMMENT ON TABLE public.ref_area IS 'Contains list of areas, clustering villages under the chiefdom';
COMMENT ON COLUMN public.ref_area.code IS 'Area code.';
COMMENT ON COLUMN public.ref_area.val IS 'Area name.';
COMMENT ON COLUMN public.ref_area.chiefdom_code IS 'Chiefdom code.';
COMMENT ON COLUMN public.ref_area.geom IS 'Area boundary.';
COMMENT ON COLUMN public.ref_area.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_area.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_area.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_area.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_area.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_area
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_area
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_area
(
  code character varying(20),
  val character varying(500),
  chiefdom_code character varying(20),
  geom geometry,
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_area OWNER TO postgres;

-- Villages

CREATE TABLE public.ref_village
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  area_code character varying(20) NOT NULL,
  geom geometry,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_village_pkey PRIMARY KEY (code),
  CONSTRAINT ref_village_ref_area_fk FOREIGN KEY (area_code)
      REFERENCES public.ref_area (code) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_village OWNER TO postgres;
COMMENT ON TABLE public.ref_village IS 'Contains list of villages';
COMMENT ON COLUMN public.ref_village.code IS 'Village code.';
COMMENT ON COLUMN public.ref_village.val IS 'Village name.';
COMMENT ON COLUMN public.ref_village.area_code IS 'Area code.';
COMMENT ON COLUMN public.ref_village.geom IS 'Village boundary.';
COMMENT ON COLUMN public.ref_village.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_village.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_village.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_village.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_village.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_village
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_village
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_village
(
  code character varying(20),
  val character varying(500),
  area_code character varying(20),
  geom geometry,
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_village OWNER TO postgres;

-- Location by village function
CREATE OR REPLACE FUNCTION public.get_location_by_village(
    village_code character varying,
    language_code character varying)
  RETURNS character varying AS
$BODY$
BEGIN
  return (select get_translation(p.val, language_code) || ', ' || get_translation(ch.val, language_code) || ', ' || get_translation(v.val, language_code)
	    from public.ref_village v inner join (public.ref_area a inner join (public.ref_chiefdom ch inner join public.ref_province p on ch.province_code = p.code) on a.chiefdom_code = ch.code) on v.area_code = a.code
	    where v.code = village_code);
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION public.get_location_by_village(character varying, character varying)
  OWNER TO postgres;
COMMENT ON FUNCTION public.get_location_by_village(character varying, character varying) IS 'This function is used to make a string of full location by village code';

-- Document type

CREATE TABLE public.ref_doc_type
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_doc_type_pkey PRIMARY KEY (code),
  CONSTRAINT ref_doc_type_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_doc_type OWNER TO postgres;
COMMENT ON TABLE public.ref_doc_type IS 'Contains list of document types';
COMMENT ON COLUMN public.ref_doc_type.code IS 'Document type code.';
COMMENT ON COLUMN public.ref_doc_type.val IS 'Document type name.';
COMMENT ON COLUMN public.ref_doc_type.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_doc_type.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_doc_type.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_doc_type.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_doc_type.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_doc_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_doc_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_doc_type
(
  code character varying(20),
  val character varying(500),
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_doc_type OWNER TO postgres;

-- Media

CREATE SCHEMA media;

CREATE TABLE media.file
(
   id character varying(40) NOT NULL, 
   file_path character varying(255) NOT NULL, 
   original_file_name character varying(255), 
   media_type character varying(255) NOT NULL, 
   file_size integer NOT NULL DEFAULT 0,
   creation_time timestamp without time zone NOT NULL DEFAULT now(),
   created_by character varying(50) NOT NULL DEFAULT 'db:' || current_user,
   CONSTRAINT file_pk PRIMARY KEY (id)
)
WITH (
  OIDS = FALSE
);
ALTER TABLE media.file OWNER TO postgres;

COMMENT ON COLUMN media.file.id IS 'Row identifier';
COMMENT ON COLUMN media.file.file_path IS 'Physical file path on the hard drive. The path must be relative and will be prepended by the system.';
COMMENT ON COLUMN media.file.original_file_name IS 'Original file name that was uploaded.';
COMMENT ON COLUMN media.file.media_type IS 'Media type of the file, for transmission over the Internet.';
COMMENT ON COLUMN media.file.file_size IS 'File size in bytes.';
COMMENT ON COLUMN media.file.created_by IS 'User name, who created the record.';
COMMENT ON COLUMN media.file.creation_time IS 'Date and time, when the file was inserted.';
COMMENT ON TABLE media.file IS 'Contains information on the files, attached to the documents or persons.';

-- Documents

CREATE TABLE public.document
(
   id character varying(40) NOT NULL, 
   type_code character varying(20) NOT NULL, 
   ref_number character varying(20), 
   doc_date date, 
   authority character varying(255), 
   expiry_date date, 
   file_id character varying(40), 
   description character varying(500), 
   rowversion integer NOT NULL DEFAULT 0,
   action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
   action_user character varying(50),
   action_time timestamp without time zone NOT NULL DEFAULT now(),
   CONSTRAINT document_pk PRIMARY KEY (id), 
   CONSTRAINT document_file_fk FOREIGN KEY (file_id) REFERENCES media.file (id) ON UPDATE NO ACTION ON DELETE NO ACTION,
   CONSTRAINT document_ref_doc_type_fk FOREIGN KEY (type_code) REFERENCES public.ref_doc_type (code) ON UPDATE NO ACTION ON DELETE NO ACTION
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE public.document OWNER TO postgres;
COMMENT ON COLUMN public.document.id IS 'Row identifier';
COMMENT ON COLUMN public.document.type_code IS 'Document type code';
COMMENT ON COLUMN public.document.ref_number IS 'Document reference number';
COMMENT ON COLUMN public.document.doc_date IS 'Document date';
COMMENT ON COLUMN public.document.authority IS 'Authority name, issued the document';
COMMENT ON COLUMN public.document.expiry_date IS 'Document expiration date as stated by the issuing authrority';
COMMENT ON COLUMN public.document.file_id IS 'File id reference.';
COMMENT ON COLUMN public.document.description IS 'Additional document description';
COMMENT ON COLUMN public.document.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.document.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.document.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.document.action_time IS 'Date and time, of the action.';
COMMENT ON TABLE public.document
  IS 'Contains various documents, related to application, right or person.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.document
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.document
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();
  
CREATE TABLE history.document
(
   id character varying(40), 
   type_code character varying(20), 
   ref_number character varying(20), 
   doc_date date, 
   authority character varying(255), 
   expiry_date date, 
   file_id character varying(40), 
   description character varying(500), 
   rowversion integer,
   action_code character(1),
   action_user character varying(50),
   action_time timestamp without time zone,
   recording_time timestamp without time zone NOT NULL DEFAULT now()
) 
WITH (
  OIDS = FALSE
);

ALTER TABLE history.document OWNER TO postgres;

-- Application

CREATE SEQUENCE public.application_number_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 1
  CACHE 1;
ALTER TABLE public.application_number_seq
  OWNER TO postgres;

CREATE TABLE public.application
(
   id character varying(40) NOT NULL, 
   app_type_code character varying(20) NOT NULL, 
   app_number character varying(20) NOT NULL, 
   lodgement_date timestamp without time zone NOT NULL DEFAULT now(), 
   chiefdom_code character varying(20),
   status_code character varying(20) NOT NULL DEFAULT 'pending', 
   approve_reject_date timestamp without time zone, 
   reject_reason character varying(1000), 
   workflow_step_id character varying(40), 
   complete_date timestamp without time zone, 
   comment character varying(40), 
   fee double precision DEFAULT 0,
   rowversion integer NOT NULL DEFAULT 0,
   action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
   action_user character varying(50),
   action_time timestamp without time zone NOT NULL DEFAULT now(),
   CONSTRAINT application_pk PRIMARY KEY (id), 
   CONSTRAINT application_app_number_unique UNIQUE (app_number), 
   CONSTRAINT application_ref_app_type_fk FOREIGN KEY (app_type_code) REFERENCES public.ref_app_type (code) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT application_ref_chiefdom_fk FOREIGN KEY (chiefdom_code) REFERENCES public.ref_chiefdom (code) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT application_ref_app_status FOREIGN KEY (status_code) REFERENCES public.ref_app_status (code) ON UPDATE NO ACTION ON DELETE NO ACTION,
   CONSTRAINT application_workflow_step_fk FOREIGN KEY (workflow_step_id) REFERENCES public.workflow_step (id) ON UPDATE NO ACTION ON DELETE NO ACTION 
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE public.application OWNER TO postgres;
COMMENT ON COLUMN public.application.id IS 'Row identifier';
COMMENT ON COLUMN public.application.app_type_code IS 'Application type code.';
COMMENT ON COLUMN public.application.app_number IS 'Unique application number.';
COMMENT ON COLUMN public.application.lodgement_date IS 'Application lodgement date and time';
COMMENT ON COLUMN public.application.chiefdom_code IS 'Chiefdom code.';
COMMENT ON COLUMN public.application.status_code IS 'Status code.';
COMMENT ON COLUMN public.application.approve_reject_date IS 'Approval or rejection date';
COMMENT ON COLUMN public.application.reject_reason IS 'Rejection reason.';
COMMENT ON COLUMN public.application.workflow_step_id IS 'Workflow step id.';
COMMENT ON COLUMN public.application.complete_date IS 'Complition date. Can be date of issuance of certificate.';
COMMENT ON COLUMN public.application.comment IS 'Free text comment to the application.';
COMMENT ON COLUMN public.application.fee IS 'Application fee';
COMMENT ON COLUMN public.application.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.application.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.application.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.application.action_time IS 'Date and time, of the action.';
COMMENT ON TABLE public.application
  IS 'Contains applications to execute various transactions';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.application
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.application
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE OR REPLACE FUNCTION public.f_generate_app_number()
  RETURNS trigger AS
$BODY$
BEGIN
    IF (TG_OP = 'INSERT') THEN
        NEW.app_number = (select substring(DATE_PART('year', current_timestamp)::varchar,3,2) || LPAD(DATE_PART('month', current_timestamp)::varchar,2,'0') || '-' || LPAD(nextval('public.application_number_seq')::text, 6, '0'));
    END IF;
    RETURN NEW;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION public.f_generate_app_number()
  OWNER TO postgres;
COMMENT ON FUNCTION public.f_generate_app_number() IS 'This function is used to generate application number, using office-code system setting and application row_id value.';

CREATE TRIGGER __generate_number
  BEFORE INSERT
  ON public.application
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_generate_app_number();
  
CREATE TABLE history.application
(
   id character varying(40), 
   app_type_code character varying(20), 
   app_number character varying(20), 
   lodgement_date timestamp without time zone, 
   chiefdom_code character varying(20),
   status_code character varying(20), 
   approve_reject_date timestamp without time zone, 
   reject_reason character varying(1000), 
   workflow_step_id character varying(40), 
   complete_date timestamp without time zone, 
   comment character varying(40), 
   fee double precision,
   rowversion integer,
   action_code character(1),
   action_user character varying(50),
   action_time timestamp without time zone,
   recording_time timestamp without time zone NOT NULL DEFAULT now()
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE public.application OWNER TO postgres;

-- Application documents

CREATE TABLE public.application_document
(
   app_id character varying(40) NOT NULL, 
   document_id character varying(40) NOT NULL,
   rowversion integer NOT NULL DEFAULT 0,
   action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
   action_user character varying(50),
   action_time timestamp without time zone NOT NULL DEFAULT now(),
   CONSTRAINT application_document_pk PRIMARY KEY (app_id, document_id), 
   CONSTRAINT application_document_application_fk FOREIGN KEY (app_id) REFERENCES public.application (id) ON UPDATE CASCADE ON DELETE CASCADE, 
   CONSTRAINT application_document_document_fk FOREIGN KEY (document_id) REFERENCES public.document (id) ON UPDATE CASCADE ON DELETE CASCADE
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE public.application_document OWNER TO postgres;
COMMENT ON COLUMN public.application_document.app_id IS 'Application identifier.';
COMMENT ON COLUMN public.application_document.document_id IS 'Document identifier.';
COMMENT ON COLUMN public.application_document.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.application_document.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.application_document.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.application_document.action_time IS 'Date and time, of the action.';
COMMENT ON TABLE public.application_document
  IS 'Contains relations between applications and documents.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.application_document
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.application_document
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.application_document
(
   app_id character varying(40) NOT NULL, 
   document_id character varying(40) NOT NULL,
   rowversion integer,
   action_code character(1),
   action_user character varying(50),
   action_time timestamp without time zone,
   recording_time timestamp without time zone NOT NULL DEFAULT now()
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE history.application_document OWNER TO postgres;

-- Entity types

CREATE TABLE public.ref_entity_type
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_entity_type_pkey PRIMARY KEY (code),
  CONSTRAINT ref_entity_type_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_entity_type OWNER TO postgres;
COMMENT ON TABLE public.ref_entity_type IS 'Contains list of legal entity types';
COMMENT ON COLUMN public.ref_entity_type.code IS 'Entity type code.';
COMMENT ON COLUMN public.ref_entity_type.val IS 'Entity type name.';
COMMENT ON COLUMN public.ref_entity_type.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_entity_type.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_entity_type.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_entity_type.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_entity_type.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_entity_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_entity_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_entity_type
(
  code character varying(20),
  val character varying(500),
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_entity_type OWNER TO postgres;

-- Marital statuses

CREATE TABLE public.ref_marital_status
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_marital_status_pkey PRIMARY KEY (code),
  CONSTRAINT ref_marital_status_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_marital_status OWNER TO postgres;
COMMENT ON TABLE public.ref_marital_status IS 'Contains list of marital statuses';
COMMENT ON COLUMN public.ref_marital_status.code IS 'Marital status code.';
COMMENT ON COLUMN public.ref_marital_status.val IS 'Marital status name.';
COMMENT ON COLUMN public.ref_marital_status.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_marital_status.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_marital_status.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_marital_status.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_marital_status.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_marital_status
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_marital_status
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_marital_status
(
  code character varying(20),
  val character varying(500),
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_marital_status OWNER TO postgres;

-- Citizenships

CREATE TABLE public.ref_citizenship
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_citizenship_pkey PRIMARY KEY (code),
  CONSTRAINT ref_citizenship_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_citizenship OWNER TO postgres;
COMMENT ON TABLE public.ref_citizenship IS 'Contains list of citizenships';
COMMENT ON COLUMN public.ref_citizenship.code IS 'CItizenship code.';
COMMENT ON COLUMN public.ref_citizenship.val IS 'Citizenship name.';
COMMENT ON COLUMN public.ref_citizenship.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_citizenship.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_citizenship.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_citizenship.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_citizenship.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_citizenship
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_citizenship
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_citizenship
(
  code character varying(20),
  val character varying(500),
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_citizenship OWNER TO postgres;

-- ID types

CREATE TABLE public.ref_id_type
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  for_private boolean NOT NULL DEFAULT TRUE,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_id_type_pkey PRIMARY KEY (code),
  CONSTRAINT ref_id_type_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_id_type OWNER TO postgres;
COMMENT ON TABLE public.ref_id_type IS 'Contains list of identification document types';
COMMENT ON COLUMN public.ref_id_type.code IS 'ID type code.';
COMMENT ON COLUMN public.ref_id_type.val IS 'ID type name.';
COMMENT ON COLUMN public.ref_id_type.for_private IS 'ID type for private person';
COMMENT ON COLUMN public.ref_id_type.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_id_type.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_id_type.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_id_type.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_id_type.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_id_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_id_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_id_type
(
  code character varying(20),
  val character varying(500),
  for_private boolean,
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_id_type OWNER TO postgres;

-- Party statuses

CREATE TABLE public.ref_party_status
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_party_status_pkey PRIMARY KEY (code),
  CONSTRAINT ref_party_status_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_party_status OWNER TO postgres;
COMMENT ON TABLE public.ref_party_status IS 'Contains list party statuses';
COMMENT ON COLUMN public.ref_party_status.code IS 'Party status code.';
COMMENT ON COLUMN public.ref_party_status.val IS 'Party status name.';
COMMENT ON COLUMN public.ref_party_status.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_party_status.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_party_status.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_party_status.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_party_status.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_party_status
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_party_status
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_party_status
(
  code character varying(20),
  val character varying(500),
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_party_status OWNER TO postgres;

-- Age range
CREATE TABLE public.ref_age_range
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_age_range_pkey PRIMARY KEY (code),
  CONSTRAINT ref_age_range_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_age_range OWNER TO postgres;
COMMENT ON TABLE public.ref_age_range IS 'Contains a list of age ranges';
COMMENT ON COLUMN public.ref_age_range.code IS 'Age range code.';
COMMENT ON COLUMN public.ref_age_range.val IS 'Age range.';
COMMENT ON COLUMN public.ref_age_range.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_age_range.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_age_range.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_age_range.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_age_range.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_age_range
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_age_range
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_age_range
(
  code character varying(20),
  val character varying(500),
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_age_range OWNER TO postgres;

-- Party

CREATE TABLE public.party
(
   id character varying(40) NOT NULL, 
   is_private boolean NOT NULL DEFAULT 't',
   name1 character varying(255) NOT NULL, 
   name2 character varying(255), 
   name3 character varying(255), 
   name4 character varying(255), 
   citizenship_code character varying(20), 
   gender_code character varying(20), 
   id_type_code character varying(20), 
   id_number character varying(40), 
   entity_type_code character varying(20), 
   marital_status_code character varying(20), 
   dob date, 
   dob_year integer,
   age_range_code character varying(20), 
   province_code character varying(20), 
   chiefdom_code character varying(20), 
   village_code character varying(20), 
   place_of_birth character varying(250),
   is_resident boolean NOT NULL DEFAULT 't', 
   mobile_number character varying(40), 
   address character varying(255), 
   person_photo_id character varying(40),
   parent_id character varying(40), 
   application_id character varying(40), 
   end_application_id character varying(40), 
   status_code character varying(20) NOT NULL DEFAULT 'active',
   rowversion integer NOT NULL DEFAULT 0,
   action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
   action_user character varying(50),
   action_time timestamp without time zone NOT NULL DEFAULT now(), 
   CONSTRAINT party_pk PRIMARY KEY (id), 
   CONSTRAINT party_ref_gender_fk FOREIGN KEY (gender_code) REFERENCES public.ref_gender (code) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT party_ref_citizenship_fk FOREIGN KEY (citizenship_code) REFERENCES public.ref_citizenship (code) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT party_ref_id_type_fk FOREIGN KEY (id_type_code) REFERENCES public.ref_id_type (code) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT party_ref_entity_type_fk FOREIGN KEY (entity_type_code) REFERENCES public.ref_entity_type (code) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT party_ref_marital_status_fk FOREIGN KEY (marital_status_code) REFERENCES public.ref_marital_status (code) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT party_ref_age_range_fk FOREIGN KEY (age_range_code) REFERENCES public.ref_age_range (code) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT party_ref_province_fk FOREIGN KEY (province_code) REFERENCES public.ref_province (code) ON UPDATE NO ACTION ON DELETE NO ACTION,
   CONSTRAINT party_ref_chiefdom_fk FOREIGN KEY (chiefdom_code) REFERENCES public.ref_chiefdom (code) ON UPDATE NO ACTION ON DELETE NO ACTION,
   CONSTRAINT party_ref_village_fk FOREIGN KEY (village_code) REFERENCES public.ref_village (code) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT party_application_fk FOREIGN KEY (application_id) REFERENCES public.application (id) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT party_application_end_fk FOREIGN KEY (end_application_id) REFERENCES public.application (id) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT party_file_fk FOREIGN KEY (person_photo_id) REFERENCES media.file (id) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT party_party_parent_id_fk FOREIGN KEY (parent_id) REFERENCES public.party (id) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT party_ref_party_status_fk FOREIGN KEY (status_code) REFERENCES public.ref_party_status (code) ON UPDATE NO ACTION ON DELETE NO ACTION
) 
WITH (
  OIDS = FALSE
);

ALTER TABLE public.party OWNER TO postgres;
COMMENT ON COLUMN public.party.id IS 'Record identifier - primary key.';
COMMENT ON COLUMN public.party.is_private IS 'Boolean flag, indicating if party is private person or not. True value means private person.';
COMMENT ON COLUMN public.party.name1 IS 'First name of the party. For legal entities is a name of entity.';
COMMENT ON COLUMN public.party.name2 IS 'Seond name of party. For private person can be last name. For legal entity this field is not used.';
COMMENT ON COLUMN public.party.name3 IS 'Third name of party. For private person can be middle name or other name. For legal entity this field is not used.';
COMMENT ON COLUMN public.party.name4 IS 'Fourth name of party. For private person can be alias. For legal entity this field is not used.';
COMMENT ON COLUMN public.party.gender_code IS 'Gender code. For legal entity this field is not used.';
COMMENT ON COLUMN public.party.citizenship_code IS 'Citizenship code. For legal entity this field is not used.';
COMMENT ON COLUMN public.party.gender_code IS 'Gender code. For legal entity this field is not used.';
COMMENT ON COLUMN public.party.id_type_code IS 'ID type code. For legal entity this field is not used.';
COMMENT ON COLUMN public.party.id_number IS 'ID number. For legal entities it can be tax registration number.';
COMMENT ON COLUMN public.party.entity_type_code IS 'Legal entity type code. This field is not used for private persons.';
COMMENT ON COLUMN public.party.marital_status_code IS 'Marital status code. For legal entity this field is not used.';
COMMENT ON COLUMN public.party.dob IS 'Date of birth for provate person and establishment date for legal entities.';
COMMENT ON COLUMN public.party.dob_year IS 'Birth year';
COMMENT ON COLUMN public.party.age_range_code IS 'Range of age';
COMMENT ON COLUMN public.party.province_code IS 'Province code';
COMMENT ON COLUMN public.party.chiefdom_code IS 'Chiefdom code';
COMMENT ON COLUMN public.party.village_code IS 'Village code';
COMMENT ON COLUMN public.party.place_of_birth IS 'Place of birth';
COMMENT ON COLUMN public.party.is_resident IS 'Boolean flag indicating whether private person is a resident of a village or country. Legal entities are supposed to be resident by default.';
COMMENT ON COLUMN public.party.mobile_number IS 'Mobile phone number(s)';
COMMENT ON COLUMN public.party.address IS 'Person or legal entity address';
COMMENT ON COLUMN public.party.person_photo_id IS 'File id reference, containig path to the person photo. Not applicable for legal entities.';
COMMENT ON COLUMN public.party.parent_id IS 'Parent party id. This field is used to link party history, when modifying through official request.';
COMMENT ON COLUMN public.party.application_id IS 'Application id, used to create the party.';
COMMENT ON COLUMN public.party.end_application_id IS 'Application id, used to make the party historic.';
COMMENT ON COLUMN public.party.status_code IS 'Party status code.';
COMMENT ON COLUMN public.party.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.party.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.party.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.party.action_time IS 'Date and time, of the action.';
COMMENT ON TABLE public.party
  IS 'Contains private persons and legal entities, used further in applications, rights registration and other cases.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.party
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.party
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();
  
CREATE TABLE history.party
(
   id character varying(40), 
   is_private boolean,
   name1 character varying(255), 
   name2 character varying(255), 
   name3 character varying(255), 
   name4 character varying(255), 
   citizenship_code character varying(20), 
   gender_code character varying(20), 
   id_type_code character varying(20), 
   id_number character varying(40), 
   entity_type_code character varying(20), 
   marital_status_code character varying(20), 
   dob date, 
   dob_year integer,
   age_range_code character varying(20), 
   province_code character varying(20), 
   chiefdom_code character varying(20), 
   village_code character varying(20), 
   place_of_birth character varying(250),
   is_resident boolean, 
   mobile_number character varying(40), 
   address character varying(255), 
   person_photo_id character varying(40),
   parent_id character varying(40), 
   application_id character varying(40), 
   end_application_id character varying(40), 
   status_code character varying(20),
   rowversion integer,
   action_code character(1),
   action_user character varying(50),
   action_time timestamp without time zone, 
   recording_time timestamp without time zone NOT NULL DEFAULT now()
) 
WITH (
  OIDS = FALSE
);

ALTER TABLE history.party OWNER TO postgres;

-- Party documents

CREATE TABLE public.party_document
(
   party_id character varying(40) NOT NULL, 
   document_id character varying(40) NOT NULL,
   rowversion integer NOT NULL DEFAULT 0,
   action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
   action_user character varying(50),
   action_time timestamp without time zone NOT NULL DEFAULT now(),
   CONSTRAINT party_document_pk PRIMARY KEY (party_id, document_id), 
   CONSTRAINT party_document_application_fk FOREIGN KEY (party_id) REFERENCES public.party (id) ON UPDATE CASCADE ON DELETE CASCADE, 
   CONSTRAINT party_document_document_fk FOREIGN KEY (document_id) REFERENCES public.document (id) ON UPDATE CASCADE ON DELETE CASCADE
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE public.party_document OWNER TO postgres;
COMMENT ON COLUMN public.party_document.party_id IS 'Party identifier.';
COMMENT ON COLUMN public.party_document.document_id IS 'Document identifier.';
COMMENT ON COLUMN public.party_document.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.party_document.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.party_document.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.party_document.action_time IS 'Date and time, of the action.';
COMMENT ON TABLE public.party_document
  IS 'Contains relations between parties and documents.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.party_document
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.party_document
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.party_document
(
   party_id character varying(40) NOT NULL, 
   document_id character varying(40) NOT NULL,
   rowversion integer,
   action_code character(1),
   action_user character varying(50),
   action_time timestamp without time zone,
   recording_time timestamp without time zone NOT NULL DEFAULT now()
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE history.party_document OWNER TO postgres;

-- Applicants

CREATE TABLE public.application_party
(
   app_id character varying(40) NOT NULL, 
   party_id character varying(40) NOT NULL,
   is_contact boolean NOT NULL DEFAULT 'f',
   rowversion integer NOT NULL DEFAULT 0,
   action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
   action_user character varying(50),
   action_time timestamp without time zone NOT NULL DEFAULT now(),
   CONSTRAINT application_party_pk PRIMARY KEY (app_id, party_id), 
   CONSTRAINT application_party_application_fk FOREIGN KEY (app_id) REFERENCES public.application (id) ON UPDATE CASCADE ON DELETE CASCADE, 
   CONSTRAINT application_party_document_fk FOREIGN KEY (party_id) REFERENCES public.party (id) ON UPDATE CASCADE ON DELETE CASCADE
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE public.application_party OWNER TO postgres;
COMMENT ON COLUMN public.application_party.app_id IS 'Application identifier.';
COMMENT ON COLUMN public.application_party.party_id IS 'Party identifier.';
COMMENT ON COLUMN public.application_party.is_contact IS 'Indicates whether this party is a contact person for application.';
COMMENT ON COLUMN public.application_party.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.application_party.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.application_party.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.application_party.action_time IS 'Date and time, of the action.';
COMMENT ON TABLE public.application_party
  IS 'Contains relations between applications and parties as applicants.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.application_party
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.application_party
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.application_party
(
   app_id character varying(40) NOT NULL, 
   party_id character varying(40) NOT NULL,
   is_contact boolean,
   rowversion integer,
   action_code character(1),
   action_user character varying(50),
   action_time timestamp without time zone,
   recording_time timestamp without time zone NOT NULL DEFAULT now()
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE history.application_party OWNER TO postgres;

-- Party to change

CREATE TABLE public.application_party_for_change
(
   app_id character varying(40) NOT NULL, 
   party_id character varying(40) NOT NULL,
   rowversion integer NOT NULL DEFAULT 0,
   action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
   action_user character varying(50),
   action_time timestamp without time zone NOT NULL DEFAULT now(),
   CONSTRAINT application_party_for_change_pk PRIMARY KEY (app_id, party_id), 
   CONSTRAINT application_party_for_change_application_fk FOREIGN KEY (app_id) REFERENCES public.application (id) ON UPDATE CASCADE ON DELETE CASCADE, 
   CONSTRAINT application_party_for_change_document_fk FOREIGN KEY (party_id) REFERENCES public.party (id) ON UPDATE CASCADE ON DELETE CASCADE
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE public.application_party_for_change OWNER TO postgres;
COMMENT ON COLUMN public.application_party_for_change.app_id IS 'Application identifier.';
COMMENT ON COLUMN public.application_party_for_change.party_id IS 'Party identifier.';
COMMENT ON COLUMN public.application_party_for_change.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.application_party_for_change.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.application_party_for_change.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.application_party_for_change.action_time IS 'Date and time, of the action.';
COMMENT ON TABLE public.application_party_for_change
  IS 'Contains parties which are requested for change of details through application.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.application_party_for_change
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.application_party_for_change
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.application_party_for_change
(
   app_id character varying(40) NOT NULL, 
   party_id character varying(40) NOT NULL,
   rowversion integer,
   action_code character(1),
   action_user character varying(50),
   action_time timestamp without time zone,
   recording_time timestamp without time zone NOT NULL DEFAULT now()
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE history.application_party_for_change OWNER TO postgres;

-- Land type

CREATE TABLE public.ref_land_type
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_land_type_pkey PRIMARY KEY (code),
  CONSTRAINT ref_land_type_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_land_type OWNER TO postgres;
COMMENT ON TABLE public.ref_land_type IS 'Contains list of land types';
COMMENT ON COLUMN public.ref_land_type.code IS 'Land type code.';
COMMENT ON COLUMN public.ref_land_type.val IS 'Land type name.';
COMMENT ON COLUMN public.ref_land_type.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_land_type.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_land_type.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_land_type.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_land_type.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_land_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_land_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_land_type
(
  code character varying(20),
  val character varying(500),
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_land_type OWNER TO postgres;

-- Land uses

CREATE TABLE public.ref_landuse
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_landuse_pkey PRIMARY KEY (code),
  CONSTRAINT ref_landuse_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_landuse OWNER TO postgres;
COMMENT ON TABLE public.ref_landuse IS 'Contains list of land uses';
COMMENT ON COLUMN public.ref_landuse.code IS 'Land use code.';
COMMENT ON COLUMN public.ref_landuse.val IS 'Land use name.';
COMMENT ON COLUMN public.ref_landuse.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_landuse.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_landuse.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_landuse.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_landuse.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_landuse
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_landuse
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_landuse
(
  code character varying(20),
  val character varying(500),
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_landuse OWNER TO postgres;

-- Parcel status

CREATE TABLE public.ref_parcel_status
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_parcel_status_pkey PRIMARY KEY (code),
  CONSTRAINT ref_parcel_status_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_parcel_status OWNER TO postgres;
COMMENT ON TABLE public.ref_parcel_status IS 'Contains list of parcel statuses';
COMMENT ON COLUMN public.ref_parcel_status.code IS 'Parcel status code.';
COMMENT ON COLUMN public.ref_parcel_status.val IS 'Parcel status name.';
COMMENT ON COLUMN public.ref_parcel_status.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_parcel_status.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_parcel_status.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_parcel_status.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_parcel_status.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_parcel_status
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_parcel_status
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_parcel_status
(
  code character varying(20),
  val character varying(500),
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_parcel_status OWNER TO postgres;

-- Survey method

CREATE TABLE public.ref_survey_method
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_survey_method_pkey PRIMARY KEY (code),
  CONSTRAINT ref_survey_method_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_survey_method OWNER TO postgres;
COMMENT ON TABLE public.ref_survey_method IS 'Contains a list of survey methods';
COMMENT ON COLUMN public.ref_survey_method.code IS 'Survey method code.';
COMMENT ON COLUMN public.ref_survey_method.val IS 'Survey method name.';
COMMENT ON COLUMN public.ref_survey_method.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_survey_method.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_survey_method.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_survey_method.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_survey_method.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_survey_method
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_survey_method
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_survey_method
(
  code character varying(20),
  val character varying(500),
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_survey_method OWNER TO postgres;

-- Survey type

CREATE TABLE public.ref_survey_type
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_survey_type_pkey PRIMARY KEY (code),
  CONSTRAINT ref_survey_type_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_survey_type OWNER TO postgres;
COMMENT ON TABLE public.ref_survey_type IS 'Contains a list of survey types';
COMMENT ON COLUMN public.ref_survey_type.code IS 'Survey type code.';
COMMENT ON COLUMN public.ref_survey_type.val IS 'Survey type name.';
COMMENT ON COLUMN public.ref_survey_type.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_survey_type.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_survey_type.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_survey_type.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_survey_type.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_survey_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_survey_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_survey_type
(
  code character varying(20),
  val character varying(500),
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_survey_type OWNER TO postgres;

-- Feature types

CREATE TABLE public.ref_feature_type
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_feature_type_pkey PRIMARY KEY (code),
  CONSTRAINT ref_feature_type_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_feature_type OWNER TO postgres;
COMMENT ON TABLE public.ref_feature_type IS 'Contains a list of land parcel feature types';
COMMENT ON COLUMN public.ref_feature_type.code IS 'Feature type code.';
COMMENT ON COLUMN public.ref_feature_type.val IS 'Feature type name.';
COMMENT ON COLUMN public.ref_feature_type.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_feature_type.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_feature_type.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_feature_type.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_feature_type.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_feature_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_feature_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_feature_type
(
  code character varying(20),
  val character varying(500),
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_feature_type OWNER TO postgres;

-- Parcels

CREATE TABLE public.parcel
(
   id character varying(40) NOT NULL DEFAULT uuid_generate_v4(), 
   land_type_code character varying(20),
   landuse_code character varying(20),
   upi character varying(30) NOT NULL, 
   village_code character varying(20), 
   survey_date date, 
   surveyor character varying(200),
   survey_type_code character varying(20),
   survey_method_code character varying(20),
   geom geometry NOT NULL, 
   comment character varying(500), 
   application_id character varying(40), 
   end_application_id character varying(40),
   termination_date date,
   status_code character varying(20) NOT NULL DEFAULT 'pending',
   rowversion integer NOT NULL DEFAULT 0,
   action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
   action_user character varying(50),
   action_time timestamp without time zone NOT NULL DEFAULT now(), 
   CONSTRAINT parcel_pk PRIMARY KEY (id), 
   CONSTRAINT parcel_ref_land_type_fk FOREIGN KEY (land_type_code) REFERENCES public.ref_land_type (code) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT parcel_ref_landuse_fk FOREIGN KEY (landuse_code) REFERENCES public.ref_landuse (code) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT parcel_ref_village_fk FOREIGN KEY (village_code) REFERENCES public.ref_village (code) ON UPDATE NO ACTION ON DELETE NO ACTION,
   CONSTRAINT parcel_ref_survey_type_fk FOREIGN KEY (survey_type_code) REFERENCES public.ref_survey_type (code) ON UPDATE NO ACTION ON DELETE NO ACTION,
   CONSTRAINT parcel_ref_survey_method_fk FOREIGN KEY (survey_method_code) REFERENCES public.ref_survey_method (code) ON UPDATE NO ACTION ON DELETE NO ACTION,
   CONSTRAINT parcel_application_fk FOREIGN KEY (application_id) REFERENCES public.application (id) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT parcel_application_end_fk FOREIGN KEY (end_application_id) REFERENCES public.application (id) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT parcel_ref_parcel_status_fk FOREIGN KEY (status_code) REFERENCES public.ref_parcel_status (code) ON UPDATE NO ACTION ON DELETE NO ACTION,
   CONSTRAINT parcel_geom_type_check CHECK (geometrytype(geom) = 'POLYGON'::text),
   CONSTRAINT parcel_geom_srid_check CHECK (st_srid(geom) = 4326),
   CONSTRAINT parcel_valid_geom_check CHECK (st_isvalid(geom))
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE public.parcel OWNER TO postgres;
COMMENT ON COLUMN public.parcel.id IS 'Record identifier.';
COMMENT ON COLUMN public.parcel.land_type_code IS 'Land type code';
COMMENT ON COLUMN public.parcel.landuse_code IS 'Land use code';
COMMENT ON COLUMN public.parcel.upi IS 'Unique parcel identifier.';
COMMENT ON COLUMN public.parcel.village_code IS 'Village code.';
COMMENT ON COLUMN public.parcel.survey_date IS 'Parcel surveying date.';
COMMENT ON COLUMN public.parcel.surveyor IS 'Surveyor name.';
COMMENT ON COLUMN public.parcel.survey_type_code IS 'Survey type code.';
COMMENT ON COLUMN public.parcel.survey_method_code IS 'Survey method code.';
COMMENT ON COLUMN public.parcel.geom IS 'Land parcel geometry.';
COMMENT ON COLUMN public.parcel.comment IS 'Free text comments.';
COMMENT ON COLUMN public.parcel.application_id IS 'Application id, used to create the party.';
COMMENT ON COLUMN public.parcel.end_application_id IS 'Application id, used to make the party historic.';
COMMENT ON COLUMN public.parcel.termination_date IS 'Parcel termination date';
COMMENT ON COLUMN public.parcel.status_code IS 'Parcel status code.';
COMMENT ON COLUMN public.parcel.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.parcel.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.parcel.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.parcel.action_time IS 'Date and time, of the action.';
COMMENT ON TABLE public.parcel
  IS 'Contains land parcels.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.parcel
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.parcel
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE OR REPLACE FUNCTION public.f_check_upi()
  RETURNS trigger AS
$BODY$
BEGIN
    IF (TG_OP = 'INSERT' OR TG_OP = 'UPDATE') THEN
	IF (select count(1) from public.parcel where id != NEW.id and upi = NEW.upi and status_code = NEW.status_code and (status_code = 'active' or status_code = 'pending')) > 0 THEN
	  RAISE EXCEPTION 'Parcel ID must be unique';
	END IF;
    END IF;
    RETURN NEW;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION public.f_check_upi()
  OWNER TO postgres;
COMMENT ON FUNCTION public.f_check_upi() IS 'This function controls parcel ID number uniqueness.';

CREATE TRIGGER __check_upi
  AFTER INSERT OR UPDATE
  ON public.parcel
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_check_upi();
  
CREATE TABLE history.parcel
(
   id character varying(40), 
   land_type_code character varying(20),
   landuse_code character varying(20),
   upi character varying(30),  
   village_code character varying(20),
   survey_date date, 
   surveyor character varying(200),
   survey_type_code character varying(20),
   survey_method_code character varying(20),
   geom geometry, 
   comment character varying(500), 
   application_id character varying(40), 
   end_application_id character varying(40),
   termination_date date,
   status_code character varying(20),
   rowversion integer,
   action_code character(1),
   action_user character varying(50),
   action_time timestamp without time zone, 
   recording_time timestamp without time zone NOT NULL DEFAULT now()
) 
WITH (
  OIDS = FALSE
);

ALTER TABLE history.parcel OWNER TO postgres;

-- Parcel features

CREATE TABLE public.parcel_feature
(
   id character varying(40) NOT NULL DEFAULT uuid_generate_v4(), 
   parcel_id character varying(40) NOT NULL, 
   feature_type_code character varying(20) NOT NULL,
   geom geometry NOT NULL, 
   description character varying(500), 
   rowversion integer NOT NULL DEFAULT 0,
   action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
   action_user character varying(50),
   action_time timestamp without time zone NOT NULL DEFAULT now(), 
   CONSTRAINT parcel_feature_pk PRIMARY KEY (id), 
   CONSTRAINT parcel_feature_parcel_fk FOREIGN KEY (parcel_id) REFERENCES public.parcel (id) ON UPDATE CASCADE ON DELETE CASCADE, 
   CONSTRAINT parcel_feature_ref_feature_type_fk FOREIGN KEY (feature_type_code) REFERENCES public.ref_feature_type (code) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT parcel_feature_srid_check CHECK (st_srid(geom) = 4326),
   CONSTRAINT parcel_valid_geom_check CHECK (st_isvalid(geom))
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE public.parcel_feature OWNER TO postgres;
COMMENT ON COLUMN public.parcel_feature.id IS 'Record identifier.';
COMMENT ON COLUMN public.parcel_feature.parcel_id IS 'Parcel ID';
COMMENT ON COLUMN public.parcel_feature.feature_type_code IS 'Parcel feature type code';
COMMENT ON COLUMN public.parcel_feature.geom IS 'Feature geometry.';
COMMENT ON COLUMN public.parcel_feature.description IS 'Feature description.';
COMMENT ON COLUMN public.parcel_feature.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.parcel_feature.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.parcel_feature.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.parcel_feature.action_time IS 'Date and time, of the action.';
COMMENT ON TABLE public.parcel_feature
  IS 'Contains additional land parcel feeatures.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.parcel_feature
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.parcel_feature
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.parcel_feature
(
   id character varying(40), 
   parcel_id character varying(40), 
   feature_type_code character varying(20),
   geom geometry, 
   description character varying(500),
   rowversion integer,
   action_code character(1),
   action_user character varying(50),
   action_time timestamp without time zone, 
   recording_time timestamp without time zone NOT NULL DEFAULT now()
) 
WITH (
  OIDS = FALSE
);

ALTER TABLE history.parcel_feature OWNER TO postgres;

-- Occupancy types

CREATE TABLE public.ref_occupancy_type
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_occupancy_type_pkey PRIMARY KEY (code),
  CONSTRAINT ref_occupancy_type_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_occupancy_type OWNER TO postgres;
COMMENT ON TABLE public.ref_occupancy_type IS 'Contains list of occupancy types';
COMMENT ON COLUMN public.ref_occupancy_type.code IS 'Occupancy type code.';
COMMENT ON COLUMN public.ref_occupancy_type.val IS 'Occupancy type name.';
COMMENT ON COLUMN public.ref_occupancy_type.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_occupancy_type.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_occupancy_type.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_occupancy_type.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_occupancy_type.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_occupancy_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_occupancy_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_occupancy_type
(
  code character varying(20),
  val character varying(500),
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_occupancy_type OWNER TO postgres;

-- Acquisition types

CREATE TABLE public.ref_acquisition_type
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_acquisition_type_pkey PRIMARY KEY (code),
  CONSTRAINT ref_acquisition_type_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_acquisition_type OWNER TO postgres;
COMMENT ON TABLE public.ref_acquisition_type IS 'Contains a list of acquisition types';
COMMENT ON COLUMN public.ref_acquisition_type.code IS 'Acquisition type code.';
COMMENT ON COLUMN public.ref_acquisition_type.val IS 'Acquisition type name.';
COMMENT ON COLUMN public.ref_acquisition_type.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_acquisition_type.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_acquisition_type.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_acquisition_type.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_acquisition_type.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_acquisition_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_acquisition_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_acquisition_type
(
  code character varying(20),
  val character varying(500),
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_acquisition_type OWNER TO postgres;

-- Application parcel

CREATE TABLE public.application_parcel
(
   app_id character varying(40) NOT NULL, 
   parcel_id character varying(40) NOT NULL,
   rowversion integer NOT NULL DEFAULT 0,
   action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
   action_user character varying(50),
   action_time timestamp without time zone NOT NULL DEFAULT now(),
   CONSTRAINT application_parcel_pk PRIMARY KEY (app_id, parcel_id), 
   CONSTRAINT application_parcel_app_fk FOREIGN KEY (app_id) REFERENCES public.application (id) ON UPDATE CASCADE ON DELETE CASCADE, 
   CONSTRAINT application_parcel_pacel_fk FOREIGN KEY (parcel_id) REFERENCES public.parcel (id) ON UPDATE CASCADE ON DELETE CASCADE
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE public.application_parcel OWNER TO postgres;
COMMENT ON COLUMN public.application_parcel.app_id IS 'Application identifier.';
COMMENT ON COLUMN public.application_parcel.parcel_id IS 'Parcel identifier.';
COMMENT ON COLUMN public.application_parcel.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.application_parcel.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.application_parcel.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.application_parcel.action_time IS 'Date and time, of the action.';
COMMENT ON TABLE public.application_parcel
  IS 'Contains relations between applications and properties. Used in transfers, split or merge transactions';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.application_parcel
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.application_parcel
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.application_parcel
(
   app_id character varying(40) NOT NULL, 
   parcel_id character varying(40) NOT NULL,
   rowversion integer,
   action_code character(1),
   action_user character varying(50),
   action_time timestamp without time zone,
   recording_time timestamp without time zone NOT NULL DEFAULT now()
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE history.application_parcel OWNER TO postgres;

-- Rights

CREATE TABLE public.rrr
(
   id character varying(40) NOT NULL, 
   parcel_id character varying(40) NOT NULL,
   parent_id character varying(40), 
   right_type_code character varying(20) NOT NULL, 
   occupancy_type_code character varying(20), 
   acquisition_type_code character varying(20),
   allocation_date date, 
   reg_date date,  
   witness1 character varying(250), 
   witness2 character varying(250),
   witness3 character varying(250),
   description character varying(1000), 
   application_id character varying(40), 
   end_application_id character varying(40), 
   termination_application_id character varying(40),
   termination_date date, 
   status_code character varying(20) NOT NULL DEFAULT 'pending', 
   rowversion integer NOT NULL DEFAULT 0,
   action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
   action_user character varying(50),
   action_time timestamp without time zone NOT NULL DEFAULT now(), 
   CONSTRAINT rrr_pk PRIMARY KEY (id), 
   CONSTRAINT rrr_parcel_id_fk FOREIGN KEY (parcel_id) REFERENCES public.parcel (id) ON UPDATE CASCADE ON DELETE CASCADE, 
   CONSTRAINT rrr_parent_id_fk FOREIGN KEY (parent_id) REFERENCES public.rrr (id) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT rrr_ref_right_type_fk FOREIGN KEY (right_type_code) REFERENCES public.ref_right_type (code) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT rrr_ref_occupancy_type_fk FOREIGN KEY (occupancy_type_code) REFERENCES public.ref_occupancy_type (code) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT rrr_ref_ref_acquisition_type_fk FOREIGN KEY (acquisition_type_code) REFERENCES public.ref_acquisition_type (code) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT rrr_application_fk FOREIGN KEY (application_id) REFERENCES public.application (id) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT rrr_end_application_fk FOREIGN KEY (end_application_id) REFERENCES public.application (id) ON UPDATE NO ACTION ON DELETE NO ACTION, 
   CONSTRAINT rrr_termination_application_fk FOREIGN KEY (termination_application_id) REFERENCES public.application (id) ON UPDATE NO ACTION ON DELETE NO ACTION,
   CONSTRAINT rrr_ref_reg_status_fk FOREIGN KEY (status_code) REFERENCES public.ref_reg_status (code) ON UPDATE NO ACTION ON DELETE NO ACTION
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE public.rrr OWNER TO postgres;
COMMENT ON COLUMN public.rrr.id IS 'Record identifier.';
COMMENT ON COLUMN public.rrr.parcel_id IS 'Parcel identifier.';
COMMENT ON COLUMN public.rrr.parent_id IS 'Links current right with its pending modified version. Upon approval, current right will be made historic and pending changed to current.';
COMMENT ON COLUMN public.rrr.right_type_code IS 'Right type code.';
COMMENT ON COLUMN public.rrr.occupancy_type_code IS 'Occupancy type code. Used for ownership rights only.';
COMMENT ON COLUMN public.rrr.acquisition_type_code IS 'Acquisition type code.';
COMMENT ON COLUMN public.rrr.allocation_date IS 'Allocation date, when ownerhip right was approved by village counsel.';
COMMENT ON COLUMN public.rrr.reg_date IS 'Date when the right was registered (apporved).';
COMMENT ON COLUMN public.rrr.witness1 IS 'Name of the first witness.';
COMMENT ON COLUMN public.rrr.witness2 IS 'Name of the second witness.';
COMMENT ON COLUMN public.rrr.witness3 IS 'Name of the third witness.';
COMMENT ON COLUMN public.rrr.description IS 'Free text description of the right. Can be comments as well.';
COMMENT ON COLUMN public.rrr.application_id IS 'Application id, used to create the right.';
COMMENT ON COLUMN public.rrr.end_application_id IS 'Application id, used to terminate the right.';
COMMENT ON COLUMN public.rrr.termination_application_id IS 'Application ID used for termination. Comapred to end_application_id this field is used to mark right for termination before approval.';
COMMENT ON COLUMN public.rrr.termination_date IS 'Right termination date.';
COMMENT ON COLUMN public.rrr.status_code IS 'Registration status code.';
COMMENT ON COLUMN public.rrr.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.rrr.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.rrr.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.rrr.action_time IS 'Date and time, of the action.';
COMMENT ON TABLE public.rrr
  IS 'Contains ownership rights, restrictions and other rights on the land parcel.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.rrr
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.rrr
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();
  
CREATE TABLE history.rrr
(
   id character varying(40), 
   parcel_id character varying(40), 
   parent_id character varying(40), 
   right_type_code character varying(20), 
   occupancy_type_code character varying(20), 
   acquisition_type_code character varying(20),
   allocation_date date, 
   reg_date date, 
   witness1 character varying(250), 
   witness2 character varying(250),
   witness3 character varying(250),
   description character varying(1000), 
   application_id character varying(40), 
   end_application_id character varying(40), 
   termination_application_id character varying(40),
   termination_date date, 
   status_code character varying(20), 
   rowversion integer,
   action_code character(1),
   action_user character varying(50),
   action_time timestamp without time zone,
   recording_time timestamp without time zone NOT NULL DEFAULT now()
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE history.rrr OWNER TO postgres;

-- RRR documents

CREATE TABLE public.rrr_document
(
   rrr_id character varying(40) NOT NULL, 
   document_id character varying(40) NOT NULL,
   rowversion integer NOT NULL DEFAULT 0,
   action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
   action_user character varying(50),
   action_time timestamp without time zone NOT NULL DEFAULT now(),
   CONSTRAINT rrr_document_pk PRIMARY KEY (rrr_id, document_id), 
   CONSTRAINT rrr_document_rrr_fk FOREIGN KEY (rrr_id) REFERENCES public.rrr (id) ON UPDATE CASCADE ON DELETE CASCADE, 
   CONSTRAINT rrr_document_document_fk FOREIGN KEY (document_id) REFERENCES public.document (id) ON UPDATE CASCADE ON DELETE CASCADE
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE public.rrr_document OWNER TO postgres;
COMMENT ON COLUMN public.rrr_document.rrr_id IS 'RRR identifier.';
COMMENT ON COLUMN public.rrr_document.document_id IS 'Document identifier.';
COMMENT ON COLUMN public.rrr_document.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.rrr_document.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.rrr_document.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.rrr_document.action_time IS 'Date and time, of the action.';
COMMENT ON TABLE public.rrr_document
  IS 'Contains relations between RRR and documents.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.rrr_document
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.rrr_document
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.rrr_document
(
   rrr_id character varying(40) NOT NULL, 
   document_id character varying(40) NOT NULL,
   rowversion integer,
   action_code character(1),
   action_user character varying(50),
   action_time timestamp without time zone,
   recording_time timestamp without time zone NOT NULL DEFAULT now()
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE history.rrr_document OWNER TO postgres;

-- Owner types

CREATE TABLE public.ref_owner_type
(
  code character varying(20) NOT NULL,
  val character varying(500) NOT NULL,
  active boolean NOT NULL DEFAULT TRUE,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_owner_type_pkey PRIMARY KEY (code),
  CONSTRAINT ref_owner_type_val_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_owner_type OWNER TO postgres;
COMMENT ON TABLE public.ref_owner_type IS 'Contains list of owner types';
COMMENT ON COLUMN public.ref_owner_type.code IS 'Owner type code.';
COMMENT ON COLUMN public.ref_owner_type.val IS 'Owner type name.';
COMMENT ON COLUMN public.ref_owner_type.active IS 'Boolean flag indicating if record is active or not.';
COMMENT ON COLUMN public.ref_owner_type.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_owner_type.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_owner_type.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_owner_type.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_owner_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_owner_type
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_owner_type
(
  code character varying(20),
  val character varying(500),
  active boolean,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_owner_type OWNER TO postgres;

-- Rightholders

CREATE TABLE public.rightholder
(
   rrr_id character varying(40) NOT NULL, 
   party_id character varying(40) NOT NULL, 
   owner_type_code character varying(20), 
   share_size character varying(10), 
   rowversion integer NOT NULL DEFAULT 0,
   action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
   action_user character varying(50),
   action_time timestamp without time zone NOT NULL DEFAULT now(),
   CONSTRAINT rightholder_pk PRIMARY KEY (rrr_id, party_id), 
   CONSTRAINT rightholder_rrr_fk FOREIGN KEY (rrr_id) REFERENCES public.rrr (id) ON UPDATE CASCADE ON DELETE CASCADE, 
   CONSTRAINT rightholder_party_fk FOREIGN KEY (party_id) REFERENCES public.party (id) ON UPDATE CASCADE ON DELETE CASCADE, 
   CONSTRAINT rightholder_ref_owner_type_fk FOREIGN KEY (owner_type_code) REFERENCES public.ref_owner_type (code) ON UPDATE NO ACTION ON DELETE NO ACTION
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE public.rightholder OWNER TO postgres;
COMMENT ON COLUMN public.rightholder.rrr_id IS 'Right id.';
COMMENT ON COLUMN public.rightholder.party_id IS 'Party id.';
COMMENT ON COLUMN public.rightholder.owner_type_code IS 'Owner type code. Used for ownership rights.';
COMMENT ON COLUMN public.rightholder.share_size IS 'Share size of the rightholder. Mainly used for ownership rights.';
COMMENT ON COLUMN public.rightholder.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.rightholder.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.rightholder.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.rightholder.action_time IS 'Date and time, of the action.';
COMMENT ON TABLE public.rightholder
  IS 'Contains rightholders of different rights (ownership, restriction).';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.rightholder
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.rightholder
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();
  
CREATE TABLE history.rightholder
(
   rrr_id character varying(40), 
   party_id character varying(40), 
   owner_type_code character varying(20), 
   share_size character varying(10), 
   rowversion integer,
   action_code character(1),
   action_user character varying(50),
   action_time timestamp without time zone,
   recording_time timestamp without time zone NOT NULL DEFAULT now()
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE history.rightholder OWNER TO postgres;

-- Function to check if party is editable

CREATE OR REPLACE FUNCTION public.check_party_editable(p_id character varying)
  RETURNS boolean AS
$BODY$
BEGIN
  return (select 
		(select count(1) < 1 from rrr r inner join rightholder rh on r.id = rh.rrr_id
		where rh.party_id = p_id and r.status_code != 'pending')
		and
		(select count(1) < 1 from (application a inner join application_party ap on a.id = ap.app_id) inner join party p on ap.party_id = p.id
		where p.id = p_id and a.status_code != 'pending')
		and
		(select count(1) < 1 from (application a inner join application_party_for_change apc on a.id = apc.app_id) inner join party p on apc.party_id = p.id
		where p.id = p_id and a.status_code != 'pending')
	);
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION public.check_party_editable(character varying)
  OWNER TO postgres;
COMMENT ON FUNCTION public.check_party_editable(character varying) IS 'This function checks whether party can be edited.';

-- Function to copy rights and rightholders from one parcel to another. Used for rectification transactions.
CREATE OR REPLACE FUNCTION public.copy_parcel_rights(
    user_name character varying,
    from_id character varying,
    to_id character varying)
  RETURNS boolean AS
$BODY$
DECLARE
 declare r record;
 declare r2 record;
 declare right_id varchar;
BEGIN
   if not exists(select id from public.rrr where parcel_id=to_id) then
    for r in select * from public.rrr where parcel_id = from_id
    loop
      right_id := uuid_generate_v4()::varchar;

      insert into public.rrr(id, parcel_id, right_type_code, occupancy_type_code, 
            acquisition_type_code, allocation_date, reg_date, witness1, witness2, 
            witness3, description, application_id, end_application_id, termination_application_id, 
            termination_date, status_code, action_user)
      values (right_id, to_id, r.right_type_code, r.occupancy_type_code, 
            r.acquisition_type_code, r.allocation_date, r.reg_date, r.witness1, r.witness2, 
            r.witness3, r.description, r.application_id, r.end_application_id, r.termination_application_id, 
            r.termination_date, r.status_code, user_name);
      
      -- right holders
      for r2 in select * from public.rightholder where rrr_id = r.id
      loop
        insert into public.rightholder(rrr_id, party_id, owner_type_code, share_size, action_user)
        values (right_id, r2.party_id, r2.owner_type_code, r2.share_size, user_name);
      end loop;

      -- documents
      for r2 in select * from public.rrr_document where rrr_id = r.id
      loop
        insert into public.rrr_document (rrr_id, document_id, action_user)
        values (right_id, r2.document_id, user_name);
      end loop;

      -- Delete pending rrrs
      delete from public.rrr where id = r.id and r.status_code = 'pending';
      
    end loop;

    return true;
  end if;
  
  return false;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION public.copy_parcel_rights(character varying, character varying, character varying)
  OWNER TO postgres;


-- Users

CREATE TABLE public.appuser
(
  id character varying(40) NOT NULL, 
  username character varying(40) NOT NULL, 
  passwd character varying(255) NOT NULL,
  first_name character varying(30) NOT NULL, 
  last_name character varying(30) NOT NULL, 
  email character varying(40),
  mobile_number character varying(20),
  active boolean NOT NULL DEFAULT true,
  description character varying(255),
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT user_pkey PRIMARY KEY (id),
  CONSTRAINT user_username_unique UNIQUE (username)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.appuser OWNER TO postgres;
COMMENT ON TABLE public.appuser
  IS 'Users list who can acceess the application.';
COMMENT ON COLUMN public.appuser.id IS 'Unuque identifier.';
COMMENT ON COLUMN public.appuser.username IS 'User name.';
COMMENT ON COLUMN public.appuser.passwd IS 'User password.';
COMMENT ON COLUMN public.appuser.first_name IS 'First name.';
COMMENT ON COLUMN public.appuser.last_name IS 'Last name.';
COMMENT ON COLUMN public.appuser.email IS 'Email address.';
COMMENT ON COLUMN public.appuser.mobile_number IS 'Mobile number.';
COMMENT ON COLUMN public.appuser.active IS 'Flag, indicating that user is active or not active for login.';
COMMENT ON COLUMN public.appuser.description IS 'Additional description of the user.';
COMMENT ON COLUMN public.appuser.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.appuser.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.appuser.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.appuser.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.appuser
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.appuser
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.appuser
(
  id character varying(40), 
  username character varying(40), 
  passwd character varying(255),
  first_name character varying(30), 
  last_name character varying(30), 
  email character varying(40),
  mobile_number character varying(20),
  active boolean,
  description character varying(255),
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.appuser OWNER TO postgres;

-- User to chiefdom relation

CREATE TABLE public.appuser_chiefdom
(
  user_id character varying(40) NOT NULL, 
  chiefdom_code character varying(20) NOT NULL, 
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT appuser_chiefdom_pkey PRIMARY KEY (user_id, chiefdom_code),
  CONSTRAINT appuser_chiefdom_chiefdom_fk FOREIGN KEY (chiefdom_code)
      REFERENCES public.ref_chiefdom (code) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE,
  CONSTRAINT appuser_chiefdom_appuser_id_fk119 FOREIGN KEY (user_id)
      REFERENCES public.appuser (id) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.appuser_chiefdom OWNER TO postgres;

COMMENT ON TABLE public.appuser_chiefdom IS 'Associates users to chiefdoms.';
COMMENT ON COLUMN public.appuser_chiefdom.user_id IS 'Identifier of the user.';
COMMENT ON COLUMN public.appuser_chiefdom.chiefdom_code IS 'Chiefdom code.';
COMMENT ON COLUMN public.appuser_chiefdom.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.appuser_chiefdom.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.appuser_chiefdom.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.appuser_chiefdom.action_time IS 'Date and time, of the action.';

CREATE INDEX appuser_chiefdom_chiefdom_code_fk120_ind
  ON public.appuser_chiefdom
  USING btree
  (chiefdom_code COLLATE pg_catalog."default");

CREATE INDEX appuser_chiefdom_appuser_id_fk119_ind
  ON public.appuser_chiefdom
  USING btree
  (user_id COLLATE pg_catalog."default");

CREATE TRIGGER __track_changes
  BEFORE INSERT OR UPDATE
  ON public.appuser_chiefdom
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.appuser_chiefdom
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.appuser_chiefdom
(
  user_id character varying(40), 
  chiefdom_code character varying(20), 
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.appuser_chiefdom OWNER TO postgres;

-- Function to get user chiefdoms
CREATE OR REPLACE FUNCTION public.get_user_chiefdoms(IN user_name character varying)
  RETURNS TABLE(chiefdom_code character varying) AS
$BODY$
begin
 return query 
   select uch.chiefdom_code from public.appuser_chiefdom uch inner join public.appuser u on uch.user_id = u.id where u.username = user_name;
end;$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100
  ROWS 1000;
ALTER FUNCTION public.get_user_chiefdoms(character varying)
  OWNER TO postgres;
 
-- Function to get user's villages
CREATE OR REPLACE FUNCTION public.get_user_villages(IN user_name character varying)
  RETURNS TABLE(village_code character varying) AS
$BODY$
begin
 return query 
   select v.code from (public.appuser_chiefdom uch inner join public.ref_area a on uch.chiefdom_code = a.chiefdom_code inner join public.ref_village v on a.code = v.area_code) 
	inner join public.appuser u on uch.user_id = u.id where u.username = user_name;
end;$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100
  ROWS 1000;
ALTER FUNCTION public.get_user_villages(character varying)
  OWNER TO postgres;
  
-- Group

CREATE TABLE public.appgroup
(
  id character varying(40) NOT NULL,
  group_name character varying(500) NOT NULL,
  description character varying(1000),
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT appgroup_pkey PRIMARY KEY (id),
  CONSTRAINT appgroup_name_unique UNIQUE (group_name)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.appgroup OWNER TO postgres;
COMMENT ON TABLE public.appgroup IS 'Contains list of groups for grouping application users.';
COMMENT ON COLUMN public.appgroup.id IS 'Identifier of the group.';
COMMENT ON COLUMN public.appgroup.group_name IS 'Name of the group.';
COMMENT ON COLUMN public.appgroup.description IS 'Group description.';
COMMENT ON COLUMN public.appgroup.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.appgroup.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.appgroup.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.appgroup.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.appgroup
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.appgroup
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.appgroup
(
  id character varying(40),
  group_name character varying(500),
  description character varying(1000),
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.appgroup OWNER TO postgres;

-- Role to group relation

CREATE TABLE public.approle_appgroup
(
  role_code character varying(20) NOT NULL, 
  group_id character varying(40) NOT NULL,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT approle_appgroup_pkey PRIMARY KEY (role_code, group_id),
  CONSTRAINT approle_appgroup_appgroup_id_fk118 FOREIGN KEY (group_id)
      REFERENCES public.appgroup (id) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE,
  CONSTRAINT approle_appgroup_approle_code_fk117 FOREIGN KEY (role_code)
      REFERENCES public.approle (code) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.approle_appgroup OWNER TO postgres;
COMMENT ON TABLE public.approle_appgroup IS 'Associates application security roles to the groups.';
COMMENT ON COLUMN public.approle_appgroup.role_code IS 'Code of security role.';
COMMENT ON COLUMN public.approle_appgroup.group_id IS 'Identifier of the group.';
COMMENT ON COLUMN public.approle_appgroup.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.approle_appgroup.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.approle_appgroup.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.approle_appgroup.action_time IS 'Date and time, of the action.';

CREATE INDEX approle_appgroup_appgroup_id_fk118_ind
  ON public.approle_appgroup
  USING btree
  (group_id COLLATE pg_catalog."default");

CREATE INDEX approle_appgroup_approle_code_fk117_ind
  ON public.approle_appgroup
  USING btree
  (role_code COLLATE pg_catalog."default");
  
CREATE TRIGGER __track_changes
  BEFORE INSERT OR UPDATE
  ON public.approle_appgroup
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.approle_appgroup
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.approle_appgroup
(
  role_code character varying(20), 
  group_id character varying(40),
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.approle_appgroup OWNER TO postgres;

-- User to group relation

CREATE TABLE public.appuser_appgroup
(
  user_id character varying(40) NOT NULL, 
  group_id character varying(40) NOT NULL, 
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT appuser_appgroup_pkey PRIMARY KEY (user_id, group_id),
  CONSTRAINT appuser_appgroup_appgroup_id_fk120 FOREIGN KEY (group_id)
      REFERENCES public.appgroup (id) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE,
  CONSTRAINT appuser_appgroup_appuser_id_fk119 FOREIGN KEY (user_id)
      REFERENCES public.appuser (id) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.appuser_appgroup OWNER TO postgres;

COMMENT ON TABLE public.appuser_appgroup IS 'Associates users to groups.';
COMMENT ON COLUMN public.appuser_appgroup.user_id IS 'Identifier of the user.';
COMMENT ON COLUMN public.appuser_appgroup.group_id IS 'Identifier of the group.';
COMMENT ON COLUMN public.appuser_appgroup.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.appuser_appgroup.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.appuser_appgroup.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.appuser_appgroup.action_time IS 'Date and time, of the action.';

CREATE INDEX appuser_appgroup_appgroup_id_fk120_ind
  ON public.appuser_appgroup
  USING btree
  (group_id COLLATE pg_catalog."default");

CREATE INDEX appuser_appgroup_appuser_id_fk119_ind
  ON public.appuser_appgroup
  USING btree
  (user_id COLLATE pg_catalog."default");

CREATE TRIGGER __track_changes
  BEFORE INSERT OR UPDATE
  ON public.appuser_appgroup
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.appuser_appgroup
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.appuser_appgroup
(
  user_id character varying(40), 
  group_id character varying(40), 
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.appuser_appgroup OWNER TO postgres;

-- User-role view

CREATE OR REPLACE VIEW public.user_role AS 
 SELECT DISTINCT u.username, rg.role_code AS rolename
   FROM public.appuser u
     JOIN public.appuser_appgroup ug ON u.id::text = ug.user_id::text AND u.active
     JOIN public.approle_appgroup rg ON ug.group_id::text = rg.group_id::text;

ALTER TABLE public.user_role OWNER TO postgres;
COMMENT ON VIEW public.user_role IS 'Determines the application security roles assigned to each user.';

-- Language

CREATE TABLE public.ref_language
(
  code character varying(7) NOT NULL, 
  val character varying(250) NOT NULL, 
  active boolean NOT NULL DEFAULT TRUE, 
  is_default boolean NOT NULL DEFAULT FALSE, 
  item_order integer NOT NULL DEFAULT 1,
  ltr boolean NOT NULL DEFAULT true, 
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT ref_language_pkey PRIMARY KEY (code),
  CONSTRAINT ref_language_display_value_unique UNIQUE (val)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.ref_language OWNER TO postgres;
COMMENT ON TABLE public.ref_language IS 'Lists of languages supported in the system';
COMMENT ON COLUMN public.ref_language.code IS 'Langauge code.';
COMMENT ON COLUMN public.ref_language.val IS 'Language name.';
COMMENT ON COLUMN public.ref_language.active IS 'Boolean flag indicating if the language is active or not.';
COMMENT ON COLUMN public.ref_language.is_default IS 'Boolean flag indicating if the is set as default.';
COMMENT ON COLUMN public.ref_language.item_order IS 'Order of the langages in the list. This order is very important for localization and it should not be changed, without changing localizable strings.';
COMMENT ON COLUMN public.ref_language.ltr IS 'Boolean flag indicating text direction for the language. If true, then left to right should applied, otherwise right to left.';
COMMENT ON COLUMN public.ref_language.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.ref_language.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.ref_language.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.ref_language.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.ref_language
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.ref_language
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.ref_language
(
  code character varying(7), 
  val character varying(250), 
  active boolean, 
  is_default boolean, 
  item_order integer,
  ltr boolean, 
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.ref_language OWNER TO postgres;

-- System settings

CREATE TABLE public.setting
(
  id character varying(50) NOT NULL,
  val character varying(2000) NOT NULL, 
  active boolean NOT NULL DEFAULT TRUE,
  read_only boolean NOT NULL DEFAULT 'f',
  description character varying(555) NOT NULL, 
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT setting_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.setting OWNER TO postgres;
COMMENT ON TABLE public.setting IS 'Contains different system settings.';
COMMENT ON COLUMN public.setting.id IS 'Identifier of the setting';
COMMENT ON COLUMN public.setting.val IS 'Value for the setting.';
COMMENT ON COLUMN public.setting.active IS 'Indicates if the setting is active or not.';
COMMENT ON COLUMN public.setting.read_only IS 'Indicates if setting is read-only and not supposed for modification.';
COMMENT ON COLUMN public.setting.description IS 'Description of the setting. ';
COMMENT ON COLUMN public.setting.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.setting.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.setting.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.setting.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.setting
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.setting
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.setting
(
  id character varying(50),
  val character varying(2000), 
  active boolean,
  read_only boolean,
  description character varying(555), 
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.setting OWNER TO postgres;

-- Map layer

CREATE TABLE public.map_layer
(
   id character varying(40) NOT NULL, 
   name character varying(255) NOT NULL, 
   title character varying(255) NOT NULL, 
   type_code character varying(20) NOT NULL DEFAULT 'wms', 
   active boolean NOT NULL DEFAULT true, 
   url character varying(255) NOT NULL, 
   rowversion integer NOT NULL DEFAULT 0,
   action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
   action_user character varying(50),
   action_time timestamp without time zone NOT NULL DEFAULT now(),
   CONSTRAINT map_layers_id_pk PRIMARY KEY (id)
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE public.map_layer OWNER TO postgres;

COMMENT ON TABLE public.map_layer IS 'Contains map layers to display on the map';
COMMENT ON COLUMN public.map_layer.id IS 'Identifier of the layer';
COMMENT ON COLUMN public.map_layer.name IS 'Layer name as on map server';
COMMENT ON COLUMN public.map_layer.title IS 'Layer title to show in the map legend';
COMMENT ON COLUMN public.map_layer.type_code IS 'Layer type code';
COMMENT ON COLUMN public.map_layer.active IS 'Indicates whether layer is active or not';
COMMENT ON COLUMN public.map_layer.url IS 'Layer URL';
COMMENT ON COLUMN public.map_layer.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.map_layer.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.map_layer.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.map_layer.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.map_layer
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.map_layer
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.map_layer
(
   id character varying(40), 
   name character varying(255), 
   title character varying(255), 
   type_code character varying(20), 
   active boolean, 
   url character varying(255), 
   rowversion integer,
   action_code character(1),
   action_user character varying(50),
   action_time timestamp without time zone,
   recording_time timestamp without time zone NOT NULL DEFAULT now()
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE history.map_layer OWNER TO postgres;

-- Chiefdom layers

CREATE TABLE public.chiefdom_layers
(
  layer_id character varying(40) NOT NULL, 
  chiefdom_code character varying(20) NOT NULL, 
  layer_order integer NOT NULL DEFAULT 0,
  rowversion integer NOT NULL DEFAULT 0,
  action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
  action_user character varying(50),
  action_time timestamp without time zone NOT NULL DEFAULT now(),
  CONSTRAINT chiefdom_layers_pkey PRIMARY KEY (layer_id, chiefdom_code),
  CONSTRAINT chiefdom_layers_chiefdom_fk FOREIGN KEY (chiefdom_code)
      REFERENCES public.ref_chiefdom (code) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE,
  CONSTRAINT chiefdom_layers_layer_id_fk FOREIGN KEY (layer_id)
      REFERENCES public.map_layer (id) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.chiefdom_layers OWNER TO postgres;

COMMENT ON TABLE public.chiefdom_layers IS 'Associates chiefdom to layers.';
COMMENT ON COLUMN public.chiefdom_layers.chiefdom_code IS 'Chiefdom code.';
COMMENT ON COLUMN public.chiefdom_layers.layer_order IS 'Layer order for chiefdom.';
COMMENT ON COLUMN public.chiefdom_layers.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.chiefdom_layers.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.chiefdom_layers.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.chiefdom_layers.action_time IS 'Date and time, of the action.';

CREATE INDEX chiefdom_layers_layer_id_fk120_ind
  ON public.chiefdom_layers
  USING btree
  (layer_id COLLATE pg_catalog."default");

CREATE INDEX chiefdom_layers_chiefdom_code_fk119_ind
  ON public.chiefdom_layers
  USING btree
  (chiefdom_code COLLATE pg_catalog."default");

CREATE TRIGGER __track_changes
  BEFORE INSERT OR UPDATE
  ON public.chiefdom_layers
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.chiefdom_layers
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.chiefdom_layers
(
  layer_id character varying(40), 
  chiefdom_code character varying(20), 
  layer_order integer,
  rowversion integer,
  action_code character(1),
  action_user character varying(50),
  action_time timestamp without time zone,
  recording_time timestamp without time zone NOT NULL DEFAULT now()
)
WITH (
  OIDS=FALSE
);
ALTER TABLE history.chiefdom_layers OWNER TO postgres;

-- Map layer options

CREATE TABLE public.map_layer_option
(
   id character varying(40) NOT NULL, 
   layer_id character varying(40) NOT NULL, 
   name character varying(255) NOT NULL, 
   val character varying(255) NOT NULL, 
   for_server boolean NOT NULL DEFAULT true, 
   rowversion integer NOT NULL DEFAULT 0,
   action_code character(1) NOT NULL DEFAULT 'i'::bpchar,
   action_user character varying(50),
   action_time timestamp without time zone NOT NULL DEFAULT now(),
   CONSTRAINT map_layer_option_pk PRIMARY KEY (id), 
   CONSTRAINT map_layer_option_map_layer_fk FOREIGN KEY (layer_id) REFERENCES public.map_layer (id) ON UPDATE CASCADE ON DELETE CASCADE
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE public.map_layer_option OWNER TO postgres;

COMMENT ON TABLE public.map_layer_option IS 'Map layer options';
COMMENT ON COLUMN public.map_layer_option.id IS 'Metadata identifier.';
COMMENT ON COLUMN public.map_layer_option.layer_id IS 'Layer ID.';
COMMENT ON COLUMN public.map_layer_option.name IS 'Option name';
COMMENT ON COLUMN public.map_layer_option.val IS 'Option value.';
COMMENT ON COLUMN public.map_layer_option.for_server IS 'Indicates whether the option is used for server or client.';
COMMENT ON COLUMN public.map_layer_option.rowversion IS 'Row version number, indicating number of modifications done to the record and controlling concurrent access for modification.';
COMMENT ON COLUMN public.map_layer_option.action_code IS 'Code of action, made to the record. Insert (i), update (u) or delete (d).';
COMMENT ON COLUMN public.map_layer_option.action_user IS 'User name, who created, modified or deleted the record.';
COMMENT ON COLUMN public.map_layer_option.action_time IS 'Date and time, of the action.';

CREATE TRIGGER __control_changes
  BEFORE INSERT OR UPDATE
  ON public.map_layer_option
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_control_changes();

CREATE TRIGGER __track_history
  AFTER UPDATE OR DELETE
  ON public.map_layer_option
  FOR EACH ROW
  EXECUTE PROCEDURE public.f_for_trg_track_history();

CREATE TABLE history.map_layer_option
(
   id character varying(40), 
   layer_id character varying(40), 
   name character varying(255), 
   val character varying(255), 
   for_server boolean, 
   rowversion integer,
   action_code character(1),
   action_user character varying(50),
   action_time timestamp without time zone,
   recording_time timestamp without time zone NOT NULL DEFAULT now()
) 
WITH (
  OIDS = FALSE
);
ALTER TABLE history.map_layer_option OWNER TO postgres;


-- Add initial data

-- Roles
INSERT INTO public.approle(code, role_name, description) VALUES ('admin', 'Administration', 'Used for managing users, groups and reference data tables.');
INSERT INTO public.approle(code, role_name, description) VALUES ('draft-apps', 'Applications drafting', 'Used for drafting new applications. This is workflow role');
INSERT INTO public.approle(code, role_name, description) VALUES ('prepare-attrs', 'Preparation of land record changes', 'Used for preparation of land record changes (attributes part). This is workflow role.');
INSERT INTO public.approle(code, role_name, description) VALUES ('prepare-spatial', 'Preparation of spatial changes', 'Used for preparation of spatial changes and parcel attributes. This is workflow role.');
INSERT INTO public.approle(code, role_name, description) VALUES ('validate', 'Review and validate', 'Used to review and validate changes. This is workflow role.');
INSERT INTO public.approle(code, role_name, description) VALUES ('approve-trans', 'Approval/Rejection of transactions', 'Used to approve or reject transactions. This is workflow role.');
INSERT INTO public.approle(code, role_name, description) VALUES ('generate-cert', 'Generate Certificate', 'Used to generate a certificate. This is workflow role and standalone role, used for producing certificates after the workflow is finished.');

INSERT INTO public.approle(code, role_name, description) VALUES ('complete-apps', 'Applications completion', 'Used for completing the workflow. This is workflow role.');
INSERT INTO public.approle(code, role_name, description) VALUES ('viewing', 'Viewing/searching information', 'Used for searching and viewing different information in the system (e.g. application, parcel, person, etc.).');
INSERT INTO public.approle(code, role_name, description) VALUES ('view-reports', 'Reports viewing', 'Used to generate and view reports.');

-- Groups
INSERT INTO public.appgroup(id, group_name, description) VALUES ('admins', 'Administrators', 'Group of administrators');
INSERT INTO public.appgroup(id, group_name, description) VALUES ('managers', 'Senior Managers', 'Group of users who can make final approvals or rejections of the applications');
INSERT INTO public.appgroup(id, group_name, description) VALUES ('gis-technicians', 'GIS Technicians', 'Group of users who can do spatial and attribute updates, check and validate prepared changes to the customary land records');
INSERT INTO public.appgroup(id, group_name, description) VALUES ('land-clerks', 'Land Clerks', 'Group of users who can collect field data, create different applications in the system and prepare changes to the customary land records');
INSERT INTO public.appgroup(id, group_name, description) VALUES ('viewers', 'Viewers', 'Group of users who can only view the data and generate various reports. Data modifications are not allowed');

-- Group roles
INSERT INTO public.approle_appgroup(group_id, role_code) VALUES ('admins', 'admin');

INSERT INTO public.approle_appgroup(group_id, role_code) VALUES ('managers', 'viewing');
INSERT INTO public.approle_appgroup(group_id, role_code) VALUES ('managers', 'view-reports');
INSERT INTO public.approle_appgroup(group_id, role_code) VALUES ('managers', 'complete-apps');
INSERT INTO public.approle_appgroup(group_id, role_code) VALUES ('managers', 'generate-cert');
INSERT INTO public.approle_appgroup(group_id, role_code) VALUES ('managers', 'approve-trans');
INSERT INTO public.approle_appgroup(group_id, role_code) VALUES ('managers', 'validate');

INSERT INTO public.approle_appgroup(group_id, role_code) VALUES ('gis-technicians', 'viewing');
INSERT INTO public.approle_appgroup(group_id, role_code) VALUES ('gis-technicians', 'view-reports');
INSERT INTO public.approle_appgroup(group_id, role_code) VALUES ('gis-technicians', 'prepare-spatial');
INSERT INTO public.approle_appgroup(group_id, role_code) VALUES ('gis-technicians', 'prepare-attrs');

INSERT INTO public.approle_appgroup(group_id, role_code) VALUES ('land-clerks', 'viewing');
INSERT INTO public.approle_appgroup(group_id, role_code) VALUES ('land-clerks', 'view-reports');
INSERT INTO public.approle_appgroup(group_id, role_code) VALUES ('land-clerks', 'complete-apps');
INSERT INTO public.approle_appgroup(group_id, role_code) VALUES ('land-clerks', 'generate-cert');
INSERT INTO public.approle_appgroup(group_id, role_code) VALUES ('land-clerks', 'draft-apps');

INSERT INTO public.approle_appgroup(group_id, role_code) VALUES ('viewers', 'viewing');
INSERT INTO public.approle_appgroup(group_id, role_code) VALUES ('viewers', 'view-reports');

-- Users
-- sha256 hash. password admin
INSERT INTO public.appuser(id, username, passwd, first_name, last_name, email, mobile_number, active, description)
  VALUES ('admin-user', 'admin', '8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918', 'User', 'Admin', null, '', true, 'System administrator');

-- sha256 hash. password super
INSERT INTO public.appuser(id, username, passwd, first_name, last_name, email, mobile_number, active, description)
  VALUES ('super-user', 'su', '73d1b1b1bc1dabfb97f216d897b7968e44b06457920f00f2dc6c1ed3be25ad4c', 'Super', 'User', null, '', true, 'This is super user with all access rights in the system. It has to be deleted in the production environment.');

-- User groups
INSERT INTO public.appuser_appgroup(user_id, group_id) VALUES ('admin-user', 'admins');
INSERT INTO public.appuser_appgroup(user_id, group_id) VALUES ('super-user', 'admins');
INSERT INTO public.appuser_appgroup(user_id, group_id) VALUES ('super-user', 'managers');
INSERT INTO public.appuser_appgroup(user_id, group_id) VALUES ('super-user', 'gis-technicians');
INSERT INTO public.appuser_appgroup(user_id, group_id) VALUES ('super-user', 'land-clerks');
INSERT INTO public.appuser_appgroup(user_id, group_id) VALUES ('super-user', 'viewers');

-- Languages
INSERT INTO public.ref_language(code, val, active, is_default, item_order, ltr) VALUES ('en', 'English', true, true, 1, true);

-- Settings
INSERT INTO public.setting(id, val, active, read_only, description) VALUES ('version', '1.0', 't', 't', 'Current version of the database. It is used to check compatibility with application version. If versions does not match, an exception will be thrown');
INSERT INTO public.setting(id, val, active, read_only, description) VALUES ('media-path', '../zclas_files', 't', 't', 'Folder path where all files related to applications, parties and rights will be stored. If relative path is provided, then web-application root folder will be used as starting point.');
INSERT INTO public.setting(id, val, active, read_only, description) VALUES ('max-file-size', '20480', 't', 'f', 'Maximum file size in KB that can be uploaded into the system.');
INSERT INTO public.setting(id, val, active, read_only, description) VALUES ('file-extensions', 'pdf,doc,docx,xls,xlsx,txt,jpg,jpeg,png,tif,tiff,csv', 't', 'f', 'Allowed file extensions for uploading into the system.');
INSERT INTO public.setting(id, val, active, read_only, description) VALUES ('srs', '32736', 't', 'f', 'Deafult spatial reference system to be used on the map and printings. It has to be integer SRID, existing in public.spatial_ref_sys table. This value can be overriden by srs in the ref_chiefdom table.');
INSERT INTO public.setting(id, val, active, read_only, description) VALUES ('map-extent', 'Polygon ((33.93447 -13.90672, 29.59340 -13.87039, 29.64018 -8.95651, 33.85026 -9.03967, 33.93447 -13.90672))', 't', 'f', 'Default map extent in WKT format to zoom in when openning the map. This value can be overriden by geom in the ref_chiefdom table.');
INSERT INTO public.setting(id, val, active, read_only, description) VALUES ('offline-mode', '0', 't', 'f', 'Indicates map mode. 1 - offline, 0 - online. If online, Google Maps layers will be added.');

-- Workflow actions
INSERT INTO public.workflow_action_type(code, val, allow_next_step, description) VALUES ('edit', 'Edit', false, 'Allows application editing');
INSERT INTO public.workflow_action_type(code, val, allow_next_step, description) VALUES ('delete', 'Delete', false, 'Allows application deleting');
INSERT INTO public.workflow_action_type(code, val, allow_next_step, description) VALUES ('approve', 'Approve', true, 'Allows application approval');
INSERT INTO public.workflow_action_type(code, val, allow_next_step, description) VALUES ('reject', 'Reject', true, 'Allows application rejection');
INSERT INTO public.workflow_action_type(code, val, allow_next_step, description) VALUES ('complete', 'Complete', true, 'Allows workflow step completion');
INSERT INTO public.workflow_action_type(code, val, allow_next_step, description) VALUES ('print', 'Print', false, 'Allows printing various forms/reports');
INSERT INTO public.workflow_action_type(code, val, allow_next_step, description) VALUES ('edit_map', 'Edit map', false, 'Allows editing map, create/edit parcel boundary');
INSERT INTO public.workflow_action_type(code, val, allow_next_step, description) VALUES ('edit_tenure', 'Edit tenure', false, 'Allows editing land record');

-- Workflow steps
INSERT INTO public.workflow_step(id, val) VALUES ('step1', 'Application drafting');
INSERT INTO public.workflow_step(id, val) VALUES ('step2', 'Preparation of changes');
INSERT INTO public.workflow_step(id, val) VALUES ('step3', 'Review and validation');
INSERT INTO public.workflow_step(id, val) VALUES ('step4', 'Approval/rejection');
INSERT INTO public.workflow_step(id, val) VALUES ('step5', 'Printing certificate');
INSERT INTO public.workflow_step(id, val) VALUES ('step6', 'Completing application');

-- Doc types
INSERT INTO public.ref_doc_type(code, val) VALUES ('chief_let', 'Letter from Chief / Customary');
INSERT INTO public.ref_doc_type(code, val) VALUES ('council', 'Council Record');
INSERT INTO public.ref_doc_type(code, val) VALUES ('cust_cert', 'Customary Certificate');
INSERT INTO public.ref_doc_type(code, val) VALUES ('letter', 'Letter of Sale');
INSERT INTO public.ref_doc_type(code, val) VALUES ('map', 'Recorded on Map');
INSERT INTO public.ref_doc_type(code, val) VALUES ('occupancy', 'Occupancy Letter');
INSERT INTO public.ref_doc_type(code, val) VALUES ('offer', 'Offer Letter');
INSERT INTO public.ref_doc_type(code, val) VALUES ('other', 'Other');
INSERT INTO public.ref_doc_type(code, val) VALUES ('title', 'Title');
INSERT INTO public.ref_doc_type(code, val) VALUES ('id_doc', 'ID Document');
INSERT INTO public.ref_doc_type (code, val) VALUES ('app', 'Application');
INSERT INTO public.ref_doc_type (code, val) VALUES ('nrc', 'NRC');

-- Application type groups
INSERT INTO public.ref_app_type_group(code, val) VALUES ('landhold', 'Landhold');

-- Transaction types
INSERT INTO public.ref_transaction_type(code, val) VALUES ('first_reg', 'First registration of new customary land right');
INSERT INTO public.ref_transaction_type(code, val) VALUES ('transfer', 'Transfer of customary land right');
INSERT INTO public.ref_transaction_type(code, val) VALUES ('rectify', 'Rectification of customary land right and parcel');
INSERT INTO public.ref_transaction_type(code, val) VALUES ('terminate', 'Termination of customary land right');
INSERT INTO public.ref_transaction_type(code, val) VALUES ('change_name', 'Change of name');
INSERT INTO public.ref_transaction_type(code, val, active) VALUES ('no_action', 'No Action', 't');
INSERT INTO public.ref_transaction_type(code, val, active) VALUES ('split', 'Split', 't');
INSERT INTO public.ref_transaction_type(code, val, active) VALUES ('merge', 'Merge', 't');

-- Roles for workflow steps
INSERT INTO public.approle_workflow_step(role_code, workflow_step_id) VALUES ('draft-apps', 'step1');
INSERT INTO public.approle_workflow_step(role_code, workflow_step_id) VALUES ('prepare-attrs', 'step2');
INSERT INTO public.approle_workflow_step(role_code, workflow_step_id) VALUES ('prepare-spatial', 'step2');
INSERT INTO public.approle_workflow_step(role_code, workflow_step_id) VALUES ('validate', 'step3');
INSERT INTO public.approle_workflow_step(role_code, workflow_step_id) VALUES ('approve-trans', 'step4');
INSERT INTO public.approle_workflow_step(role_code, workflow_step_id) VALUES ('generate-cert', 'step5');
INSERT INTO public.approle_workflow_step(role_code, workflow_step_id) VALUES ('complete-apps', 'step6');

-- Workflow steps for transaction types
/*
INSERT INTO public.transaction_type_workflow_step(transaction_type_code, workflow_step_id) SELECT 'first_reg', id, default_order FROM public.workflow_step;
INSERT INTO public.transaction_type_workflow_step(transaction_type_code, workflow_step_id) SELECT 'transfer', id, default_order FROM public.workflow_step;
INSERT INTO public.transaction_type_workflow_step(transaction_type_code, workflow_step_id) SELECT 'rectify', id, default_order FROM public.workflow_step;
INSERT INTO public.transaction_type_workflow_step(transaction_type_code, workflow_step_id) SELECT 'split', id, default_order FROM public.workflow_step;
INSERT INTO public.transaction_type_workflow_step(transaction_type_code, workflow_step_id) SELECT 'merge', id, default_order FROM public.workflow_step;
INSERT INTO public.transaction_type_workflow_step(transaction_type_code, workflow_step_id) SELECT 'change_name', id, default_order FROM public.workflow_step;

INSERT INTO public.transaction_type_workflow_step(transaction_type_code, workflow_step_id) VALUES ('terminate', 'step1', 1);
INSERT INTO public.transaction_type_workflow_step(transaction_type_code, workflow_step_id) VALUES ('terminate', 'step3', 3);
INSERT INTO public.transaction_type_workflow_step(transaction_type_code, workflow_step_id) VALUES ('terminate', 'step4', 4);
INSERT INTO public.transaction_type_workflow_step(transaction_type_code, workflow_step_id) VALUES ('terminate', 'step6', 6);

INSERT INTO public.transaction_type_workflow_step(transaction_type_code, workflow_step_id) VALUES ('no_action', 'step1', 1);
INSERT INTO public.transaction_type_workflow_step(transaction_type_code, workflow_step_id) VALUES ('no_action', 'step3', 3);
INSERT INTO public.transaction_type_workflow_step(transaction_type_code, workflow_step_id) VALUES ('no_action', 'step4', 4);
INSERT INTO public.transaction_type_workflow_step(transaction_type_code, workflow_step_id) VALUES ('no_action', 'step6', 6);
*/

-- Workflow step actions
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step1', null, 'Edit', 'edit', null, false, null, 1);
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step1', null, 'Delete', 'delete', null, false, null, 2);
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step1', 'first_reg', 'Complete', 'complete', 'step2', false, null, 3);
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step1', 'transfer', 'Complete', 'complete', 'step2', false, null, 3);
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step1', 'rectify', 'Complete', 'complete', 'step2', false, null, 3);
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step1', 'split', 'Complete', 'complete', 'step2', false, null, 3);
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step1', 'merge', 'Complete', 'complete', 'step2', false, null, 3);	
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step1', 'change_name', 'Complete', 'complete', 'step2', false, null, 3);
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step1', 'terminate', 'Complete', 'complete', 'step3', false, null, 3);
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step1', 'no_action', 'Complete', 'complete', 'step3', false, null, 3);
	
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step2', null, 'Edit', 'edit', null, false, null, 1);
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step2', null, 'Edit Tenure', 'edit_tenure', null, false, null, 2);
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step2', 'split', 'Edit Map', 'edit_map', null, false, null, 3);
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step2', 'merge', 'Edit Map', 'edit_map', null, false, null, 3);
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step2', 'rectify', 'Edit Map', 'edit_map', null, false, null, 3);
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step2', 'first_reg', 'Edit Map', 'edit_map', null, false, null, 3);
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step2', null, 'Complete', 'complete', 'step3', false, null, 4);

INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step3', null, 'Edit', 'edit', null, false, null, 1);
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step3', null, 'Reject', 'reject', null, true, null, 2);
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step3', null, 'Complete', 'complete', 'step4', false, null, 3);

INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step4', null, 'Reject', 'reject', null, true, null, 1);
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
  SELECT 'step4', code, 'Approve', 'approve', 'step5', false, null, 2 FROM public.ref_transaction_type where code not in ('terminate', 'no_action');
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
  SELECT 'step4', code, 'Approve', 'approve', 'step6', false, null, 2 FROM public.ref_transaction_type where code in ('terminate', 'no_action');
	
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step5', null, 'Print Certificate', 'print', null, false, 'cert', 1);
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step5', null, 'Complete', 'complete', 'step6', false, null, 2);
	
INSERT INTO public.workflow_step_action(workflow_step_id, transaction_type_code, val, action_type, next_workflow_step_id, workflow_end, report_name, action_order)
    VALUES ('step6', null, 'Complete Application', 'complete', null, true, null, 1);
	
-- Application types
INSERT INTO public.ref_app_type(code, val, app_type_group_code, transaction_type_code, fee) VALUES ('app-new-cert', 'New Customary Land Right', 'landhold', 'first_reg', 0);
INSERT INTO public.ref_app_type(code, val, app_type_group_code, transaction_type_code, fee) VALUES ('app-transfer', 'Transfer of Customary Land Right', 'landhold', 'transfer', 0);
INSERT INTO public.ref_app_type(code, val, app_type_group_code, transaction_type_code, fee) VALUES ('app-surrender', 'Surrender/Terminate of Customary Land Right', 'landhold', 'terminate',0 );
INSERT INTO public.ref_app_type(code, val, app_type_group_code, transaction_type_code, fee) VALUES ('app-rectify', 'Rectification of Customary Land Right', 'landhold', 'rectify', 0);
INSERT INTO public.ref_app_type(code, val, app_type_group_code, transaction_type_code, fee) VALUES ('app-split', 'Parcel Division', 'landhold', 'split', 0);
INSERT INTO public.ref_app_type(code, val, app_type_group_code, transaction_type_code, fee) VALUES ('app-merge', 'Parcels Combination', 'landhold', 'merge', 0);

-- Right type groups
INSERT INTO public.ref_right_type_group(code, val) VALUES ('ownership', 'Ownership');

-- Right types
INSERT INTO public.ref_right_type(code, val, right_type_group_code, allow_multiple) VALUES ('landhold', 'Customary Land Right', 'ownership', 'f');

-- Application type to right type
INSERT INTO public.ref_app_type_right_type(app_type_code, right_type_code) VALUES ('app-new-cert', 'landhold');
INSERT INTO public.ref_app_type_right_type(app_type_code, right_type_code) VALUES ('app-transfer', 'landhold');
INSERT INTO public.ref_app_type_right_type(app_type_code, right_type_code) VALUES ('app-surrender', 'landhold');
INSERT INTO public.ref_app_type_right_type(app_type_code, right_type_code) VALUES ('app-rectify', 'landhold');
INSERT INTO public.ref_app_type_right_type(app_type_code, right_type_code) VALUES ('app-split', 'landhold');
INSERT INTO public.ref_app_type_right_type(app_type_code, right_type_code) VALUES ('app-merge', 'landhold');

-- Application status
INSERT INTO public.ref_app_status(code, val) VALUES ('pending', 'Pending');
INSERT INTO public.ref_app_status(code, val) VALUES ('approved', 'Approved');
INSERT INTO public.ref_app_status(code, val) VALUES ('rejected', 'Rejected');

-- Party status
INSERT INTO ref_party_status(code, val) VALUES ('pending', 'Pending');
INSERT INTO ref_party_status(code, val) VALUES ('active', 'Active');
INSERT INTO ref_party_status(code, val) VALUES ('historic', 'Historic');

-- Registration status
INSERT INTO public.ref_reg_status(code, val) VALUES ('pending', 'Pending');
INSERT INTO public.ref_reg_status(code, val) VALUES ('current', 'Registered');
INSERT INTO public.ref_reg_status(code, val) VALUES ('historic', 'Historic');

-- Citizenships
INSERT INTO public.ref_citizenship(code, val) VALUES ('Zambian', 'Zambian');
INSERT INTO public.ref_citizenship(code, val) VALUES ('other_nationality', 'Other Nationality');

-- ID type
INSERT INTO public.ref_id_type(code, val, for_private) VALUES ('driving_license', 'Drivers license', 't');
INSERT INTO public.ref_id_type(code, val, for_private) VALUES ('nrc', 'NRC', 't');
INSERT INTO public.ref_id_type(code, val, for_private) VALUES ('other', 'Other', 't');
INSERT INTO public.ref_id_type(code, val, for_private) VALUES ('passport', 'Passport', 't');
INSERT INTO public.ref_id_type(code, val, for_private) VALUES ('artass', 'Articles of Association', 'f');
INSERT INTO public.ref_id_type(code, val, for_private) VALUES ('certi', 'Certificate of Incorporation', 'f');
INSERT INTO public.ref_id_type(code, val, for_private) VALUES ('certr', 'Certificate of Registration', 'f');
INSERT INTO public.ref_id_type(code, val, for_private) VALUES ('certs', 'Certificate of Share Capital', 'f');
INSERT INTO public.ref_id_type(code, val, for_private) VALUES ('tclc', 'Tax Clearance Certificate', 'f');
INSERT INTO public.ref_id_type(code, val, for_private) VALUES ('tpin', 'TPIN', 'f');

-- Marital status
INSERT INTO public.ref_marital_status(code, val) VALUES ('de_facto_union', 'Defacto Union');
INSERT INTO public.ref_marital_status(code, val) VALUES ('divorced', 'Divorced');
INSERT INTO public.ref_marital_status(code, val) VALUES ('married', 'Married');
INSERT INTO public.ref_marital_status(code, val) VALUES ('seperated', 'Seperated');
INSERT INTO public.ref_marital_status(code, val) VALUES ('single', 'Single');
INSERT INTO public.ref_marital_status(code, val) VALUES ('undeclared', 'Undeclared');
INSERT INTO public.ref_marital_status(code, val) VALUES ('widowed', 'Widowed');

-- Gender
INSERT INTO public.ref_gender(code, val) VALUES ('male', 'Male');
INSERT INTO public.ref_gender(code, val) VALUES ('female', 'Female');
INSERT INTO public.ref_gender(code, val) VALUES ('undisclosed', 'Rather not say');

-- Entity type
INSERT INTO public.ref_entity_type(code, val) VALUES ('chac', 'Chartered Company');
INSERT INTO public.ref_entity_type(code, val) VALUES ('char', 'Charity');
INSERT INTO public.ref_entity_type(code, val) VALUES ('forc', 'Foreign Company');
INSERT INTO public.ref_entity_type(code, val) VALUES ('govc', 'Government Company');
INSERT INTO public.ref_entity_type(code, val) VALUES ('ldcm', 'Land Committee');
INSERT INTO public.ref_entity_type(code, val) VALUES ('ltdg', 'Company limited by guarantee');
INSERT INTO public.ref_entity_type(code, val) VALUES ('ltds', 'Company limited by shares');
INSERT INTO public.ref_entity_type(code, val) VALUES ('ngo', 'Non-Governmental Organization');
INSERT INTO public.ref_entity_type(code, val) VALUES ('othe', 'Other');
INSERT INTO public.ref_entity_type(code, val) VALUES ('pric', 'Private Company');
INSERT INTO public.ref_entity_type(code, val) VALUES ('pubc', 'Public Company');
INSERT INTO public.ref_entity_type(code, val) VALUES ('regc', 'Registered Company');
INSERT INTO public.ref_entity_type(code, val) VALUES ('rgch', 'Registered Charity');
INSERT INTO public.ref_entity_type(code, val) VALUES ('stac', 'Statutory Company');
INSERT INTO public.ref_entity_type(code, val) VALUES ('unco', 'Unlimited Company');
INSERT INTO public.ref_entity_type(code, val) VALUES ('villasso', 'Village Association');

-- Land types
INSERT INTO public.ref_land_type(code, val) VALUES ('C011', 'Field crops');
INSERT INTO public.ref_land_type(code, val) VALUES ('C012', 'Fallow land');
INSERT INTO public.ref_land_type(code, val) VALUES ('C013', 'Horticulture');
INSERT INTO public.ref_land_type(code, val) VALUES ('C014', 'Orchards');
INSERT INTO public.ref_land_type(code, val) VALUES ('C021', 'Improved grass');
INSERT INTO public.ref_land_type(code, val) VALUES ('C022', 'Unimproved grass');
INSERT INTO public.ref_land_type(code, val) VALUES ('C023', 'Recreational and amenity grass');
INSERT INTO public.ref_land_type(code, val) VALUES ('C031', 'Conifer woodland');
INSERT INTO public.ref_land_type(code, val) VALUES ('C032', 'Mixed woodland');
INSERT INTO public.ref_land_type(code, val) VALUES ('C033', 'Broad-leaved woodland');
INSERT INTO public.ref_land_type(code, val) VALUES ('C034', 'Scrub');
INSERT INTO public.ref_land_type(code, val) VALUES ('C041', 'Heathland');
INSERT INTO public.ref_land_type(code, val) VALUES ('C042', 'Bracken');
INSERT INTO public.ref_land_type(code, val) VALUES ('C043', 'Bog');
INSERT INTO public.ref_land_type(code, val) VALUES ('C044', 'Montane');
INSERT INTO public.ref_land_type(code, val) VALUES ('C051', 'Inland rock');
INSERT INTO public.ref_land_type(code, val) VALUES ('C061', 'Standing water');
INSERT INTO public.ref_land_type(code, val) VALUES ('C062', 'Running water');
INSERT INTO public.ref_land_type(code, val) VALUES ('C063', 'Freshwater marsh');
INSERT INTO public.ref_land_type(code, val) VALUES ('C071', 'Sea and coastal waters');
INSERT INTO public.ref_land_type(code, val) VALUES ('C072', 'Inter-tidal sand and mud');
INSERT INTO public.ref_land_type(code, val) VALUES ('C073', 'Salt marsh');
INSERT INTO public.ref_land_type(code, val) VALUES ('C074', 'Dunes');
INSERT INTO public.ref_land_type(code, val) VALUES ('C075', 'Coastal rock and cliffs');
INSERT INTO public.ref_land_type(code, val) VALUES ('C081', 'Building');
INSERT INTO public.ref_land_type(code, val) VALUES ('C082', 'Other built structure');
INSERT INTO public.ref_land_type(code, val) VALUES ('C091', 'Metalled roadway');
INSERT INTO public.ref_land_type(code, val) VALUES ('C092', 'Railway');
INSERT INTO public.ref_land_type(code, val) VALUES ('C093', 'Pathway');
INSERT INTO public.ref_land_type(code, val) VALUES ('C094', 'Other made surface');
INSERT INTO public.ref_land_type(code, val) VALUES ('C101', 'Multiple surface');
INSERT INTO public.ref_land_type(code, val) VALUES ('C102', 'Bare surface');
INSERT INTO public.ref_land_type(code, val) VALUES ('notrec', 'not recorded');

-- Survey types
INSERT INTO public.ref_survey_type(code, val) VALUES ('pss', 'Para surveyor');
INSERT INTO public.ref_survey_type(code, val) VALUES ('rss', 'Registered surveyor');

-- Survey methods
INSERT INTO public.ref_survey_method(code, val) VALUES ('badd', 'Boundary area drawn on device');
INSERT INTO public.ref_survey_method(code, val) VALUES ('bdmo', 'Boundary drawn on map only');
INSERT INTO public.ref_survey_method(code, val) VALUES ('pbdd', 'Partial boundary drawn on device');

-- Age range
INSERT INTO public.ref_age_range(code, val) VALUES ('adult', '35 - 50');
INSERT INTO public.ref_age_range(code, val) VALUES ('child', ' 0 - 18');
INSERT INTO public.ref_age_range(code, val) VALUES ('senior', '50+');
INSERT INTO public.ref_age_range(code, val) VALUES ('youth25', '18 - 25');
INSERT INTO public.ref_age_range(code, val) VALUES ('youth35', '25 - 35');

-- Acquisition types
INSERT INTO public.ref_acquisition_type(code, val) VALUES ('allocated_chief', 'Allocated chief');
INSERT INTO public.ref_acquisition_type(code, val) VALUES ('allocated_cust_auth', 'Allocated customary authority');
INSERT INTO public.ref_acquisition_type(code, val) VALUES ('allocated_government', 'Allocated by government');
INSERT INTO public.ref_acquisition_type(code, val) VALUES ('bought', 'Bought');
INSERT INTO public.ref_acquisition_type(code, val) VALUES ('cleared', 'Cleared without permission');
INSERT INTO public.ref_acquisition_type(code, val) VALUES ('gifted', 'Gifted');
INSERT INTO public.ref_acquisition_type(code, val) VALUES ('inherited', 'Inherited');
INSERT INTO public.ref_acquisition_type(code, val) VALUES ('other', 'other');
INSERT INTO public.ref_acquisition_type(code, val) VALUES ('other_not_listed', 'Other not listed');

-- Parcel statuses
INSERT INTO public.ref_parcel_status(code, val) VALUES ('pending', 'Pending');
INSERT INTO public.ref_parcel_status(code, val) VALUES ('active', 'Active');
INSERT INTO public.ref_parcel_status(code, val) VALUES ('historic', 'Historic');

-- Occupany types
INSERT INTO public.ref_occupancy_type(code, val) VALUES ('family_hh', 'Individual Household Land');
INSERT INTO public.ref_occupancy_type(code, val) VALUES ('family_sh', 'Shared Family Land');
INSERT INTO public.ref_occupancy_type(code, val) VALUES ('group', 'Group or Association');
INSERT INTO public.ref_occupancy_type(code, val) VALUES ('notrec', 'not recorded');
INSERT INTO public.ref_occupancy_type(code, val) VALUES ('village_land', 'Village Land');

-- Land uses
INSERT INTO public.ref_landuse(code, val) VALUES ('notrec', 'not recorded');
INSERT INTO public.ref_landuse(code, val) VALUES ('U011', 'Agriculture');
INSERT INTO public.ref_landuse(code, val) VALUES ('U012', 'Fisheries');
INSERT INTO public.ref_landuse(code, val) VALUES ('U021', 'Managed forest');
INSERT INTO public.ref_landuse(code, val) VALUES ('U022', 'Un-managed forest');
INSERT INTO public.ref_landuse(code, val) VALUES ('U031', 'Mineral workings and quarries');
INSERT INTO public.ref_landuse(code, val) VALUES ('U041', 'Outdoor amenity and open spaces');
INSERT INTO public.ref_landuse(code, val) VALUES ('U042', 'Amusement and show places');
INSERT INTO public.ref_landuse(code, val) VALUES ('U043', 'Libraries museums and galleries');
INSERT INTO public.ref_landuse(code, val) VALUES ('U044', 'Sports facilities and grounds');
INSERT INTO public.ref_landuse(code, val) VALUES ('U045', 'Holiday parks and camps');
INSERT INTO public.ref_landuse(code, val) VALUES ('U046', 'Allotments and city farms');
INSERT INTO public.ref_landuse(code, val) VALUES ('U051', 'Transport tracks and ways');
INSERT INTO public.ref_landuse(code, val) VALUES ('U052', 'Transport terminals and interchanges');
INSERT INTO public.ref_landuse(code, val) VALUES ('U053', 'Car parks');
INSERT INTO public.ref_landuse(code, val) VALUES ('U054', 'Vehicle storage');
INSERT INTO public.ref_landuse(code, val) VALUES ('U055', 'Goods and freight terminals');
INSERT INTO public.ref_landuse(code, val) VALUES ('U056', 'Waterways');
INSERT INTO public.ref_landuse(code, val) VALUES ('U061', 'Energy production and distribution');
INSERT INTO public.ref_landuse(code, val) VALUES ('U062', 'Water storage and treatment');
INSERT INTO public.ref_landuse(code, val) VALUES ('U063', 'Refuse disposal');
INSERT INTO public.ref_landuse(code, val) VALUES ('U064', 'Cemeteries and crematoria');
INSERT INTO public.ref_landuse(code, val) VALUES ('U065', 'Post and telecommunications');
INSERT INTO public.ref_landuse(code, val) VALUES ('U071', 'Dwellings');
INSERT INTO public.ref_landuse(code, val) VALUES ('U072', 'Hotels boarding and guest houses');
INSERT INTO public.ref_landuse(code, val) VALUES ('U073', 'Residential institutions');
INSERT INTO public.ref_landuse(code, val) VALUES ('U081', 'Medical and health care services');
INSERT INTO public.ref_landuse(code, val) VALUES ('U082', 'Places of worship');
INSERT INTO public.ref_landuse(code, val) VALUES ('U083', 'Education');
INSERT INTO public.ref_landuse(code, val) VALUES ('U084', 'Community services');
INSERT INTO public.ref_landuse(code, val) VALUES ('U091', 'Shops');
INSERT INTO public.ref_landuse(code, val) VALUES ('U092', 'Financial and professional services');
INSERT INTO public.ref_landuse(code, val) VALUES ('U093', 'Restaurants and cafes');
INSERT INTO public.ref_landuse(code, val) VALUES ('U094', 'Public houses and bars');
INSERT INTO public.ref_landuse(code, val) VALUES ('U101', 'Manufacturing');
INSERT INTO public.ref_landuse(code, val) VALUES ('U1010', 'Commercial');
INSERT INTO public.ref_landuse(code, val) VALUES ('U102', 'Offices');
INSERT INTO public.ref_landuse(code, val) VALUES ('U103', 'Storage');
INSERT INTO public.ref_landuse(code, val) VALUES ('U104', 'Wholesale distribution');
INSERT INTO public.ref_landuse(code, val) VALUES ('U111', 'Vacant');
INSERT INTO public.ref_landuse(code, val) VALUES ('U112', 'Derelict');
INSERT INTO public.ref_landuse(code, val) VALUES ('U121', 'Defence');
INSERT INTO public.ref_landuse(code, val) VALUES ('U131', 'Unused land');

-- Plots layer
INSERT INTO public.map_layer (id, name, title, type_code, active, url) VALUES ('parcels', 'zclas:parcels', 'Plots', 'wms', 't', 'http://localhost/geoserver/zclas/wms');
INSERT INTO public.map_layer_option (id, layer_id, name, val, for_server) VALUES ('o1', 'parcels', 'transparent', 'true', 't');

-- Feature types
INSERT INTO public.ref_feature_type(code, val) VALUES ('footpath', 'Footpath');
INSERT INTO public.ref_feature_type(code, val) VALUES ('motopath', 'Motorable Path');
INSERT INTO public.ref_feature_type(code, val) VALUES ('road', 'Road');

-- Owner types
INSERT INTO public.ref_owner_type(code, val) VALUES ('administrator', 'Administrator');
INSERT INTO public.ref_owner_type(code, val) VALUES ('grantor', 'Grantor');
INSERT INTO public.ref_owner_type(code, val) VALUES ('guardian', 'Guardian');
INSERT INTO public.ref_owner_type(code, val) VALUES ('landholder', 'Landholder');
INSERT INTO public.ref_owner_type(code, val) VALUES ('poi', 'Person of interest');
INSERT INTO public.ref_owner_type(code, val) VALUES ('representative', 'Representative');
INSERT INTO public.ref_owner_type(code, val) VALUES ('trustee', 'Trustee');

-- Provinces
INSERT INTO public.ref_province(code, geom, val) VALUES ('ZM10', ST_GeomFromText('MULTIPOLYGON(((29.99949473 -12.002674984,30.0000176240001 -12.002907466,30.00075443 -12.002884218,30.0020141300001 -12.004023382,30.0030599190001 -12.005557758,30.0032114480001 -12.005808585,30.0042958500001 -12.00760358,30.0052465680001 -12.009254174,30.0064587320001 -12.011788166,30.007670896 -12.01453136,30.0090073040001 -12.017371753,30.009720342 -12.018882806,30.0111464170001 -12.022486053,30.012513073 -12.0269028709999,30.013760889 -12.030447895,30.0152463840001 -12.0339928729999,30.015959422 -12.037014784,30.015963717 -12.037032989,30.0151869640001 -12.039746098,30.014830445 -12.0416056999999,30.015543484 -12.0425936079999,30.016850719 -12.0431747289999,30.017920276 -12.043232841,30.018752153 -12.0436977369999,30.018989833 -12.0444531909999,30.019168092 -12.045789757,30.01964345 -12.047010096,30.0194651910001 -12.0477655399999,30.020713008 -12.050671075,30.0219014030001 -12.051891391,30.0223767620001 -12.0523562719999,30.0235651580001 -12.05340225,30.024634715 -12.0545644439999,30.025466592 -12.055145539,30.0263578890001 -12.0554360859999,30.0274868660001 -12.055668523,30.029091201 -12.0557266329999,30.029744818 -12.055145539,30.030814375 -12.054157677,30.031705673 -12.053111701,30.0326563900001 -12.0528211509999,30.0339042050001 -12.0527049319999,30.0376476540001 -12.051717061,30.0400244460001 -12.051833281,30.0416882010001 -12.0522400519999,30.0432331160001 -12.052937372,30.043946154 -12.053983348,30.0438273140001 -12.0560752879999,30.043767894 -12.0570050339999,30.044183833 -12.0580509939999,30.0447780320001 -12.058922625,30.0451345500001 -12.059619928,30.0460258480001 -12.060665878,30.0467388860001 -12.0612469599999,30.047867862 -12.0617118239999,30.0490562580001 -12.0618861479999,30.0501258140001 -12.0624091189999,30.0509576920001 -12.0627577659999,30.052205508 -12.063455059,30.053275064 -12.065546926,30.0536315840001 -12.066999601,30.053928682 -12.069265759,30.054998239 -12.071183262,30.054998239 -12.0722291669999,30.05476056 -12.0734493849999,30.0544040410001 -12.0740885439999,30.053928683 -12.0749601229999,30.053453324 -12.075483069,30.0524431870001 -12.0764127469999,30.052324347 -12.077284318,30.051730149 -12.0787950339999,30.0514330510001 -12.0798409089999,30.050838852 -12.080480054,30.0498881350001 -12.0817002329999,30.0488779990001 -12.082629891,30.0490562580001 -12.0839662669999,30.050006974 -12.0848959159999,30.0512547910001 -12.085651254,30.052383767 -12.086174179,30.0527402860001 -12.087394333,30.052443188 -12.088904992,30.051540006 -12.090618999,30.0507081280001 -12.09175779,30.0501376980001 -12.09217612,30.04978118 -12.093245184,30.0495197320001 -12.094523406,30.049353357 -12.0956157009999,30.0490206060001 -12.0966150309999,30.0484501760001 -12.097335475,30.048117425 -12.0981023969999,30.048949303 -12.0991714369999,30.050280306 -12.100077794,30.0513973990001 -12.101355984,30.05173015 -12.102169374,30.0520866690001 -12.102936283,30.051706381 -12.1041679799999,30.0507794320001 -12.1052602349999,30.0503040740001 -12.105957417,30.0500663940001 -12.106724315,30.050280306 -12.1072588169999,30.0508269690001 -12.1078397979999,30.051349863 -12.1080489509999,30.0520391330001 -12.108211625,30.052585794 -12.108769364,30.052609563 -12.109443298,30.0523243480001 -12.1100939909999,30.051753918 -12.110535532,30.0509458080001 -12.1108143989999,30.0506130570001 -12.1119066269999,30.050636825 -12.1125805519999,30.050708129 -12.1133241929999,30.0507556640001 -12.113928399,30.0507556650001 -12.114486126,30.050898273 -12.1150903299999,30.051516238 -12.116229017,30.0518489890001 -12.116600832,30.052633331 -12.1164381629999,30.0533701360001 -12.116112824,30.0539643340001 -12.115833962,30.054510996 -12.1157410079999,30.0551289630001 -12.1157410079999,30.0559370730001 -12.116112825,30.0572680760001 -12.1173676989999,30.0583851690001 -12.118761998,30.0585277760001 -12.1193661909999,30.05871792 -12.120249241,30.0589318310001 -12.1213181919999,30.0591932780001 -12.1220850459999,30.0598587800001 -12.122689232,30.061047177 -12.1228054219999,30.0617364460001 -12.122456853,30.062140501 -12.121875904,30.0624494840001 -12.1212252399999,30.0626871630001 -12.120667527,30.0630674500001 -12.119993622,30.063233826 -12.1196218109999,30.063590344 -12.1192267619999,30.064041935 -12.1190176179999,30.0646123650001 -12.118947904,30.0653729380001 -12.118947904,30.0661335120001 -12.119110571,30.0665375670001 -12.11925,30.0678210350001 -12.1194823819999,30.0692708780001 -12.1204119079999,30.0700076840001 -12.1210858119999,30.0715050640001 -12.1221547599999,30.072432013 -12.1230842759999,30.0729786750001 -12.124153216,30.0732401220001 -12.125756618,30.0738580880001 -12.127243822,30.075307932 -12.1293816649999,30.0762586480001 -12.130845612,30.078017475 -12.1319842309999,30.079372247 -12.1329137139999,30.081487592 -12.1324722099999,30.081939182 -12.1325186839999,30.082984971 -12.1330763729999,30.0839832240001 -12.1355162469999,30.0839832240001 -12.13677103,30.0842446710001 -12.1375378399999,30.084981477 -12.1383278829999,30.085789586 -12.1396988349999,30.0866214640001 -12.1406282909999,30.0874058050001 -12.141371852,30.088142611 -12.1421386489999,30.0889269530001 -12.1431378029999,30.0893785430001 -12.143788414,30.090091581 -12.144857271,30.0899965090001 -12.1457867079999,30.089473615 -12.147018207,30.088594202 -12.147970873,30.087952467 -12.149179126,30.087714788 -12.1504338459999,30.088142611 -12.151874442,30.088617969 -12.1534312069999,30.089045792 -12.1541747319999,30.0897825980001 -12.154685905,30.0907333150001 -12.155011197,30.0928248920001 -12.159565234,30.094464879 -12.16198163,30.095724579 -12.1626786639999,30.097721085 -12.1644444729999,30.0989094810001 -12.1659314619999,30.0995274470001 -12.1665820169999,30.0998839660001 -12.1672093359999,30.100905987 -12.16781342,30.1011912020001 -12.1686498409999,30.102046848 -12.169230688,30.1024984380001 -12.1693933249999,30.102688582 -12.169997404,30.1030451 -12.1704620789999,30.103116404 -12.1709267529999,30.1031877080001 -12.1713914269999,30.103472923 -12.1720652019999,30.1037819060001 -12.1725066399999,30.104162193 -12.1731571779999,30.1048752300001 -12.1742259169999,30.105421892 -12.1747138179999,30.1059923230001 -12.1749229179999,30.106943039 -12.175434052,30.109129689 -12.176363382,30.1098664950001 -12.176479548,30.1109835870001 -12.1770371439999,30.1116015540001 -12.1772694759999,30.112528502 -12.17752504,30.112789949 -12.1776179729999,30.1133603800001 -12.17850083,30.1141922570001 -12.1794766149999,30.1159273160001 -12.180707959,30.1169731050001 -12.1817302009999,30.117258319 -12.18163727,30.119812853 -12.1816178879999,30.120770991 -12.1814840929999,30.1228241470001 -12.1802799349999,30.1230979010001 -12.1800123429999,30.1232347770001 -12.1798785469999,30.123234778 -12.178674381,30.1232347770001 -12.1776040079999,30.1228241470001 -12.1770688189999,30.1224135150001 -12.176266034,30.1222766390001 -12.1754632459999,30.12268727 -12.1737238649999,30.1232347770001 -12.173188668,30.1236454090001 -12.171449272,30.1243297940001 -12.1705126689999,30.125287933 -12.1702450679999,30.125972317 -12.1702450669999,30.1272042100001 -12.1705126689999,30.129394242 -12.1717168719999,30.129667996 -12.1718506719999,30.1299417500001 -12.1726534699999,30.1299417500001 -12.174125261,30.1299417500001 -12.175730842,30.130215505 -12.1772026159999,30.130899889 -12.1777378049999,30.131447397 -12.177604007,30.132268659 -12.177336413,30.1332267980001 -12.1770688189999,30.134732446 -12.1770688189999,30.135690584 -12.1777378039999,30.1358274610001 -12.178005398,30.1361012150001 -12.1790757709999,30.1361012150001 -12.181082708,30.135553707 -12.1814840929999,30.1354168300001 -12.1816178889999,30.134869322 -12.1826882459999,30.1347324450001 -12.183624806,30.135006199 -12.1854979149999,30.1351430760001 -12.1857655009999,30.1352799530001 -12.1864344649999,30.1352799530001 -12.1876385959999,30.1352799530001 -12.188039971,30.1352799530001 -12.188842721,30.1352799530001 -12.1893778859999,30.134869322 -12.190715794,30.1344586910001 -12.191786115,30.1339111830001 -12.1924550639999,30.133637429 -12.1928564319999,30.1332267990001 -12.1932578,30.132816167 -12.1943281109999,30.1326792900001 -12.195130842,30.1326792900001 -12.1957997809999,30.132679291 -12.195933569,30.132816167 -12.196201145,30.133637429 -12.196334932,30.1354168300001 -12.1964687199999,30.135690584 -12.1964687199999,30.1366487230001 -12.196602508,30.136922477 -12.196602508,30.1380174930001 -12.196602508,30.1385650010001 -12.196602508,30.139660017 -12.1960673569999,30.141028786 -12.1955322049999,30.142397557 -12.1974052309999,30.143081941 -12.19941203,30.143355695 -12.199412029,30.144313835 -12.199278244,30.145682605 -12.1988768849999,30.1467776210001 -12.199144458,30.1474620050001 -12.1996796019999,30.147872637 -12.2003485299999,30.1482832680001 -12.2003485299999,30.1489676530001 -12.200616101,30.1495151610001 -12.201017458,30.149788915 -12.201151243,30.1503364220001 -12.201151242,30.150747053 -12.201017457,30.1517051920001 -12.2004823149999,30.1521158240001 -12.2000809589999,30.152663331 -12.1996796019999,30.1537583470001 -12.198876884,30.154853363 -12.198074166,30.1558115020001 -12.1979403789999,30.1573171490001 -12.1978065919999,30.1599178120001 -12.198609312,30.161012828 -12.199679601,30.161834089 -12.200749887,30.162107844 -12.202355306,30.1621078430001 -12.2028904439999,30.162381597 -12.203693148,30.162993134 -12.205127666,30.163065983 -12.20529855,30.1633397360001 -12.2055661159999,30.164434752 -12.2063688129999,30.165119137 -12.208107979,30.166351031 -12.20904445,30.167035416 -12.2094457929999,30.1679935540001 -12.210516038,30.168541062 -12.21118494,30.168951694 -12.2114525,30.170320464 -12.211586279,30.173742389 -12.21118494,30.1742898960001 -12.209713354,30.1744267730001 -12.2083755429999,30.174426774 -12.20810798,30.1748374040001 -12.207706634,30.175384912 -12.2075728519999,30.17593242 -12.20743907,30.177985575 -12.207840416,30.179491222 -12.2089106679999,30.18003873 -12.209044449,30.1803124840001 -12.20904445,30.180586238 -12.20904445,30.183460654 -12.2101146969999,30.18414504 -12.21091738,30.184692548 -12.21118494,30.1852400560001 -12.211987619,30.1857875640001 -12.212790296,30.1870194570001 -12.213592971,30.187430088 -12.213592971,30.187566965 -12.213592971,30.1879775950001 -12.2138605279999,30.1890726120001 -12.213994307,30.189620119 -12.214261864,30.1900307500001 -12.214261865,30.1905782580001 -12.2143956429999,30.190988889 -12.2143956429999,30.1912626430001 -12.214261864,30.1913995200001 -12.214128085,30.192357659 -12.2138605279999,30.1934526750001 -12.213459191,30.194410814 -12.212656517,30.195642707 -12.21131872,30.196463969 -12.210649819,30.197011477 -12.210516038,30.1975589850001 -12.2102484769999,30.1989277550001 -12.2099809169999,30.1993383860001 -12.209847135,30.2000227710001 -12.209713355,30.200433402 -12.209579574,30.201254664 -12.209579574,30.201802172 -12.20904445,30.20412908 -12.2102484769999,30.2044028350001 -12.210516038,30.205224097 -12.21131872,30.2056347280001 -12.2117200599999,30.2068666210001 -12.211987619,30.2079616360001 -12.212255179,30.20823539 -12.212255179,30.2090566530001 -12.212790296,30.210014791 -12.2131916339999,30.2112466840001 -12.213459192,30.2123417010001 -12.2137267489999,30.212889208 -12.213994307,30.2131629630001 -12.214128085,30.213436717 -12.2143956429999,30.214121101 -12.2149307559999,30.214942363 -12.215733424,30.2150792400001 -12.215733424,30.2165848870001 -12.216134757,30.2186380420001 -12.215867202,30.219733058 -12.2155996459999,30.220964951 -12.215867202,30.2213755820001 -12.2162685349999,30.2215124590001 -12.216402312,30.221649336 -12.2172049759999,30.2213755820001 -12.2176063069999,30.2212387050001 -12.2178738599999,30.2201436890001 -12.218408967,30.2191855500001 -12.218944071,30.2186380420001 -12.2193454,30.217543026 -12.2198805039999,30.215489871 -12.2209507069999,30.214257978 -12.2209507069999,30.2123417 -12.219612952,30.210151669 -12.218810296,30.209467283 -12.2186765189999,30.208098513 -12.2200142789999,30.2076878820001 -12.220415606,30.207277252 -12.2220209069999,30.2078247590001 -12.222823552,30.209202831 -12.223817185,30.2112231040001 -12.2242817659999,30.212886859 -12.224920563,30.2156201710001 -12.2254432139999,30.217402765 -12.2263142969999,30.2191853590001 -12.2285210279999,30.221680991 -12.2295082429999,30.2229288070001 -12.2278822389999,30.2248302410001 -12.2263142969999,30.227266453 -12.2255012859999,30.2300591850001 -12.2263723689999,30.229880925 -12.2279983829999,30.2295838270001 -12.229334029,30.2291678870001 -12.230960024,30.230593963 -12.232992504,30.2335055340001 -12.2342119849999,30.2368924630001 -12.2343281249999,30.2401605530001 -12.234211984,30.242121406 -12.233863562,30.243309803 -12.234095843,30.244795298 -12.234444266,30.2451518170001 -12.234908828,30.24640104 -12.2362872049999,30.246993832 -12.236941278,30.2485981660001 -12.239612473,30.248657587 -12.2403673709999,30.2485981660001 -12.240889991,30.2493706240001 -12.2427481899999,30.2512126390001 -12.2433288739999,30.252698133 -12.2427481899999,30.2537676900001 -12.2430965999999,30.2557285440001 -12.243851489,30.2572140400001 -12.2441418299999,30.259650252 -12.243386942,30.260779228 -12.242283641,30.2634531200001 -12.2427481899999,30.2644632560001 -12.244316034,30.2645471060001 -12.2444461769999,30.264136448 -12.245535463,30.263898768 -12.246203242,30.2640473170001 -12.246725851,30.264552386 -12.2473065259999,30.265206004 -12.2482936709999,30.2651762950001 -12.2491646789999,30.264968325 -12.249396948,30.2643444170001 -12.249193712,30.263839348 -12.249077579,30.2634531200001 -12.249077579,30.262680662 -12.2492808129999,30.262532112 -12.2495421149999,30.262116174 -12.250093751,30.262621242 -12.2510518519999,30.2641958670001 -12.252038984,30.264819775 -12.2518938169999,30.2656516530001 -12.251777685,30.265889332 -12.2516905849999,30.266216141 -12.252677714,30.2668400490001 -12.2536067729999,30.2687117730001 -12.25386807,30.2696922000001 -12.2537519379999,30.270791467 -12.253635806,30.2716530540001 -12.253461608,30.2729008700001 -12.2532293429999,30.273495068 -12.253316442,30.274089266 -12.252822879,30.2746834640001 -12.252300283,30.275069693 -12.2516905849999,30.275545052 -12.2511099189999,30.27596099 -12.2507905529999,30.276317509 -12.2503550509999,30.276644318 -12.25009375,30.2772088070001 -12.249803416,30.277684165 -12.249629215,30.278100104 -12.249977617,30.2787240110001 -12.250326018,30.2793479200001 -12.250471185,30.2800312470001 -12.250703452,30.2803580560001 -12.251255086,30.2805363160001 -12.251864784,30.2805066060001 -12.252300282,30.2803580560001 -12.253055145,30.2805066060001 -12.253519673,30.2807739960001 -12.2536938719999,30.2815167430001 -12.253780971,30.281873262 -12.253722905,30.282705139 -12.253432575,30.283031948 -12.2532293429999,30.283239918 -12.2530261109999,30.283685566 -12.252939012,30.2841312150001 -12.253258377,30.2845471540001 -12.25320031,30.284903672 -12.253200309,30.2851116410001 -12.253171277,30.285557291 -12.253461608,30.2858246800001 -12.2538100039999,30.2867456860001 -12.2541003339999,30.287191335 -12.25386807,30.287518144 -12.253519674,30.288082633 -12.2530261109999,30.28867683 -12.2530261119999,30.28891451 -12.2536067729999,30.2897760970001 -12.254332598,30.2902811650001 -12.2547680919999,30.291202173 -12.25494229,30.291885501 -12.2543616309999,30.2924202790001 -12.25357774,30.2928956370001 -12.2530261119999,30.293370995 -12.252677714,30.294262293 -12.252126083,30.294826781 -12.252038984,30.2960151770001 -12.252242216,30.2973521230001 -12.252300283,30.29827313 -12.251719618,30.2992238470001 -12.2513421849999,30.2998774650001 -12.251080886,30.300590503 -12.251226053,30.3003528240001 -12.252474481,30.300144855 -12.25320031,30.300174564 -12.25386807,30.300263694 -12.2544196969999,30.301214411 -12.2563939309999,30.3021057080001 -12.2570326499999,30.3030564250001 -12.2571778129999,30.304036852 -12.257148781,30.3048687290001 -12.2569165199999,30.305641187 -12.2562778,30.306205676 -12.2557842429999,30.3072752320001 -12.2551455199999,30.3078397200001 -12.2548551909999,30.308047689 -12.253839037,30.30786943 -12.252880945,30.307780301 -12.252677714,30.307364362 -12.2526486809999,30.306978133 -12.252619648,30.306799873 -12.2522712489999,30.306740453 -12.2518357509999,30.3070375520001 -12.2514583189999,30.3075129110001 -12.251313152,30.3081665290001 -12.2512260519999,30.3083447880001 -12.2511099189999,30.3085527580001 -12.250906686,30.308671598 -12.250355052,30.308196239 -12.2498324499999,30.3082259490001 -12.249571148,30.3085527580001 -12.249077578,30.3090875360001 -12.248584008,30.3093252150001 -12.2478581669999,30.309681734 -12.247219425,30.309919414 -12.246493581,30.3105433220001 -12.246551648,30.3110483900001 -12.2467548839999,30.3111078090001 -12.247800099,30.31092955 -12.249513082,30.31113752 -12.2503550509999,30.3117614280001 -12.2512260519999,30.3125933050001 -12.251719618,30.3135143120001 -12.251777685,30.314167931 -12.2528228799999,30.3147324180001 -12.253664839,30.3156237160001 -12.254245499,30.3161287840001 -12.2545648619999,30.31746573 -12.2548551909999,30.3181490580001 -12.255029388,30.3186541260001 -12.255174553,30.318624416 -12.255900374,30.3187432560001 -12.256655226,30.319188905 -12.257293944,30.319842522 -12.257787498,30.3212983080001 -12.258135889,30.3220113460001 -12.258193954,30.322635253 -12.258135889,30.3234968410001 -12.257874597,30.32385336 -12.257729433,30.324447558 -12.2574971729999,30.324685237 -12.257555238,30.3248932060001 -12.2582520199999,30.3249526270001 -12.25871654,30.3251308860001 -12.2588326699999,30.3248337860001 -12.2597617069999,30.324447558 -12.260458483,30.3244772680001 -12.2614455799999,30.3244772680001 -12.262055254,30.324685237 -12.262606864,30.3251308860001 -12.263071377,30.3253091450001 -12.263274601,30.3253685650001 -12.263681048,30.325606244 -12.264174591,30.325576534 -12.264581037,30.326081603 -12.2652487679999,30.3267946400001 -12.26559715,30.3274482580001 -12.266235846,30.3278344870001 -12.266729384,30.328220716 -12.2672229209999,30.3293794030001 -12.268297086,30.330270699 -12.2688486819999,30.3310431570001 -12.2693131839999,30.331310547 -12.2698067159999,30.331340256 -12.2705034649999,30.331102577 -12.2710840889999,30.331013447 -12.2715776169999,30.331161997 -12.272477578,30.3312214170001 -12.2734065679999,30.3312808360001 -12.273958154,30.3316076460001 -12.2744226469999,30.332796042 -12.2745968309999,30.333568499 -12.2746548919999,30.3341032770001 -12.2745387699999,30.334846025 -12.2745387689999,30.3352916740001 -12.2745387699999,30.335677903 -12.2745968309999,30.335826453 -12.2750903529999,30.3360641310001 -12.2757290279999,30.3365692 -12.276454792,30.337014848 -12.277122493,30.337668466 -12.2777611619999,30.338232954 -12.278196618,30.338945992 -12.2783707999999,30.3394213510001 -12.278457891,30.340104678 -12.2787481939999,30.3428677000001 -12.279822311,30.3446502940001 -12.2801706729999,30.345690141 -12.280257763,30.3464923080001 -12.279851342,30.3467299870001 -12.2795900699999,30.347413315 -12.279822312,30.3483640320001 -12.2802577639999,30.348809682 -12.280664185,30.34919591 -12.281041576,30.3496712690001 -12.2816512059999,30.350206047 -12.282115685,30.350681406 -12.282696281,30.3511567640001 -12.2829865799999,30.352582839 -12.282957551,30.352879939 -12.282696282,30.352820518 -12.2815931449999,30.3535929770001 -12.281041575,30.354721953 -12.280896425,30.355940059 -12.280635155,30.35897047 -12.2802867939999,30.360782774 -12.2800255229999,30.3620305900001 -12.2797061909999,30.363664634 -12.2790965569999,30.364466802 -12.2777901929999,30.3648233210001 -12.277006371,30.3646747710001 -12.276048363,30.3646450620001 -12.2749451999999,30.3647639010001 -12.2742484619999,30.3657443280001 -12.273348507,30.366873304 -12.272622734,30.3680319910001 -12.27195502,30.369725456 -12.2710840889999,30.3710029810001 -12.270677653,30.3727855760001 -12.27061959,30.3740333920001 -12.2707937769999,30.375548597 -12.271432462,30.3763507640001 -12.272332424,30.3765587340001 -12.272971105,30.376707283 -12.27346463,30.3768261230001 -12.273871062,30.3763804750001 -12.2742484619999,30.376439894 -12.2745677999999,30.3767072840001 -12.2750032609999,30.3778065500001 -12.2753225989999,30.379232626 -12.2755838739999,30.38104493 -12.2751774449999,30.3827978150001 -12.2744516769999,30.3835108530001 -12.273696876,30.384342729 -12.27282595,30.3846992480001 -12.271925989,30.385204317 -12.2707937769999,30.3857390950001 -12.2698357479999,30.386214454 -12.2692841529999,30.3870463310001 -12.26922609,30.38758111 -12.269951872,30.3881455980001 -12.270590559,30.3886209560001 -12.270822809,30.3891854450001 -12.271055057,30.3888586350001 -12.2715195549999,30.388442696 -12.272100176,30.388977475 -12.2725937019999,30.389244864 -12.272913043,30.389898483 -12.2731452909999,30.39064123 -12.273000135,30.391294848 -12.2731452899999,30.391710786 -12.273377538,30.392602083 -12.273725907,30.393255701 -12.2743065239999,30.393998449 -12.2750903529999,30.3940578690001 -12.2752935679999,30.3944440980001 -12.275961272,30.395305685 -12.2763386689999,30.396226692 -12.2765418829999,30.397146149 -12.2765146589999,30.397207119 -12.2765128529999,30.3982469650001 -12.2763386689999,30.399257103 -12.276019333,30.4010694070001 -12.276222547,30.403832428 -12.2767450969999,30.4049614050001 -12.277122493,30.4072193580001 -12.277993405,30.4078237700001 -12.279362491,30.408823693 -12.280809335,30.4108439660001 -12.280635155,30.413280179 -12.2801997029999,30.414825093 -12.2799384329999,30.416310589 -12.2796481299999,30.417885214 -12.2795900699999,30.4192221600001 -12.2793868589999,30.421242433 -12.2796190999999,30.423262707 -12.27956104,30.4267684770001 -12.279822312,30.429174978 -12.280025522,30.430719894 -12.2799674619999,30.4322648090001 -12.2799384319999,30.434106823 -12.280373884,30.4358597080001 -12.280664185,30.4377611410001 -12.2804900049999,30.4386524390001 -12.280112613,30.441088651 -12.279270738,30.4437328330001 -12.2782256479999,30.44468355 -12.2772966759999,30.4459610760001 -12.275961272,30.4474168610001 -12.2745968309999,30.448694387 -12.273813,30.4510414700001 -12.277122493,30.452705225 -12.2782837089999,30.454458109 -12.280170674,30.4557950550001 -12.2819995639999,30.456983451 -12.283538146,30.4583203970001 -12.2855411909999,30.4602218310001 -12.289111799,30.4608754490001 -12.290534222,30.461499357 -12.292188869,30.462747173 -12.2940757339999,30.4644406370001 -12.295352989,30.4653319350001 -12.296281897,30.4666985910001 -12.2973559439999,30.468213796 -12.2981977609999,30.471184786 -12.298284845,30.473413029 -12.2985170709999,30.475106494 -12.298952492,30.4759680810001 -12.299474995,30.477245608 -12.2994459679999,30.4777803860001 -12.2994459679999,30.4785231330001 -12.299997499,30.478968782 -12.2998523589999,30.4793253010001 -12.3002006949999,30.480127468 -12.3003458339999,30.480691956 -12.300432917,30.4811673150001 -12.3005780569999,30.482058613 -12.3010715309999,30.483662947 -12.301594031,30.484554245 -12.302290695,30.485118733 -12.3032486069999,30.486425968 -12.3047580369999,30.487168716 -12.305628858,30.4879411740001 -12.306296485,30.4888621800001 -12.3069060559999,30.4895157990001 -12.308270329,30.4906744850001 -12.3091991929999,30.4928730180001 -12.310360267,30.493407797 -12.3110569089999,30.4939425740001 -12.311608416,30.494150544 -12.3121308949999,30.494239674 -12.3126533729999,30.494655612 -12.313379035,30.494893292 -12.3146561959999,30.4950121320001 -12.315497958,30.495130971 -12.316281665,30.495368651 -12.3165428999999,30.495784589 -12.3170363429999,30.4958142990001 -12.3174717329999,30.496111398 -12.3174717329999,30.4963193680001 -12.317355629,30.4968838560001 -12.317703942,30.496943276 -12.318052253,30.497002695 -12.318255434,30.497002695 -12.3187778999999,30.4968838560001 -12.3190681579999,30.496705596 -12.3193874419999,30.496675887 -12.3197357519999,30.4967947260001 -12.3200260089999,30.497032405 -12.320316266,30.4971512450001 -12.3205484709999,30.497180954 -12.3210128819999,30.4972106640001 -12.3211289839999,30.4974483440001 -12.3214482659999,30.4976266040001 -12.3216804699999,30.497745443 -12.321883649,30.497834573 -12.321999751,30.4979831220001 -12.3224641579999,30.4980425420001 -12.3228995389999,30.4981316720001 -12.323218819,30.4990229690001 -12.324002503,30.4994983280001 -12.3245249569999,30.500033106 -12.325134486,30.5003599140001 -12.3254537629999,30.500686724 -12.3257149889999,30.5013106320001 -12.3260923139999,30.5016374410001 -12.326440615,30.5017265700001 -12.3266147639999,30.5019939600001 -12.326788915,30.5023801890001 -12.326905014,30.5032120660001 -12.328036986,30.503479455 -12.3286465059999,30.503925103 -12.3294591989999,30.5043707520001 -12.330010667,30.5048758200001 -12.3303299369999,30.505321469 -12.330649207,30.505707697 -12.3312877459999,30.5058265370001 -12.332042381,30.5058250320001 -12.332058564,30.505796828 -12.3323616499999,30.5055294380001 -12.33317433,30.505796827 -12.334538467,30.5059156670001 -12.335641381,30.5057671180001 -12.3369184329999,30.5061533470001 -12.3386308349999,30.5063910260001 -12.341155881,30.5066881240001 -12.3421426739999,30.507104063 -12.3431004399999,30.5074605820001 -12.3442903869999,30.508143911 -12.345364237,30.5086192680001 -12.3468444009999,30.5090946280001 -12.347715083,30.5093620170001 -12.348585761,30.509480856 -12.3496305699999,30.509480856 -12.350269064,30.5092728870001 -12.351429955,30.509064917 -12.3532293279999,30.5082924600001 -12.354825535,30.5068069650001 -12.3585403079999,30.5061830560001 -12.3602235459999,30.506034507 -12.3619938379999,30.5060047970001 -12.362951531,30.506034507 -12.3635029279999,30.506628705 -12.364257471,30.5069852240001 -12.3649829899999,30.507193193 -12.366143817,30.5073120320001 -12.367507782,30.5073120330001 -12.3678560279999,30.507104063 -12.371106294,30.507044643 -12.372731412,30.5076388420001 -12.3758075009999,30.5078171010001 -12.377693764,30.5080547800001 -12.379550993,30.5078171010001 -12.381553305,30.507193193 -12.384542234,30.5069852240001 -12.386225305,30.507104063 -12.3886048009999,30.5068069640001 -12.391245436,30.506688125 -12.3938860439999,30.505975087 -12.395714142,30.5043410420001 -12.399167179,30.503420035 -12.400530972,30.5020830890001 -12.402765254,30.500033106 -12.406827537,30.4987852890001 -12.4087716079999,30.4959331380001 -12.411179913,30.493229537 -12.411963333,30.4909715840001 -12.4132690279999,30.490288256 -12.4143425949999,30.4826231010001 -12.418027504,30.47971153 -12.420551783,30.4766217000001 -12.4224957499999,30.4747499750001 -12.4239174489999,30.4700855200001 -12.4266737799999,30.4680949560001 -12.429168961,30.465926133 -12.430938785,30.4642623780001 -12.43320182,30.4622123950001 -12.4361031179999,30.457072581 -12.443762388,30.4568646120001 -12.44518397,30.4569537410001 -12.445358041,30.449377715 -12.457890828,30.44468355 -12.4657235129999,30.4389198280001 -12.473671995,30.4385005030001 -12.475321112,30.4367807140001 -12.482084357,30.4405241630001 -12.4828385559999,30.445099489 -12.4829545859999,30.449853074 -12.4829545859999,30.456329833 -12.485797313,30.4585283660001 -12.4866095149999,30.461915296 -12.4866675289999,30.4674413380001 -12.4863774569999,30.471125366 -12.4860293699999,30.475284754 -12.485855327,30.4795035600001 -12.4869575999999,30.4827122300001 -12.489336173,30.489783188 -12.4968198349999,30.4937048950001 -12.502911027,30.4988744200001 -12.5100462409999,30.502439608 -12.514976965,30.50505408 -12.516949229,30.5077279720001 -12.5175293029999,30.5101641840001 -12.5171812589999,30.5126726600001 -12.5170500739999,30.513491693 -12.517007237,30.515809066 -12.52071969,30.5198496130001 -12.524200067,30.5234742220001 -12.524780125,30.526564052 -12.524954142,30.530723439 -12.524954142,30.5368436800001 -12.527738402,30.5420726240001 -12.5293045349999,30.5469450480001 -12.5290725149999,30.550985595 -12.529768572,30.554431945 -12.5297105669999,30.557640614 -12.5303486179999,30.5605521850001 -12.531972739,30.5626912980001 -12.534814926,30.566315907 -12.5377730879999,30.569465157 -12.5395131669999,30.5689897980001 -12.5421812659999,30.569108639 -12.544443327,30.5692274780001 -12.546357364,30.5683361810001 -12.551113394,30.5683361810001 -12.5511713939999,30.568416212 -12.551492061,30.567989025 -12.5530457419999,30.566429381 -12.5560984759999,30.564521589 -12.5600159489999,30.563244363 -12.5624484969999,30.5620700220001 -12.564577969,30.5616384640001 -12.565485103,30.560755672 -12.567068089,30.5600747180001 -12.5683479579999,30.559500734 -12.570352193,30.559256534 -12.5719343069999,30.559139427 -12.5740467009999,30.5591169410001 -12.575853739,30.559087746 -12.578200013,30.5589824690001 -12.586660442,30.5590913720001 -12.5898700659999,30.5593015800001 -12.591415094,30.5595364110001 -12.5920119369999,30.5599542090001 -12.5929803359999,30.5604242310001 -12.5942545409999,30.5620734660001 -12.596111584,30.5640538550001 -12.598100066,30.5659035240001 -12.599764449,30.567526785 -12.600880305,30.568537856 -12.60161527,30.5698856400001 -12.602237459,30.571443635 -12.6028679999999,30.572619982 -12.603822597,30.573909536 -12.6049022029999,30.5765622920001 -12.607453907,30.5785282000001 -12.609610489,30.5805829510001 -12.612602389,30.581610848 -12.6152307689999,30.5827951950001 -12.6171703439999,30.583652649 -12.6187526109999,30.585708298 -12.621108116,30.5873442400001 -12.624032606,30.588573325 -12.6259037569999,30.58940892 -12.628298948,30.5905415130001 -12.630479378,30.591428965 -12.6319983499999,30.592276403 -12.633448835,30.5932614340001 -12.6349457549999,30.5941091400001 -12.635892069,30.595490872 -12.636724417,30.5969550880001 -12.637797656,30.598225036 -12.638859501,30.5995815310001 -12.6399937109999,30.6016835560001 -12.641391316,30.6032484560001 -12.6420581269999,30.605338449 -12.642250266,30.6081563020001 -12.642196187,30.609995822 -12.6418482079999,30.6117088510001 -12.6411408709999,30.6141279990001 -12.640158782,30.615364578 -12.639714023,30.61797281 -12.6396975559999,30.6199081240001 -12.640172654,30.6210938740001 -12.6405485829999,30.62249797 -12.641173502,30.6237733510001 -12.6416986089999,30.6246602350001 -12.641814734,30.6256528370001 -12.641701417,30.628043662 -12.641064409,30.629314267 -12.640491047,30.632883264 -12.639223237,30.635262175 -12.638185248,30.637333131 -12.637447137,30.6398579450001 -12.63538247,30.642381664 -12.6334347019999,30.64352648 -12.63249486,30.644699786 -12.6315316139999,30.6485929930001 -12.629680831,30.6500757920001 -12.6283158009999,30.6525260880001 -12.6242266689999,30.6541454360001 -12.6203840329999,30.654488246 -12.6188973599999,30.6555885550001 -12.615427253,30.657109839 -12.610478681,30.657685158 -12.611459403,30.657797606 -12.611678872,30.657825718 -12.61173374,30.6579381660001 -12.611925776,30.6580225020001 -12.612090377,30.658191174 -12.6122001119999,30.658472293 -12.612364714,30.659231316 -12.6126664839999,30.6599060030001 -12.6126939169999,30.660074675 -12.6126939169999,30.6607212500001 -12.612611616,30.6611148170001 -12.6124470149999,30.6615364960001 -12.612392148,30.6617332810001 -12.612392148,30.6621268480001 -12.612309846,30.662436079 -12.6122275459999,30.662801535 -12.612172679,30.6630826540001 -12.612172679,30.663532445 -12.612117811,30.6637854530001 -12.6120629439999,30.663954125 -12.611980643,30.664291469 -12.611898342,30.664347692 -12.6118709089999,30.6646007000001 -12.611706306,30.664769372 -12.6115965719999,30.6652472760001 -12.61143197,30.665444059 -12.6113771019999,30.665865738 -12.611486837,30.6659500740001 -12.611486837,30.6663155300001 -12.611678872,30.6670745530001 -12.61195321,30.6672432240001 -12.6120080769999,30.6676367920001 -12.612145245,30.667833575 -12.6122001119999,30.668170919 -12.61233728,30.66862071 -12.612584183,30.668958054 -12.612776218,30.669323509 -12.612940819,30.669998197 -12.6132700209999,30.6702512040001 -12.613352322,30.6706728830001 -12.6136266569999,30.670869667 -12.6137363899999,30.6712913470001 -12.614175326,30.6714881300001 -12.614339926,30.671656802 -12.614504526,30.672443937 -12.615135494,30.6726969440001 -12.6153275259999,30.673259183 -12.615574426,30.6733716320001 -12.6156292929999,30.6753113570001 -12.6165620219999,30.6756205880001 -12.61689122,30.675761148 -12.616891219,30.6759860440001 -12.6169460849999,30.676267164 -12.617000952,30.676548283 -12.617028385,30.6769137380001 -12.617110684,30.6772229700001 -12.61716555,30.6775322010001 -12.617165551,30.678544232 -12.61787881,30.6807650760001 -12.618948696,30.681861444 -12.619524785,30.682789138 -12.619936278,30.684279071 -12.6204026349999,30.686668588 -12.621198184,30.687062156 -12.621253049,30.687399499 -12.621280482,30.69358413 -12.622377785,30.693921474 -12.622597245,30.694315041 -12.6228441379999,30.6945399370001 -12.6230635969999,30.694680497 -12.6232281929999,30.6949335040001 -12.623420219,30.69501784 -12.623557381,30.6951865120001 -12.623721975,30.6975479160001 -12.627480186,30.699347081 -12.6313754989999,30.6995438650001 -12.6318418349999,30.6998249850001 -12.63389919,30.6999936560001 -12.635298183,30.7007807910001 -12.637273218,30.7018771580001 -12.6397419899999,30.7025518450001 -12.640756923,30.7036201 -12.6424576119999,30.7040417790001 -12.643143371,30.7041823390001 -12.6436096859999,30.704379122 -12.6440485689999,30.7044915700001 -12.644350302,30.7048570260001 -12.646078396,30.7048008020001 -12.646489846,30.704857025 -12.646736716,30.7056441610001 -12.647367603,30.705698403 -12.64739222,30.7092706030001 -12.6490133889999,30.713515509 -12.650439728,30.714330756 -12.651015748,30.7149211070001 -12.65137233,30.715202226 -12.651591766,30.7153146750001 -12.6517563419999,30.7165797120001 -12.6535118159999,30.717788527 -12.6550478459999,30.718491326 -12.6555141389999,30.730101565 -12.6630021399999,30.7375113360001 -12.668107877,30.749414481 -12.6740828809999,30.751354206 -12.6751799579999,30.752000781 -12.676304456,30.7522256770001 -12.677182111,30.752225676 -12.6794585129999,30.750173504 -12.684285513,30.747502867 -12.689880332,30.745188139 -12.6921820279999,30.74280817 -12.69596867,30.741290124 -12.698628845,30.7406154380001 -12.699862937,30.740165646 -12.701316415,30.7395190710001 -12.7048815159999,30.739687743 -12.707047976,30.739687743 -12.707952948,30.739097391 -12.7124777569999,30.7383945920001 -12.7167008389999,30.738310257 -12.7174138199999,30.738310257 -12.7179896879999,30.7384227040001 -12.7183187539999,30.740896557 -12.7274501859999,30.739013056 -12.735128013,30.7357801800001 -12.746479801,30.733278216 -12.755500546,30.733258462 -12.755596877,30.7330533200001 -12.7565972699999,30.7330533210001 -12.757255303,30.73319388 -12.757858499,30.7333625520001 -12.7582423499999,30.7334750000001 -12.7586810349999,30.7337842320001 -12.75961324,30.7341215750001 -12.760764783,30.735105493 -12.7640548749999,30.737106446 -12.7699002279999,30.738997313 -12.7741322209999,30.739899345 -12.775527923,30.7415264480001 -12.777123053,30.74623783 -12.781409406,30.751309802 -12.785362463,30.759023858 -12.790638854,30.759906261 -12.791406766,30.7608807460001 -12.793145115,30.761427408 -12.797062151,30.761213497 -12.7996580229999,30.760595531 -12.804247088,30.759787422 -12.8075150079999,30.75945467 -12.810713356,30.760001333 -12.81597432,30.7600488690001 -12.8224171119999,30.7595972780001 -12.8243638229999,30.7592169910001 -12.829578151,30.7596210460001 -12.8334946209999,30.7605004590001 -12.835557115,30.761474945 -12.836878031,30.764636078 -12.8416749789999,30.76622853 -12.8431117279999,30.76919952 -12.845637605,30.7707919710001 -12.8475377899999,30.7710058820001 -12.8486964329999,30.771338633 -12.8506892849999,30.7710058820001 -12.8519174309999,30.7699600930001 -12.8534004659999,30.768343874 -12.8553469359999,30.7652065080001 -12.8584519899999,30.76038162 -12.8636887819999,30.758004828 -12.866191283,30.755628034 -12.868693757,30.7545965030001 -12.8703964499999,30.753441385 -12.871590109,30.751516183 -12.872609616,30.7486878 -12.8732352219999,30.746810135 -12.874903494,30.7452176840001 -12.876641266,30.7438747960001 -12.880099397,30.7436371160001 -12.8839224,30.744980701 -12.8888458779999,30.7467038770001 -12.895622744,30.747844962 -12.8977217789999,30.750387904 -12.9023994259999,30.7527052770001 -12.904947873,30.7540125130001 -12.9062220879999,30.7588849380001 -12.909002169,30.7623312870001 -12.9102184449999,30.765896476 -12.9103921989999,30.7686892070001 -12.910160527,30.772432655 -12.9094655129999,30.776057263 -12.909002169,30.779741293 -12.908480907,30.78360358 -12.908654661,30.7869825720001 -12.909177961,30.7899615000001 -12.9096392669999,30.7934672690001 -12.91155055,30.8003599680001 -12.914272656,30.8055294920001 -12.9171105639999,30.8087381610001 -12.9183847159999,30.812481609 -12.919890524,30.815096081 -12.9216279839999,30.8180076520001 -12.9235970899999,30.823117756 -12.9285777009999,30.826564105 -12.931067969,30.830664072 -12.9335002999999,30.8342292610001 -12.935411401,30.836903152 -12.9382490689999,30.840527761 -12.9434031169999,30.8441523700001 -12.9472251519999,30.8473016200001 -12.9479779709999,30.850866809 -12.948151697,30.8572841480001 -12.948035879,30.8591855820001 -12.9474567889999,30.8607304980001 -12.94664606,30.8637609080001 -12.9447350459999,30.8661377010001 -12.941665809,30.8685144930001 -12.9394652029999,30.8727332990001 -12.935469312,30.874634734 -12.933326563,30.8777245640001 -12.930604665,30.8814085930001 -12.928519788,30.884141904 -12.92840396,30.8886578090001 -12.9286935279999,30.890618664 -12.929504315,30.895550508 -12.933789862,30.901195391 -12.938017423,30.9043446410001 -12.9412025249999,30.908919966 -12.945893237,30.9162880220001 -12.952784371,30.9231807210001 -12.9579381189999,30.9290632830001 -12.960717625,30.9326878910001 -12.9611808719999,30.9364313400001 -12.960717625,30.941482023 -12.9601385629999,30.947008066 -12.958459279,30.94896892 -12.9574748659999,30.9521181700001 -12.955448119,30.953306567 -12.953884618,30.9538413450001 -12.9526685559999,30.9540790240001 -12.949251965,30.954792062 -12.9463565139999,30.956336977 -12.944155947,30.9577630530001 -12.9425344649999,30.9599615860001 -12.940623419,30.9618630190001 -12.939233558,30.9640021330001 -12.938596536,30.967329642 -12.93934938,30.969103288 -12.9406458399999,30.970419473 -12.941607899,30.971667288 -12.9437505769999,30.9726180060001 -12.945545781,30.97422234 -12.9493098739999,30.975529577 -12.9521473839999,30.978322308 -12.954984861,30.983254152 -12.9563746339999,30.9868193410001 -12.956432541,30.9922265440001 -12.956432541,30.9951975340001 -12.9563167269999,30.999059822 -12.956895797,31.0039322470001 -12.959906939,31.0093394510001 -12.9622231769999,31.0140336150001 -12.9646552049999,31.0196190780001 -12.9683032,31.0246103420001 -12.969924514,31.0260958380001 -12.9698666109999,31.0290668280001 -12.9700982259999,31.033345055 -12.969577091,31.0411884700001 -12.9685927209999,31.0454666970001 -12.969577091,31.047724649 -12.971140493,31.0502202810001 -12.9746146859999,31.0505173810001 -12.975830641,31.051586937 -12.978204633,31.0534883710001 -12.986252877,31.055568065 -12.9885688699999,31.0595491920001 -12.990884841,31.0629361220001 -12.9918112239999,31.065669433 -12.991637527,31.068699844 -12.991869122,31.0698288200001 -12.9930270959999,31.0711360560001 -12.995053535,31.0711360560001 -12.996906265,31.071076636 -12.9995116439999,31.072324452 -13.0007274779999,31.073691108 -13.003969673,31.0746418250001 -13.0067486629999,31.0756519610001 -13.0108591969999,31.0760679000001 -13.013869685,31.075770801 -13.018037993,31.0756519620001 -13.021395745,31.076602678 -13.0250429079999,31.078801211 -13.0270690849999,31.081772202 -13.0290373569999,31.084862033 -13.030484605,31.0867040470001 -13.03141084,31.0892590990001 -13.03239496,31.0896760110001 -13.0325690359999,31.090922854 -13.0330896309999,31.092646028 -13.034247412,31.0937750050001 -13.0354630749999,31.0968054150001 -13.0392258059999,31.099538727 -13.04183074,31.102093779 -13.042467497,31.103816953 -13.041136093,31.1045894100001 -13.039688908,31.105540128 -13.0373155029999,31.1071444630001 -13.0361577379999,31.108808218 -13.03644718,31.112254566 -13.037141839,31.115879175 -13.037662832,31.119087845 -13.036968175,31.1249109870001 -13.035289409,31.1295457320001 -13.033726411,31.135071774 -13.0333211879999,31.141192016 -13.0332632989999,31.1451137230001 -13.033726411,31.1496296290001 -13.034247411,31.1530759780001 -13.0338421889999,31.156403487 -13.032163403,31.1605628740001 -13.031295061,31.165494719 -13.0309477229999,31.169178747 -13.0302530459999,31.1707830820001 -13.0295004779999,31.1719120590001 -13.0268375229999,31.1718526390001 -13.0243482139999,31.1709613420001 -13.0220904469999,31.1711990210001 -13.0197747669999,31.1726845170001 -13.0179800999999,31.1746453710001 -13.016995923,31.1767844840001 -13.016301206,31.178388818 -13.015722275,31.179101856 -13.0146801949999,31.1795772150001 -13.0131749609999,31.1800525730001 -13.010974986,31.1795772150001 -13.0093539399999,31.178269979 -13.0090644659999,31.1761902860001 -13.0087749909999,31.1755960880001 -13.007906568,31.1737540730001 -13.0049539029999,31.174110592 -13.002348581,31.175180148 -13.001480134,31.1774381010001 -13.0009011679999,31.181419229 -13.000785375,31.1871235310001 -12.9993958499999,31.188609027 -12.993779774,31.191342338 -12.9871792769999,31.1934220310001 -12.982663045,31.1944915880001 -12.981389222,31.197819098 -12.977509809,31.201740805 -12.975541129,31.2050683150001 -12.9732829169999,31.207504527 -12.971777432,31.2085146640001 -12.970850975,31.2091088620001 -12.9692875709999,31.2100595790001 -12.966450257,31.2114856540001 -12.962802234,31.2134465080001 -12.960717625,31.2160609800001 -12.9595595009999,31.2201015270001 -12.9595015949999,31.2229536790001 -12.9600806569999,31.2259840890001 -12.9606597179999,31.2287768200001 -12.9612966839999,31.231688391 -12.9604280949999,31.233173886 -12.958690905,31.234540542 -12.955911377,31.23519416 -12.955737655,31.2365013960001 -12.9550427679999,31.2387593490001 -12.9545795089999,31.2402448440001 -12.954058341,31.2420868580001 -12.9519157509999,31.246127405 -12.947167243,31.247196962 -12.946819788,31.248741877 -12.9476305159999,31.2511780900001 -12.9505259539999,31.2511780890001 -12.9519157519999,31.251296929 -12.9548690459999,31.251712868 -12.9571853309999,31.252366486 -12.958980438,31.2536143020001 -12.960312283,31.2550997970001 -12.961702026,31.2593780240001 -12.9657553989999,31.2611606180001 -12.96506054,31.2624084350001 -12.964018247,31.2643692880001 -12.959385782,31.2662707220001 -12.9576485859999,31.267934477 -12.957127424,31.2699547500001 -12.957532772,31.2714402460001 -12.9588646249999,31.273104001 -12.960428094,31.2766097700001 -12.9631496659999,31.2786300440001 -12.96494473,31.2844531850001 -12.9665660659999,31.287305336 -12.9666239699999,31.2889096700001 -12.967145112,31.293306737 -12.970040323,31.294376293 -12.9717195289999,31.295089332 -12.9747304919999,31.2973472840001 -12.9753674209999,31.29877336 -12.974556783,31.3025762280001 -12.9714300109999,31.3047153410001 -12.9694612829999,31.3076863320001 -12.966160733,31.3098848650001 -12.9652921589999,31.3126181760001 -12.964886824,31.320342752 -12.963960342,31.3225412850001 -12.964423584,31.324442719 -12.965060539,31.328720946 -12.9685927209999,31.330028182 -12.9705614559999,31.331573087 -12.9722406569999,31.3331180120001 -12.9739198509999,31.336445521 -12.976872885,31.339703135 -12.979267609,31.3398324510001 -12.9793626709999,31.3430411210001 -12.9846895699999,31.3444077770001 -12.986426577,31.347735286 -12.9890320659999,31.3495178810001 -12.9904795479999,31.3532613290001 -12.9949956369999,31.354330885 -12.99655888,31.3562323190001 -12.999743232,31.355459862 -13.0005537879999,31.354627984 -13.002406478,31.354152625 -13.0047802149999,31.353974366 -13.0086592019999,31.353558428 -13.012190764,31.3532019080001 -13.0152012359999,31.3523106120001 -13.018037993,31.35260771 -13.021743096,31.352191772 -13.023132496,31.3508251160001 -13.024579778,31.3498149800001 -13.0256218169999,31.347497607 -13.0282847839999,31.3474381870001 -13.029384697,31.3467251490001 -13.034305301,31.345952691 -13.0379522719999,31.344051258 -13.0421780619999,31.3432788000001 -13.0464037799999,31.3436947380001 -13.0481403549999,31.3443483560001 -13.0493559499999,31.3441106770001 -13.0510925049999,31.343575899 -13.052597508,31.3432788000001 -13.054449808,31.3424469230001 -13.056128444,31.341615045 -13.056880931,31.340307809 -13.0578070669999,31.339119413 -13.059427795,31.338406375 -13.0617431049999,31.338465795 -13.0627849869999,31.338644055 -13.0646372099999,31.338822314 -13.0657948429999,31.3387034740001 -13.066663064,31.3378715970001 -13.0682258539999,31.3381092760001 -13.0690361859999,31.3382875360001 -13.069788634,31.337812177 -13.070830482,31.338228116 -13.071814446,31.339297673 -13.073608721,31.3409614280001 -13.076039656,31.342922281 -13.077833901,31.344645456 -13.0791072279999,31.346012112 -13.0799754029999,31.3476164460001 -13.0814802309999,31.3485077440001 -13.0824641519999,31.349042522 -13.0832744369999,31.349458461 -13.084489859,31.3504091780001 -13.085415891,31.350884536 -13.085647399,31.3514787340001 -13.086110413,31.3520729320001 -13.086573426,31.3530236490001 -13.087730956,31.354330885 -13.088714852,31.355281602 -13.0895251159999,31.3561728990001 -13.0900459989999,31.357183037 -13.0905090049999,31.358074333 -13.0916086419999,31.358490272 -13.092418896,31.3588467910001 -13.0938657729999,31.3590844710001 -13.0953705159999,31.358490272 -13.0961228849999,31.357420716 -13.0975697389999,31.3583714330001 -13.0983799749999,31.359797508 -13.0984957219999,31.360569965 -13.0990744599999,31.361283003 -13.1005212979999,31.362590239 -13.102951967,31.3633032770001 -13.1045145259999,31.364075734 -13.105845588,31.365382971 -13.1071766429999,31.365382971 -13.1091442759999,31.3650858720001 -13.1112276339999,31.3656800690001 -13.113600327,31.365798909 -13.116320215,31.365798909 -13.1191558099999,31.3661554280001 -13.123958887,31.365798909 -13.125347711,31.3652641310001 -13.126447191,31.364967032 -13.128877604,31.3643728330001 -13.13119226,31.3635409560001 -13.132465311,31.3626496590001 -13.13495353,31.362530819 -13.1361108319999,31.362530819 -13.137499587,31.362590239 -13.1387147419999,31.3626496590001 -13.1402192099999,31.3626496590001 -13.141492216,31.36241198 -13.1429966659999,31.3622337210001 -13.144558972,31.361698942 -13.146121267,31.361283003 -13.1478571399999,31.360867065 -13.15028734,31.360867065 -13.152254628,31.3603917070001 -13.1537011529999,31.360213447 -13.1550319469999,31.3609264850001 -13.155668412,31.361936621 -13.156015574,31.3628873380001 -13.156073434,31.3639568950001 -13.1553791109999,31.364907612 -13.1548583659999,31.36562065 -13.154916226,31.3659771690001 -13.1553212499999,31.366214848 -13.155957714,31.3663931070001 -13.156825617,31.3665713670001 -13.157809237,31.3665713670001 -13.1586192729999,31.3667496260001 -13.159602885,31.3671655650001 -13.1605286339999,31.3674032440001 -13.1612229429999,31.3672249840001 -13.1622065459999,31.366690206 -13.162958709,31.366511947 -13.164115879,31.3662742670001 -13.165446618,31.365977168 -13.1671244949999,31.3657394890001 -13.168339503,31.3659177490001 -13.169670219,31.3662742670001 -13.1720423469999,31.365858329 -13.172910192,31.3656800700001 -13.1777700719999,31.3672249850001 -13.178059348,31.369066999 -13.178001492,31.3713249520001 -13.1775965059999,31.373998843 -13.1782329129999,31.3749495610001 -13.1785221879999,31.377682871 -13.1797371389999,31.3782176500001 -13.1803156839999,31.379406046 -13.1818777519999,31.379881405 -13.182919125,31.379821985 -13.1841919079999,31.3789901070001 -13.1871424249999,31.3796437250001 -13.187547395,31.3805350220001 -13.187952364,31.381129221 -13.188241627,31.381782839 -13.1887623009999,31.3822581970001 -13.1892251209999,31.3827335560001 -13.1903243149999,31.3831494950001 -13.191423503,31.3829712350001 -13.1950392209999,31.3832089140001 -13.1981631579999,31.3846349900001 -13.1996672609999,31.3846349900001 -13.200361459,31.3842784710001 -13.2027911389999,
31.38130748 -13.209270165,31.378930688 -13.213897936,31.3777422910001 -13.221533565,31.376791575 -13.224772851,31.376435056 -13.228243466,31.375722018 -13.2297473849999,31.374652461 -13.234027715,31.3739394240001 -13.235647281,31.372513348 -13.237035471,31.370968432 -13.2394647849999,31.3697800370001 -13.241315674,31.36859164 -13.2435135879999,31.367522083 -13.2449017329999,31.3671655650001 -13.246058514,31.3669278850001 -13.2487190919999,31.365858329 -13.249875855,31.3647887720001 -13.2514953149999,31.364313414 -13.2542715069999,31.364143746 -13.255427547,31.364075734 -13.2558909369999,31.3646699330001 -13.256469303,31.3659771690001 -13.2570476669999,31.3659826460001 -13.2570468669999,31.368353961 -13.256700649,31.370493074 -13.2583200629999,31.3715626310001 -13.2593611089999,31.3723945090001 -13.259939467,31.373939423 -13.2606334939999,31.37512782 -13.262021541,31.377623452 -13.2656072939999,31.3795248860001 -13.269077328,31.3811886400001 -13.270118328,31.382852396 -13.2706966599999,31.3840407920001 -13.2716219869999,31.3848726690001 -13.272431646,31.3855857070001 -13.273819627,31.386061066 -13.275323263,31.3874871410001 -13.275438927,31.3887943770001 -13.2754389259999,31.3914088490001 -13.276132909,31.3935479620001 -13.277520868,31.394736358 -13.2796027919999,31.3967566310001 -13.284691864,31.3969943110001 -13.286426751,31.397113151 -13.2886242559999,31.398301546 -13.2912843669999,31.3983015470001 -13.292556584,31.3986580660001 -13.2946383789999,31.3986580650001 -13.2961418849999,31.3978261880001 -13.2996114819999,31.3978261880001 -13.3012306109999,31.3978261880001 -13.3030810299999,31.399846462 -13.3036592829999,31.4012725370001 -13.3029653789999,31.4032928120001 -13.303312331,31.4076898770001 -13.3040062339999,31.4089971130001 -13.305047084,31.4094724720001 -13.306666177,31.4094724720001 -13.307822664,31.410898547 -13.3097886799999,31.4135130190001 -13.309673032,31.4147014160001 -13.310135622,31.4155332930001 -13.311292093,31.417315887 -13.3123329119999,31.4200491980001 -13.3138363099999,31.4250404630001 -13.3179995159999,31.4306259250001 -13.322740858,31.4335969160001 -13.327829024,31.436567907 -13.330835618,31.436924425 -13.3326858099999,31.436667669 -13.333601877,31.4365679060001 -13.334304717,31.4350824110001 -13.344769533,31.42919985 -13.3551182689999,31.427417255 -13.373559889,31.4259911790001 -13.3848900899999,31.42296077 -13.4011329689999,31.4261100190001 -13.4073176919999,31.4306259250001 -13.418126123,31.4355740660001 -13.4260141029999,31.4358717850001 -13.426463203,31.4359449520001 -13.4264194849999,31.436409634 -13.426141834,31.4386675860001 -13.425910651,31.4408661190001 -13.4261996299999,31.4418441400001 -13.4268338219999,31.4415267370001 -13.428234131,31.440256656 -13.4289269019999,31.4390379390001 -13.4315762869999,31.4394379390001 -13.4385762869999,31.440237939 -13.442976287,31.437737939 -13.448876287,31.4331379390001 -13.451076287,31.4281379390001 -13.4525762869999,31.4220379390001 -13.452476287,31.4179379390001 -13.451376287,31.413337939 -13.449976287,31.4095379390001 -13.447676287,31.404737939 -13.4444762869999,31.4016379390001 -13.444276287,31.398837939 -13.4435762869999,31.394737939 -13.4430762869999,31.3914379390001 -13.443876287,31.385037939 -13.4491762869999,31.3826379390001 -13.452976287,31.3801379390001 -13.456976287,31.377937939 -13.459676287,31.3754379390001 -13.462876287,31.371437939 -13.464776287,31.364437939 -13.464276287,31.3591379390001 -13.4636762869999,31.3384379390001 -13.4697762869999,31.333337939 -13.472576287,31.3291379390001 -13.477876287,31.327937939 -13.4804762869999,31.3266379390001 -13.4835762869999,31.3248379390001 -13.486176287,31.323137939 -13.489576287,31.321637939 -13.492276287,31.320037939 -13.4996762869999,31.318837939 -13.5039762869999,31.3174379390001 -13.506876287,31.315437939 -13.5103762869999,31.3013379390001 -13.5114762869999,31.2983379390001 -13.5085762869999,31.2956379390001 -13.5073762869999,31.291237939 -13.5103762869999,31.2882379390001 -13.513176287,31.2757379390001 -13.523376287,31.2728379390001 -13.5277762869999,31.2700379390001 -13.5331762869999,31.267437939 -13.5359762869999,31.264937939 -13.539276287,31.262737939 -13.541976287,31.260937939 -13.545276287,31.2583379390001 -13.548676287,31.2565379390001 -13.5535762869999,31.2546379390001 -13.556476287,31.2506379390001 -13.5603762869999,31.2472379390001 -13.565276287,31.2447379390001 -13.567776287,31.241237939 -13.571376287,31.2390379390001 -13.5739762869999,31.2377379390001 -13.576776287,31.2341379390001 -13.5823762869999,31.232837939 -13.584976287,31.2304379390001 -13.587476287,31.2257379390001 -13.588776287,31.2229379390001 -13.587176287,31.221737939 -13.5839762869999,31.220337939 -13.581276287,31.2177379390001 -13.5784762869999,31.213137939 -13.577676287,31.2071379390001 -13.578876287,31.202937939 -13.5796762869999,31.1999379390001 -13.581276287,31.1967379390001 -13.5834762869999,31.192337939 -13.585876287,31.183437939 -13.5909762869999,31.1770379390001 -13.595376287,31.1738379390001 -13.596476287,31.170837939 -13.5972762869999,31.1641379390001 -13.6015762869999,31.1579379390001 -13.6042762869999,31.153837939 -13.607176287,31.1487379390001 -13.6108762869999,31.1428379390001 -13.616376287,31.138837939 -13.6226762869999,31.136637939 -13.626876287,31.1349379390001 -13.6305762869999,31.132537939 -13.6380762869999,31.131837939 -13.6432762869999,31.1319379390001 -13.648376287,31.1328379390001 -13.652876287,31.135037939 -13.6579762869999,31.137537939 -13.6645762869999,31.142737939 -13.677076287,31.147437939 -13.6842762869999,31.1480379390001 -13.6876762869999,31.1473379390001 -13.691676287,31.1437379390001 -13.693376287,31.134537939 -13.699576287,31.133437939 -13.706076287,31.131837939 -13.7104762869999,31.1296379390001 -13.7145762869999,31.127037939 -13.718076287,31.1244379390001 -13.7202762869999,31.1204379390001 -13.7215762869999,31.1145379390001 -13.723376287,31.109237939 -13.7243762869999,31.104937939 -13.7263762869999,31.101237939 -13.7299762869999,31.099037939 -13.7326762869999,31.0950379390001 -13.7354762869999,31.0891379390001 -13.738676287,31.0830379390001 -13.743276287,31.0814379390001 -13.746476287,31.0821379390001 -13.751876287,31.085137939 -13.756876287,31.085837939 -13.761976287,31.083637939 -13.764776287,31.0798379390001 -13.7650762869999,31.0712379390001 -13.7628762869999,31.0683379390001 -13.7628762869999,31.064837939 -13.759576287,31.0612379390001 -13.7578762869999,31.055037939 -13.7564762869999,31.05203096 -13.757272252,31.051637939 -13.7573762869999,31.047837939 -13.759776287,31.0456379390001 -13.7616762869999,31.0420379390001 -13.7671762869999,31.039237939 -13.7702762869999,31.037437939 -13.7732762869999,31.0339379390001 -13.776776287,31.0318379390001 -13.778976287,31.029237939 -13.781576287,31.0237379390001 -13.786476287,31.018137939 -13.7897762869999,31.0124379390001 -13.7911762869999,31.002937939 -13.7924762869999,30.993237939 -13.7936762869999,30.9895379390001 -13.795776287,30.983937939 -13.799576287,30.983037939 -13.803076287,30.9824379390001 -13.809876287,30.9793379390001 -13.817076287,30.9800379390001 -13.825176287,30.981437939 -13.827676287,30.9836379390001 -13.830376287,30.988937939 -13.8366762869999,30.987637939 -13.8447762869999,30.9859379390001 -13.847576287,30.9822379390001 -13.848776287,30.976937939 -13.8488762869999,30.9711379390001 -13.8499762869999,30.9650379390001 -13.851276287,30.9555379390001 -13.8531762869999,30.952237939 -13.8558762869999,30.950637939 -13.861476287,30.953437939 -13.8773762869999,30.9442379390001 -13.880476287,30.930937939 -13.8787762869999,30.926437939 -13.881376287,30.9195379390001 -13.889476287,30.917137939 -13.894676287,30.913337939 -13.900876287,30.9104379390001 -13.905876287,30.903137939 -13.916076287,30.902437939 -13.928476287,30.8865379390001 -13.929176287,30.878937939 -13.9292762869999,30.8402379390001 -13.9310762869999,30.837037939 -13.9310762869999,30.832237939 -13.9310762869999,30.826837939 -13.9303762869999,30.8183379390001 -13.929676287,30.7949379390001 -13.928476287,30.788537939 -13.928076287,30.781337939 -13.928476287,30.775637939 -13.9287762869999,30.770637939 -13.929676287,30.7651379390001 -13.9301762869999,30.756337939 -13.9303762869999,30.7392379390001 -13.933476287,30.7334379390001 -13.933976287,30.724937939 -13.934076287,30.718337939 -13.9337762869999,30.711137939 -13.9328762869999,30.6983379390001 -13.932576287,30.687737939 -13.9321762869999,30.6813379390001 -13.9319762869999,30.0986379390001 -13.9324762869999,30.1014379390001 -13.934176287,30.105137939 -13.935476287,30.108537939 -13.9385762869999,30.1108379390001 -13.9419762869999,30.1131379390001 -13.942576287,30.1152379390001 -13.944376287,30.117337939 -13.9473762869999,30.121437939 -13.950476287,30.1242379390001 -13.952076287,30.1274379390001 -13.9532762869999,30.1306379390001 -13.954576287,30.1337379390001 -13.9557762869999,30.1376379390001 -13.957476287,30.140237939 -13.9602762869999,30.1441379390001 -13.9629762869999,30.1475379390001 -13.9638762869999,30.155837939 -13.966076287,30.164937939 -13.9758762869999,30.165537939 -13.980776287,30.1650379390001 -13.985276287,30.1638379390001 -13.9872762869999,30.163737939 -13.990576287,30.165337939 -13.995976287,30.1695379390001 -14.002476287,30.170737939 -14.005276287,30.171437939 -14.010276287,30.1734379390001 -14.014976287,30.1740379390001 -14.0189762869999,30.173237939 -14.0229762869999,30.1727379390001 -14.026076287,30.172637939 -14.029676287,30.1763379390001 -14.0379762869999,30.1777379390001 -14.040576287,30.180037939 -14.0431762869999,30.182537939 -14.0460762869999,30.1890379390001 -14.055776287,30.1922379390001 -14.0569762869999,30.196137939 -14.057076287,30.1989379390001 -14.058676287,30.200237939 -14.0614762869999,30.204037939 -14.062076287,30.209037939 -14.0626762869999,30.2184379390001 -14.0646762869999,30.2234379390001 -14.067476287,30.2263379390001 -14.067576287,30.230837939 -14.0685762869999,30.2352379390001 -14.070276287,30.2384379390001 -14.072676287,30.2411379390001 -14.074076287,30.2445379390001 -14.075876287,30.2487379390001 -14.0753762869999,30.252537939 -14.074076287,30.2605379390001 -14.0737762869999,30.2632379390001 -14.0746762869999,30.265037939 -14.0768762869999,30.266337939 -14.0798762869999,30.2676379390001 -14.082976287,30.2696379390001 -14.0870762869999,30.2755379390001 -14.091076287,30.279737939 -14.0927762869999,30.2832379390001 -14.094076287,30.286237939 -14.094676287,30.294237939 -14.098776287,30.2952379390001 -14.101476287,30.296237939 -14.1047762869999,30.2968379390001 -14.1079762869999,30.297337939 -14.111276287,30.300537939 -14.1167762869999,30.3045379390001 -14.1212762869999,30.307537939 -14.1230762869999,30.3060379390001 -14.125776287,30.304837939 -14.1287762869999,30.3045379390001 -14.1339762869999,30.3054379390001 -14.137676287,30.3063379390001 -14.140476287,30.307737939 -14.143576287,30.3092379390001 -14.145376287,30.310937939 -14.1466762869999,30.3140379390001 -14.148876287,30.3151379390001 -14.151576287,30.3112379390001 -14.152876287,30.3086379390001 -14.155576287,30.3086379390001 -14.158576287,30.3112379390001 -14.160376287,30.3142379390001 -14.1624762869999,30.316637939 -14.1647762869999,30.318837939 -14.1663762869999,30.3205379390001 -14.1683762869999,30.321137939 -14.170576287,30.320737939 -14.1753762869999,30.3180379390001 -14.180076287,30.3146379390001 -14.179876287,30.3113379390001 -14.180076287,30.308437939 -14.181376287,30.305937939 -14.1819762869999,30.302337939 -14.181676287,30.2992379390001 -14.180476287,30.292337939 -14.178876287,30.289437939 -14.1851762869999,30.286537939 -14.188676287,30.284237939 -14.1910762869999,30.2821379390001 -14.192576287,30.277037939 -14.196176287,30.274237939 -14.198376287,30.270437939 -14.202076287,30.2657379390001 -14.206076287,30.260637939 -14.2100762869999,30.2562379390001 -14.2123762869999,30.2535379390001 -14.2138762869999,30.250937939 -14.2161762869999,30.246837939 -14.2202762869999,30.2451379390001 -14.221976287,30.2417379390001 -14.225076287,30.237837939 -14.2286762869999,30.2352379390001 -14.230976287,30.232337939 -14.233676287,30.2304379390001 -14.235776287,30.227637939 -14.239176287,30.225637939 -14.2426762869999,30.2245379390001 -14.245776287,30.2230379390001 -14.2496762869999,30.2187379390001 -14.2562762869999,30.216737939 -14.2589762869999,30.214737939 -14.261576287,30.2118379390001 -14.2643762869999,30.209037939 -14.267476287,30.205237939 -14.2716762869999,30.201537939 -14.274776287,30.1994379390001 -14.2763762869999,30.197237939 -14.2784762869999,30.193237939 -14.281676287,30.190737939 -14.283376287,30.1878379390001 -14.284876287,30.185537939 -14.285776287,30.183437939 -14.2861762869999,30.181637939 -14.288276287,30.180937939 -14.2931762869999,30.1768379390001 -14.299576287,30.174437939 -14.302076287,30.171937939 -14.303476287,30.1675379390001 -14.307276287,30.165337939 -14.309876287,30.1639379390001 -14.313676287,30.1625379390001 -14.3176762869999,30.160337939 -14.3214762869999,30.158537939 -14.3234762869999,30.156537939 -14.3248762869999,30.153137939 -14.3266762869999,30.150637939 -14.328176287,30.150837939 -14.331576287,30.1568379390001 -14.333176287,30.157637939 -14.336476287,30.1534379390001 -14.340376287,30.149937939 -14.341976287,30.148137939 -14.344876287,30.1464379390001 -14.3477762869999,30.1442379390001 -14.3515762869999,30.1428379390001 -14.354676287,30.1417379390001 -14.358276287,30.140037939 -14.3613762869999,30.137937939 -14.363976287,30.136337939 -14.3656762869999,30.1333379390001 -14.3683762869999,30.1299379390001 -14.3710762869999,30.126637939 -14.372576287,30.123637939 -14.3728762869999,30.119637939 -14.371876287,30.1154379390001 -14.3696762869999,30.1131379390001 -14.3681762869999,30.1106379390001 -14.3665762869999,30.1086379390001 -14.3647762869999,30.107637939 -14.362576287,30.1057379390001 -14.3588762869999,30.101537939 -14.356976287,30.0977379390001 -14.358776287,30.0950379390001 -14.361176287,30.092937939 -14.362376287,30.090837939 -14.3626762869999,30.0868379390001 -14.3628762869999,30.083637939 -14.3656762869999,30.0810379390001 -14.3696762869999,30.0792379390001 -14.3719762869999,30.0773379390001 -14.3758762869999,30.075237939 -14.379576287,30.073137939 -14.3830762869999,30.0712379390001 -14.386776287,30.0706379390001 -14.3898762869999,30.0706379390001 -14.393576287,30.0710379390001 -14.396076287,30.0706379390001 -14.401576287,30.0703379390001 -14.407676287,30.070237939 -14.413576287,30.070237939 -14.4165762869999,30.0696379390001 -14.4188762869999,30.0687379390001 -14.4208762869999,30.0671379390001 -14.422576287,30.0637379390001 -14.4235762869999,30.059137939 -14.4231762869999,30.0563379390001 -14.4224762869999,30.053737939 -14.422176287,30.051037939 -14.422576287,30.048237939 -14.4240762869999,30.046237939 -14.427176287,30.044237939 -14.430476287,30.0407379390001 -14.435676287,30.038737939 -14.4398762869999,30.0372379390001 -14.4437762869999,30.0366379390001 -14.449076287,30.0350379390001 -14.453676287,30.0329379390001 -14.457276287,30.0307379390001 -14.4598762869999,30.025637939 -14.465576287,30.0241379390001 -14.467476287,30.022037939 -14.4731762869999,30.0218379390001 -14.475576287,30.022037939 -14.479476287,30.0234379390001 -14.482576287,30.024537939 -14.4863762869999,30.024737939 -14.4890762869999,30.024737939 -14.492176287,30.0243379390001 -14.4951762869999,30.0228379390001 -14.4978762869999,30.0210379390001 -14.499776287,30.0176379390001 -14.5023762869999,30.014337939 -14.504276287,30.010737939 -14.5062762869999,30.007037939 -14.507676287,30.0047379390001 -14.508676287,30.0012379390001 -14.510476287,29.998937939 -14.5143762869999,29.999137939 -14.5180762869999,30.001437939 -14.5205762869999,30.004537939 -14.522876287,30.006137939 -14.5250762869999,30.0060379390001 -14.528176287,30.0049379390001 -14.531576287,30.003937939 -14.5340762869999,30.001837939 -14.536476287,29.9974379390001 -14.539176287,29.9949379390001 -14.5404762869999,29.9924379390001 -14.5417762869999,29.9904379390001 -14.5429762869999,29.987337939 -14.545776287,29.986037939 -14.551676287,29.9859379390001 -14.555776287,29.9859379390001 -14.559176287,29.9845379390001 -14.5633762869999,29.9827379390001 -14.566176287,29.981237939 -14.569776287,29.979937939 -14.572476287,29.978337939 -14.577976287,29.9784379390001 -14.582676287,29.9797379390001 -14.586576287,29.980537939 -14.588776287,29.981437939 -14.5920762869999,29.983037939 -14.595876287,29.985737939 -14.600976287,29.9879379390001 -14.603976287,29.9908379390001 -14.606676287,29.9936379390001 -14.608276287,29.9979379390001 -14.6090762869999,30.0022379390001 -14.609576287,30.0065379390001 -14.6106762869999,30.010937939 -14.612176287,30.015237939 -14.616376287,30.014337939 -14.6217762869999,30.012537939 -14.623876287,30.0110379390001 -14.625976287,30.010037939 -14.628676287,30.0087379390001 -14.6321762869999,30.0078379390001 -14.635176287,30.0074379390001 -14.637976287,30.008237939 -14.6416762869999,30.0105379390001 -14.644676287,30.006837939 -14.6464762869999,30.0026379390001 -14.647476287,29.999137939 -14.6468762869999,29.9956379390001 -14.645176287,29.9922379390001 -14.6425762869999,29.989637939 -14.642476287,29.987137939 -14.642976287,29.9849379390001 -14.643176287,29.9825379390001 -14.6427762869999,29.979637939 -14.641176287,29.9766379390001 -14.639976287,29.9738379390001 -14.6389762869999,29.9700379390001 -14.637276287,29.9652379390001 -14.636576287,29.960637939 -14.6375762869999,29.956837939 -14.641176287,29.9571379390001 -14.644276287,29.958137939 -14.6475762869999,29.9578379390001 -14.6516762869999,29.9553379390001 -14.654476287,29.9521379390001 -14.655776287,29.947237939 -14.656576287,29.943637939 -14.6556762869999,29.9390379390001 -14.655376287,29.9363379390001 -14.656776287,29.932837939 -14.6611762869999,29.930037939 -14.664376287,29.9265379390001 -14.666276287,29.9238379390001 -14.6665762869999,29.920537939 -14.6652762869999,29.9181379390001 -14.661076287,29.917337939 -14.6568762869999,29.9168379390001 -14.654076287,29.9156379390001 -14.647876287,29.913737939 -14.6464762869999,29.911737939 -14.6439762869999,29.907637939 -14.643576287,29.9037379390001 -14.643776287,29.9012379390001 -14.645876287,29.899737939 -14.6493762869999,29.899537939 -14.652276287,29.8989379390001 -14.654976287,29.898337939 -14.6606762869999,29.8978379390001 -14.6633762869999,29.896737939 -14.665776287,29.8937379390001 -14.670776287,29.8921379390001 -14.673076287,29.8898379390001 -14.6756762869999,29.8873379390001 -14.676876287,29.8846379390001 -14.677376287,29.878437939 -14.676376287,29.8738379390001 -14.677376287,29.870737939 -14.6810762869999,29.868437939 -14.685076287,29.864637939 -14.6842762869999,29.8609379390001 -14.6837762869999,29.8577379390001 -14.6837762869999,29.854837939 -14.685276287,29.852137939 -14.6867762869999,29.8466379390001 -14.6889762869999,29.8418379390001 -14.6885762869999,29.8360379390001 -14.6869762869999,29.831337939 -14.686876287,29.8269379390001 -14.687076287,29.8219379390001 -14.688276287,29.8180379390001 -14.6901762869999,29.8151379390001 -14.691676287,29.8115379390001 -14.693676287,29.8081379390001 -14.695276287,29.7961379390001 -14.701176287,29.787437939 -14.704776287,29.7855379390001 -14.706776287,29.784437939 -14.7095762869999,29.7807379390001 -14.711776287,29.7737379390001 -14.7127762869999,29.7701379390001 -14.711476287,29.7671379390001 -14.7107762869999,29.7644379390001 -14.7084762869999,29.7619379390001 -14.706776287,29.7583379390001 -14.705476287,29.7544379390001 -14.705176287,29.750737939 -14.706976287,29.7485379390001 -14.7093762869999,29.7456379390001 -14.713176287,29.7411379390001 -14.713976287,29.7370379390001 -14.713376287,29.7334379390001 -14.7166762869999,29.729837939 -14.7200762869999,29.725337939 -14.7231762869999,29.720137939 -14.7234762869999,29.7152379390001 -14.724676287,29.712437939 -14.726276287,29.709937939 -14.729376287,29.707437939 -14.7326762869999,29.7060379390001 -14.7376762869999,29.7026379390001 -14.7390762869999,29.6998379390001 -14.7383762869999,29.695737939 -14.738076287,29.6913379390001 -14.7381762869999,29.687337939 -14.7376762869999,29.684137939 -14.737076287,29.6808379390001 -14.737776287,29.678437939 -14.739176287,29.676037939 -14.741176287,29.673037939 -14.742376287,29.669837939 -14.742376287,29.6672379390001 -14.741676287,29.663737939 -14.7410762869999,29.6614379390001 -14.741376287,29.6589379390001 -14.742276287,29.6588379390001 -14.7442762869999,29.660837939 -14.747376287,29.6629379390001 -14.749776287,29.6639379390001 -14.7528762869999,29.663537939 -14.7562762869999,29.6609379390001 -14.757276287,29.656037939 -14.756576287,29.652237939 -14.756776287,29.6485379390001 -14.7580762869999,29.643837939 -14.7607762869999,29.639937939 -14.7637762869999,29.636337939 -14.766076287,29.633637939 -14.7666762869999,29.6310379390001 -14.7682762869999,29.6294379390001 -14.7705762869999,29.6297379390001 -14.774476287,29.630037939 -14.7779762869999,29.628037939 -14.782176287,29.623937939 -14.783076287,29.621637939 -14.781276287,29.6186379390001 -14.7782762869999,29.608737939 -14.779876287,29.6065379390001 -14.783576287,29.6023379390001 -14.7838762869999,29.5986379390001 -14.784476287,29.5966379390001 -14.7870762869999,29.596937939 -14.7904762869999,29.5963379390001 -14.793976287,29.593837939 -14.7947762869999,29.589737939 -14.7958762869999,29.585837939 -14.7994762869999,29.585137939 -14.802576287,29.5860379390001 -14.805076287,29.587637939 -14.808876287,29.588537939 -14.813676287,29.5875379390001 -14.816176287,29.585137939 -14.8160762869999,29.5828379390001 -14.813176287,29.581337939 -14.810676287,29.578637939 -14.807576287,29.5749379390001 -14.8062762869999,29.571337939 -14.807576287,29.5680379390001 -14.8101762869999,29.563937939 -14.8114762869999,29.5606379390001 -14.8108762869999,29.5576379390001 -14.8083762869999,29.5545379390001 -14.8083762869999,29.5508379390001 -14.810276287,29.5474379390001 -14.8119762869999,29.5407379390001 -14.8155762869999,29.5363379390001 -14.8137762869999,29.5352379390001 -14.810776287,29.5343379390001 -14.808176287,29.531937939 -14.8069762869999,29.5291379390001 -14.807576287,29.525137939 -14.8103762869999,29.523137939 -14.8121762869999,29.5200379390001 -14.814176287,29.5171379390001 -14.8164762869999,29.514537939 -14.8176762869999,29.5121379390001 -14.817776287,29.5142379390001 -14.978276287,29.3744379390001 -14.9783762869999,29.2535379390001 -14.870776287,29.139037939 -14.9722762869999,29.022737939 -14.989176287,29.007037939 -14.991476287,28.9974379390001 -14.9928762869999,28.975837939 -14.9960762869999,28.8887379390001 -15.158076287,28.8874379390001 -15.160176287,28.881137939 -15.1627762869999,28.8785379390001 -15.1627762869999,28.874637939 -15.1624762869999,28.8715379390001 -15.1618762869999,28.8685379390001 -15.1620762869999,28.8649379390001 -15.1618762869999,28.8606379390001 -15.1611762869999,28.856737939 -15.159676287,28.852137939 -15.157876287,28.846537939 -15.1563762869999,28.842237939 -15.154976287,28.830837939 -15.1559762869999,28.82446299 -15.162158056,28.8242379390001 -15.162376287,28.819537939 -15.1690762869999,28.8031379390001 -15.1794762869999,28.7972379390001 -15.1794762869999,28.7931379390001 -15.1785762869999,28.784937939 -15.1772762869999,28.778137939 -15.176876287,28.772037939 -15.176876287,28.765237939 -15.177176287,28.757737939 -15.177176287,28.7533379390001 -15.176876287,28.749337939 -15.176876287,28.7456379390001 -15.177376287,28.7406379390001 -15.1790762869999,28.7356379390001 -15.180776287,28.7304379390001 -15.1828762869999,28.7229379390001 -15.184576287,28.717237939 -15.185476287,28.709737939 -15.184576287,28.7048379390001 -15.1830762869999,28.700037939 -15.181676287,28.694737939 -15.180576287,28.6806379390001 -15.1835762869999,28.673237939 -15.1864762869999,28.6634379390001 -15.1892762869999,28.6593379390001 -15.189076287,28.6550379390001 -15.1880762869999,28.652237939 -15.187576287,28.644337939 -15.1855762869999,28.632037939 -15.190476287,28.628437939 -15.1907762869999,28.624137939 -15.190476287,28.6170379390001 -15.1912762869999,28.611437939 -15.1919762869999,28.6052379390001 -15.193376287,28.6011379390001 -15.193176287,28.5939379390001 -15.192476287,28.5900379390001 -15.1910762869999,28.586137939 -15.1903762869999,28.5749379390001 -15.1892762869999,28.567737939 -15.187276287,28.5638379390001 -15.1849762869999,28.5588379390001 -15.182976287,28.5540379390001 -15.1794762869999,28.5502379390001 -15.1747762869999,28.544237939 -15.168076287,28.539937939 -15.1633762869999,28.5373379390001 -15.160076287,28.5332379390001 -15.155776287,28.5232379390001 -15.144276287,28.5205379390001 -15.1418762869999,28.514337939 -15.1375762869999,28.506337939 -15.134276287,28.5004379390001 -15.1328762869999,28.4929379390001 -15.130976287,28.4843379390001 -15.1276762869999,28.468137939 -15.128376287,28.460437939 -15.127476287,28.451337939 -15.127476287,28.444537939 -15.127476287,28.4390379390001 -15.128376287,28.4345379390001 -15.129376287,28.430037939 -15.128876287,28.425337939 -15.129076287,28.4138379390001 -15.1303762869999,28.4079379390001 -15.130876287,28.402937939 -15.1314762869999,28.395237939 -15.1348762869999,28.3916379390001 -15.1350762869999,28.384337939 -15.131876287,28.380737939 -15.128876287,28.377537939 -15.126676287,28.375937939 -15.129076287,28.375937939 -15.132076287,28.3747379390001 -15.136376287,28.3733379390001 -15.142076287,28.3694379390001 -15.1450762869999,28.3658379390001 -15.144276287,28.3618443830001 -15.144413996,28.3600379390001 -15.144476287,28.357837939 -15.149776287,28.358537939 -15.1538762869999,28.3629379390001 -15.156676287,28.367537939 -15.158376287,28.369137939 -15.1606762869999,28.3685379390001 -15.164276287,28.366801115 -15.1662803149999,28.365937939 -15.1672762869999,28.3590379390001 -15.1676762869999,28.358921217 -15.167661697,28.3534379390001 -15.166976287,28.3500379390001 -15.1665762869999,28.3499927330001 -15.166643021,28.3479379390001 -15.169676287,28.347437939 -15.173276287,28.348737939 -15.1783762869999,28.350837939 -15.179676287,28.3520379390001 -15.1867762869999,28.3470379390001 -15.192076287,28.3425379390001 -15.1932762869999,28.342237939 -15.1957762869999,28.342937939 -15.1998762869999,28.3448379390001 -15.202076287,28.347437939 -15.2048762869999,28.3489379390001 -15.207176287,28.3484379390001 -15.211276287,28.346737939 -15.2145762869999,28.342637939 -15.2195762869999,28.3355379390001 -15.2220762869999,28.335137939 -15.2254762869999,28.3353379390001 -15.229176287,28.337937939 -15.231276287,28.3439379390001 -15.234876287,28.347237939 -15.237776287,28.347237939 -15.242076287,28.3461379390001 -15.2453762869999,28.344037939 -15.249376287,28.340437939 -15.2530762869999,28.336737939 -15.256376287,28.3344379390001 -15.264776287,28.3326379390001 -15.267876287,28.3285379390001 -15.2707762869999,28.32810018 -15.2707191879999,28.3239379390001 -15.270176287,28.323456446 -15.270192337,28.320937939 -15.2702762869999,28.318237939 -15.272676287,28.317278179 -15.274800012,28.3135379390001 -15.283076287,28.3108379390001 -15.295776287,28.313437939 -15.301376287,28.316137939 -15.304176287,28.3298379390001 -15.310776287,28.3326379390001 -15.317076287,28.334737939 -15.321776287,28.338082021 -15.329146916,28.3396379390001 -15.3325762869999,28.3382379390001 -15.3377762869999,28.3355132890001 -15.341017026,28.3350605470001 -15.341117649,28.3349814050001 -15.341026503,28.332578975 -15.3374708719999,28.325323145 -15.334377316,28.308272808 -15.333783968,28.30867177 -15.319763166,28.3048124790001 -15.320035585,28.293361621 -15.327569506,28.274776424 -15.333200599,28.2761470190001 -15.3516528979999,28.271722686 -15.352885638,28.258036256 -15.356593102,28.2571470610001 -15.3568339719999,28.256458062 -15.356421462,28.2553615780001 -15.356032066,28.2504299300001 -15.356497013,28.249248633 -15.356274621,28.248089534 -15.3561770169999,28.247486737 -15.3558264549999,28.2469899710001 -15.3552670989999,28.2465823590001 -15.35526938,28.2463257860001 -15.3554165539999,28.24600374 -15.355376715,28.2454634540001 -15.3547134999999,28.2449887670001 -15.3542581139999,28.2445800460001 -15.354073018,28.244257261 -15.3539082619999,28.2442400320001 -15.3538982869999,28.2442014110001 -15.353875919,28.244200687 -15.353875828,28.244149522 -15.3538462779999,28.2440892380001 -15.3538118299999,28.244041989 -15.353784544,28.243908387 -15.353789709,28.2437319260001 -15.35379697,28.2435723510001 -15.353803387,28.2434414260001 -15.3538087159999,28.243288325 -15.3536753889999,28.243208284 -15.3536054799999,28.2429845820001 -15.3534107259999,28.2429669910001 -15.353394964,28.2426448250001 -15.353334301,28.242459834 -15.353321466,28.2422693070001 -15.353310259,28.242043892 -15.3532960109999,28.2416557660001 -15.352965056,28.241183429 -15.352905227,28.240515063 -15.35234681,28.2401926530001 -15.3522445049999,28.2396775350001 -15.352205731,28.239418255 -15.351894874,28.2391790770001 -15.351354885,28.2388977320001 -15.350940051,28.237907094 -15.3503001359999,28.2375182430001 -15.349844257,28.237323573 -15.349574678,28.2368730650001 -15.3495771779999,28.2362923700001 -15.3493305599999,28.2354552240001 -15.349251922,28.2348961060001 -15.349026,28.234422065 -15.348674686,28.23323801 -15.34797336,28.2325066660001 -15.3476442849999,28.231752284 -15.347044675,28.2313661380001 -15.347046808,28.231118893 -15.34711465,28.2305739810001 -15.3473218419999,28.2301012930001 -15.3471995309999,28.2293055980001 -15.3468707989999,28.2285557340001 -15.3470414929999,28.2281042560001 -15.3468774199999,28.2278671820001 -15.3466913459999,28.2273872910001 -15.346567348,28.2269650810001 -15.3465089319999,28.2264708220001 -15.346365912,28.226104063 -15.346013988,28.2257170680001 -15.3458703759999,28.224858442 -15.345659366,28.2248092290001 -15.345693346,28.2248247370001 -15.345651083,28.2248082040001 -15.3456470199999,28.2245569360001 -15.34558527,28.224322456 -15.345579158,28.2190042710001 -15.342085459,28.210616143 -15.340703897,28.2061407950001 -15.3410692309999,28.206088198 -15.341046406,28.200840795 -15.338769231,28.1971407950001 -15.336969231,28.193340795 -15.3345692309999,28.1894407950001 -15.332169231,28.1851407950001 -15.3286692309999,28.1807407950001 -15.326569231,28.1755407950001 -15.3245692309999,28.170240795 -15.322269231,28.163640795 -15.318769231,28.159340795 -15.3168692309999,28.1529407950001 -15.3141692309999,28.1486407950001 -15.314069231,28.1434407950001 -15.313569231,28.1391407950001 -15.3118692309999,28.135640795 -15.309269231,28.1316407950001 -15.306969231,28.1275407950001 -15.3057692309999,28.120640795 -15.304769231,28.115640795 -15.3035692309999,28.1108407950001 -15.302669231,28.1063407950001 -15.302669231,28.1026407950001 -15.302669231,28.0976407950001 -15.3021692309999,28.0924407950001 -15.301769231,28.0870407950001 -15.3012692309999,28.081540795 -15.3012692309999,28.075840795 -15.2998692309999,28.070840795 -15.2976692309999,28.065440795 -15.296569231,28.058340795 -15.294869231,28.052240795 -15.2939692309999,28.0481407950001 -15.292569231,28.0437407950001 -15.291169231,28.039640795 -15.290669231,28.0369407950001 -15.289769231,28.0317407950001 -15.287569231,28.025340795 -15.2851692309999,28.021740795 -15.2838692309999,28.0166407950001 -15.282169231,28.012840795 -15.281269231,28.012694508 -15.281377767,28.009740795 -15.2835692309999,28.0046407950001 -15.2896692309999,27.993140795 -15.304369231,27.9927593990001 -15.304189751,27.989740795 -15.302769231,27.9799407950001 -15.2980692309999,27.970040795 -15.293469231,27.959640795 -15.288469231,27.9502407950001 -15.2840692309999,27.9418407950001 -15.280069231,27.9221407950001 -15.270769231,27.918940795 -15.269269231,27.901940795 -15.261269231,27.896240795 -15.258569231,27.888540795 -15.2548692309999,27.8798407950001 -15.250869231,27.874540795 -15.248369231,27.8683407950001 -15.247469231,27.8682751630001 -15.247553861,27.864540795 -15.2523692309999,27.8576407950001 -15.261469231,27.852540795 -15.265769231,27.8492407950001 -15.269169231,27.8426407950001 -15.275069231,27.832640795 -15.2896692309999,27.83211011 -15.289679845,27.827640795 -15.289769231,27.827628992 -15.289775306,27.820840795 -15.293269231,27.8137407950001 -15.2989692309999,27.808640795 -15.304069231,27.796440795 -15.318069231,27.7964351640001 -15.318075945,27.7891379390001 -15.3171762869999,27.7841379390001 -15.3139762869999,27.7787379390001 -15.312476287,27.769737939 -15.3133762869999,27.7639379390001 -15.306176287,27.760437939 -15.2983762869999,27.7547379390001 -15.2849762869999,27.749137939 -15.2770762869999,27.7381379390001 -15.2675762869999,27.732637939 -15.2546762869999,27.7284379390001 -15.246576287,27.722237939 -15.236276287,27.7171379390001 -15.2299762869999,27.712637939 -15.2270762869999,27.7087379390001 -15.2261762869999,27.6994379390001 -15.222876287,27.693437939 -15.216576287,27.687537939 -15.2107762869999,27.686137939 -15.2000762869999,27.6838379390001 -15.1896762869999,27.680537939 -15.184176287,27.6752379390001 -15.177076287,27.672137939 -15.1692762869999,27.668737939 -15.1665762869999,27.663037939 -15.157376287,27.6582379390001 -15.151576287,27.654237939 -15.1430762869999,27.646337939 -15.1316762869999,27.644537939 -15.123176287,27.640437939 -15.1122762869999,27.6371379390001 -15.105976287,27.6288379390001 -15.0959762869999,27.625537939 -15.087676287,27.6219379390001 -15.081376287,27.615937939 -15.077276287,27.615337939 -15.0750762869999,27.614637939 -15.0725762869999,27.6138379390001 -15.0691762869999,27.613153991 -15.0666114819999,27.613037939 -15.066176287,27.612137939 -15.062476287,27.6104379390001 -15.0580762869999,27.609237939 -15.055076287,27.608037939 -15.052076287,27.6070379390001 -15.049376287,27.604937939 -15.0438762869999,27.5989379390001 -15.0300762869999,27.5925379390001 -15.0297762869999,27.5887379390001 -15.0284762869999,27.5832379390001 -15.0259762869999,27.5751379390001 -15.0207762869999,27.574592765 -15.0198728559999,27.5600255950001 -15.0209792229999,27.5484536820001 -15.023183397,27.493900378 -15.0529397449999,27.4944514210001 -15.056246006,27.5005129 -15.066164788,27.5082275080001 -15.075532527,27.512635856 -15.084900266,27.5170442040001 -15.0942680049999,27.5197994210001 -15.102533657,27.520350465 -15.110799309,27.520350465 -15.124575396,27.520350465 -15.1355962659999,27.5258608990001 -15.1405556569999,27.531371334 -15.1493723519999,27.5324199720001 -15.156245548,27.534251302 -15.168248821,27.540930259 -15.1816067349999,27.553175013 -15.187172532,27.563193449 -15.193294909,27.570428985 -15.201643605,27.575438203 -15.210548881,27.580447421 -15.2200107369999,27.588239537 -15.229472592,27.600484291 -15.239491028,27.6071632480001 -15.251735782,27.6071632480001 -15.2595278979999,27.60438035 -15.270659493,27.60271061 -15.2784516099999,27.5988145520001 -15.3096200749999,27.6110593060001 -15.32186483,27.6238606410001 -15.331326685,27.6299830180001 -15.34301486,27.641671192 -15.360268832,27.6411146130001 -15.3647214699999,27.621634322 -15.3719570059999,27.6132856250001 -15.381418862,27.6010408710001 -15.38642808,27.5832303190001 -15.3880978189999,27.554288173 -15.3892109779999,27.5247894460001 -15.389767558,27.5041959960001 -15.3880978189999,27.485828864 -15.3830886009999,27.47358411 -15.3880978189999,27.4630090950001 -15.40757811,27.4630090950001 -15.412030748,27.5627762120001 -15.480134151,27.5604633150001 -15.4806182459999,27.557678223 -15.4812011719999,27.5557325780001 -15.4817978359999,27.553100586 -15.48260498,27.5499439440001 -15.4840814739999,27.5493164060001 -15.4843749999999,27.547643244 -15.486555182,27.5473022460001 -15.486999512,27.5460815430001 -15.4902954099999,27.545288086 -15.4934082029999,27.5424804690001 -15.4982910159999,27.5381042170001 -15.501469557,27.5367039010001 -15.5024866279999,27.536682129 -15.5025024409999,27.528930664 -15.5048828119999,27.5263061520001 -15.5073852539999,27.523498535 -15.5114746089999,27.521829595 -15.5161936809999,27.5217285160001 -15.516479492,27.5217285160001 -15.516777837,27.5217285160001 -15.5195922849999,27.521575861 -15.521538634,27.5214843750001 -15.5227050779999,27.5214843750001 -15.5256958009999,27.5213954880001 -15.5272957629999,27.52130127 -15.528991699,27.5207190130001 -15.531051991,27.5205078130001 -15.5317993159999,27.518676758 -15.536499023,27.5173334570001 -15.5396973589999,27.5161132810001 -15.542602539,27.5092773440001 -15.5463867189999,27.503723145 -15.548278809,27.499328613 -15.5515747069999,27.49847507 -15.5526568779999,27.495910645 -15.5559082029999,27.4935381290001 -15.557522832,27.491516113 -15.5588989259999,27.489986883 -15.559281233,27.487121582 -15.559997559,27.4838867190001 -15.5607910159999,27.4815584250001 -15.561537264,27.479125977 -15.562316895,27.47619508 -15.5633534309999,27.4741210940001 -15.564086914,27.4719238280001 -15.566101074,27.4719224630001 -15.566102788,27.469299316 -15.569396973,27.4677124020001 -15.5747070309999,27.461486816 -15.5817871089999,27.4577026370001 -15.586303711,27.4560702470001 -15.586903364,27.454711914 -15.5874023439999,27.451721191 -15.586791992,27.4487304690001 -15.5834960939999,27.448059325 -15.58265432,27.445129395 -15.578979492,27.4442762420001 -15.578590009,27.4423217770001 -15.5776977539999,27.442276243 -15.5776934579999,27.439086914 -15.5773925779999,27.435913086 -15.5773925779999,27.435254979 -15.577353866,27.430725098 -15.577087402,27.4276733400001 -15.5764770509999,27.4232788090001 -15.574584961,27.418518066 -15.570495605,27.4155273440001 -15.565490723,27.4140381830001 -15.5640015619999,27.4117034920001 -15.5616668709999,27.4113159180001 -15.5612792969999,27.410896919 -15.5611999079999,27.4056205910001 -15.560200182,27.4055175780001 -15.560180664,27.405431595 -15.560278931,27.4025268550001 -15.563598633,27.401672363 -15.569396973,27.401916504 -15.5742797849999,27.402709961 -15.5791015619999,27.4026936000001 -15.579300229,27.4022827150001 -15.5842895509999,27.4008789060001 -15.587585449,27.3991088870001 -15.5899047849999,27.3974213010001 -15.591631617,27.3964843750001 -15.5925903319999,27.394332913 -15.594079806,27.3933105470001 -15.594787598,27.3925123230001 -15.5955371489999,27.388305664 -15.599487305,27.386895124 -15.601982875,27.3867187500001 -15.6022949219999,27.386108398 -15.6062011719999,27.386238695 -15.607243543,27.3867187500001 -15.6110839839999,27.3867187500001 -15.6143087259999,27.3867187500001 -15.6149902339999,27.3862275770001 -15.6168393579999,27.3856811520001 -15.6188964839999,27.3834838870001 -15.624694824,27.3820800780001 -15.629089355,27.3798828120001 -15.6342773439999,27.3770197860001 -15.6383535169999,27.376281738 -15.6394042969999,27.37487793 -15.6419067379999,27.374875828 -15.6419106139999,27.372924805 -15.6455078129999,27.368530273 -15.6524047849999,27.3654343170001 -15.656318541,27.36529541 -15.6564941409999,27.365283576 -15.6565163889999,27.364405477 -15.6581672149999,27.360717773 -15.665100098,27.3576179510001 -15.671111874,27.3566894530001 -15.672912598,27.356641838 -15.67296887,27.3546752930001 -15.6752929689999,27.3543050070001 -15.675901296,27.352111816 -15.679504395,27.3422851560001 -15.6965942379999,27.3417848940001 -15.698008773,27.3405151370001 -15.701599121,27.339003301 -15.7046227929999,27.3380737300001 -15.706481934,27.3368611670001 -15.708223615,27.3347167970001 -15.711303711,27.333414066 -15.713712534,27.3314819340001 -15.7172851559999,27.3283081050001 -15.723999023,27.325500488 -15.727478027,27.321899414 -15.730895996,27.317504883 -15.7338867189999,27.316576383 -15.7347378439999,27.315307617 -15.7359008789999,27.3143280410001 -15.737996084,27.313110352 -15.740600586,27.31164642 -15.74250646,27.309875488 -15.744812012,27.3085476850001 -15.745680191,27.30670166 -15.7468872069999,27.3067292320001 -15.746918192,27.306637939 -15.7469762869999,27.3036379390001 -15.747076287,27.299137939 -15.7449762869999,27.2954379390001 -15.7426762869999,27.291437939 -15.737976287,27.288037939 -15.7338762869999,27.2854379390001 -15.730776287,27.281537939 -15.725976287,27.280437939 -15.7231762869999,27.279237939 -15.720176287,27.272037939 -15.721976287,27.264737939 -15.7238762869999,27.259137939 -15.723976287,27.2454379390001 -15.722376287,27.240937939 -15.7238762869999,27.2350379390001 -15.726776287,27.225637939 -15.7324762869999,27.217937939 -15.733976287,27.211537939 -15.7354762869999,27.209937939 -15.741476287,27.2007379390001 -15.730576287,27.1872379390001 -15.713376287,27.1853379390001 -15.7018762869999,27.175737939 -15.6826762869999,27.1604379390001 -15.6672762869999,27.1604379390001 -15.6500762869999,27.158537939 -15.632776287,27.1527379390001 -15.623176287,27.1355379390001 -15.623176287,27.125937939 -15.6289762869999,27.1124379390001 -15.623176287,27.1009379390001 -15.6212762869999,27.089437939 -15.6135762869999,27.0817379390001 -15.607876287,27.0798379390001 -15.5943762869999,27.066437939 -15.590576287,27.053037939 -15.592476287,27.045337939 -15.600176287,27.0357379390001 -15.598276287,27.0223379390001 -15.5963762869999,27.0108379390001 -15.600176287,27.0012379390001 -15.603976287,26.9954379390001 -15.615476287,26.9858379390001 -15.619376287,26.980137939 -15.615476287,26.976237939 -15.6020762869999,26.9705379390001 -15.5886762869999,26.9571379390001 -15.5771762869999,26.9494379390001 -15.5771762869999,26.939837939 -15.582876287,26.926437939 -15.579076287,26.9168379390001 -15.5809762869999,26.911037939 -15.586776287,26.9014379390001 -15.586776287,26.893837939 -15.584776287,26.8880379390001 -15.5886762869999,26.872737939 -15.5943762869999,26.859237939 -15.598276287,26.8516379390001 -15.607876287,26.853537939 -15.615476287,26.857337939 -15.6289762869999,26.8516379390001 -15.6289762869999,26.849637939 -15.625076287,26.8343379390001 -15.623176287,26.820937939 -15.625076287,26.820937939 -15.6289762869999,26.826637939 -15.640476287,26.8362379390001 -15.651976287,26.8420379390001 -15.6615762869999,26.8362379390001 -15.671176287,26.817037939 -15.671176287,26.7979379390001 -15.669176287,26.7787379390001 -15.676876287,26.7633379390001 -15.676876287,26.755737939 -15.673076287,26.7422379390001 -15.673076287,26.7307379390001 -15.6787762869999,26.719237939 -15.6787762869999,26.711537939 -15.673076287,26.700037939 -15.665376287,26.694337939 -15.6672762869999,26.698137939 -15.673076287,26.7039379390001 -15.684576287,26.698137939 -15.684576287,26.6847379390001 -15.6749762869999,26.675137939 -15.669176287,26.6693379390001 -15.669176287,26.6693379390001 -15.680776287,26.667437939 -15.692276287,26.6559379390001 -15.697976287,26.6502379390001 -15.697976287,26.6367379390001 -15.6787762869999,26.625237939 -15.673076287,26.6195379390001 -15.676876287,26.606037939 -15.690276287,26.588837939 -15.697976287,26.5773379390001 -15.6941762869999,26.5715379390001 -15.6826762869999,26.5696379390001 -15.6615762869999,26.5753379390001 -15.638576287,26.5715379390001 -15.625076287,26.5619379390001 -15.625076287,26.548537939 -15.632776287,26.535137939 -15.644276287,26.5255379390001 -15.6500762869999,26.5044379390001 -15.657676287,26.490937939 -15.669176287,26.4718379390001 -15.669176287,26.454537939 -15.6672762869999,26.446837939 -15.673076287,26.4392379390001 -15.6826762869999,26.4238379390001 -15.6864762869999,26.4200379390001 -15.697976287,26.4161379390001 -15.7075762869999,26.4027379390001 -15.711376287,26.3950379390001 -15.711376287,26.393137939 -15.7152762869999,26.393137939 -15.7209762869999,26.3989379390001 -15.726776287,26.4046379390001 -15.7363762869999,26.4046379390001 -15.7478762869999,26.408537939 -15.7689762869999,26.4104379390001 -15.784276287,26.4181379390001 -15.8015762869999,26.4353379390001 -15.824576287,26.441137939 -15.8456762869999,26.4392379390001 -15.926276287,26.429637939 -15.962676287,26.4027379390001 -15.9876762869999,26.3375379390001 -16.054776287,26.327937939 -16.0700762869999,26.327937939 -16.0816762869999,26.3337379390001 -16.0931762869999,26.4711379390001 -16.299176287,26.1736379390001 -16.3542762869999,26.146337939 -16.3597762869999,26.132737939 -16.3651762869999,26.1149379390001 -16.3733762869999,26.020837939 -16.4147762869999,25.699337939 -16.5562762869999,25.690937939 -16.556376287,25.684637939 -16.554876287,25.6801379390001 -16.551876287,25.6770379390001 -16.5492762869999,25.6759379390001 -16.543676287,25.676237939 -16.537876287,25.677337939 -16.5340762869999,25.6783379390001 -16.529676287,25.6865379390001 -16.518376287,25.688237939 -16.513376287,25.6853379390001 -16.5094762869999,25.682537939 -16.507476287,25.675037939 -16.5032762869999,25.6704379390001 -16.4994762869999,25.667337939 -16.495776287,25.662437939 -16.4876762869999,25.659037939 -16.4756762869999,25.6600379390001 -16.468376287,25.6616379390001 -16.456576287,25.6638379390001 -16.447276287,25.6716379390001 -16.4308762869999,25.670837939 -16.4244762869999,25.6675379390001 -16.4163762869999,25.6647379390001 -16.413076287,25.6613379390001 -16.409476287,25.658737939 -16.404876287,25.6609379390001 -16.4013762869999,25.6652379390001 -16.400576287,25.6700379390001 -16.3966762869999,25.668337939 -16.3907762869999,25.668037939 -16.383676287,25.6713379390001 -16.3782762869999,25.6768379390001 -16.373676287,25.6829379390001 -16.369376287,25.691637939 -16.3651762869999,25.6930379390001 -16.360376287,25.6908379390001 -16.3565762869999,25.688237939 -16.354476287,25.684137939 -16.3511762869999,25.6765379390001 -16.3456762869999,25.6713379390001 -16.3429762869999,25.6686379390001 -16.3382762869999,25.6675379390001 -16.334776287,25.669637939 -16.324776287,25.672837939 -16.317976287,25.673037939 -16.313476287,25.6682379390001 -16.3069762869999,25.6648379390001 -16.301876287,25.6622379390001 -16.2960762869999,25.6629379390001 -16.2917762869999,25.6634379390001 -16.288276287,25.667337939 -16.281476287,25.671937939 -16.276976287,25.679137939 -16.2700762869999,25.683037939 -16.2634762869999,25.6856379390001 -16.2575762869999,25.6867379390001 -16.248676287,25.687137939 -16.236176287,25.6845379390001 -16.2315762869999,25.6808379390001 -16.229676287,25.6763379390001 -16.227376287,25.674437939 -16.2256762869999,25.6733379390001 -16.220876287,25.676037939 -16.214676287,25.6835379390001 -16.203676287,25.6844379390001 -16.199976287,25.682737939 -16.1953762869999,25.6817379390001 -16.1914762869999,25.6783379390001 -16.1869762869999,25.6747379390001 -16.1835762869999,25.6682379390001 -16.180776287,25.662837939 -16.180976287,25.6562379390001 -16.180776287,25.6489379390001 -16.1833762869999,25.641537939 -16.186176287,25.637237939 -16.1864762869999,25.630037939 -16.185076287,25.6249379390001 -16.183976287,25.616237939 -16.180776287,25.6095379390001 -16.1806762869999,25.603937939 -16.1812762869999,25.5982379390001 -16.1830762869999,25.578437939 -16.192476287,25.570237939 -16.194276287,25.5617379390001 -16.195876287,25.556837939 -16.194776287,25.5488379390001 -16.189976287,25.545137939 -16.1864762869999,25.5372379390001 -16.1828762869999,25.532637939 -16.1830762869999,25.528337939 -16.1828762869999,25.518637939 -16.1851762869999,25.5132379390001 -16.187076287,25.5078379390001 -16.1887762869999,25.503637939 -16.190476287,25.4940379390001 -16.1941762869999,25.489637939 -16.1935762869999,25.486437939 -16.1903762869999,25.479437939 -16.183676287,25.474437939 -16.175076287,25.470337939 -16.1599762869999,25.4693379390001 -16.1568762869999,25.4659379390001 -16.1507762869999,25.463537939 -16.1479762869999,25.4614379390001 -16.145876287,25.457937939 -16.1418762869999,25.4483379390001 -16.130676287,25.447037939 -16.1262762869999,25.444137939 -16.117076287,25.4363379390001 -16.103276287,25.433237939 -16.100076287,25.4293379390001 -16.0972762869999,25.4258379390001 -16.094976287,25.420137939 -16.091976287,25.415337939 -16.0893762869999,25.400137939 -16.083576287,25.3953379390001 -16.0823762869999,25.392237939 -16.0816762869999,25.3869379390001 -16.0816762869999,25.382737939 -16.0830762869999,25.3794379390001 -16.0841762869999,25.376437939 -16.085176287,25.370737939 -16.087176287,25.3677379390001 -16.088376287,25.3642379390001 -16.0882762869999,25.3615379390001 -16.086576287,25.3602379390001 -16.0814762869999,25.3600379390001 -16.077076287,
25.357837939 -16.074476287,25.3529379390001 -16.070176287,25.3511379390001 -16.0669762869999,25.3477379390001 -16.063676287,25.343837939 -16.0617762869999,25.337937939 -16.060076287,25.3346379390001 -16.0592762869999,25.329537939 -16.0567762869999,25.3235379390001 -16.0503762869999,25.3206379390001 -16.042376287,25.3185379390001 -16.035576287,25.316137939 -16.0275762869999,25.315537939 -16.0232762869999,25.3147379390001 -16.0152762869999,25.316137939 -16.0121762869999,25.3205379390001 -16.006176287,25.322937939 -16.002276287,25.3248379390001 -15.9992762869999,25.3283379390001 -15.9940762869999,25.3316379390001 -15.989676287,25.3350379390001 -15.980376287,25.336337939 -15.975976287,25.3378379390001 -15.9729762869999,25.3403379390001 -15.970176287,25.3436379390001 -15.9657762869999,25.3480379390001 -15.9609762869999,25.3520379390001 -15.956576287,25.3538379390001 -15.950476287,25.3527379390001 -15.9446762869999,25.3502379390001 -15.9369762869999,25.3486379390001 -15.9303762869999,25.348737939 -15.9247762869999,25.351737939 -15.916476287,25.3547379390001 -15.9090762869999,25.3566379390001 -15.905776287,25.3588379390001 -15.9027762869999,25.361737939 -15.899276287,25.3688379390001 -15.8864762869999,25.370537939 -15.8825762869999,25.371637939 -15.879376287,25.3733379390001 -15.876676287,25.376437939 -15.8708762869999,25.380737939 -15.8653762869999,25.383437939 -15.860276287,25.3848379390001 -15.857376287,25.386137939 -15.8547762869999,25.3878379390001 -15.851076287,25.3896379390001 -15.846076287,25.3896379390001 -15.841576287,25.3887379390001 -15.8366762869999,25.3864379390001 -15.8332762869999,25.3849379390001 -15.8302762869999,25.383837939 -15.827476287,25.383637939 -15.824076287,25.3833379390001 -15.818676287,25.3848379390001 -15.8080762869999,25.385437939 -15.802076287,25.386137939 -15.798276287,25.390237939 -15.788476287,25.3917379390001 -15.785576287,25.393137939 -15.782476287,25.396137939 -15.777176287,25.4000379390001 -15.7732762869999,25.4016379390001 -15.768876287,25.4007379390001 -15.7634762869999,25.3991379390001 -15.759076287,25.397937939 -15.753476287,25.397937939 -15.7505762869999,25.3985379390001 -15.747076287,25.399537939 -15.741676287,25.399037939 -15.738876287,25.3960379390001 -15.735976287,25.3932379390001 -15.733076287,25.389037939 -15.729476287,25.3797379390001 -15.722576287,25.376637939 -15.719976287,25.3738379390001 -15.716976287,25.3704379390001 -15.714276287,25.3668379390001 -15.711776287,25.363037939 -15.710876287,25.358937939 -15.7120762869999,25.3550379390001 -15.7150762869999,25.3509379390001 -15.7206762869999,25.346737939 -15.7272762869999,25.3432379390001 -15.733276287,25.340637939 -15.738276287,25.3368379390001 -15.741376287,25.333637939 -15.743976287,25.330437939 -15.746476287,25.326837939 -15.7487762869999,25.3239379390001 -15.750476287,25.3194379390001 -15.754776287,25.313237939 -15.7582762869999,25.307737939 -15.7594762869999,25.3038379390001 -15.759776287,25.2999379390001 -15.7603762869999,25.295537939 -15.759576287,25.292437939 -15.7580762869999,25.2895379390001 -15.754976287,25.2859379390001 -15.7485762869999,25.283337939 -15.7444762869999,25.280337939 -15.739576287,25.2766379390001 -15.7329762869999,25.270637939 -15.723276287,25.267737939 -15.719976287,25.264737939 -15.7166762869999,25.2610379390001 -15.7134762869999,25.2574379390001 -15.708776287,25.2546379390001 -15.706276287,25.245737939 -15.6987762869999,25.2438379390001 -15.692076287,25.2492379390001 -15.681676287,25.253237939 -15.6756762869999,25.260637939 -15.671276287,25.2746379390001 -15.668276287,25.2793379390001 -15.664476287,25.281937939 -15.6572762869999,25.2820379390001 -15.650676287,25.2789379390001 -15.6427762869999,25.276337939 -15.6366762869999,25.2703379390001 -15.6278762869999,25.261137939 -15.619176287,25.2560379390001 -15.6169762869999,25.251137939 -15.6144762869999,25.2463379390001 -15.612776287,25.2340379390001 -15.610576287,25.2284379390001 -15.608976287,25.226237939 -15.606176287,25.2266379390001 -15.6029762869999,25.227437939 -15.600576287,25.226037939 -15.597876287,25.223337939 -15.595576287,25.2187379390001 -15.591976287,25.217437939 -15.588576287,25.218137939 -15.5854762869999,25.219937939 -15.582276287,25.225637939 -15.5757762869999,25.2304379390001 -15.5703762869999,25.2374379390001 -15.565476287,25.245537939 -15.5580762869999,25.2476379390001 -15.555576287,25.2513379390001 -15.5503762869999,25.2549379390001 -15.5449762869999,25.2585379390001 -15.538776287,25.265437939 -15.532176287,25.2705379390001 -15.528176287,25.2746379390001 -15.5248762869999,25.278137939 -15.5200762869999,25.2786379390001 -15.5177762869999,25.2789379390001 -15.5139762869999,25.277937939 -15.5103762869999,25.2757379390001 -15.507976287,25.272037939 -15.504376287,25.2692379390001 -15.5019762869999,25.2657379390001 -15.499976287,25.257337939 -15.495776287,25.252937939 -15.492576287,25.248237939 -15.489176287,25.245937939 -15.486176287,25.2440379390001 -15.482176287,25.243937939 -15.475976287,25.245737939 -15.470876287,25.2494379390001 -15.465576287,25.253637939 -15.462876287,25.258837939 -15.4607762869999,25.262037939 -15.4598762869999,25.2671379390001 -15.4591762869999,25.272037939 -15.4598762869999,25.277037939 -15.461476287,25.2814379390001 -15.462176287,25.2870379390001 -15.461076287,25.292137939 -15.459276287,25.2947379390001 -15.4580762869999,25.2974379390001 -15.455376287,25.299137939 -15.4530762869999,25.3024379390001 -15.449376287,25.3081379390001 -15.441176287,25.313037939 -15.431676287,25.3158379390001 -15.427076287,25.3172379390001 -15.4222762869999,25.319537939 -15.413276287,25.320237939 -15.4086762869999,25.3194379390001 -15.403076287,25.3156379390001 -15.3950762869999,25.3117379390001 -15.391176287,25.3095379390001 -15.3878762869999,25.308937939 -15.3821762869999,25.3097379390001 -15.3789762869999,25.3129379390001 -15.372776287,25.315537939 -15.3690762869999,25.3194379390001 -15.365476287,25.3240379390001 -15.3619762869999,25.326837939 -15.3599762869999,25.3334379390001 -15.355776287,25.3369379390001 -15.351976287,25.340137939 -15.3481762869999,25.3416379390001 -15.344176287,25.3407379390001 -15.337876287,25.338637939 -15.3332762869999,25.336737939 -15.329776287,25.3330379390001 -15.326076287,25.3292379390001 -15.3216762869999,25.3267379390001 -15.317776287,25.3214379390001 -15.306476287,25.319137939 -15.3015762869999,25.317337939 -15.293076287,25.317037939 -15.289876287,25.3162379390001 -15.2831762869999,25.3172379390001 -15.276776287,25.3201379390001 -15.271576287,25.323237939 -15.265376287,25.325437939 -15.261076287,25.3294379390001 -15.256576287,25.3321379390001 -15.2532762869999,25.3341379390001 -15.248276287,25.3357379390001 -15.2440762869999,25.3362379390001 -15.241476287,25.3360379390001 -15.237176287,25.3337379390001 -15.229176287,25.332937939 -15.2249762869999,25.3321379390001 -15.2218762869999,25.3303379390001 -15.217176287,25.3273379390001 -15.212476287,25.321837939 -15.208776287,25.3181379390001 -15.206276287,25.317014145 -15.2031130139999,25.315437939 -15.198676287,25.3162379390001 -15.192076287,25.3176379390001 -15.188276287,25.3194379390001 -15.185276287,25.3233379390001 -15.1781762869999,25.3269379390001 -15.172576287,25.331137939 -15.169176287,25.3334379390001 -15.1674762869999,25.335837939 -15.165776287,25.3384379390001 -15.163576287,25.341937939 -15.159476287,25.346037939 -15.157676287,25.3489379390001 -15.1572762869999,25.3534379390001 -15.1572762869999,25.3574379390001 -15.155776287,25.361037939 -15.1536762869999,25.3652379390001 -15.150576287,25.369837939 -15.1468762869999,25.374537939 -15.144076287,25.380237939 -15.1409762869999,25.384337939 -15.139076287,25.387737939 -15.138876287,25.3937379390001 -15.139576287,25.3984379390001 -15.141276287,25.401337939 -15.1423762869999,25.407637939 -15.144676287,25.413537939 -15.144776287,25.4175379390001 -15.142976287,25.420837939 -15.139776287,25.423037939 -15.1371762869999,25.4247379390001 -15.131876287,25.424837939 -15.127476287,25.424437939 -15.121376287,25.424137939 -15.1131762869999,25.423537939 -15.1020762869999,25.4236379390001 -15.094976287,25.4225379390001 -15.091576287,25.421437939 -15.0875762869999,25.420537939 -15.084676287,25.4211379390001 -15.081076287,25.425537939 -15.078176287,25.430537939 -15.0750762869999,25.435037939 -15.073676287,25.439337939 -15.071876287,25.442737939 -15.0680762869999,25.4453379390001 -15.0639762869999,25.446337939 -15.058976287,25.447937939 -15.0558762869999,25.4501379390001 -15.0522762869999,25.454037939 -15.048476287,25.457937939 -15.0449762869999,25.460237939 -15.043076287,25.4634379390001 -15.0404762869999,25.4653379390001 -15.0372762869999,25.4659379390001 -15.034276287,25.4661379390001 -15.0313762869999,25.4664379390001 -15.0248762869999,25.4673379390001 -15.0200762869999,25.467237939 -15.0159762869999,25.4664379390001 -15.0112762869999,25.465137939 -15.007276287,25.4628379390001 -15.000676287,25.4616379390001 -14.994376287,25.461137939 -14.987776287,25.462237939 -14.982776287,25.463137939 -14.976876287,25.4643379390001 -14.970376287,25.4652379390001 -14.9652762869999,25.466037939 -14.960876287,25.4648379390001 -14.9539762869999,25.462237939 -14.949476287,25.457737939 -14.944976287,25.4535379390001 -14.9394762869999,25.4474379390001 -14.9278762869999,25.443937939 -14.921976287,25.4401379390001 -14.915776287,25.4360379390001 -14.907676287,25.433437939 -14.901576287,25.430937939 -14.894576287,25.4297379390001 -14.8909762869999,25.4288379390001 -14.886776287,25.4292379390001 -14.879276287,25.4301379390001 -14.874376287,25.4333379390001 -14.867976287,25.4363379390001 -14.863276287,25.4390379390001 -14.859576287,25.4428379390001 -14.854876287,25.4460379390001 -14.8506762869999,25.4478379390001 -14.847676287,25.449337939 -14.8438762869999,25.4512379390001 -14.838576287,25.452237939 -14.8334762869999,25.452737939 -14.8289762869999,25.453437939 -14.8237762869999,25.4544379390001 -14.814076287,25.455237939 -14.810976287,25.456537939 -14.807276287,25.460137939 -14.801376287,25.464737939 -14.795776287,25.4671379390001 -14.793076287,25.473537939 -14.7904762869999,25.4786379390001 -14.788576287,25.487337939 -14.785876287,25.4915379390001 -14.782376287,25.4924379390001 -14.778376287,25.4931379390001 -14.769776287,25.4926379390001 -14.7652762869999,25.4917379390001 -14.753376287,25.4918379390001 -14.7494762869999,25.4929379390001 -14.7451762869999,25.495237939 -14.7394762869999,25.4972379390001 -14.731276287,25.4972379390001 -14.727376287,25.494137939 -14.7229762869999,25.490737939 -14.717476287,25.4856379390001 -14.709076287,25.483337939 -14.7050762869999,25.4813379390001 -14.7016762869999,25.480337939 -14.6966762869999,25.480337939 -14.6914762869999,25.481037939 -14.687476287,25.482137939 -14.682376287,25.485737939 -14.6778762869999,25.4888379390001 -14.675076287,25.495037939 -14.671176287,25.500237939 -14.6674762869999,25.5065379390001 -14.6618762869999,25.5101379390001 -14.6602762869999,25.512737939 -14.6570762869999,25.514337939 -14.6525762869999,25.514937939 -14.649076287,25.516337939 -14.645376287,25.5198379390001 -14.6407762869999,25.522737939 -14.6375762869999,25.5255379390001 -14.633376287,25.5323379390001 -14.6267762869999,25.537637939 -14.621476287,25.539937939 -14.617276287,25.5416379390001 -14.612376287,25.544237939 -14.6045762869999,25.5466379390001 -14.598076287,25.5499379390001 -14.5920762869999,25.5538379390001 -14.587676287,25.5603379390001 -14.583576287,25.566137939 -14.5791762869999,25.5739379390001 -14.573176287,25.5776379390001 -14.569576287,25.5801379390001 -14.567576287,25.5835379390001 -14.562276287,25.5868379390001 -14.5578762869999,25.588637939 -14.5551762869999,25.593837939 -14.5483762869999,25.596737939 -14.5420762869999,25.5969378520001 -14.536378773,25.6142788700001 -14.5386293129999,26.185737939 -14.6128762869999,26.189337939 -14.6131762869999,26.194737939 -14.613976287,26.200177551 -14.6154514369999,26.2006374420001 -14.615586983,26.200437939 -14.619876287,26.198437939 -14.624576287,26.195437939 -14.6332762869999,26.1924379390001 -14.642276287,26.1915379390001 -14.646076287,26.1913379390001 -14.649276287,26.193237939 -14.6541762869999,26.1990379390001 -14.656776287,26.2076379390001 -14.6588762869999,26.227837939 -14.663076287,26.2413379390001 -14.667776287,26.2587379390001 -14.677776287,26.269937939 -14.682576287,26.2963379390001 -14.690676287,26.312537939 -14.6964762869999,26.3153379390001 -14.698876287,26.3185379390001 -14.7025762869999,26.3203379390001 -14.707476287,26.3221379390001 -14.7154762869999,26.324737939 -14.723976287,26.326537939 -14.727676287,26.3294379390001 -14.730076287,26.335437939 -14.7306762869999,26.344737939 -14.726276287,26.3538379390001 -14.718376287,26.358737939 -14.7136762869999,26.367137939 -14.709076287,26.379137939 -14.7014762869999,26.384737939 -14.694276287,26.3864379390001 -14.6910762869999,26.385437939 -14.6860762869999,26.3842379390001 -14.6819762869999,26.382337939 -14.674876287,26.382037939 -14.668576287,26.382737939 -14.6595762869999,26.3842379390001 -14.655376287,26.387937939 -14.6509762869999,26.3937379390001 -14.646076287,26.402437939 -14.639576287,26.4080379390001 -14.6325762869999,26.411037939 -14.6267762869999,26.416937939 -14.617076287,26.422137939 -14.6101762869999,26.428737939 -14.6008762869999,26.433237939 -14.5936762869999,26.436237939 -14.5888762869999,26.4426379390001 -14.5802762869999,26.4494379390001 -14.576076287,26.4643379390001 -14.5635762869999,26.4702379390001 -14.560076287,26.474937939 -14.5578762869999,26.4813379390001 -14.553876287,26.485537939 -14.5524762869999,26.4908379390001 -14.5497762869999,26.4944379390001 -14.548976287,26.4976379390001 -14.5490762869999,26.500537939 -14.548776287,26.5035379390001 -14.547076287,26.506637939 -14.5460762869999,26.510737939 -14.544476287,26.5146379390001 -14.5426762869999,26.517237939 -14.5413762869999,26.5205379390001 -14.539676287,26.5239379390001 -14.536276287,26.5253379390001 -14.5336762869999,26.5266379390001 -14.529276287,26.526337939 -14.524776287,26.526337939 -14.514576287,26.5268379390001 -14.5075762869999,26.526537939 -14.504776287,26.526337939 -14.4994762869999,26.5262379390001 -14.490476287,26.5296379390001 -14.480076287,26.533137939 -14.4747762869999,26.538337939 -14.469176287,26.5418379390001 -14.4677762869999,26.545837939 -14.4654762869999,26.550137939 -14.4607762869999,26.553237939 -14.4577762869999,26.5560379390001 -14.4550762869999,26.5610379390001 -14.4525762869999,26.5642379390001 -14.451776287,26.567537939 -14.4509762869999,26.5706379390001 -14.450876287,26.574537939 -14.450676287,26.5794379390001 -14.4521762869999,26.582937939 -14.452976287,26.587437939 -14.4550762869999,26.5900379390001 -14.456576287,26.5936379390001 -14.458776287,26.597437939 -14.461076287,26.5998379390001 -14.462276287,26.6057379390001 -14.463976287,26.610737939 -14.463176287,26.613237939 -14.461476287,26.614437939 -14.4593762869999,26.6161379390001 -14.456976287,26.618437939 -14.4527762869999,26.6204379390001 -14.449576287,26.6251379390001 -14.4428762869999,26.6294379390001 -14.441176287,26.633837939 -14.440476287,26.639937939 -14.440676287,26.6437379390001 -14.4414762869999,26.6471379390001 -14.442076287,26.651537939 -14.442576287,26.656337939 -14.443476287,26.660837939 -14.444076287,26.667337939 -14.446876287,26.6711379390001 -14.449576287,26.6765379390001 -14.454276287,26.6788379390001 -14.456076287,26.6820379390001 -14.457876287,26.6863379390001 -14.459276287,26.692337939 -14.4580762869999,26.6949379390001 -14.4573762869999,26.6971379390001 -14.456576287,26.703837939 -14.4534762869999,26.706137939 -14.452676287,26.7148379390001 -14.4503762869999,26.7218379390001 -14.450876287,26.727437939 -14.4514762869999,26.730837939 -14.451376287,26.7347379390001 -14.450476287,26.7374379390001 -14.449376287,26.7427379390001 -14.448876287,26.745337939 -14.4473762869999,26.7470379390001 -14.4455762869999,26.7499379390001 -14.441376287,26.753237939 -14.4330762869999,26.754837939 -14.4312762869999,26.7583379390001 -14.4312762869999,26.7691379390001 -14.429776287,26.7755379390001 -14.4281762869999,26.7793379390001 -14.427376287,26.7820379390001 -14.425076287,26.7900379390001 -14.4210762869999,26.793737939 -14.417376287,26.7963379390001 -14.415976287,26.802137939 -14.4131762869999,26.8045379390001 -14.4133762869999,26.809137939 -14.415576287,26.812537939 -14.4163762869999,26.818237939 -14.417776287,26.8224379390001 -14.4195762869999,26.828137939 -14.4199762869999,26.8312379390001 -14.4197762869999,26.8343379390001 -14.4181762869999,26.837937939 -14.4167762869999,26.8407379390001 -14.4152762869999,26.8423379390001 -14.4138762869999,26.8502379390001 -14.412676287,26.855337939 -14.4113762869999,26.864637939 -14.4127762869999,26.869137939 -14.413476287,26.876637939 -14.415076287,26.878937939 -14.415776287,26.8871379390001 -14.417576287,26.8919379390001 -14.4181762869999,26.8994379390001 -14.417876287,26.9039379390001 -14.4176762869999,26.9080379390001 -14.416876287,26.9102379390001 -14.416876287,26.916437939 -14.4152762869999,26.9249379390001 -14.414176287,26.927337939 -14.4145762869999,26.930937939 -14.415376287,26.937037939 -14.416976287,26.942537939 -14.417376287,26.946337939 -14.418076287,26.9489379390001 -14.418976287,26.952437939 -14.4192762869999,26.955637939 -14.420076287,26.9573379390001 -14.417576287,26.959737939 -14.4152762869999,26.961137939 -14.411776287,26.963337939 -14.407876287,26.964937939 -14.4032762869999,26.968537939 -14.397876287,26.972137939 -14.3943762869999,26.9734379390001 -14.387476287,26.9754379390001 -14.3810762869999,26.976537939 -14.3755762869999,26.9761379390001 -14.367776287,26.975837939 -14.3606762869999,26.9752379390001 -14.348976287,26.9752379390001 -14.3452762869999,26.975137939 -14.3332762869999,26.975137939 -14.3266762869999,26.9754379390001 -14.318376287,26.975137939 -14.310276287,26.974637939 -14.3074762869999,26.973537939 -14.2990762869999,26.971737939 -14.2895762869999,26.971937939 -14.2831762869999,26.972637939 -14.274476287,26.9734379390001 -14.265876287,26.973737939 -14.255476287,26.9743379390001 -14.2501762869999,26.9748379390001 -14.245676287,26.9761379390001 -14.238076287,26.976537939 -14.235776287,26.976541501 -14.2357566979999,26.9767309860001 -14.2355217369999,26.9774780270001 -14.231384277,26.978881836 -14.226379395,26.978881836 -14.217670525,26.978881836 -14.214294434,26.9774780270001 -14.194396973,26.976115893 -14.1870187439999,26.9752807620001 -14.182495117,26.9755249020001 -14.1738891599999,26.9750976560001 -14.1647949219999,26.973213534 -14.1563888389999,26.972717285 -14.154174805,26.97219876 -14.153267386,26.969299316 -14.1481933589999,26.9642944340001 -14.141296387,26.958129883 -14.1362915039999,26.94732666 -14.130004883,26.9411010740001 -14.126098633,26.932678223 -14.118286133,26.926879883 -14.111694336,26.9232688700001 -14.108083323,26.9210815430001 -14.105895996,26.9180056160001 -14.102853871,26.9155273440001 -14.1004028319999,26.913397348 -14.0984957429999,26.91027832 -14.0957031249999,26.908879358 -14.094133558,26.9052734380001 -14.0900878909999,26.9011230470001 -14.0864868159999,26.8934936520001 -14.079711914,26.8869018550001 -14.07409668,26.883819508 -14.070500608,26.8803100590001 -14.0664062499999,26.8747441560001 -14.0592324199999,26.8720703130001 -14.055786133,26.8685367480001 -14.0502155729999,26.8668823240001 -14.0476074219999,26.8615112300001 -14.038879395,26.8604783010001 -14.0355403889999,26.8588867190001 -14.030395508,26.859678719 -14.0219272009999,26.859680176 -14.021911621,26.8602579770001 -14.021229945,26.865112305 -14.01550293,26.871887207 -14.0112915039999,26.877319336 -14.008178711,26.880593617 -14.0061217909999,26.8820800780001 -14.0051879879999,26.885305111 -14.003303229,26.891479492 -13.999694824,26.895435763 -13.996405341,26.8969116210001 -13.995178223,26.898232218 -13.9932983149999,26.9020996090001 -13.9877929689999,26.905013965 -13.983510651,26.905038448 -13.983474675,26.905090332 -13.9833984369999,26.9069213870001 -13.9777832029999,26.908081055 -13.970092773,26.908081055 -13.966186523,26.908081055 -13.963600206,26.908081055 -13.962585449,26.9082784620001 -13.959906347,26.908508301 -13.9567871089999,26.909484863 -13.945678711,26.9097168920001 -13.9389498639999,26.909729004 -13.938598633,26.9098275100001 -13.93615786,26.91027832 -13.924987793,26.910705566 -13.918884277,26.913696289 -13.907592773,26.918518066 -13.900512695,26.9208121950001 -13.897421454,26.9257202150001 -13.890808105,26.927524965 -13.8864285769999,26.930297852 -13.8796997069999,26.9325042080001 -13.871657182,26.9340820310001 -13.865905762,26.934405531 -13.865118109,26.9354858400001 -13.862487793,26.9389006480001 -13.8549233439999,26.940307617 -13.8518066409999,26.942014897 -13.846991235,26.942687988 -13.845092773,26.9408392120001 -13.83328905,26.94031491 -13.8299415819999,26.940307617 -13.82989502,26.9332885740001 -13.819274902,26.9196777340001 -13.8146972659999,26.912475586 -13.8132934569999,26.902742287 -13.811602937,26.9008789060001 -13.8112792969999,26.9000979510001 -13.811024291,26.8978881840001 -13.8103027339999,26.887512207 -13.806091309,26.8845214840001 -13.8041992189999,26.879699707 -13.799987793,26.877666768 -13.796391055,26.877319336 -13.795776367,26.877082446 -13.794447724,26.8759155270001 -13.7879028319999,26.87487793 -13.782592773,26.874372355 -13.77882905,26.874328613 -13.778503418,26.872924805 -13.768493652,26.8727394270001 -13.767649154,26.8712768550001 -13.7609863279999,26.8671264650001 -13.752807617,26.8601074220001 -13.7460937499999,26.8535156250001 -13.740600586,26.8480834960001 -13.736694336,26.840330081 -13.731730259,26.8380737300001 -13.730285645,26.8360404680001 -13.7288171769999,26.8358764650001 -13.72869873,26.83157857 -13.7257761619999,26.8315011440001 -13.725753665,26.8312379390001 -13.725576287,26.8580624000001 -13.725592188,26.8580711970001 -13.7256020849999,27.337280273 -13.7258911129999,27.3383178710001 -13.73059082,27.340881348 -13.736206055,27.3414830190001 -13.737520818,27.3425292970001 -13.7398071289999,27.3449096680001 -13.74407959,27.34442176 -13.7462034229999,27.34387207 -13.7485961909999,27.3428312410001 -13.7516468979999,27.342102051 -13.75378418,27.3427124020001 -13.7604980469999,27.341684833 -13.763848815,27.3413085940001 -13.765075684,27.341110095 -13.7665247259999,27.3400878910001 -13.7739868159999,27.3391618590001 -13.77583888,27.338928223 -13.776306152,27.338810015 -13.7769647389999,27.338500977 -13.778686523,27.33939536 -13.781548549,27.33972168 -13.782592773,27.340632698 -13.783404768,27.3425292970001 -13.785095215,27.343931169 -13.786748705,27.3449096680001 -13.7879028319999,27.345334791 -13.789948737,27.3458862300001 -13.792602539,27.3463175470001 -13.794228269,27.3466796870001 -13.795593262,27.346730984 -13.7956523299999,27.348693848 -13.797912598,27.349487305 -13.800598145,27.348394081 -13.8052011899999,27.3483276370001 -13.8054809569999,27.348510742 -13.808410645,27.348536327 -13.80845211,27.3502807620001 -13.8112792969999,27.3524636490001 -13.812673919,27.3524780270001 -13.812683105,27.353361638 -13.8125912099999,27.3601074220001 -13.811889648,27.366088867 -13.812194824,27.36861112 -13.813252543,27.3698730470001 -13.8137817379999,27.371887207 -13.815490723,27.3734741210001 -13.817993164,27.373365613 -13.820488855,27.3732910160001 -13.82220459,27.371887207 -13.827209473,27.372455438 -13.828783035,27.372680664 -13.8294067379999,27.3738354270001 -13.8310514,27.3746948240001 -13.8322753909999,27.376281738 -13.8342895509999,27.3776855470001 -13.8359985349999,27.3781127930001 -13.8381958009999,27.378295898 -13.842407227,27.3779296870001 -13.84777832,27.377075195 -13.853210449,27.376281738 -13.856384277,27.376281738 -13.859985352,27.376631977 -13.863187534,27.3767089840001 -13.863891602,27.376549744 -13.864892539,27.376281738 -13.866577148,27.376281738 -13.8713989259999,27.37487793 -13.8737792969999,27.374084473 -13.876098633,27.3730481170001 -13.8778559309999,27.372680664 -13.8784790039999,27.372680664 -13.880595462,27.372680664 -13.882202148,27.3729207750001 -13.885117782,27.37310791 -13.887390137,27.373451162 -13.8886987839999,27.374084473 -13.8911132809999,27.3759155270001 -13.8942871089999,27.377319336 -13.8959960939999,27.379272461 -13.8977050779999,27.381713867 -13.900085449,27.3834838870001 -13.903198242,27.3842773440001 -13.9060058589999,27.3864746090001 -13.9108886719999,27.388268936 -13.912175906,27.389282227 -13.9129028319999,27.390702704 -13.9140037019999,27.391723633 -13.9147949219999,27.3929330010001 -13.915831523,27.3942871090001 -13.9169921879999,27.395259722 -13.91779565,27.397094727 -13.919311523,27.3989257810001 -13.9212036129999,27.4020618050001 -13.9243396369999,27.4020996090001 -13.9243774409999,27.404907227 -13.92010498,27.408325195 -13.918395996,27.409323369 -13.918395996,27.4133300780001 -13.918395996,27.414930768 -13.917138312,27.415893555 -13.916381836,27.4180617150001 -13.913881815,27.4218718870001 -13.9094884529999,27.421873444 -13.9094866579999,27.4220419540001 -13.909376933,27.4279174800001 -13.9055786129999,27.4340820310001 -13.900085449,27.437072754 -13.897888184,27.447638779 -13.8920506009999,27.448120117 -13.891784668,27.4495726920001 -13.890810589,27.4533081050001 -13.888305664,27.4550781250001 -13.887084961,27.457092285 -13.884887695,27.460327148 -13.8837890629999,27.4608917950001 -13.883754492,27.4632913790001 -13.8836075789999,27.4633178710001 -13.8836059569999,27.4638768250001 -13.8828548619999,27.4652709960001 -13.880981445,27.467895508 -13.878112793,27.47052002 -13.876098633,27.4730834960001 -13.877075195,27.4760742190001 -13.8776855469999,27.481242004 -13.874560839,27.481323242 -13.8745117189999,27.482621158 -13.8693200549999,27.482727051 -13.8688964839999,27.4824799830001 -13.8678210109999,27.4816894530001 -13.864379883,27.479309082 -13.8613891599999,27.4774780270001 -13.8579101559999,27.4754142090001 -13.8546997719999,27.4752807620001 -13.8544921879999,27.473510742 -13.847595215,27.472717285 -13.844909668,27.4726345130001 -13.844355731,27.4719238280001 -13.8395996089999,27.472290039 -13.835388184,27.472290039 -13.830688477,27.4708862300001 -13.8212890619999,27.4708862300001 -13.813903809,27.471313477 -13.8103027339999,27.4743041990001 -13.8054809569999,27.4769044550001 -13.8020341069999,27.476928711 -13.8020019529999,27.4774661770001 -13.801677893,27.481079102 -13.799499512,27.4832513160001 -13.799022684,27.4860839840001 -13.7984008789999,27.492123781 -13.798289031,27.4926757810001 -13.798278809,27.4933987250001 -13.798217929,27.4984741210001 -13.797790527,27.502992772 -13.7980361059999,27.5040893550001 -13.7980957029999,27.5106811520001 -13.799682617,27.512322468 -13.8011638049999,27.515686035 -13.8041992189999,27.520324707 -13.807312012,27.5259917000001 -13.8097095859999,27.526644866 -13.809985925,27.526672363 -13.809997559,27.528930664 -13.813110352,27.531311035 -13.8173828119999,27.5327754590001 -13.81978284,27.533508301 -13.820983887,27.5350481190001 -13.8234120609999,27.536682129 -13.82598877,27.539672852 -13.8273925779999,27.542114258 -13.827209473,27.5431831170001 -13.8263617559999,27.5438842770001 -13.825805664,27.545288086 -13.822875977,27.5471191410001 -13.819396973,27.5482788090001 -13.815795898,27.5490722660001 -13.807495117,27.552124023 -13.801208496,27.5551147460001 -13.794006348,27.555674873 -13.790042371,27.5559082030001 -13.7883911129999,27.5580402780001 -13.786259039,27.5581054690001 -13.786193848,27.558898926 -13.780395508,27.5634765630001 -13.774597168,27.565053516 -13.770859204,27.5651245120001 -13.770690918,27.565996747 -13.76874874,27.569702148 -13.7604980469999,27.574279785 -13.753295898,27.5780913 -13.751473,27.579886571 -13.7506143919999,27.57989502 -13.750610352,27.581223988 -13.748912225,27.582061809 -13.7478416769999,27.582092285 -13.7478027339999,27.584106445 -13.744995117,27.5856259070001 -13.7418003509999,27.586486816 -13.7399902339999,27.5869436740001 -13.73809252,27.5880737300001 -13.7333984379999,27.588684082 -13.7294921879999,27.591674805 -13.716186523,27.5947149090001 -13.708039044,27.5947265630001 -13.7080078129999,27.59649362 -13.7071783769999,27.597717285 -13.7066040039999,27.5992860200001 -13.707149651,27.6005249020001 -13.7075805659999,27.6046456130001 -13.7087925399999,27.6046752930001 -13.70880127,27.609924316 -13.709594727,27.614074707 -13.7092895509999,27.6140808170001 -13.7092802729999,27.6157226560001 -13.7067871089999,27.6168823240001 -13.703491211,27.6167943020001 -13.70002899,27.6166992190001 -13.6962890629999,27.616489012 -13.6934963149999,27.616271973 -13.690612793,27.616271973 -13.6874439339999,27.616271973 -13.6857910159999,27.616271973 -13.684108641,27.616271973 -13.680786133,27.618713379 -13.672790527,27.6223144530001 -13.66809082,27.6256713870001 -13.663696289,27.6267089840001 -13.6616821289999,27.6276855470001 -13.6564941409999,27.6256713870001 -13.653381348,27.6242974410001 -13.6520837319999,27.6234741210001 -13.651306152,27.6254228760001 -13.6490621309999,27.633117676 -13.6477050779999,27.6400756840001 -13.647399902,27.6547241210001 -13.648803711,27.659484863 -13.651306152,27.660010873 -13.6520837319999,27.6608886720001 -13.653381348,27.6615643050001 -13.6536447299999,27.6644897460001 -13.6547851559999,27.666701125 -13.6566365429999,27.667114258 -13.6569824219999,27.6684721940001 -13.658434659,27.671508789 -13.6616821289999,27.672729492 -13.665100098,27.6747999470001 -13.6671401039999,27.676879883 -13.6691894529999,27.678034976 -13.669767,27.6796875000001 -13.670593262,27.6815758380001 -13.671595237,27.682678223 -13.6721801759999,27.6838656940001 -13.6730437909999,27.6867065430001 -13.6751098629999,27.68951416 -13.676696777,27.6942749020001 -13.676391602,27.6989135740001 -13.677185059,27.7028808590001 -13.678894043,27.7077834850001 -13.681964374,27.7089233400001 -13.682678223,27.7094833040001 -13.68297376,27.7133178710001 -13.684997559,27.7175292970001 -13.687194824,27.7206014440001 -13.6888212549999,27.7216796870001 -13.68939209,27.7241210940001 -13.6900024409999,27.7248292 -13.690111381,27.728088379 -13.690612793,27.732299805 -13.690795898,27.735473633 -13.690612793,27.739193535 -13.6905220639999,27.7403863220001 -13.690492971,27.7404785160001 -13.690490723,27.743286133 -13.6914062499999,27.7473144530001 -13.691589355,27.751525879 -13.692504883,27.758853157 -13.693776559,27.758911133 -13.693786621,27.7594166210001 -13.693786621,27.764526367 -13.693786621,27.7680336010001 -13.6932470469999,27.7684936520001 -13.69317627,27.769084628 -13.693071419,27.772277832 -13.692504883,27.7752160100001 -13.692405284,27.7758789060001 -13.6923828129999,27.7797241210001 -13.691101074,27.784484863 -13.6909790039999,27.7846544240001 -13.6909699199999,27.787902832 -13.690795898,27.7927246090001 -13.688598633,27.794520902 -13.687009605,27.797485352 -13.6843872069999,27.7995731510001 -13.682821357,27.801879883 -13.681091309,27.804077148 -13.678405762,27.805406663 -13.676673364,27.8060913090001 -13.6757812499999,27.8081054690001 -13.673278809,27.8107299800001 -13.670288086,27.812009108 -13.667729831,27.8120445920001 -13.6676588619999,27.812072754 -13.667602539,27.8122338380001 -13.667163219,27.814086914 -13.6621093749999,27.818908691 -13.6607055659999,27.827270508 -13.6613769529999,27.8293754380001 -13.661788787,27.832885742 -13.662475586,27.833978772 -13.663094282,27.8361206050001 -13.6643066409999,27.838500977 -13.6665039059999,27.8458862300001 -13.676208496,27.849487305 -13.6809082029999,27.8495033990001 -13.680933567,27.8511241890001 -13.6834878499999,27.8591308590001 -13.6961059569999,27.864115418 -13.7043012899999,27.872680664 -13.718383789,27.87470703 -13.721329924,27.8812866210001 -13.730895996,27.895874023 -13.7525024409999,27.9022827150001 -13.762390137,27.9088745120001 -13.770385742,27.9108886720001 -13.773803711,27.916870117 -13.7844848629999,27.9179077150001 -13.789978027,27.920288086 -13.8024902339999,27.919027305 -13.8056230839999,27.918273926 -13.807495117,27.911978742 -13.8167130639999,27.909729004 -13.820007324,27.9042968750001 -13.8291015619999,27.9034487650001 -13.830465913,27.9000854490001 -13.835876465,27.899579466 -13.836551109,27.8978881840001 -13.838806152,27.892699834 -13.8446047969999,27.8926994730001 -13.8446051019999,27.8845214840001 -13.851501465,27.878479004 -13.8569946289999,27.878445206 -13.857069735,27.876281738 -13.8618774409999,27.876098633 -13.864379883,27.8776855470001 -13.868591309,27.8789062500001 -13.8731079099999,27.8803100590001 -13.875610352,27.8813950530001 -13.8787025849999,27.8815307620001 -13.879089355,27.882073866 -13.881219997,27.8823242190001 -13.882202148,27.882991845 -13.8832244509999,27.8842773440001 -13.885192871,27.887512207 -13.887084961,27.889083312 -13.889339154,27.8903198240001 -13.8911132809999,27.892004953 -13.8931767039999,27.8925855310001 -13.893887616,27.8933105470001 -13.8947753909999,27.8936778350001 -13.8957032759999,27.8944702150001 -13.8977050779999,27.895874023 -13.900085449,27.896118164 -13.9042968749999,27.895874023 -13.911193848,27.896673331 -13.916046787,27.8967285160001 -13.916381836,27.9030761720001 -13.9252929689999,27.903691818 -13.9270487009999,27.9037525790001 -13.927221983,27.9047241210001 -13.9299926759999,27.903767719 -13.9321373359999,27.902709961 -13.934509277,27.9019368150001 -13.935978254,27.9008789060001 -13.9379882809999,27.90612793 -13.936706543,27.909484863 -13.936889648,27.911764072 -13.9363605459999,27.912902832 -13.9360961909999,27.9132240050001 -13.9360634189999,27.915893555 -13.9357910159999,27.9217811410001 -13.936271635,27.922977535 -13.9361427929999,27.928283691 -13.93548584,27.93170166 -13.934204102,27.9340697170001 -13.933689307,27.9345379390001 -13.9335762869999,27.9348347640001 -13.933415507,27.937072754 -13.9321899409999,27.9409179690001 -13.930603027,27.944228959 -13.9289475319999,27.945937939 -13.928076287,27.950653511 -13.9253119869999,27.951721191 -13.924682617,27.9577026370001 -13.9212036129999,27.9599898820001 -13.920314129,27.962037939 -13.919476287,27.9664379390001 -13.917776287,27.9702379390001 -13.916676287,27.9732379390001 -13.915076287,27.9752379390001 -13.913576287,27.9772379390001 -13.9122762869999,27.9789133740001 -13.9114655929999,27.980285645 -13.9107055659999,27.984680176 -13.9121093749999,27.985989967 -13.913528315,27.986937939 -13.914476287,27.9899379390001 -13.915076287,27.990875209 -13.9153887109999,27.993530273 -13.91619873,27.995881248 -13.9173101,27.9969379390001 -13.917776287,27.999003676 -13.918897687,28.0004882810001 -13.9196777339999,28.003723145 -13.922485352,28.0065307620001 -13.924499512,28.009094238 -13.9282836909999,28.013305664 -13.9301757809999,28.021873946 -13.92862278,28.0230379390001 -13.9283762869999,28.023926207 -13.9280161789999,28.027893066 -13.926208496,28.028040919 -13.926165571,28.0289379390001 -13.9256762869999,28.031114695 -13.9252731839999,28.0316772460001 -13.9251098629999,28.034484863 -13.926391602,28.0383300780001 -13.926208496,28.041870117 -13.9248046879999,28.045574183 -13.922688079,28.0466379390001 -13.9217762869999,28.049328163 -13.920879546,28.049926758 -13.920593262,28.0522585730001 -13.921007807,28.0527379390001 -13.9210762869999,28.0554379390001 -13.921676287,28.057142878 -13.9221451459999,28.0595092770001 -13.922790527,28.064086914 -13.923706055,28.0673217770001 -13.9230957029999,28.0687072170001 -13.9224029829999,28.0710379390001 -13.921176287,28.0746379390001 -13.919676287,28.080237939 -13.917776287,28.084937939 -13.9152762869999,28.0880379390001 -13.914276287,28.0920379390001 -13.9138762869999,28.0957379390001 -13.913276287,28.0961391270001 -13.913261959,28.097290039 -13.9130859379999,28.101928711 -13.913208008,28.108520508 -13.913208008,28.1116586950001 -13.9126761119999,28.1142379390001 -13.9120762869999,28.115020155 -13.912106373,28.1157226560001 -13.911987305,28.116582642 -13.912166468,28.1168379390001 -13.912176287,28.117878766 -13.912436494,28.1201171870001 -13.9129028319999,28.126098633 -13.91418457,28.1337280270001 -13.9130859379999,28.140094962 -13.912946516,28.142037939 -13.912876287,28.143265034 -13.912561648,28.145874023 -13.911804199,28.1511230470001 -13.9104003909999,28.1519590390001 -13.9100618479999,28.1521379390001 -13.9099762869999,28.1537502950001 -13.909336464,28.158508301 -13.907409668,28.16192627 -13.9042968749999,28.165288748 -13.900663229,28.1656379390001 -13.9002762869999,28.167837939 -13.896776287,28.169437939 -13.8934762869999,28.1710283260001 -13.8913557719999,28.171508789 -13.8906860349999,28.176461617 -13.8876560699999,28.177537939 -13.886976287,28.180737939 -13.886576287,28.1999379390001 -13.8853762869999,28.234437939 -13.8832762869999,28.23520022 -13.883530381,28.2374845580001 -13.884276287,28.241298731 -13.884276287,28.245910645 -13.8840942379999,28.2493840060001 -13.8840942379999,28.2501379390001 -13.884076287,28.2546379390001 -13.8846762869999,28.25508245 -13.8848295669999,28.25769043 -13.885681152,28.2631225590001 -13.887878418,28.268676758 -13.8903808589999,28.2728881840001 -13.8919067379999,28.278058877 -13.892565748,28.279037939 -13.892676287,28.2798029890001 -13.892700195,28.282287598 -13.892700195,28.2880859380001 -13.8919067379999,28.2932281010001 -13.8896078889999,28.293869107 -13.889121609,28.2960815430001 -13.887390137,28.298148816 -13.886262533,28.300037939 -13.885176287,28.303772317 -13.8838255549999,28.3046875000001 -13.883483887,28.304721941 -13.883482074,28.3047379390001 -13.883476287,28.3103379390001 -13.883176287,28.3133379390001 -13.8821762869999,28.3174379390001 -13.880976287,28.318766786 -13.880311864,28.3204956050001 -13.8793945309999,28.3234863280001 -13.877990723,28.327270508 -13.8776855469999,28.335510254 -13.88079834,28.3356336690001 -13.880864028,28.338337939 -13.882076287,28.3392629590001 -13.8827957469999,28.3392944340001 -13.8828124999999,28.339704774 -13.883139382,28.340137939 -13.883476287,28.3405860400001 -13.883841407,28.342895508 -13.885681152,28.3458862300001 -13.8876953129999,28.352905273 -13.8901977539999,28.359680176 -13.89239502,28.3629511930001 -13.89239502,28.363737939 -13.8923762869999,28.3672379390001 -13.891576287,28.370037939 -13.890476287,28.373037939 -13.889476287,28.3738298160001 -13.8893729989999,28.374328613 -13.8892211909999,28.379516602 -13.88848877,28.3859252930001 -13.88848877,28.389526367 -13.8889770509999,28.392883301 -13.890075684,28.39630127 -13.891479492,28.3986816410001 -13.8933105469999,28.4019038770001 -13.895011172,28.402037939 -13.8950762869999,28.4031154520001 -13.895640699,28.407287598 -13.8967895509999,28.410522461 -13.896911621,28.4152520970001 -13.896522122,28.415727614 -13.896477262,28.416683203 -13.8960812519999,28.4224379390001 -13.8936762869999,28.4231655880001 -13.8933852279999,28.4254760740001 -13.89239502,28.4281906580001 -13.891804893,28.4295379390001 -13.8914762869999,28.4331379390001 -13.8909762869999,28.438037939 -13.8909762869999,28.438074004 -13.890991211,28.438110352 -13.890991211,28.4409179690001 -13.8920898439999,28.443324235 -13.8934357209999,28.444537939 -13.894076287,28.4481315300001 -13.8947750409999,28.448576895 -13.894761408,28.454037939 -13.894576287,28.455796724 -13.8941854459999,28.4586791990001 -13.893493652,28.459710827 -13.893122266,28.4616379390001 -13.8923762869999,28.464117098 -13.8912019489999,28.4655151370001 -13.89050293,28.467114049 -13.889738232,28.4696379390001 -13.8884762869999,28.470352226 -13.8884546419999,28.4730834960001 -13.888305664,28.48248291 -13.8920898439999,28.485949819 -13.892971261,28.488336765 -13.8919614,28.491088867 -13.8906860349999,28.493713379 -13.888305664,28.4964100870001 -13.885902076,28.496437939 -13.885876287,28.4975052030001 -13.884542207,28.4984741210001 -13.8833007809999,28.499323561 -13.882435314,28.501637939 -13.879976287,28.5040379390001 -13.878476287,28.506337939 -13.8769762869999,28.5092379390001 -13.876576287,28.514937939 -13.875476287,28.5163272660001 -13.874674753,28.5175170900001 -13.873901367,28.520080566 -13.872497559,28.52014954 -13.872478682,28.5258789060001 -13.870910645,28.5294799800001 -13.871276855,28.533325195 -13.871704102,28.536499023 -13.8706054689999,28.53905587 -13.86978068,28.5402832030001 -13.8693847659999,28.543518066 -13.867126465,28.547729492 -13.8654785159999,28.548375343 -13.8652919369999,28.5504760740001 -13.864685059,28.65612793 -13.866088867,28.6577398050001 -13.8645128119999,28.6588745120001 -13.86340332,28.659301758 -13.8596801759999,28.6599121090001 -13.8549804689999,28.6599121090001 -13.849975586,28.6592804690001 -13.8471889369999,28.6588745120001 -13.845397949,28.6586857660001 -13.843783129,28.658325195 -13.840698242,28.658081055 -13.836303711,28.658081055 -13.834336084,28.658081055 -13.8317871089999,28.658508301 -13.826599121,28.6582769010001 -13.822718729,28.6577148440001 -13.8132934569999,28.6574707030001 -13.8088989259999,28.6574707030001 -13.803405762,28.6577148440001 -13.7988891599999,28.655883789 -13.795776367,28.655090332 -13.7919921869999,28.653686523 -13.784790039,28.6533203130001 -13.780212402,28.651916504 -13.7739868159999,28.649748421 -13.7636281969999,28.649719238 -13.76348877,28.6497666920001 -13.7627136839999,28.6500854490001 -13.757507324,28.650695801 -13.7525024409999,28.6522827150001 -13.747192383,28.6542968750001 -13.7438964839999,28.655883789 -13.739379883,28.66351932 -13.727629395,28.66607666 -13.723693848,28.6688842770001 -13.718688965,28.671082428 -13.7148422019999,28.6723022460001 -13.71270752,28.674682617 -13.708679199,28.676879883 -13.703979492,28.679504395 -13.699584961,28.682495117 -13.69519043,28.6857299800001 -13.6918945309999,28.7045288090001 -13.678588867,28.7090971150001 -13.6742533409999,28.7141113280001 -13.6694946289999,28.715881348 -13.6660766599999,28.7163085940001 -13.66229248,28.7163085940001 -13.66057426,28.7163085940001 -13.6564941409999,28.715389083 -13.6546724679999,28.7133741170001 -13.650680554,28.7130737300001 -13.650085449,28.712280273 -13.643981934,28.714307912 -13.6425658049999,28.716125488 -13.641296387,28.7194824220001 -13.639709473,28.7238769530001 -13.6380004879999,28.7282714840001 -13.635681152,28.732727051 -13.6328124999999,28.7426757810001 -13.6301879879999,28.7513814370001 -13.6284355509999,28.752075195 -13.628295898,28.7520908290001 -13.6282862049999,28.7551269530001 -13.626403809,28.758930085 -13.6248599629999,28.761291504 -13.623901367,28.766723633 -13.622192383,28.772521973 -13.620483398,28.776672363 -13.6193847659999,28.7797442020001 -13.618449858,28.782287598 -13.6176757809999,28.7883300780001 -13.6145019529999,28.7905347350001 -13.61342789,28.79309082 -13.612182617,28.7960815430001 -13.611206055,28.799682617 -13.6093749999999,28.801328362 -13.6085978429999,28.804077148 -13.607299805,28.8107299800001 -13.6044921869999,28.813789721 -13.6040422259999,28.8148803710001 -13.603881836,28.8203125000001 -13.6035766599999,28.824279785 -13.603393555,28.8246704220001 -13.603316611,28.8283081050001 -13.602600098,28.82828419 -13.602670647,28.8276350360001 -13.604585657,28.828307312 -13.6040967279999,28.828307312 -13.6026678269999,28.8323379390001 -13.602176287,28.838837939 -13.5997762869999,28.8493379390001 -13.591976287,28.8557379390001 -13.586776287,28.8581379390001 -13.5832762869999,28.8606379390001 -13.580876287,28.864437939 -13.577476287,28.868937939 -13.5730762869999,28.8731379390001 -13.5694762869999,28.8769379390001 -13.565476287,28.8796379390001 -13.5628762869999,28.883237939 -13.559076287,28.8882379390001 -13.5556762869999,28.894537939 -13.5506762869999,28.8991379390001 -13.546476287,28.906337939 -13.540576287,28.9109379390001 -13.537376287,28.9184379390001 -13.5336762869999,28.922637939 -13.531776287,28.9292379390001 -13.528576287,28.9340379390001 -13.526476287,28.9403379390001 -13.523876287,28.9460379390001 -13.5214762869999,28.951537939 -13.518876287,28.9562379390001 -13.516576287,28.9619379390001 -13.513176287,28.9664379390001 -13.5091762869999,28.969437939 -13.506576287,28.972137939 -13.5037762869999,28.975137939 -13.5001762869999,28.9775379390001 -13.497576287,28.9802379390001 -13.4949762869999,28.9820379390001 -13.492276287,28.983937939 -13.489676287,28.9870379390001 -13.484476287,28.9895379390001 -13.4804762869999,28.9913379390001 -13.478076287,28.995237939 -13.4738762869999,29.000737939 -13.466976287,29.0037379390001 -13.4641762869999,29.007237939 -13.461576287,29.010637939 -13.4591762869999,29.013437939 -13.457676287,29.015937939 -13.4543762869999,29.0355379390001 -13.4396762869999,29.0386379390001 -13.437576287,29.053037939 -13.427376287,29.0629379390001 -13.4195762869999,29.065037939 -13.4176762869999,29.065937939 -13.414476287,29.0644379390001 -13.4111762869999,29.0606379390001 -13.410076287,29.0563379390001 -13.410076287,29.0517379390001 -13.410076287,29.0493379390001 -13.410076287,29.045337939 -13.4099762869999,29.0606379390001 -13.399676287,29.0712379390001 -13.394476287,29.0735379390001 -13.392976287,29.0783379390001 -13.3905762869999,29.0823379390001 -13.3882762869999,29.0860379390001 -13.386376287,29.0982379390001 -13.3812762869999,29.1041379390001 -13.3787762869999,29.108037939 -13.377776287,29.112337939 -13.377476287,29.1161379390001 -13.3762762869999,29.120337939 -13.3762762869999,29.134737939 -13.380676287,29.1394379390001 -13.382776287,29.1419379390001 -13.384776287,29.151737939 -13.3982762869999,29.154937939 -13.4009762869999,29.157237939 -13.402876287,29.159737939 -13.406576287,29.1618379390001 -13.4113762869999,29.1643379390001 -13.416976287,29.1665379390001 -13.421476287,29.167337939 -13.425776287,29.1677379390001 -13.430076287,29.1684379390001 -13.433876287,29.1690379390001 -13.4378762869999,29.170337939 -13.4419762869999,29.172337939 -13.4444762869999,29.175137939 -13.4462762869999,29.1793379390001 -13.4450762869999,29.188437939 -13.438676287,29.191437939 -13.435076287,29.195037939 -13.4321762869999,29.198637939 -13.429376287,29.201137939 -13.426676287,29.204337939 -13.4235762869999,29.207237939 -13.421276287,29.2098379390001 -13.419876287,29.2141379390001 -13.4183762869999,29.2182379390001 -13.4165762869999,29.2218379390001 -13.415776287,29.2279379390001 -13.4129762869999,29.2306379390001 -13.411076287,29.2354379390001 -13.408376287,29.2386379390001 -13.405576287,29.2531379390001 -13.393776287,29.2565379390001 -13.391076287,29.2599379390001 -13.3889762869999,29.2630379390001 -13.386576287,29.2653379390001 -13.384776287,29.2680379390001 -13.3832762869999,29.2734379390001 -13.380676287,29.2764379390001 -13.379576287,29.280337939 -13.3785762869999,29.2879379390001 -13.3762762869999,29.291937939 -13.374076287,29.294837939 -13.372776287,29.2983379390001 -13.3705762869999,29.3042379390001 -13.362076287,29.3063379390001 -13.359376287,29.307337939 -13.3551762869999,29.3083379390001 -13.351676287,29.3097379390001 -13.348576287,29.313037939 -13.344476287,29.3178379390001 -13.3436762869999,29.321837939 -13.3434762869999,29.325437939 -13.3434762869999,29.3291379390001 -13.343576287,29.333337939 -13.346276287,29.341537939 -13.351276287,29.3509379390001 -13.352876287,29.3527379390001 -13.351976287,29.354837939 -13.3488762869999,29.3556379390001 -13.3454762869999,29.3565379390001 -13.3395762869999,29.358037939 -13.335676287,29.3615379390001 -13.3307762869999,29.365737939 -13.3282762869999,29.3710379390001 -13.327976287,29.3742379390001 -13.328876287,29.3774379390001 -13.3291762869999,29.382037939 -13.329976287,29.3860379390001 -13.329576287,29.3937379390001 -13.326776287,29.405337939 -13.3223762869999,29.410137939 -13.3200762869999,29.414437939 -13.317976287,29.425537939 -13.3155762869999,29.4437379390001 -13.310776287,29.4467379390001 -13.308676287,29.4505379390001 -13.3044762869999,29.453637939 -13.3015762869999,29.456137939 -13.299676287,29.4593379390001 -13.298076287,29.462237939 -13.296176287,29.4661379390001 -13.292876287,29.468837939 -13.2908762869999,29.472637939 -13.288476287,29.4761379390001 -13.285176287,29.480837939 -13.280776287,29.482837939 -13.278076287,29.486037939 -13.274076287,29.4978379390001 -13.258676287,29.501437939 -13.254376287,29.503637939 -13.2517762869999,29.506137939 -13.2489762869999,
29.508837939 -13.2460762869999,29.5139379390001 -13.243476287,29.5166379390001 -13.241676287,29.5230379390001 -13.236476287,29.5259379390001 -13.2349762869999,29.531337939 -13.233476287,29.534037939 -13.232376287,29.5420379390001 -13.2313762869999,29.5452379390001 -13.230776287,29.5508379390001 -13.226976287,29.5549379390001 -13.225776287,29.5594379390001 -13.223976287,29.5635379390001 -13.2215762869999,29.5656379390001 -13.219476287,29.569737939 -13.2159762869999,29.5717379390001 -13.214476287,29.574537939 -13.212476287,29.5791379390001 -13.211576287,29.584737939 -13.212676287,29.589037939 -13.214076287,29.5925379390001 -13.215176287,29.596937939 -13.2179762869999,29.6009379390001 -13.2218762869999,29.6045379390001 -13.2256762869999,29.607337939 -13.228076287,29.610737939 -13.230576287,29.6138379390001 -13.2331762869999,29.6179379390001 -13.236476287,29.621637939 -13.238876287,29.624137939 -13.240976287,29.628937939 -13.243976287,29.632937939 -13.244576287,29.636637939 -13.2449762869999,29.640037939 -13.244576287,29.644537939 -13.2437762869999,29.6473379390001 -13.2426762869999,29.6509379390001 -13.2397762869999,29.6532379390001 -13.237176287,29.6620379390001 -13.231676287,29.6652379390001 -13.2317762869999,29.670137939 -13.232576287,29.672337939 -13.237176287,29.6738379390001 -13.239576287,29.675137939 -13.242576287,29.6761379390001 -13.246576287,29.676237939 -13.251376287,29.677137939 -13.255476287,29.6776379390001 -13.2575762869999,29.675737939 -13.262976287,29.673037939 -13.266176287,29.669437939 -13.2707762869999,29.6672379390001 -13.2743762869999,29.6645379390001 -13.277176287,29.662637939 -13.280776287,29.6600379390001 -13.282476287,29.655837939 -13.285776287,29.6536379390001 -13.2881762869999,29.6500379390001 -13.2947762869999,29.6498379390001 -13.297776287,29.6498379390001 -13.301376287,29.651137939 -13.306176287,29.6532379390001 -13.312576287,29.6539379390001 -13.3155762869999,29.654937939 -13.318476287,29.656037939 -13.321776287,29.656737939 -13.325476287,29.656537939 -13.328376287,29.652237939 -13.338376287,29.650437939 -13.3425762869999,29.648637939 -13.3465762869999,29.645637939 -13.353076287,29.6432379390001 -13.355576287,29.640937939 -13.3574762869999,29.6373379390001 -13.359476287,29.6339379390001 -13.3599762869999,29.630937939 -13.360576287,29.627937939 -13.3606762869999,29.624837939 -13.3606762869999,29.6199379390001 -13.360076287,29.6143379390001 -13.359476287,29.6109379390001 -13.358976287,29.6075379390001 -13.358976287,29.603737939 -13.3610762869999,29.6036379390001 -13.365976287,29.6156379390001 -13.384076287,29.6156379390001 -13.387776287,29.6136379390001 -13.398576287,29.6122379390001 -13.4018762869999,29.6113379390001 -13.407376287,29.6177379390001 -13.413476287,29.6256379390001 -13.4195762869999,29.628437939 -13.4229762869999,29.631637939 -13.426276287,29.6335379390001 -13.429376287,29.635737939 -13.431676287,29.6462379390001 -13.435776287,29.6505379390001 -13.435476287,29.6548379390001 -13.4349762869999,29.658537939 -13.4337762869999,29.6623379390001 -13.4330762869999,29.666937939 -13.432376287,29.670337939 -13.431476287,29.673937939 -13.430976287,29.677137939 -13.430976287,29.680737939 -13.430976287,29.684137939 -13.4321762869999,29.6869379390001 -13.4344762869999,29.6890379390001 -13.436576287,29.6912379390001 -13.4387762869999,29.6944379390001 -13.441876287,29.6969379390001 -13.444376287,29.7010379390001 -13.447276287,29.7042379390001 -13.448876287,29.707437939 -13.4503762869999,29.7209379390001 -13.452476287,29.726037939 -13.4514762869999,29.7306379390001 -13.450276287,29.736037939 -13.4505762869999,29.7390379390001 -13.4500762869999,29.7440379390001 -13.447976287,29.7494379390001 -13.4453762869999,29.7535379390001 -13.443476287,29.7592379390001 -13.4407762869999,29.7617379390001 -13.438476287,29.7662379390001 -13.435076287,29.7712379390001 -13.432576287,29.776537939 -13.432776287,29.794637939 -13.440276287,29.7972379390001 -13.4414762869999,29.8015379390001 -13.4428762869999,29.811437939 -13.444976287,29.818409656 -12.9820152959999,29.8257379390001 -12.4953762869999,29.8223379390001 -12.1475762869999,29.8222512730001 -12.146665871,29.8199684960001 -12.1474679739999,29.817598757 -12.1480558759999,29.817598757 -12.14697059,29.8181929560001 -12.1454602589999,29.8202726490001 -12.14389183,29.8216393050001 -12.143427109,29.823065381 -12.143601379,29.8256204320001 -12.141974848,29.827997225 -12.140929216,29.8318595120001 -12.138954123,29.8360189000001 -12.136223822,29.838039173 -12.13471343,29.840415966 -12.1329125669999,29.84071263 -12.1326950399999,29.8416043620001 -12.132041178,29.8423174000001 -12.1294850859999,29.842792758 -12.1270451569999,29.842971017 -12.125011866,29.8443970930001 -12.1229204649999,29.844931871 -12.1210033319999,29.8453478100001 -12.1190861859999,29.8459420080001 -12.116936643,29.846239107 -12.1146127919999,29.8463579470001 -12.1129860839999,29.8464173670001 -12.1112431719999,29.846298527 -12.109558347,29.845644909 -12.108280196,29.844099994 -12.107524923,29.8438028950001 -12.10665345,29.844099994 -12.105781975,29.8451101310001 -12.1047943,29.84546665 -12.1039228179999,29.84546665 -12.1024703429999,29.8446941920001 -12.100727363,29.844813032 -12.099391071,29.845169551 -12.097473769,29.8460014280001 -12.0957888569999,29.846952146 -12.0945687399999,29.847130405 -12.093058114,29.8467738860001 -12.0923027969999,29.8460014280001 -12.092128493,29.8451101310001 -12.091489377,29.844575353 -12.0906759539999,29.844099994 -12.089746324,29.8442188340001 -12.0884680789999,29.844813032 -12.0868993149999,29.8449318720001 -12.08550485,29.8457637490001 -12.0841103779999,29.846239107 -12.08289021,29.8467738860001 -12.081786242,29.84867532 -12.0768473859999,29.8504579140001 -12.071966545,29.8518245700001 -12.068247749,29.852597028 -12.063889719,29.853607164 -12.060519461,29.8545578810001 -12.058892424,29.8546173010001 -12.057032942,29.855330339 -12.0556964319999,29.8569346740001 -12.054185585,29.85818249 -12.053546379,29.859192627 -12.05290717,29.859800625 -12.05241281,29.8600483120001 -12.0516314669999,29.860381063 -12.051096854,29.860618743 -12.050701703,29.861640763 -12.0502135749999,29.862163658 -12.049678958,29.862781624 -12.0487491869999,29.8628550890001 -12.048473773,29.8629242310001 -12.0482145669999,29.862971767 -12.047586967,29.8633282860001 -12.0467269229999,29.8641126270001 -12.04635501,29.864730593 -12.045634429,29.8650633440001 -12.045448472,29.865562471 -12.0456111839999,29.8663468120001 -12.0460063419999,29.867131154 -12.0459133639999,29.8684621580001 -12.045192781,29.870743879 -12.0435656519999,29.8753310880001 -12.040543815,29.8812255340001 -12.0374289609999,29.885860279 -12.0354995939999,29.8893541640001 -12.033825915,29.8908990790001 -12.0327798599999,29.892348923 -12.03201275,29.8948207870001 -12.0311061629999,29.8965320770001 -12.030594755,29.9001685700001 -12.028944291,29.9031633280001 -12.027503033,29.9067998210001 -12.025689825,29.9100560270001 -12.024039332,29.9118623890001 -12.0224120739999,29.914310486 -12.0207848069999,29.917519155 -12.018994802,29.9215121670001 -12.017367513,29.925291267 -12.016181912,29.928975295 -12.0153682609999,29.9344894540001 -12.014740586,29.9381972510001 -12.0142988869999,29.9400986840001 -12.0143221339999,29.9419288140001 -12.01469409,29.9433073540001 -12.0142756389999,29.9447809660001 -12.013996672,29.9476806530001 -12.0138571869999,29.949867301 -12.01348523,29.9506278760001 -12.0136247149999,29.9523867020001 -12.013276004,29.953955385 -12.0127878069999,29.955690443 -12.012090384,29.9578057890001 -12.01127672,29.960277653 -12.0105560449999,29.962797053 -12.009649386,29.9646271840001 -12.0088357139999,29.967146584 -12.0076733239999,29.9687152670001 -12.0070456299999,29.9700225020001 -12.0066969109999,29.971614953 -12.006324944,29.973183637 -12.006045967,29.974681015 -12.0059762229999,29.9756792690001 -12.0056972469999,29.977081576 -12.0058599829999,29.9788641710001 -12.006162208,29.9801951740001 -12.0061389589999,29.9825244310001 -12.005092797,29.984996295 -12.0044186009999,29.989108146 -12.00353517,29.9904866860001 -12.003418928,29.9922692810001 -12.0030237079999,29.99341014 -12.0023960039999,29.995359111 -12.0023262579999,29.9972130090001 -12.0023960039999,29.99949473 -12.002674984)))',4326), 'Central');
INSERT INTO public.ref_province(code, geom, val) VALUES ('ZM20', ST_GeomFromText('MULTIPOLYGON(((27.9464379390001 -12.281976287,27.9551379390001 -12.297176287,27.983937939 -12.317476287,27.998437939 -12.324976287,28.0067379390001 -12.328176287,28.0098379390001 -12.330176287,28.0162379390001 -12.332476287,28.0209379390001 -12.3357762869999,28.0309379390001 -12.334476287,28.039637939 -12.3411762869999,28.0443379390001 -12.349876287,28.0463379390001 -12.358076287,28.0490379390001 -12.369176287,28.0556379390001 -12.3758762869999,28.0576379390001 -12.3859762869999,28.0583379390001 -12.3925762869999,28.0583379390001 -12.3955762869999,28.054637939 -12.4007762869999,28.0556379390001 -12.403976287,28.0595379390001 -12.405576287,28.062737939 -12.406976287,28.0644379390001 -12.4104762869999,28.065937939 -12.414276287,28.0715379390001 -12.421876287,28.0794379390001 -12.428976287,28.0853379390001 -12.435976287,28.088537939 -12.440676287,28.0911379390001 -12.444076287,28.094737939 -12.442976287,28.0973379390001 -12.440676287,28.099037939 -12.435676287,28.106437939 -12.4315762869999,28.1088379390001 -12.4292762869999,28.1088379390001 -12.4256762869999,28.103537939 -12.4188762869999,28.0973379390001 -12.4084762869999,28.0973379390001 -12.4041762869999,28.0991379390001 -12.400376287,28.102437939 -12.3986762869999,28.1111379390001 -12.3952762869999,28.1158379390001 -12.389276287,28.121437939 -12.375476287,28.1251379390001 -12.3658762869999,28.132537939 -12.360576287,28.138437939 -12.3588762869999,28.1450379390001 -12.361476287,28.1425379390001 -12.3696762869999,28.1330379390001 -12.3878762869999,28.131137939 -12.392676287,28.129137939 -12.3979762869999,28.129837939 -12.406676287,28.137237939 -12.4099762869999,28.1469379390001 -12.4079762869999,28.1545379390001 -12.4106762869999,28.1579379390001 -12.413976287,28.1699379390001 -12.4213762869999,28.1793379390001 -12.419376287,28.1879379390001 -12.419676287,28.196337939 -12.426176287,28.206137939 -12.4267762869999,28.2171379390001 -12.420276287,28.224937939 -12.4124762869999,28.2327379390001 -12.4072762869999,28.2379379390001 -12.409276287,28.2431379390001 -12.4111762869999,28.2504379390001 -12.412876287,28.2599379390001 -12.417376287,28.265237939 -12.419676287,28.271737939 -12.422876287,28.2795379390001 -12.4222762869999,28.289237939 -12.4222762869999,28.3022379390001 -12.419676287,28.315237939 -12.418976287,28.3230379390001 -12.424176287,28.3282379390001 -12.435276287,28.330437939 -12.447076287,28.3321379390001 -12.454076287,28.335437939 -12.459276287,28.3445379390001 -12.464476287,28.356237939 -12.471676287,28.3627379390001 -12.4774762869999,28.3697379390001 -12.485776287,28.3731379390001 -12.4962762869999,28.380037939 -12.5100762869999,28.3815379390001 -12.512676287,28.3826379390001 -12.5152762869999,28.3839379390001 -12.517676287,28.3862379390001 -12.519976287,28.388837939 -12.521576287,28.394037939 -12.524976287,28.3993379390001 -12.5279762869999,28.4055379390001 -12.5295762869999,28.4084379390001 -12.530376287,28.4105379390001 -12.531476287,28.413737939 -12.533076287,28.417637939 -12.5356762869999,28.4213379390001 -12.5372762869999,28.426937939 -12.5390762869999,28.4295379390001 -12.540076287,28.4319379390001 -12.543276287,28.4333379390001 -12.549576287,28.432537939 -12.5533762869999,28.430737939 -12.5580762869999,28.428937939 -12.563676287,28.4292379390001 -12.5680762869999,28.4329379390001 -12.574576287,28.4415379390001 -12.5830762869999,28.4462379390001 -12.586276287,28.4505379390001 -12.5886762869999,28.4541379390001 -12.5911762869999,28.4584379390001 -12.594176287,28.463537939 -12.5981762869999,28.4671379390001 -12.6004762869999,28.4691379390001 -12.602176287,28.4718379390001 -12.604376287,28.4748379390001 -12.6072762869999,28.4843379390001 -12.614676287,28.488237939 -12.6181762869999,28.491937939 -12.6217762869999,28.4944379390001 -12.6251762869999,28.498737939 -12.629976287,28.501437939 -12.633176287,28.5051379390001 -12.636876287,28.5092379390001 -12.641076287,28.5121379390001 -12.6450762869999,28.514537939 -12.651076287,28.5135379390001 -12.6547762869999,28.5101379390001 -12.659476287,28.507537939 -12.6618762869999,28.5053379390001 -12.665376287,28.5044379390001 -12.668276287,28.5046379390001 -12.673476287,28.506137939 -12.677076287,28.5064379390001 -12.682276287,28.5062379390001 -12.686876287,28.505037939 -12.691676287,28.502537939 -12.695476287,28.5008379390001 -12.6982762869999,28.4981379390001 -12.7007762869999,28.4913379390001 -12.704076287,28.486437939 -12.704776287,28.4788379390001 -12.7050762869999,28.470637939 -12.7064762869999,28.4659379390001 -12.707976287,28.462937939 -12.7102762869999,28.4605379390001 -12.712676287,28.458337939 -12.717676287,28.4578379390001 -12.723076287,28.4578379390001 -12.727676287,28.457937939 -12.7313762869999,28.4578379390001 -12.7376762869999,28.458337939 -12.742576287,28.460237939 -12.748176287,28.461337939 -12.750076287,28.4625379390001 -12.752076287,28.4661379390001 -12.7578762869999,28.4695379390001 -12.762276287,28.471737939 -12.764276287,28.4745379390001 -12.7664762869999,28.476737939 -12.769676287,28.4784379390001 -12.772676287,28.4804379390001 -12.776976287,28.4829379390001 -12.7809762869999,28.486237939 -12.785576287,28.488737939 -12.788476287,28.4924379390001 -12.791476287,28.499137939 -12.7956762869999,28.502537939 -12.798076287,28.5046379390001 -12.8003762869999,28.506637939 -12.801876287,28.5083379390001 -12.803276287,28.5119379390001 -12.8065762869999,28.518137939 -12.8162762869999,28.5203379390001 -12.8198762869999,28.522037939 -12.822276287,28.524937939 -12.826976287,28.528137939 -12.8309762869999,28.529037939 -12.8330762869999,28.5295379390001 -12.8373762869999,28.5291379390001 -12.839976287,28.5280379390001 -12.850576287,28.527937939 -12.857576287,28.528337939 -12.8613762869999,28.5296379390001 -12.865776287,28.530637939 -12.8690762869999,28.5332379390001 -12.8726762869999,28.536737939 -12.8755762869999,28.5413379390001 -12.880476287,28.543337939 -12.8837762869999,28.545837939 -12.8884762869999,28.5477379390001 -12.894076287,28.5483379390001 -12.896576287,28.548937939 -12.900676287,28.5509379390001 -12.9038762869999,28.556237939 -12.908076287,28.5610379390001 -12.909476287,28.564537939 -12.909476287,28.569837939 -12.908076287,28.573237939 -12.906776287,28.5776379390001 -12.9036762869999,28.580837939 -12.9002762869999,28.5832379390001 -12.8970762869999,28.5853379390001 -12.892676287,28.588337939 -12.882476287,28.5891379390001 -12.880076287,28.5903379390001 -12.8762762869999,28.5923379390001 -12.871476287,28.5937379390001 -12.866176287,28.5954379390001 -12.861276287,28.598337939 -12.8556762869999,28.599937939 -12.851776287,28.6013379390001 -12.848576287,28.603737939 -12.843576287,28.609237939 -12.8377762869999,28.6154379390001 -12.8348762869999,28.622737939 -12.827876287,28.628437939 -12.826176287,28.6340379390001 -12.8257762869999,28.6369379390001 -12.825876287,28.640237939 -12.8259762869999,28.6473379390001 -12.828676287,28.6498379390001 -12.830376287,28.6527379390001 -12.8330762869999,28.658737939 -12.838576287,28.661037939 -12.8413762869999,28.663137939 -12.843976287,28.665337939 -12.846276287,28.6677379390001 -12.849476287,28.670337939 -12.8522762869999,28.6722379390001 -12.854876287,28.6742379390001 -12.857176287,28.6758379390001 -12.8597762869999,28.6788379390001 -12.8635762869999,28.6831379390001 -12.8669762869999,28.687737939 -12.868876287,28.691637939 -12.870776287,28.696137939 -12.872776287,28.700937939 -12.875476287,28.7148379390001 -12.8875762869999,28.7184379390001 -12.891576287,28.720337939 -12.8964762869999,28.723337939 -12.9009762869999,28.726237939 -12.905376287,28.7324379390001 -12.9118762869999,28.7345379390001 -12.9154762869999,28.7361379390001 -12.9192762869999,28.7374379390001 -12.9222762869999,28.740337939 -12.9276762869999,28.743237939 -12.932776287,28.745537939 -12.936876287,28.746837939 -12.9407762869999,28.748637939 -12.944276287,28.7551379390001 -12.947776287,28.7589379390001 -12.949076287,28.762937939 -12.9503762869999,28.767737939 -12.9527762869999,28.7732379390001 -12.954476287,28.777237939 -12.956576287,28.779737939 -12.959976287,28.781337939 -12.962876287,28.782237939 -12.965876287,28.7836379390001 -12.968976287,28.787437939 -12.973976287,28.789937939 -12.9765762869999,28.7915379390001 -12.979176287,28.7941379390001 -12.983076287,28.7959379390001 -12.9854762869999,28.798737939 -12.9890762869999,28.802537939 -12.992076287,28.8094379390001 -12.998476287,28.811237939 -13.000676287,28.813037939 -13.0037762869999,28.814837939 -13.0078762869999,28.8174379390001 -13.0128762869999,28.819537939 -13.016776287,28.8208379390001 -13.0202762869999,28.822037939 -13.023176287,28.822537939 -13.027376287,28.824137939 -13.031976287,28.823837939 -13.038576287,28.8233379390001 -13.0442762869999,28.8230379390001 -13.0499762869999,28.823437939 -13.058276287,28.8249379390001 -13.064376287,28.826337939 -13.0671762869999,28.828137939 -13.0700762869999,28.8319379390001 -13.0753762869999,28.834037939 -13.078576287,28.833337939 -13.082676287,28.822937939 -13.088776287,28.820437939 -13.0902762869999,28.8205379390001 -13.093776287,28.826137939 -13.099676287,28.8289379390001 -13.103076287,28.8337379390001 -13.1076762869999,28.837037939 -13.1110762869999,28.8387379390001 -13.115976287,28.8396379390001 -13.1217762869999,28.839737939 -13.125076287,28.839737939 -13.129076287,28.839437939 -13.132476287,28.838137939 -13.136576287,28.838337939 -13.140476287,28.838337939 -13.143576287,28.8380379390001 -13.1464762869999,28.838337939 -13.150376287,28.839937939 -13.154976287,28.8423379390001 -13.158376287,28.8470379390001 -13.1602762869999,28.850337939 -13.161476287,28.8584379390001 -13.161076287,28.862537939 -13.161276287,28.864437939 -13.1647762869999,28.866237939 -13.167576287,28.869137939 -13.1699762869999,28.8744379390001 -13.171176287,28.8778379390001 -13.170276287,28.8808379390001 -13.169476287,28.884737939 -13.168576287,28.8892379390001 -13.1690762869999,28.892937939 -13.170976287,28.8966379390001 -13.1740762869999,28.9037379390001 -13.1815762869999,28.906337939 -13.184876287,28.908737939 -13.189176287,28.910637939 -13.194376287,28.9127379390001 -13.199776287,28.9145379390001 -13.204576287,28.9159379390001 -13.208576287,28.916437939 -13.212876287,28.9184379390001 -13.2222762869999,28.918337939 -13.2258762869999,28.918337939 -13.230376287,28.918337939 -13.2338762869999,28.9181379390001 -13.2374762869999,28.9181379390001 -13.244176287,28.9197379390001 -13.248176287,28.9209379390001 -13.2512762869999,28.9229379390001 -13.2551762869999,28.9254379390001 -13.259776287,28.9270379390001 -13.2630762869999,28.930037939 -13.271276287,28.931237939 -13.274676287,28.932537939 -13.2795762869999,28.9335379390001 -13.286476287,28.9358379390001 -13.290076287,28.9367379390001 -13.296276287,28.9390379390001 -13.3051762869999,28.9406379390001 -13.309776287,28.9446379390001 -13.321776287,28.9462379390001 -13.3277762869999,28.9480379390001 -13.332676287,28.952237939 -13.3450762869999,28.9542379390001 -13.348076287,28.9553379390001 -13.3513762869999,28.956137939 -13.3554762869999,28.9576379390001 -13.359876287,28.959037939 -13.363776287,28.958837939 -13.3676762869999,28.9584379390001 -13.3717762869999,28.9584379390001 -13.3746762869999,28.958637939 -13.3778762869999,28.9591379390001 -13.382476287,28.969237939 -13.3878762869999,28.973737939 -13.3864762869999,28.9854379390001 -13.379976287,28.988537939 -13.377976287,28.9920379390001 -13.377976287,28.9978379390001 -13.3794762869999,28.9978379390001 -13.3848762869999,28.995337939 -13.3887762869999,28.991437939 -13.391976287,28.9865379390001 -13.396376287,28.982837939 -13.399676287,28.980337939 -13.4038762869999,28.9797379390001 -13.4070762869999,28.9852379390001 -13.4186762869999,28.9877379390001 -13.420776287,28.990037939 -13.4233762869999,28.992337939 -13.425276287,28.995937939 -13.426676287,29.007737939 -13.4256762869999,29.012037939 -13.424576287,29.014737939 -13.4233762869999,29.0191379390001 -13.422376287,29.026537939 -13.4190762869999,29.0302379390001 -13.4167762869999,29.034037939 -13.415976287,29.0386379390001 -13.4136762869999,29.0422379390001 -13.411476287,29.045337939 -13.4099762869999,29.0493379390001 -13.410076287,29.0517379390001 -13.410076287,29.0563379390001 -13.410076287,29.0606379390001 -13.410076287,29.0644379390001 -13.4111762869999,29.065937939 -13.414476287,29.065037939 -13.4176762869999,29.0629379390001 -13.4195762869999,29.053037939 -13.427376287,29.0386379390001 -13.437576287,29.0355379390001 -13.4396762869999,29.015937939 -13.4543762869999,29.013437939 -13.457676287,29.010637939 -13.4591762869999,29.007237939 -13.461576287,29.0037379390001 -13.4641762869999,29.000737939 -13.466976287,28.995237939 -13.4738762869999,28.9913379390001 -13.478076287,28.9895379390001 -13.4804762869999,28.9870379390001 -13.484476287,28.983937939 -13.489676287,28.9820379390001 -13.492276287,28.9802379390001 -13.4949762869999,28.9775379390001 -13.497576287,28.975137939 -13.5001762869999,28.972137939 -13.5037762869999,28.969437939 -13.506576287,28.9664379390001 -13.5091762869999,28.9619379390001 -13.513176287,28.9562379390001 -13.516576287,28.951537939 -13.518876287,28.9460379390001 -13.5214762869999,28.9403379390001 -13.523876287,28.9340379390001 -13.526476287,28.9292379390001 -13.528576287,28.922637939 -13.531776287,28.9184379390001 -13.5336762869999,28.9109379390001 -13.537376287,28.906337939 -13.540576287,28.8991379390001 -13.546476287,28.894537939 -13.5506762869999,28.8882379390001 -13.5556762869999,28.883237939 -13.559076287,28.8796379390001 -13.5628762869999,28.8769379390001 -13.565476287,28.8731379390001 -13.5694762869999,28.868937939 -13.5730762869999,28.864437939 -13.577476287,28.8606379390001 -13.580876287,28.8581379390001 -13.5832762869999,28.8557379390001 -13.586776287,28.8493379390001 -13.591976287,28.838837939 -13.5997762869999,28.8323379390001 -13.602176287,28.828307312 -13.6026678269999,28.828307312 -13.6040967279999,28.8276350360001 -13.604585657,28.82828419 -13.602670647,28.8283081050001 -13.602600098,28.8246704220001 -13.603316611,28.824279785 -13.603393555,28.8203125000001 -13.6035766599999,28.8148803710001 -13.603881836,28.813789721 -13.6040422259999,28.8107299800001 -13.6044921869999,28.804077148 -13.607299805,28.801328362 -13.6085978429999,28.799682617 -13.6093749999999,28.7960815430001 -13.611206055,28.79309082 -13.612182617,28.7905347350001 -13.61342789,28.7883300780001 -13.6145019529999,28.782287598 -13.6176757809999,28.7797442020001 -13.618449858,28.776672363 -13.6193847659999,28.772521973 -13.620483398,28.766723633 -13.622192383,28.761291504 -13.623901367,28.758930085 -13.6248599629999,28.7551269530001 -13.626403809,28.7520908290001 -13.6282862049999,28.752075195 -13.628295898,28.7513814370001 -13.6284355509999,28.7426757810001 -13.6301879879999,28.732727051 -13.6328124999999,28.7282714840001 -13.635681152,28.7238769530001 -13.6380004879999,28.7194824220001 -13.639709473,28.716125488 -13.641296387,28.714307912 -13.6425658049999,28.712280273 -13.643981934,28.7130737300001 -13.650085449,28.7133741170001 -13.650680554,28.715389083 -13.6546724679999,28.7163085940001 -13.6564941409999,28.7163085940001 -13.66057426,28.7163085940001 -13.66229248,28.715881348 -13.6660766599999,28.7141113280001 -13.6694946289999,28.7090971150001 -13.6742533409999,28.7045288090001 -13.678588867,28.6857299800001 -13.6918945309999,28.682495117 -13.69519043,28.679504395 -13.699584961,28.676879883 -13.703979492,28.674682617 -13.708679199,28.6723022460001 -13.71270752,28.671082428 -13.7148422019999,28.6688842770001 -13.718688965,28.66607666 -13.723693848,28.66351932 -13.727629395,28.655883789 -13.739379883,28.6542968750001 -13.7438964839999,28.6522827150001 -13.747192383,28.650695801 -13.7525024409999,28.6500854490001 -13.757507324,28.6497666920001 -13.7627136839999,28.649719238 -13.76348877,28.649748421 -13.7636281969999,28.651916504 -13.7739868159999,28.6533203130001 -13.780212402,28.653686523 -13.784790039,28.655090332 -13.7919921869999,28.655883789 -13.795776367,28.6577148440001 -13.7988891599999,28.6574707030001 -13.803405762,28.6574707030001 -13.8088989259999,28.6577148440001 -13.8132934569999,28.6582769010001 -13.822718729,28.658508301 -13.826599121,28.658081055 -13.8317871089999,28.658081055 -13.834336084,28.658081055 -13.836303711,28.658325195 -13.840698242,28.6586857660001 -13.843783129,28.6588745120001 -13.845397949,28.6592804690001 -13.8471889369999,28.6599121090001 -13.849975586,28.6599121090001 -13.8549804689999,28.659301758 -13.8596801759999,28.6588745120001 -13.86340332,28.6577398050001 -13.8645128119999,28.65612793 -13.866088867,28.5504760740001 -13.864685059,28.548375343 -13.8652919369999,28.547729492 -13.8654785159999,28.543518066 -13.867126465,28.5402832030001 -13.8693847659999,28.53905587 -13.86978068,28.536499023 -13.8706054689999,28.533325195 -13.871704102,28.5294799800001 -13.871276855,28.5258789060001 -13.870910645,28.52014954 -13.872478682,28.520080566 -13.872497559,28.5175170900001 -13.873901367,28.5163272660001 -13.874674753,28.514937939 -13.875476287,28.5092379390001 -13.876576287,28.506337939 -13.8769762869999,28.5040379390001 -13.878476287,28.501637939 -13.879976287,28.499323561 -13.882435314,28.4984741210001 -13.8833007809999,28.4975052030001 -13.884542207,28.496437939 -13.885876287,28.4964100870001 -13.885902076,28.493713379 -13.888305664,28.491088867 -13.8906860349999,28.488336765 -13.8919614,28.485949819 -13.892971261,28.48248291 -13.8920898439999,28.4730834960001 -13.888305664,28.470352226 -13.8884546419999,28.4696379390001 -13.8884762869999,28.467114049 -13.889738232,28.4655151370001 -13.89050293,28.464117098 -13.8912019489999,28.4616379390001 -13.8923762869999,28.459710827 -13.893122266,28.4586791990001 -13.893493652,28.455796724 -13.8941854459999,28.454037939 -13.894576287,28.448576895 -13.894761408,28.4481315300001 -13.8947750409999,28.444537939 -13.894076287,28.443324235 -13.8934357209999,28.4409179690001 -13.8920898439999,28.438110352 -13.890991211,28.438074004 -13.890991211,28.438037939 -13.8909762869999,28.4331379390001 -13.8909762869999,28.4295379390001 -13.8914762869999,28.4281906580001 -13.891804893,28.4254760740001 -13.89239502,28.4231655880001 -13.8933852279999,28.4224379390001 -13.8936762869999,28.416683203 -13.8960812519999,28.415727614 -13.896477262,28.4152520970001 -13.896522122,28.410522461 -13.896911621,28.407287598 -13.8967895509999,28.4031154520001 -13.895640699,28.402037939 -13.8950762869999,28.4019038770001 -13.895011172,28.3986816410001 -13.8933105469999,28.39630127 -13.891479492,28.392883301 -13.890075684,28.389526367 -13.8889770509999,28.3859252930001 -13.88848877,28.379516602 -13.88848877,28.374328613 -13.8892211909999,28.3738298160001 -13.8893729989999,28.373037939 -13.889476287,28.370037939 -13.890476287,28.3672379390001 -13.891576287,28.363737939 -13.8923762869999,28.3629511930001 -13.89239502,28.359680176 -13.89239502,28.352905273 -13.8901977539999,28.3458862300001 -13.8876953129999,28.342895508 -13.885681152,28.3405860400001 -13.883841407,28.340137939 -13.883476287,28.339704774 -13.883139382,28.3392944340001 -13.8828124999999,28.3392629590001 -13.8827957469999,28.338337939 -13.882076287,28.3356336690001 -13.880864028,28.335510254 -13.88079834,28.327270508 -13.8776855469999,28.3234863280001 -13.877990723,28.3204956050001 -13.8793945309999,28.318766786 -13.880311864,28.3174379390001 -13.880976287,28.3133379390001 -13.8821762869999,28.3103379390001 -13.883176287,28.3047379390001 -13.883476287,28.304721941 -13.883482074,28.3046875000001 -13.883483887,28.303772317 -13.8838255549999,28.300037939 -13.885176287,28.298148816 -13.886262533,28.2960815430001 -13.887390137,28.293869107 -13.889121609,28.2932281010001 -13.8896078889999,28.2880859380001 -13.8919067379999,28.282287598 -13.892700195,28.2798029890001 -13.892700195,28.279037939 -13.892676287,28.278058877 -13.892565748,28.2728881840001 -13.8919067379999,28.268676758 -13.8903808589999,28.2631225590001 -13.887878418,28.25769043 -13.885681152,28.25508245 -13.8848295669999,28.2546379390001 -13.8846762869999,28.2501379390001 -13.884076287,28.2493840060001 -13.8840942379999,28.245910645 -13.8840942379999,28.241298731 -13.884276287,28.2374845580001 -13.884276287,28.23520022 -13.883530381,28.234437939 -13.8832762869999,28.1999379390001 -13.8853762869999,28.180737939 -13.886576287,28.177537939 -13.886976287,28.176461617 -13.8876560699999,28.171508789 -13.8906860349999,28.1710283260001 -13.8913557719999,28.169437939 -13.8934762869999,28.167837939 -13.896776287,28.1656379390001 -13.9002762869999,28.165288748 -13.900663229,28.16192627 -13.9042968749999,28.158508301 -13.907409668,28.1537502950001 -13.909336464,28.1521379390001 -13.9099762869999,28.1519590390001 -13.9100618479999,28.1511230470001 -13.9104003909999,28.145874023 -13.911804199,28.143265034 -13.912561648,28.142037939 -13.912876287,28.140094962 -13.912946516,28.1337280270001 -13.9130859379999,28.126098633 -13.91418457,28.1201171870001 -13.9129028319999,28.117878766 -13.912436494,28.1168379390001 -13.912176287,28.116582642 -13.912166468,28.1157226560001 -13.911987305,28.115020155 -13.912106373,28.1142379390001 -13.9120762869999,28.1116586950001 -13.9126761119999,28.108520508 -13.913208008,28.101928711 -13.913208008,28.097290039 -13.9130859379999,28.0961391270001 -13.913261959,28.0957379390001 -13.913276287,28.0920379390001 -13.9138762869999,28.0880379390001 -13.914276287,28.084937939 -13.9152762869999,28.080237939 -13.917776287,28.0746379390001 -13.919676287,28.0710379390001 -13.921176287,28.0687072170001 -13.9224029829999,28.0673217770001 -13.9230957029999,28.064086914 -13.923706055,28.0595092770001 -13.922790527,28.057142878 -13.9221451459999,28.0554379390001 -13.921676287,28.0527379390001 -13.9210762869999,28.0522585730001 -13.921007807,28.049926758 -13.920593262,28.049328163 -13.920879546,28.0466379390001 -13.9217762869999,28.045574183 -13.922688079,28.041870117 -13.9248046879999,28.0383300780001 -13.926208496,28.034484863 -13.926391602,28.0316772460001 -13.9251098629999,28.031114695 -13.9252731839999,28.0289379390001 -13.9256762869999,28.028040919 -13.926165571,28.027893066 -13.926208496,28.023926207 -13.9280161789999,28.0230379390001 -13.9283762869999,28.021873946 -13.92862278,28.013305664 -13.9301757809999,28.009094238 -13.9282836909999,28.0065307620001 -13.924499512,28.003723145 -13.922485352,28.0004882810001 -13.9196777339999,27.999003676 -13.918897687,27.9969379390001 -13.917776287,27.995881248 -13.9173101,27.993530273 -13.91619873,27.990875209 -13.9153887109999,27.9899379390001 -13.915076287,27.986937939 -13.914476287,27.985989967 -13.913528315,27.984680176 -13.9121093749999,27.980285645 -13.9107055659999,27.9789133740001 -13.9114655929999,27.9772379390001 -13.9122762869999,27.9752379390001 -13.913576287,27.9732379390001 -13.915076287,27.9702379390001 -13.916676287,27.9664379390001 -13.917776287,27.962037939 -13.919476287,27.9599898820001 -13.920314129,27.9577026370001 -13.9212036129999,27.951721191 -13.924682617,27.950653511 -13.9253119869999,27.945937939 -13.928076287,27.944228959 -13.9289475319999,27.9409179690001 -13.930603027,27.937072754 -13.9321899409999,27.9348347640001 -13.933415507,27.9345379390001 -13.9335762869999,27.9340697170001 -13.933689307,27.93170166 -13.934204102,27.928283691 -13.93548584,27.922977535 -13.9361427929999,27.9217811410001 -13.936271635,27.915893555 -13.9357910159999,27.9132240050001 -13.9360634189999,27.912902832 -13.9360961909999,27.911764072 -13.9363605459999,27.909484863 -13.936889648,27.90612793 -13.936706543,27.9008789060001 -13.9379882809999,27.9019368150001 -13.935978254,27.902709961 -13.934509277,27.903767719 -13.9321373359999,27.9047241210001 -13.9299926759999,27.9037525790001 -13.927221983,27.903691818 -13.9270487009999,27.9030761720001 -13.9252929689999,27.8967285160001 -13.916381836,27.896673331 -13.916046787,27.895874023 -13.911193848,27.896118164 -13.9042968749999,27.895874023 -13.900085449,27.8944702150001 -13.8977050779999,27.8936778350001 -13.8957032759999,27.8933105470001 -13.8947753909999,27.8925855310001 -13.893887616,27.892004953 -13.8931767039999,27.8903198240001 -13.8911132809999,27.889083312 -13.889339154,27.887512207 -13.887084961,27.8842773440001 -13.885192871,27.882991845 -13.8832244509999,27.8823242190001 -13.882202148,27.882073866 -13.881219997,27.8815307620001 -13.879089355,27.8813950530001 -13.8787025849999,27.8803100590001 -13.875610352,27.8789062500001 -13.8731079099999,27.8776855470001 -13.868591309,27.876098633 -13.864379883,27.876281738 -13.8618774409999,27.878445206 -13.857069735,27.878479004 -13.8569946289999,27.8845214840001 -13.851501465,27.8926994730001 -13.8446051019999,27.892699834 -13.8446047969999,27.8978881840001 -13.838806152,27.899579466 -13.836551109,27.9000854490001 -13.835876465,27.9034487650001 -13.830465913,27.9042968750001 -13.8291015619999,27.909729004 -13.820007324,27.911978742 -13.8167130639999,27.918273926 -13.807495117,27.919027305 -13.8056230839999,27.920288086 -13.8024902339999,27.9179077150001 -13.789978027,27.916870117 -13.7844848629999,27.9108886720001 -13.773803711,27.9088745120001 -13.770385742,27.9022827150001 -13.762390137,27.895874023 -13.7525024409999,27.8812866210001 -13.730895996,27.87470703 -13.721329924,27.872680664 -13.718383789,27.864115418 -13.7043012899999,27.8591308590001 -13.6961059569999,27.8511241890001 -13.6834878499999,27.8495033990001 -13.680933567,27.849487305 -13.6809082029999,27.8458862300001 -13.676208496,27.838500977 -13.6665039059999,27.8361206050001 -13.6643066409999,27.833978772 -13.663094282,27.832885742 -13.662475586,27.8293754380001 -13.661788787,27.827270508 -13.6613769529999,27.818908691 -13.6607055659999,27.814086914 -13.6621093749999,27.8122338380001 -13.667163219,27.812072754 -13.667602539,27.8120445920001 -13.6676588619999,27.812009108 -13.667729831,27.8107299800001 -13.670288086,27.8081054690001 -13.673278809,27.8060913090001 -13.6757812499999,27.805406663 -13.676673364,27.804077148 -13.678405762,27.801879883 -13.681091309,27.7995731510001 -13.682821357,27.797485352 -13.6843872069999,27.794520902 -13.687009605,27.7927246090001 -13.688598633,27.787902832 -13.690795898,27.7846544240001 -13.6909699199999,27.784484863 -13.6909790039999,27.7797241210001 -13.691101074,27.7758789060001 -13.6923828129999,27.7752160100001 -13.692405284,27.772277832 -13.692504883,27.769084628 -13.693071419,27.7684936520001 -13.69317627,27.7680336010001 -13.6932470469999,27.764526367 -13.693786621,27.7594166210001 -13.693786621,27.758911133 -13.693786621,27.758853157 -13.693776559,27.751525879 -13.692504883,27.7473144530001 -13.691589355,27.743286133 -13.6914062499999,27.7404785160001 -13.690490723,27.7403863220001 -13.690492971,27.739193535 -13.6905220639999,27.735473633 -13.690612793,27.732299805 -13.690795898,27.728088379 -13.690612793,27.7248292 -13.690111381,27.7241210940001 -13.6900024409999,27.7216796870001 -13.68939209,27.7206014440001 -13.6888212549999,27.7175292970001 -13.687194824,27.7133178710001 -13.684997559,27.7094833040001 -13.68297376,27.7089233400001 -13.682678223,27.7077834850001 -13.681964374,27.7028808590001 -13.678894043,27.6989135740001 -13.677185059,27.6942749020001 -13.676391602,27.68951416 -13.676696777,27.6867065430001 -13.6751098629999,27.6838656940001 -13.6730437909999,27.682678223 -13.6721801759999,27.6815758380001 -13.671595237,27.6796875000001 -13.670593262,27.678034976 -13.669767,27.676879883 -13.6691894529999,27.6747999470001 -13.6671401039999,27.672729492 -13.665100098,27.671508789 -13.6616821289999,27.6684721940001 -13.658434659,27.667114258 -13.6569824219999,27.666701125 -13.6566365429999,27.6644897460001 -13.6547851559999,27.6615643050001 -13.6536447299999,27.6608886720001 -13.653381348,27.660010873 -13.6520837319999,27.659484863 -13.651306152,27.6547241210001 -13.648803711,27.6400756840001 -13.647399902,27.633117676 -13.6477050779999,27.6254228760001 -13.6490621309999,27.6234741210001 -13.651306152,27.6242974410001 -13.6520837319999,27.6256713870001 -13.653381348,27.6276855470001 -13.6564941409999,27.6267089840001 -13.6616821289999,27.6256713870001 -13.663696289,27.6223144530001 -13.66809082,27.618713379 -13.672790527,27.616271973 -13.680786133,27.616271973 -13.684108641,27.616271973 -13.6857910159999,27.616271973 -13.6874439339999,27.616271973 -13.690612793,27.616489012 -13.6934963149999,27.6166992190001 -13.6962890629999,27.6167943020001 -13.70002899,27.6168823240001 -13.703491211,27.6157226560001 -13.7067871089999,27.6140808170001 -13.7092802729999,27.614074707 -13.7092895509999,27.609924316 -13.709594727,27.6046752930001 -13.70880127,27.6046456130001 -13.7087925399999,27.6005249020001 -13.7075805659999,27.5992860200001 -13.707149651,27.597717285 -13.7066040039999,27.59649362 -13.7071783769999,27.5947265630001 -13.7080078129999,27.5947149090001 -13.708039044,27.591674805 -13.716186523,27.588684082 -13.7294921879999,27.5880737300001 -13.7333984379999,27.5869436740001 -13.73809252,27.586486816 -13.7399902339999,27.5856259070001 -13.7418003509999,27.584106445 -13.744995117,27.582092285 -13.7478027339999,27.582061809 -13.7478416769999,27.581223988 -13.748912225,27.57989502 -13.750610352,27.579886571 -13.7506143919999,27.5780913 -13.751473,27.574279785 -13.753295898,27.569702148 -13.7604980469999,27.565996747 -13.76874874,27.5651245120001 -13.770690918,27.565053516 -13.770859204,27.5634765630001 -13.774597168,27.558898926 -13.780395508,27.5581054690001 -13.786193848,27.5580402780001 -13.786259039,27.5559082030001 -13.7883911129999,27.555674873 -13.790042371,27.5551147460001 -13.794006348,27.552124023 -13.801208496,27.5490722660001 -13.807495117,27.5482788090001 -13.815795898,27.5471191410001 -13.819396973,27.545288086 -13.822875977,27.5438842770001 -13.825805664,27.5431831170001 -13.8263617559999,27.542114258 -13.827209473,27.539672852 -13.8273925779999,27.536682129 -13.82598877,27.5350481190001 -13.8234120609999,27.533508301 -13.820983887,27.5327754590001 -13.81978284,27.531311035 -13.8173828119999,27.528930664 -13.813110352,27.526672363 -13.809997559,27.526644866 -13.809985925,27.5259917000001 -13.8097095859999,27.520324707 -13.807312012,27.515686035 -13.8041992189999,27.512322468 -13.8011638049999,27.5106811520001 -13.799682617,27.5040893550001 -13.7980957029999,27.502992772 -13.7980361059999,27.4984741210001 -13.797790527,27.4933987250001 -13.798217929,27.4926757810001 -13.798278809,27.492123781 -13.798289031,27.4860839840001 -13.7984008789999,27.4832513160001 -13.799022684,27.481079102 -13.799499512,27.4774661770001 -13.801677893,27.476928711 -13.8020019529999,27.4769044550001 -13.8020341069999,27.4743041990001 -13.8054809569999,27.471313477 -13.8103027339999,27.4708862300001 -13.813903809,27.4708862300001 -13.8212890619999,27.472290039 -13.830688477,27.472290039 -13.835388184,27.4719238280001 -13.8395996089999,27.4726345130001 -13.844355731,27.472717285 -13.844909668,27.473510742 -13.847595215,27.4752807620001 -13.8544921879999,27.4754142090001 -13.8546997719999,27.4774780270001 -13.8579101559999,27.479309082 -13.8613891599999,27.4816894530001 -13.864379883,27.4824799830001 -13.8678210109999,27.482727051 -13.8688964839999,27.482621158 -13.8693200549999,27.481323242 -13.8745117189999,27.481242004 -13.874560839,27.4760742190001 -13.8776855469999,27.4730834960001 -13.877075195,27.47052002 -13.876098633,27.467895508 -13.878112793,27.4652709960001 -13.880981445,27.4638768250001 -13.8828548619999,27.4633178710001 -13.8836059569999,27.4632913790001 -13.8836075789999,27.4608917950001 -13.883754492,27.460327148 -13.8837890629999,27.457092285 -13.884887695,27.4550781250001 -13.887084961,27.4533081050001 -13.888305664,27.4495726920001 -13.890810589,27.448120117 -13.891784668,27.447638779 -13.8920506009999,27.437072754 -13.897888184,27.4340820310001 -13.900085449,27.4279174800001 -13.9055786129999,27.4220419540001 -13.909376933,27.421873444 -13.9094866579999,27.4218718870001 -13.9094884529999,27.4180617150001 -13.913881815,27.415893555 -13.916381836,27.414930768 -13.917138312,27.4133300780001 -13.918395996,27.409323369 -13.918395996,27.408325195 -13.918395996,27.404907227 -13.92010498,27.4020996090001 -13.9243774409999,27.4020618050001 -13.9243396369999,27.3989257810001 -13.9212036129999,27.397094727 -13.919311523,27.395259722 -13.91779565,27.3942871090001 -13.9169921879999,27.3929330010001 -13.915831523,27.391723633 -13.9147949219999,27.390702704 -13.9140037019999,27.389282227 -13.9129028319999,27.388268936 -13.912175906,27.3864746090001 -13.9108886719999,27.3842773440001 -13.9060058589999,27.3834838870001 -13.903198242,27.381713867 -13.900085449,27.379272461 -13.8977050779999,27.377319336 -13.8959960939999,27.3759155270001 -13.8942871089999,27.374084473 -13.8911132809999,27.373451162 -13.8886987839999,27.37310791 -13.887390137,27.3729207750001 -13.885117782,27.372680664 -13.882202148,27.372680664 -13.880595462,27.372680664 -13.8784790039999,27.3730481170001 -13.8778559309999,27.374084473 -13.876098633,27.37487793 -13.8737792969999,27.376281738 -13.8713989259999,27.376281738 -13.866577148,27.376549744 -13.864892539,27.3767089840001 -13.863891602,27.376631977 -13.863187534,27.376281738 -13.859985352,27.376281738 -13.856384277,27.377075195 -13.853210449,27.3779296870001 -13.84777832,27.378295898 -13.842407227,27.3781127930001 -13.8381958009999,27.3776855470001 -13.8359985349999,27.376281738 -13.8342895509999,27.3746948240001 -13.8322753909999,27.3738354270001 -13.8310514,27.372680664 -13.8294067379999,27.372455438 -13.828783035,27.371887207 -13.827209473,27.3732910160001 -13.82220459,27.373365613 -13.820488855,27.3734741210001 -13.817993164,27.371887207 -13.815490723,27.3698730470001 -13.8137817379999,27.36861112 -13.813252543,27.366088867 -13.812194824,27.3601074220001 -13.811889648,27.353361638 -13.8125912099999,27.3524780270001 -13.812683105,27.3524636490001 -13.812673919,27.3502807620001 -13.8112792969999,27.348536327 -13.80845211,27.348510742 -13.808410645,27.3483276370001 -13.8054809569999,27.348394081 -13.8052011899999,27.349487305 -13.800598145,27.348693848 -13.797912598,27.346730984 -13.7956523299999,27.3466796870001 -13.795593262,27.3463175470001 -13.794228269,27.3458862300001 -13.792602539,27.345334791 -13.789948737,27.3449096680001 -13.7879028319999,27.343931169 -13.786748705,27.3425292970001 -13.785095215,27.340632698 -13.783404768,27.33972168 -13.782592773,27.33939536 -13.781548549,27.338500977 -13.778686523,27.338810015 -13.7769647389999,27.338928223 -13.776306152,27.3391618590001 -13.77583888,27.3400878910001 -13.7739868159999,27.341110095 -13.7665247259999,27.3413085940001 -13.765075684,27.341684833 -13.763848815,27.3427124020001 -13.7604980469999,27.342102051 -13.75378418,27.3428312410001 -13.7516468979999,27.34387207 -13.7485961909999,27.34442176 -13.7462034229999,27.3449096680001 -13.74407959,27.3425292970001 -13.7398071289999,27.3414830190001 -13.737520818,27.340881348 -13.736206055,27.3383178710001 -13.73059082,27.337280273 -13.7258911129999,26.8580711970001 -13.7256020849999,26.8580624000001 -13.725592188,26.8312379390001 -13.725576287,26.8199379390001 -13.7179762869999,26.7977379390001 -13.7041762869999,26.7902379390001 -13.697076287,26.784437939 -13.690476287,26.7782379390001 -13.682376287,26.774537939 -13.6747762869999,26.774237939 -13.667176287,26.7734379390001 -13.656076287,26.7759379390001 -13.640176287,26.7771379390001 -13.632076287,26.7839379390001 -13.6110762869999,26.797637939 -13.584776287,26.7992379390001 -13.5811762869999,26.8011379390001 -13.5775762869999,26.8045379390001 -13.5716762869999,26.8079379390001 -13.565676287,26.8119379390001 -13.557576287,26.812737939 -13.5549762869999,26.823237939 -13.5402762869999,26.8257379390001 -13.536976287,26.8294379390001 -13.530776287,26.833137939 -13.5245762869999,26.836737939 -13.518376287,26.839437939 -13.513376287,26.840637939 -13.5107762869999,26.843837939 -13.5001762869999,26.8470379390001 -13.4901762869999,26.8488379390001 -13.478476287,26.8527379390001 -13.461376287,26.8556379390001 -13.4534762869999,26.8572379390001 -13.4487762869999,26.8604379390001 -13.4437762869999,26.8652379390001 -13.439776287,26.8677379390001 -13.439576287,26.8753379390001 -13.437376287,26.8792379390001 -13.436376287,26.891837939 -13.430976287,26.9032379390001 -13.4256762869999,26.9073379390001 -13.4240762869999,26.9102379390001 -13.4222762869999,26.9125379390001 -13.4172762869999,26.914637939 -13.4047762869999,26.915837939 -13.3803762869999,26.916737939 -13.3776762869999,26.918737939 -13.373676287,26.9231379390001 -13.370276287,26.9274379390001 -13.369176287,26.9329379390001 -13.369376287,26.9435379390001 -13.3676762869999,26.9499379390001 -13.365776287,26.953837939 -13.365776287,26.9666379390001 -13.362176287,26.9704379390001 -13.357876287,26.9727379390001 -13.3502762869999,26.975337939 -13.342176287,26.9777379390001 -13.3239762869999,26.9777379390001 -13.316376287,26.9754379390001 -13.306176287,26.966737939 -13.2845762869999,26.960137939 -13.2664762869999,26.9566379390001 -13.256776287,26.954537939 -13.244576287,26.9557379390001 -13.2301762869999,26.9630379390001 -13.213976287,26.9671379390001 -13.209476287,26.979237939 -13.1989762869999,26.9863379390001 -13.1941762869999,26.9904379390001 -13.190476287,26.995237939 -13.181676287,27.0026379390001 -13.168276287,27.012537939 -13.1547762869999,27.021137939 -13.1468762869999,27.029737939 -13.1432762869999,27.0474379390001 -13.137676287,27.0543379390001 -13.1344762869999,27.064837939 -13.1273762869999,27.069337939 -13.121676287,27.0755379390001 -13.110276287,27.0796379390001 -13.092676287,27.0819379390001 -13.0791762869999,27.0819379390001 -13.0748762869999,27.0814379390001 -13.068176287,27.0826379390001 -13.0508762869999,27.0853379390001 -13.035176287,27.088137939 -13.0202762869999,27.089437939 -13.014576287,27.092437939 -13.009976287,27.0968379390001 -13.007276287,27.1029379390001 -13.004176287,27.1057379390001 -13.0021762869999,27.105137939 -12.999076287,27.101737939 -12.9971762869999,27.094437939 -12.996176287,27.082237939 -12.9969762869999,27.0742379390001 -12.997376287,27.0590379390001 -12.997776287,27.0511379390001 -12.9953762869999,27.0470379390001 -12.992076287,27.0429379390001 -12.9860762869999,27.037437939 -12.9713762869999,27.034437939 -12.965176287,27.031537939 -12.9604762869999,27.026337939 -12.9550762869999,27.019337939 -12.950276287,27.0121379390001 -12.946876287,27.0021379390001 -12.946376287,26.993437939 -12.946176287,26.9840379390001 -12.944076287,26.980337939 -12.9435762869999,26.9632379390001 -12.938176287,26.954337939 -12.9362762869999,26.9469379390001 -12.933276287,26.9374379390001 -12.9272762869999,26.9290379390001 -12.9206762869999,26.921937939 -12.912576287,26.9143379390001 -12.904976287,26.9105379390001 -12.901776287,26.904737939 -12.8977762869999,26.897937939 -12.894076287,26.8925379390001 -12.8905762869999,26.889537939 -12.8864762869999,26.8880379390001 -12.8835762869999,26.886137939 -12.879776287,26.887537939 -12.8769762869999,26.8892379390001 -12.8742762869999,26.8946379390001 -12.871476287,26.8978379390001 -12.868676287,26.900137939 -12.8656762869999,26.9041379390001 -12.8590762869999,26.909037939 -12.853276287,26.910637939 -12.850376287,26.9105379390001 -12.8461762869999,26.911937939 -12.8404762869999,26.9172379390001 -12.831576287,26.919237939 -12.825876287,26.9204379390001 -12.822276287,26.919637939 -12.8155762869999,26.9172379390001 -12.8112762869999,26.911237939 -12.806476287,26.9079379390001 -12.801876287,26.904037939 -12.797876287,26.9003379390001 -12.791876287,26.8971379390001 -12.789176287,26.8885379390001 -12.782376287,26.8848379390001 -12.7804762869999,26.881437939 -12.778776287,26.8738379390001 -12.773176287,26.8692379390001 -12.7668762869999,26.8645379390001 -12.7628762869999,26.858737939 -12.7557762869999,26.8579379390001 -12.7496762869999,26.858037939 -12.741176287,26.858337939 -12.7367762869999,26.8602379390001 -12.7311762869999,26.862537939 -12.726976287,26.8633379390001 -12.7240762869999,26.8652379390001 -12.7193762869999,26.8677379390001 -12.714676287,26.869837939 -12.710876287,26.870337939 -12.707876287,26.871437939 -12.7023762869999,26.871837939 -12.698876287,26.8719379390001 -12.695476287,26.872337939 -12.686676287,26.8781379390001 -12.666876287,26.881137939 -12.659476287,26.8826379390001 -12.6554762869999,26.884737939 -12.652676287,26.8882379390001 -12.6461762869999,26.8901379390001 -12.6427762869999,26.892937939 -12.639476287,26.895637939 -12.636976287,26.898837939 -12.6337762869999,26.902849627 -12.631652453,26.903638228 -12.6315123859999,26.9057357350001 -12.631139838,26.905948354 -12.631171337,26.9072776260001 -12.631368267,26.907306385 -12.631365816,26.909022759 -12.631219567,26.9105319540001 -12.6309639479999,26.912068457 -12.6307037039999,26.913873579 -12.630397963,26.9150214800001 -12.630203539,26.9163171180001 -12.6299840909999,26.917585451 -12.629769269,26.9195270910001 -12.630111911,26.921525838 -12.630226125,26.9234674780001 -12.630283232,26.925161959 -12.630556382,26.927008116 -12.630283232,26.9288355420001 -12.63091141,26.9302061120001 -12.631368267,26.9314624670001 -12.63188223,26.9328901440001 -12.6325675149999,26.9341925700001 -12.632756657,26.935345748 -12.632624622,26.9363165680001 -12.631996444,26.9371731740001 -12.630854303,26.938143994 -12.6299405899999,26.9394574560001 -12.629255305,26.9408851330001 -12.6283986989999,26.9424841310001 -12.6277705209999,26.9437975930001 -12.627199451,26.9448255200001 -12.6265141659999,26.9464245180001 -12.6258859879999,26.947812802 -12.625193969,26.9498509420001 -12.6248580609999,26.951335726 -12.6241156689999,26.9525349740001 -12.6236017059999,26.953363026 -12.623144849,26.9545622750001 -12.622630886,26.955875737 -12.6220598149999,26.9568465570001 -12.6213174229999,26.957817377 -12.6205750309999,26.9589595190001 -12.61983264,26.960044553 -12.6191473549999,26.9610153730001 -12.6186333909999,26.9616435510001 -12.6178909989999,26.9625001570001 -12.617205715,26.962842799 -12.616063573,26.9632996560001 -12.6149785389999,26.9635851910001 -12.613779291,26.9639278330001 -12.612637149,26.9644417970001 -12.6115235619999,26.9647273320001 -12.610495635,26.9647273320001 -12.6096390289999,26.9648415460001 -12.60843978,26.9651841890001 -12.607411853,26.9651841890001 -12.606441033,26.965241296 -12.605241785,26.9652984030001 -12.604042536,26.9653555100001 -12.603014609,26.9653555100001 -12.6020437889999,26.9652984030001 -12.6011300759999,26.965127082 -12.600045042,26.965127082 -12.599017115,26.965127082 -12.598046295,26.9653555100001 -12.5971896889999,26.965755259 -12.59639019,26.9662121160001 -12.595476477,26.9667260790001 -12.594505657,26.967011615 -12.593363515,26.96729715 -12.592335588,26.967759717 -12.5912505539999,26.9684450020001 -12.5905081619999,26.9692659310001 -12.5896490129999,26.970688309 -12.5890903709999,26.9712432480001 -12.58879495,26.9719856400001 -12.5882238799999,26.9727851390001 -12.587652809,26.9738128220001 -12.586852699,26.9746696720001 -12.586510668,26.9755262780001 -12.585768276,26.976211563 -12.585254312,26.9767255260001 -12.584740349,26.9774679180001 -12.5840550639999,26.9783245240001 -12.583312672,26.9793834160001 -12.582507017,26.980267869 -12.582141528,26.981579627 -12.58159946,26.9823791260001 -12.580971282,26.9830073030001 -12.5801146759999,26.9836354810001 -12.5793151779999,26.9840352310001 -12.5783443569999,26.9843207660001 -12.5775448589999,26.9844349800001 -12.577088002,26.9849489440001 -12.5764598239999,26.985365212 -12.5759468379999,26.9854058 -12.5752605759999,26.985634228 -12.574575291,26.985976871 -12.5737757919999,26.986216545 -12.5732225909999,26.98654372 -12.5728954149999,26.9869303830001 -12.572508752,26.987376532 -12.57203286,26.987852424 -12.5714974809999,26.9884472890001 -12.5711405619999,26.988893438 -12.570783643,26.989488303 -12.570426724,26.989993939 -12.5701887779999,26.9905590610001 -12.5697723719999,26.991213413 -12.5693857099999,26.9917190480001 -12.568701615,26.992355554 -12.5683446959999,26.993039649 -12.5677200869999,26.9936345140001 -12.5668277889999,26.99396169 -12.5664708699999,26.9944673260001 -12.565905748,26.9948837310001 -12.565459599,26.99524065 -12.564864734,26.9955083400001 -12.564180639,26.9956867990001 -12.5636452599999,26.9959842320001 -12.563228855,26.9963114080001 -12.5626934759999,26.996638584 -12.56218784,26.9968765300001 -12.5618160499999,26.997114476 -12.561280671,26.997322679 -12.5607750349999,26.9976201110001 -12.560507346,26.997887801 -12.56018017,26.9981852330001 -12.5596745349999,26.9986016390001 -12.559406845,26.9989883010001 -12.559079669,26.999505834 -12.5589012099999,26.99992224 -12.5589012099999,27.0003683890001 -12.5588417229999,27.000874024 -12.5584848039999,27.0013201730001 -12.558127885,27.001706836 -12.557860196,27.0020637550001 -12.557562763,27.002450417 -12.557205844,27.0028965660001 -12.5570571279999,27.0033724580001 -12.556938154,27.003759121 -12.5567002079999,27.00402681 -12.556670465,27.0043569600001 -12.556729952,27.0047733660001 -12.5566407219999,27.0051897720001 -12.5569084109999,27.0056061770001 -12.557205844,27.0059630970001 -12.5570571279999,27.0063200160001 -12.556878668,27.0065282190001 -12.556581235,27.006885138 -12.5563432889999,27.0072123140001 -12.556045857,27.007569233 -12.555926884,27.0080748680001 -12.5558079099999,27.00855076 -12.555688937,27.0090671030001 -12.5555759129999,27.0098094950001 -12.555347485,27.0104376730001 -12.5551761639999,27.0111800650001 -12.5547764139999,27.0119795640001 -12.5545479859999,27.0127219560001 -12.554319558,27.013578561 -12.5542624509999,27.0141496320001 -12.553805594,27.0146064890001 -12.5532916299999,27.0148920240001 -12.55272056,27.0154059880001 -12.5521494889999,27.0159199510001 -12.551692633,27.0163768080001 -12.551178669,27.0166958 -12.5507119069999,27.016904002 -12.550117042,27.0170229760001 -12.5496114059999,27.0170824620001 -12.549224744,27.017260922 -12.5487191089999,27.017647584 -12.548540649,27.0180342460001 -12.548421676,27.018420909 -12.5483621889999,27.018864905 -12.548423839,27.01947583 -12.5482589829999,27.019848585 -12.548629879,27.020264991 -12.5485109059999,27.020562424 -12.5481837299999,27.020681397 -12.5478862969999,27.020955035 -12.5476780939999,27.0214011840001 -12.547707838,27.021758103 -12.547707838,27.022174509 -12.547797067,27.0225016840001 -12.547707838,27.0228288600001 -12.547469892,27.02309655 -12.547231945,27.0231857800001 -12.54681554,27.0234534690001 -12.5464586209999,27.0236616720001 -12.546131445,27.023959104 -12.5458934989999,27.02437551 -12.545715039,27.024791916 -12.5456852959999,27.025208321 -12.5457745259999,27.025624727 -12.5458340119999,27.026041133 -12.545804269,27.026308822 -12.545387863,27.026517025 -12.5449417139999,27.026665741 -12.544406336,27.026873944 -12.543870957,27.02720112 -12.5435437809999,27.0276953540001 -12.543591163,27.028048158 -12.5438192039999,27.028450337 -12.54407916,27.0288072560001 -12.544019673,27.0290452020001 -12.543781727,27.0293128920001 -12.543514038,27.0296400670001 -12.5432760919999,27.030086216 -12.543305835,27.0304728790001 -12.5432760919999,27.0308297980001 -12.543186862,27.0309487710001 -12.5428001989999,27.030978514 -12.54235405,27.031127231 -12.541878158,27.0314544070001 -12.5417591849999,27.0317815820001 -12.541402266,27.0318410690001 -12.5408668869999,27.031811326 -12.5401827919999,27.032098901 -12.539725271,27.0326143940001 -12.5399745889999,27.033001056 -12.5399151029999,27.033328232 -12.540301765,27.033744638 -12.5402422789999,27.0340420700001 -12.540004333,27.034517963 -12.5399745889999,27.0351047020001 -12.540344486,27.0355887200001 -12.540569455,27.0361240990001 -12.5404504819999,27.036451275 -12.540301765,27.0368974240001 -12.540093562,27.0373435720001 -12.539855616,27.0376410050001 -12.5394986969999,27.037938438 -12.5390822919999,27.038206127 -12.5386658859999,27.038354843 -12.53816025,27.0383845870001 -12.537803331,27.038563046 -12.537446412,27.0388158640001 -12.537208466,27.03905381 -12.536702831,
27.0393512430001 -12.536286425,27.0397676480001 -12.5359889919999,27.0401840540001 -12.53560233,27.040570716 -12.535394127,27.041046609 -12.5351561809999,27.041581987 -12.535066951,27.0420578800001 -12.5349479779999,27.042474285 -12.5346802889999,27.042890691 -12.534501829,27.043039407 -12.534115167,27.043039407 -12.533520301,27.043039407 -12.532984923,27.0432178670001 -12.5324792869999,27.0434260700001 -12.5321223679999,27.043931705 -12.531884422,27.044407597 -12.531884422,27.0447942600001 -12.5321223679999,27.0450619490001 -12.532449544,27.045329639 -12.53277672,27.045597328 -12.533193126,27.045924504 -12.5336392739999,27.0464598820001 -12.533906964,27.0470547480001 -12.5337879909999,27.047590126 -12.5334905579999,27.0481552480001 -12.5332823549999,27.0486608840001 -12.533401328,27.0492557490001 -12.533817734,27.0496721550001 -12.533936707,27.049999331 -12.53414491,27.0502967630001 -12.5344720859999,27.050772656 -12.534204396,27.051367521 -12.533817734,27.051932643 -12.5334310719999,27.0522895620001 -12.5332228689999,27.052795197 -12.5334905579999,27.0532413460001 -12.533728504,27.0537469820001 -12.533401328,27.054193131 -12.5330146659999,27.054683895 -12.5330741519999,27.0551895300001 -12.533252612,27.0555464490001 -12.533460815,27.055992598 -12.533520301,27.05646849 -12.533401328,27.057003869 -12.533193126,27.057420275 -12.532836206,27.0579556530001 -12.53250903,27.0583423160001 -12.5321223679999,27.0587884650001 -12.531884422,27.059081565 -12.532146261,27.059769992 -12.5322710839999,27.0602161410001 -12.532241341,27.0604838310001 -12.531973652,27.06092998 -12.531824935,27.0612571560001 -12.5320628819999,27.061286899 -12.532449544,27.0616438180001 -12.532360314,27.0619412510001 -12.5320628819999,27.062232329 -12.53180316,27.062714575 -12.531884422,27.0630417510001 -12.5321223679999,27.063428414 -12.532033138,27.0633986710001 -12.5314382729999,27.063547387 -12.530932638,27.0639340490001 -12.530783921,27.0645289140001 -12.530724435,27.064647888 -12.5302782859999,27.0646776310001 -12.5297726499999,27.064999019 -12.5294896469999,27.065569929 -12.5295644469999,27.065837618 -12.5292372719999,27.065897105 -12.528850609,27.066105307 -12.5284936899999,27.0666109430001 -12.528107028,27.067116578 -12.527988055,27.0676519570001 -12.5281962569999,27.0679196460001 -12.52858292,27.0682765660001 -12.528999326,27.068722715 -12.5291777849999,27.0691450690001 -12.5291182989999,27.0693532720001 -12.528731636,27.069531731 -12.528434204,27.0699183940001 -12.528523433,27.07015634 -12.5289100959999,27.0706619750001 -12.529267015,27.071108124 -12.5289695819999,27.07125684 -12.528463947,27.0717624760001 -12.5283449739999,27.072357341 -12.52831523,27.072984924 -12.5281367709999,27.0732526130001 -12.527750108,27.073698762 -12.5274526759999,27.0741449110001 -12.527393189,27.074650547 -12.527333703,27.0750966960001 -12.5273039599999,27.075394128 -12.526917297,27.0756320740001 -12.5265603779999,27.07595925 -12.5264711479999,27.0762566830001 -12.5264711479999,27.0766136020001 -12.526441405,27.0766730890001 -12.5269767839999,27.0765541160001 -12.527541906,27.076583859 -12.528017798,27.077000264 -12.5281962569999,27.077535643 -12.5279285679999,27.0781305080001 -12.527482419,27.0787551170001 -12.5272444729999,27.0792310090001 -12.527631135,27.0797069010001 -12.527898825,27.0800340770001 -12.5284044599999,27.0806289430001 -12.5286126629999,27.081402267 -12.528642406,27.082145849 -12.528434204,27.082710971 -12.5284044599999,27.0833058360001 -12.528374717,27.0834248090001 -12.5291182989999,27.083751985 -12.5297726499999,27.084079161 -12.530010596,27.0846740260001 -12.530159313,27.084911972 -12.530635205,27.0851023290001 -12.531200327,27.0853105320001 -12.531557246,27.0858756540001 -12.5317951919999,27.086411033 -12.5320033949999,27.086797695 -12.531676219,27.0873330740001 -12.5314382729999,27.0879261420001 -12.531245283,27.0885525480001 -12.5313193,27.0891771560001 -12.53149776,27.089772021 -12.531557246,27.0900099680001 -12.531259813,27.0899504810001 -12.5307541779999,27.0899504810001 -12.5303377719999,27.0900099680001 -12.529891623,27.09039663 -12.5298023939999,27.0910212380001 -12.530159313,27.0915268740001 -12.5299213669999,27.0917350770001 -12.5294454739999,27.0919135360001 -12.528939839,27.092329942 -12.528523433,27.092805834 -12.52858292,27.0933114700001 -12.5289100959999,27.093757619 -12.529326501,27.094174024 -12.529207528,27.094441714 -12.5288208659999,27.0945309430001 -12.5284044599999,27.0946201730001 -12.528047541,27.094709403 -12.527571649,27.095038968 -12.527420112,27.095482728 -12.5274526759999,27.0959883630001 -12.5276608789999,27.096315539 -12.527541906,27.0964047690001 -12.527155243,27.096434512 -12.526798324,27.096375026 -12.5264711479999,27.0964047690001 -12.526173716,27.0967930670001 -12.525997144,27.097267324 -12.526024999,27.097683729 -12.5259357689999,27.097951419 -12.5256680799999,27.0982488510001 -12.525340904,27.0985462840001 -12.5249839849999,27.098516541 -12.52447835,27.0982785950001 -12.52412143,27.0979811620001 -12.5237347679999,27.097594499 -12.523407592,27.096999634 -12.5231101599999,27.096226309 -12.522991186,27.0955719580001 -12.5227532399999,27.095006836 -12.522545038,27.0946796600001 -12.522247605,27.0941442810001 -12.5220096589999,27.093817105 -12.52165274,27.0934780320001 -12.52129582,27.0933888020001 -12.5208496719999,27.093448289 -12.5204332659999,27.093448289 -12.520046603,27.093597005 -12.519689684,27.0936862350001 -12.519303022,27.0935672620001 -12.5189758459999,27.093448289 -12.518618927,27.093240086 -12.518321494,27.092764194 -12.518143035,27.0922288150001 -12.517964575,27.092050355 -12.517756372,27.091871896 -12.517488683,27.091396004 -12.5173399669999,27.090979598 -12.51710202,27.090979598 -12.516804588,27.090979598 -12.5165071549999,27.0910093410001 -12.516209723,27.0910093410001 -12.51591229,27.090414476 -12.5156743439999,27.0899683270001 -12.515585114,27.0897601240001 -12.515317425,27.089730381 -12.515019992,27.089849354 -12.514692816,27.0899683270001 -12.5143656399999,27.089938584 -12.5139492349999,27.0897006380001 -12.5135328289999,27.089313975 -12.5131164229999,27.088957056 -12.5127892469999,27.088481164 -12.5125810449999,27.088421677 -12.512194382,27.0884692670001 -12.5118969499999,27.08823132 -12.5114805439999,27.0878744010001 -12.5112723409999,27.0877851710001 -12.510885679,27.0878446580001 -12.510617989,27.088023118 -12.5102908129999,27.0880528610001 -12.5099041509999,27.0875769690001 -12.5096067179999,27.0869523600001 -12.509517489,27.086327752 -12.509458002,27.085643657 -12.5093390289999,27.0849595620001 -12.509101083,27.0843349530001 -12.5089523669999,27.083561628 -12.5087144199999,27.0832344520001 -12.508416988,27.0830262490001 -12.5081790419999,27.08293702 -12.507792379,27.082996506 -12.50743546,27.0831154790001 -12.507048798,27.083293939 -12.5066026489999,27.083412912 -12.5061862429999,27.083561628 -12.5058888099999,27.0832641960001 -12.505591378,27.0830559930001 -12.5052939449999,27.0828477900001 -12.505055999,27.0824313840001 -12.504907283,27.0821636950001 -12.5052939449999,27.0817472890001 -12.505472405,27.0814796 -12.5052047149999,27.081271397 -12.504996513,27.081271397 -12.504639593,27.0813011400001 -12.5043124179999,27.08121191 -12.503925755,27.080736018 -12.503747296,27.0804385860001 -12.5034796059999,27.080260126 -12.50324166,27.0798139770001 -12.5030037139999,27.079486801 -12.5027360249999,27.0791893690001 -12.502379106,27.079159625 -12.502081673,27.0791298820001 -12.5017842399999,27.079010909 -12.501516551,27.0787729630001 -12.501248862,27.0786539900001 -12.5010109149999,27.0784457870001 -12.5008621989999,27.0781483540001 -12.5006837399999,27.0777319490001 -12.5005350229999,27.0776129760001 -12.5002673339999,27.0775832320001 -12.4999699009999,27.077553489 -12.4997022119999,27.077494003 -12.4994345229999,27.077077597 -12.4992263199999,27.0769288810001 -12.4990181169999,27.0766314480001 -12.498839657,27.076125813 -12.498780171,27.075501204 -12.4988099139999,27.075084798 -12.498869401,27.0747873660001 -12.498690941,27.0747278790001 -12.4983935079999,27.0746981360001 -12.498066332,27.0746981360001 -12.497739157,27.074668393 -12.4974417239999,27.07454942 -12.4971740349999,27.074519676 -12.4969360879999,27.074192501 -12.496727886,27.073657122 -12.496727886,27.073151486 -12.496727886,27.072616108 -12.4968766019999,27.072199702 -12.496846859,27.0719617560001 -12.496638656,27.0719022690001 -12.4964007099999,27.0718725260001 -12.4961330199999,27.0718427830001 -12.495895074,27.0718427830001 -12.495746358,27.071783296 -12.495478669,27.071515607 -12.4952407219999,27.071247918 -12.4950920059999,27.0709207420001 -12.495062263,27.0707125390001 -12.4948243169999,27.0705935660001 -12.494586371,27.0705935660001 -12.494378168,27.0705935660001 -12.4941402219999,27.070682796 -12.4939320189999,27.0705043360001 -12.4936345859999,27.07026639 -12.49348587,27.0699987 -12.4933074099999,27.0697607540001 -12.493069464,27.069683431 -12.4928651939999,27.0696536880001 -12.492567762,27.069534715 -12.492300072,27.0695644580001 -12.49200264,27.069475229 -12.49164572,27.0692967690001 -12.491378031,27.0690290800001 -12.491169828,27.0688387230001 -12.490902139,27.0685710330001 -12.4906641929999,27.0685115470001 -12.490307274,27.068481804 -12.489950355,27.06845206 -12.4896529219999,27.0684223170001 -12.4892960029999,27.068273601 -12.4888795969999,27.068273601 -12.488522678,27.0682141140001 -12.4882549889999,27.0682438580001 -12.487957556,27.0682438580001 -12.487660123,27.0682141140001 -12.4873626909999,27.0682141140001 -12.486916542,27.068184371 -12.4866191089999,27.067916682 -12.4864109059999,27.067589506 -12.4862027029999,27.0672623300001 -12.4858457839999,27.066964897 -12.4855780949999,27.0665782350001 -12.4853698919999,27.066251059 -12.485131946,27.0661023430001 -12.484775027,27.06598337 -12.484447851,27.065923883 -12.4841355469999,27.06598337 -12.483838114,27.0660725990001 -12.4834514519999,27.06598337 -12.483005303,27.0655967070001 -12.4827673569999,27.0652695310001 -12.4824699239999,27.065150558 -12.481964289,27.0652100450001 -12.481488396,27.065299275 -12.481131477,27.06571568 -12.480774558,27.0659536260001 -12.480328409,27.066191572 -12.47997149,27.066459262 -12.479614571,27.066756694 -12.4792576519999,27.0667269510001 -12.478870989,27.066667465 -12.47851407,27.0665187480001 -12.478097664,27.0663105450001 -12.4778597179999,27.066191572 -12.477473056,27.06598337 -12.477086393,27.0661023430001 -12.476729474,27.0664890050001 -12.4765510149999,27.066816181 -12.476313069,27.066964897 -12.475956149,27.066756694 -12.475480257,27.0663700320001 -12.475004365,27.0660131130001 -12.4747664189999,27.065507477 -12.47423104,27.065299275 -12.473710533,27.0655372210001 -12.473294127,27.0658643960001 -12.472877722,27.066042856 -12.472461316,27.066042856 -12.4720151669999,27.065923883 -12.4716582479999,27.0657454230001 -12.4712715859999,27.065447991 -12.4709146659999,27.0653885040001 -12.4706469769999,27.0654777340001 -12.4702900579999,27.0654777340001 -12.4698141659999,27.0654777340001 -12.469457247,27.0655967070001 -12.4691300709999,27.0658049100001 -12.468832638,27.0657454230001 -12.4683716179999,27.065566964 -12.4679552119999,27.0651803010001 -12.467568549,27.064763896 -12.467360347,27.064406977 -12.467152144,27.064139287 -12.466735738,27.0641095440001 -12.4662895889999,27.06425826 -12.465992157,27.0645854360001 -12.465635237,27.0650613280001 -12.4654865209999,27.0655967070001 -12.465248575,27.0657454230001 -12.4648619129999,27.0656859370001 -12.464415764,27.0656859370001 -12.463999358,27.065507477 -12.463523466,27.065299275 -12.4631962899999,27.065091072 -12.4627798839999,27.0648531260001 -12.462541938,27.064763896 -12.462125532,27.0647044090001 -12.4618280999999,27.064823382 -12.461322464,27.064882869 -12.460876315,27.0647341530001 -12.4605193959999,27.064288004 -12.46028145,27.064139287 -12.459865044,27.064215065 -12.4593942389999,27.0644292170001 -12.458942142,27.0645719840001 -12.458609017,27.0645719840001 -12.458180714,27.0642864490001 -12.4578713839999,27.0639533240001 -12.4575858489999,27.0639533240001 -12.4572527239999,27.0640960920001 -12.4569433949999,27.064215065 -12.456681654,27.0643102440001 -12.456348529,27.064048503 -12.45599161,27.0634774320001 -12.455729869,27.0629539510001 -12.45537295,27.0627873890001 -12.45506362,27.0628111830001 -12.454706701,27.062763594 -12.4543021929999,27.062763594 -12.453897684,27.062858772 -12.4534336899999,27.063049129 -12.4531005649999,27.0631443080001 -12.4527436459999,27.0631205130001 -12.452386727,27.063049129 -12.452053602,27.062906362 -12.4517442719999,27.06299777 -12.451477207,27.0631681020001 -12.451315969,27.0632870750001 -12.4511018179999,27.063406048 -12.450840077,27.0633346650001 -12.4504831579999,27.0631681020001 -12.4501738279999,27.063072924 -12.449912087,27.063072924 -12.4496265519999,27.0631205130001 -12.449269633,27.0631443080001 -12.448960303,27.063358459 -12.4486747679999,27.0637867620001 -12.4485082049999,27.0642473940001 -12.448255848,27.0644768060001 -12.4480323129999,27.0650162920001 -12.447906062,27.0652215260001 -12.4477071909999,27.065523769 -12.447413653,27.0654523850001 -12.447009145,27.065333412 -12.4466998149999,27.0649764930001 -12.4463666899999,27.065000287 -12.446009771,27.065309617 -12.4459145929999,27.065642742 -12.44579562,27.065717298 -12.445495808,27.065860066 -12.444972326,27.066050423 -12.444591612,27.0660349560001 -12.444041957,27.065856497 -12.443625551,27.0660647 -12.4432388889999,27.0664513620001 -12.443060429,27.0668082810001 -12.44288197,27.067105714 -12.442852226,27.0672841730001 -12.442525051,27.0674328900001 -12.442049158,27.0678195520001 -12.441781469,27.068265701 -12.4416624959999,27.06862262 -12.4416624959999,27.0689438470001 -12.4415554199999,27.069229383 -12.4412698849999,27.0694578110001 -12.4405274929999,27.0699717750001 -12.440356172,27.0704857380001 -12.4401277439999,27.0704857380001 -12.439556673,27.070771273 -12.4388713879999,27.071237846 -12.43860469,27.071654252 -12.4384857169999,27.0718327110001 -12.438158541,27.0719516840001 -12.4378016219999,27.072070657 -12.437266243,27.07218963 -12.436820095,27.0724165170001 -12.4363029739999,27.0727250090001 -12.435987283,27.0733008390001 -12.435614501,27.0736848070001 -12.4354273399999,27.074038472 -12.435067225,27.074244767 -12.4344879449999,27.0745857480001 -12.434139235,27.0747761050001 -12.433591959,27.0749281390001 -12.43317196,27.0752790130001 -12.432810558,27.0755137370001 -12.4325687909999,27.07594204 -12.4322832559999,27.0766796730001 -12.4322261479999,27.076850995 -12.4316550779999,27.0766796730001 -12.4310268999999,27.0763941380001 -12.4305129369999,27.076698709 -12.429741991,27.0777694670001 -12.429266099,27.078840224 -12.429147126,27.0794983050001 -12.4281926859999,27.0797838400001 -12.427585924,27.079855224 -12.4270148529999,27.0797838400001 -12.426479475,27.079676765 -12.425979788,27.0796410730001 -12.425444409,27.0794983050001 -12.4248733379999,27.0797481480001 -12.424694879,27.080105067 -12.4246234949999,27.0802835270001 -12.424302268,27.080319219 -12.4238382729999,27.079819532 -12.423659813,27.0794983050001 -12.4233385859999,27.079569689 -12.422767515,27.0797798130001 -12.422338652,27.080105067 -12.4219822929999,27.0804976790001 -12.421661066,27.0809259820001 -12.4213398389999,27.081497052 -12.4210543029999,27.0819610470001 -12.4209472279999,27.082103815 -12.420626,27.0821751990001 -12.4200549299999,27.082314007 -12.4195190689999,27.082639193 -12.4191626319999,27.0830674960001 -12.418698637,27.0832102640001 -12.4179134149999,27.0833173400001 -12.417092501,27.083495799 -12.4164857379999,27.083531491 -12.415807592,27.083531491 -12.415272213,27.083281648 -12.4145940669999,27.082996113 -12.41400515,27.0825321180001 -12.413648231,27.08238935 -12.413184236,27.082496426 -12.412613166,27.0828176530001 -12.412291938,27.0832102640001 -12.412006403,27.083245956 -12.4115424079999,27.0829604210001 -12.411007029,27.0824250420001 -12.4106858019999,27.081889663 -12.4104002669999,27.0815684360001 -12.4100433479999,27.081247209 -12.409579353,27.0809259820001 -12.409186742,27.080818906 -12.4087405929999,27.0807832140001 -12.4081338299999,27.080854598 -12.40756276,27.080818906 -12.406955997,27.0805690620001 -12.4063849259999,27.0801764510001 -12.406028007,27.079855224 -12.405635396,27.0796410730001 -12.4052427849999,27.079712456 -12.404671714,27.0796053810001 -12.4041720279999,27.0796410730001 -12.403493881,27.0796053810001 -12.4029228109999,27.0796410730001 -12.4023160479999,27.079569689 -12.401744977,27.079569689 -12.401120369,27.079426921 -12.400442222,27.0794983050001 -12.3998711519999,27.0795221000001 -12.399252492,27.0791175910001 -12.398824189,27.078857833 -12.398324502,27.0789173200001 -12.397610664,27.0789173200001 -12.3968968259999,27.078798347 -12.396123501,27.078322455 -12.395647609,27.078108953 -12.394891371,27.0786198870001 -12.394160445,27.078679374 -12.3933871209999,27.078381941 -12.392256877,27.077886775 -12.390575105,27.077791597 -12.3899564449999,27.0773632940001 -12.389575732,27.076792223 -12.3893377859999,27.0766970450001 -12.388766715,27.076601866 -12.388100466,27.0763639200001 -12.3873390379999,27.0755549040001 -12.387101092,27.0750790110001 -12.3865300219999,27.074841065 -12.3859113619999,27.073889281 -12.386434843,27.0734133890001 -12.3859113619999,27.073365799 -12.384959577,27.0729374960001 -12.384007793,27.0729374960001 -12.3829132409999,27.072842318 -12.381913867,27.072366426 -12.380914494,27.072414015 -12.3800102979999,27.071643055 -12.378584406,27.071500287 -12.377299497,27.0710719840001 -12.376014589,27.070143994 -12.374801063,27.0695729240001 -12.373373387,27.0693254600001 -12.3718719469999,27.068849567 -12.371015341,27.0684926480001 -12.3699445839999,27.068064345 -12.369016594,27.0676360420001 -12.367767377,27.067279123 -12.3664110839999,27.066779436 -12.364983407,27.06627975 -12.363555731,27.065054327 -12.3613145759999,27.0644594620001 -12.359232547,27.064013313 -12.357299235,27.0634184480001 -12.355217207,27.0616338520001 -12.3531351789999,27.059551824 -12.350012136,27.0580646600001 -12.3473352419999,27.057469795 -12.3448070649999,27.057618511 -12.339007129,27.058005612 -12.3324487359999,27.063711117 -12.333287781,27.0726340960001 -12.3355185259999,27.0809622090001 -12.3373031209999,27.0950902590001 -12.34057488,27.1087721600001 -12.343549206,27.11561311 -12.345333802,27.1182900040001 -12.3457799509999,27.1226027770001 -12.3462261,27.1292950110001 -12.345928667,27.138069274 -12.345185086,27.1449102240001 -12.344590221,27.1521973230001 -12.3447389369999,27.162161316 -12.3447389369999,27.167812536 -12.344441504,27.1736124720001 -12.3448876529999,27.1803047060001 -12.344292788,27.1855097770001 -12.344441504,27.1930943090001 -12.344441504,27.198448097 -12.3450363699999,27.204694182 -12.345928667,27.2097505360001 -12.3475645469999,27.2137658770001 -12.348754277,27.2180786500001 -12.348754277,27.2235811530001 -12.348754277,27.2284887920001 -12.348754277,27.2341400120001 -12.3493491429999,27.2397912320001 -12.350241441,27.2432117070001 -12.3505388729999,27.246483466 -12.351579887,27.2516885370001 -12.352472185,27.2561500260001 -12.3541080649999,27.2634371250001 -12.356338809,27.2674524660001 -12.3576772559999,27.2763754440001 -12.359908001,27.2848522740001 -12.3616925969999,27.2878355390001 -12.3621040809999,27.289165047 -12.3622874619999,27.2925855230001 -12.364815639,27.292882955 -12.36317976,27.293031672 -12.3622874619999,27.2940726860001 -12.360056717,27.2951137000001 -12.358420838,27.2967495790001 -12.356190093,27.297641877 -12.354405497,27.298534175 -12.3520260359999,27.299426473 -12.350241441,27.2995751890001 -12.3466722489999,27.3007649200001 -12.3428056249999,27.301359785 -12.339831299,27.3016572180001 -12.336262107,27.3043341110001 -12.3318006179999,27.3053751250001 -12.3289750079999,27.3061187070001 -12.327933994,27.309687899 -12.3262981139999,27.3129596570001 -12.324959667,27.3160827 -12.323175072,27.3184621610001 -12.322134057,27.322328785 -12.320498178,27.324262097 -12.319457164,27.3275338560001 -12.318267433,27.3293184520001 -12.316482837,27.332738927 -12.314846958,27.333779941 -12.313657228,27.335564537 -12.313805944,27.339133729 -12.3149956739999,27.341067041 -12.3160366889999,27.343743934 -12.31678027,27.345825963 -12.3181187169999,27.347461842 -12.319308447,27.3501387360001 -12.320200745,27.3516258990001 -12.3206468939999,27.353261778 -12.321390476,27.3544515090001 -12.321093043,27.3563848210001 -12.3206468939999,27.3572771190001 -12.3190110149999,27.357574551 -12.31841615,27.357723268 -12.315739256,27.357723268 -12.313805944,27.3583181330001 -12.3123187809999,27.3589129980001 -12.3105341849999,27.35965658 -12.3086008729999,27.359507863 -12.307559859,27.360400161 -12.305626547,27.3609950270001 -12.30265222,27.3617386080001 -12.299975327,27.362333473 -12.2965548519999,27.3666462460001 -12.294324107,27.3691744240001 -12.293134376,27.371702601 -12.292390795,27.37333848 -12.291647213,27.37616409 -12.2901600499999,27.379881998 -12.289565185,27.383005041 -12.288672887,27.3868716650001 -12.2871857239999,27.389251126 -12.285995993,27.3905895730001 -12.2855498439999,27.3932664660001 -12.2846575469999,27.395794644 -12.283170383,27.3981741050001 -12.2807909219999,27.399512552 -12.2790063269999,27.402189445 -12.2760319999999,27.403230459 -12.27484227,27.406056069 -12.2715705109999,27.4082868140001 -12.2696371989999,27.4111124240001 -12.2633911139999,27.412302154 -12.2632423969999,27.4158713460001 -12.26353983,27.4167636440001 -12.2624988159999,27.420035403 -12.261160369,27.421671282 -12.2595244899999,27.423455878 -12.2575911779999,27.425686623 -12.2565501629999,27.4273132070001 -12.2565752309999,27.4276701260001 -12.256813177,27.428264992 -12.257229583,27.4294547220001 -12.257170096,27.4298711280001 -12.256813177,27.43052548 -12.25693215,27.4308229120001 -12.2584788,27.4312393180001 -12.258657259,27.432191102 -12.2583003399999,27.432310075 -12.2579434209999,27.4333213460001 -12.257348556,27.434094671 -12.257764962,27.4343326170001 -12.258597773,27.433559292 -12.2591331519999,27.433916212 -12.259965963,27.434511077 -12.2602039089999,27.4350464560001 -12.260441855,27.4351059420001 -12.261274667,27.4354033750001 -12.2614531259999,27.4359387530001 -12.261274667,27.436652592 -12.261155694,27.43718797 -12.2613936399999,27.4372474570001 -12.262523884,27.437128484 -12.2635946409999,27.4377233490001 -12.264367966,27.4382587280001 -12.264605912,27.4389725660001 -12.2649628309999,27.440221783 -12.264784372,27.4407928540001 -12.2649842459999,27.441192603 -12.2646987109999,27.4418778880001 -12.263899212,27.441820781 -12.2635565699999,27.441820781 -12.2629283919999,27.4416494600001 -12.2619004649999,27.4414210320001 -12.2616720369999,27.441078389 -12.2613865009999,27.440335997 -12.2610438589999,27.4409070680001 -12.260358574,27.441706567 -12.260358574,27.442334745 -12.2597875029999,27.442334745 -12.259045112,27.4420492090001 -12.258588255,27.441592353 -12.2583598269999,27.4411354960001 -12.2577316489999,27.441078389 -12.2572176859999,27.441078389 -12.256875043,27.4416494600001 -12.256246865,27.442334745 -12.255790009,27.4434197790001 -12.255618688,27.444219278 -12.255618688,27.444790348 -12.255504474,27.4453043120001 -12.2552189379999,27.445247205 -12.254590761,27.445247205 -12.2537912619999,27.4454756330001 -12.253105977,27.44690331 -12.2526491199999,27.4468462030001 -12.251050123,27.4464464530001 -12.2502506239999,27.446389346 -12.249679553,27.4462180250001 -12.2491084819999,27.446160918 -12.248251877,27.446389346 -12.2478521269999,27.447188845 -12.247509485,27.4477599160001 -12.247623699,27.4483880930001 -12.2478521269999,27.448787843 -12.248537412,27.4494731280001 -12.248651626,27.4500441980001 -12.2483089839999,27.4506723760001 -12.2476808059999,27.4510721250001 -12.2474523779999,27.4515289820001 -12.247395271,27.4522713740001 -12.24779502,27.4532993010001 -12.2479663409999,27.4544985490001 -12.247109735,27.455126727 -12.246995521,27.4558691190001 -12.2472239489999,27.4562117610001 -12.2476808059999,27.4568970460001 -12.248023448,27.4576394380001 -12.248822947,27.4580391870001 -12.2491084819999,27.458553151 -12.2493369109999,27.459866613 -12.249793767,27.460723219 -12.2497366599999,27.46089454 -12.2498508739999,27.4614656110001 -12.250421945,27.4619224680001 -12.251050123,27.4622080030001 -12.2519067289999,27.4620366820001 -12.2522493709999,27.461636932 -12.253334405,27.461636932 -12.254133904,27.4614085040001 -12.25499051,27.4612942900001 -12.255732902,27.4611800760001 -12.256875043,27.46032347 -12.257674542,27.4598095060001 -12.2580742919999,27.4596381850001 -12.258930898,27.4592955430001 -12.2597875029999,27.459181329 -12.260358574,27.458838686 -12.26161493,27.4586673650001 -12.2625286429999,27.4589529 -12.2630426059999,27.459695292 -12.263727891,27.459980827 -12.264013426,27.4605518980001 -12.264241854,27.4610658620001 -12.26412764,27.461522718 -12.2636707839999,27.4618082530001 -12.2633281409999,27.4620366820001 -12.262128893,27.4632359300001 -12.2615578219999,27.464035429 -12.26121518,27.465520213 -12.260701216,27.466091283 -12.2605298949999,27.4663768190001 -12.2604156809999,27.4672905320001 -12.2598446109999,27.4678044950001 -12.259045112,27.4685468870001 -12.2583598269999,27.4687753150001 -12.2578458629999,27.46986035 -12.2569892569999,27.4704314200001 -12.25636108,27.4707740630001 -12.255904223,27.470888277 -12.2555615809999,27.471116705 -12.2550476169999,27.471516454 -12.2543052249999,27.472144632 -12.2543052249999,27.4729441310001 -12.254704975,27.4737436300001 -12.255104724,27.4739720580001 -12.255618688,27.4743718080001 -12.2565895079999,27.4744860220001 -12.257160579,27.4749999850001 -12.258017184,27.4751141990001 -12.258816683,27.4752284140001 -12.259444861,27.475456842 -12.2605298949999,27.4755139490001 -12.261329394,27.475799484 -12.261957572,27.47608502 -12.2628141779999,27.476484769 -12.263842105,27.476484769 -12.264241854,27.4772842680001 -12.265897959,27.4771700540001 -12.2667545649999,27.476484769 -12.267154315,27.475571056 -12.267325636,27.4751713060001 -12.26743985,27.4738578440001 -12.2672114219999,27.473058345 -12.266697458,27.471744883 -12.2663548159999,27.4707740630001 -12.265783745,27.4699174570001 -12.2656124239999,27.469517707 -12.2654411029999,27.46848978 -12.2652126749999,27.4676331740001 -12.2653268889999,27.4667765680001 -12.2645844969999,27.4660341760001 -12.26452739,27.465520213 -12.264470283,27.4644922850001 -12.26452739,27.4638641080001 -12.265041353,27.463521465 -12.2657266379999,27.4634643580001 -12.266411923,27.4632359300001 -12.267668278,27.4632359300001 -12.2682393489999,27.4633501440001 -12.269438597,27.4633501440001 -12.270123882,27.4634643580001 -12.2711518089999,27.463007502 -12.271494452,27.4626077520001 -12.2717799869999,27.4619224680001 -12.271437345,27.4614656110001 -12.271437345,27.461008755 -12.270980488,27.460095042 -12.270809167,27.4592384360001 -12.2704094169999,27.4584960440001 -12.2706378459999,27.457696545 -12.270866274,27.4569693820001 -12.2708053599999,27.4553513480001 -12.270234289,27.453923671 -12.2701391109999,27.4522104600001 -12.269282505,27.4512586750001 -12.268711434,27.4499261770001 -12.2683307199999,27.449164749 -12.2673789359999,27.448212965 -12.266617508,27.447261181 -12.2669982219999,27.446404575 -12.267283757,27.4456431470001 -12.268235542,27.4456431470001 -12.26956804,27.4455479690001 -12.270519824,27.446404575 -12.271852323,27.4464997530001 -12.272804107,27.447261181 -12.273375178,27.4476418940001 -12.2735655339999,27.447832251 -12.27385107,27.450021355 -12.274136605,27.451639389 -12.274612497,27.4543043850001 -12.2751835679999,27.4556368830001 -12.2753739249999,27.4583970580001 -12.276706423,27.460490984 -12.2786099919999,27.461633125 -12.279561776,27.4627752660001 -12.281465345,27.464678835 -12.283273735,27.466011333 -12.2845110549999,27.467819724 -12.28603391,27.468485973 -12.2863194449999,27.4700088280001 -12.2876519439999,27.4704847200001 -12.288698906,27.4701991850001 -12.289650691,27.4697232930001 -12.2908880109999,27.4683907940001 -12.2931881559999,27.467153475 -12.2945206539999,27.467010707 -12.295472439,27.4663920470001 -12.29661458,27.465678209 -12.297376008,27.464726424 -12.2986133269999,27.464202943 -12.299565112,27.4639649970001 -12.3007072529999,27.463917408 -12.301992162,27.4643933 -12.3030391249999,27.46501196 -12.303467428,27.466058923 -12.3039909089999,27.466344458 -12.3039909089999,27.4668679390001 -12.303895731,27.467343832 -12.3036577849999,27.4678673130001 -12.303419839,27.4685335620001 -12.303134303,27.4690570430001 -12.3027059999999,27.4691998110001 -12.302610822,27.4694853460001 -12.302325287,27.4697232930001 -12.30208734,27.469961239 -12.3017542159999,27.470104006 -12.301421091,27.4705323090001 -12.300945199,27.4708178450001 -12.300659664,27.4710082020001 -12.3003741279999,27.47110338 -12.299803058,27.4711509690001 -12.299565112,27.4713413260001 -12.2992319869999,27.471388915 -12.29904163,27.471579272 -12.298518149,27.4716744510001 -12.297994667,27.4717696290001 -12.297423597,27.4722931100001 -12.296947705,27.4729212880001 -12.2963924969999,27.473968251 -12.29563107,27.4746345 -12.2950599989999,27.4746345 -12.294488928,27.474920035 -12.293061252,27.475966998 -12.292014289,27.4763477120001 -12.2911576829999,27.4767284260001 -12.290301077,27.4768236040001 -12.2895396489999,27.4772994960001 -12.288587865,27.4783464590001 -12.2867794749999,27.4791078870001 -12.2861132259999,27.4795837790001 -12.284875906,27.479869314 -12.2833530509999,27.4794886010001 -12.2824964449999,27.4792982440001 -12.2806880539999,27.4791078870001 -12.279450735,27.4797741360001 -12.278213415,27.480345207 -12.277071274,27.481868062 -12.277547166,27.482819846 -12.2772616309999,27.483961987 -12.277071274,27.4843427010001 -12.2781182369999,27.486055913 -12.27849895,27.487198054 -12.2788796639999,27.4884353740001 -12.2795459129999,27.4900534070001 -12.280783233,27.491481084 -12.2808784109999,27.493099117 -12.28154466,27.4943364370001 -12.281735017,27.4953834 -12.2818301959999,27.4966207200001 -12.281925374,27.4977628610001 -12.282115731,27.4991905380001 -12.2820205529999,27.5009989280001 -12.2823060879999,27.502236248 -12.2834482289999,27.5021410690001 -12.285542155,27.501760356 -12.286684296,27.5009989280001 -12.288492687,27.499285716 -12.2893492919999,27.4972869690001 -12.290301077,27.4957641140001 -12.2914432179999,27.494241259 -12.2927757159999,27.4933846530001 -12.2941082139999,27.4931942960001 -12.2954407129999,27.49357501 -12.29743946,27.493765367 -12.2989623149999,27.4933846530001 -12.300389992,27.492908761 -12.301817668,27.491005192 -12.3025790959999,27.489006445 -12.3027694529999,27.4879594820001 -12.3030549879999,27.4863414480001 -12.303626059,27.4848185930001 -12.3047682,27.4840571660001 -12.305815163,27.483581273 -12.3066717689999,27.483105381 -12.30905123,27.482819846 -12.3107644419999,27.48377163 -12.311525869,27.485104129 -12.3123824749999,27.487007697 -12.31266801,27.4882450170001 -12.3123824749999,27.4900534070001 -12.3133342589999,27.490814835 -12.314571579,27.491956976 -12.3148571139999,27.4934798310001 -12.3159992559999,27.4950026860001 -12.316094434,27.496715898 -12.3159992559999,27.49785804 -12.31571372,27.4980438260001 -12.315620827,27.4990492060001 -12.315118137,27.499951965 -12.3146667579999,27.500456942 -12.3143301059999,27.5016777110001 -12.313109337,27.5023439610001 -12.3117768389999,27.5028198530001 -12.310729876,27.5034861020001 -12.309492556,27.503866816 -12.30806488,27.503886692 -12.307982061,27.5042743490001 -12.306366823,27.5043779750001 -12.3062187859999,27.50452053 -12.305624806,27.506519278 -12.3030549879999,27.50699517 -12.30172249,27.5073758840001 -12.3002948129999,27.5085180250001 -12.2989623149999,27.510357658 -12.297932121,27.5103954790001 -12.2979109409999,27.510897486 -12.297629817,27.512348957 -12.2972015139999,27.512696917 -12.2970733179999,27.514157347 -12.2965352649999,27.516631987 -12.296344908,27.5180843420001 -12.2953464129999,27.518928804 -12.294501952,27.519595053 -12.293359811,27.519880588 -12.2929790969999,27.5223442440001 -12.2908552559999,27.522640763 -12.290599636,27.5232115910001 -12.289897079,27.5238780830001 -12.2890767809999,27.5239202990001 -12.2890659249999,27.527209328 -12.2882201749999,27.5288273620001 -12.287363569,27.53196825 -12.2870780339999,27.533586284 -12.286506963,27.53545416 -12.286233325,27.53598716 -12.286100075,27.5363298020001 -12.2858906829999,27.5363376450001 -12.2858757819999,27.5365201590001 -12.2855290049999,27.5367295520001 -12.2848246839999,27.5368056940001 -12.284329756,27.5370721940001 -12.284063257,27.5371030380001 -12.2840544439999,27.5374719430001 -12.283949042,27.5375384440001 -12.2838930419999,27.5378336210001 -12.2836444709999,27.537896829 -12.283600226,27.5380239780001 -12.283511222,27.538025179 -12.283507619,27.538157228 -12.283111472,27.5382524070001 -12.28263558,27.5382714420001 -12.282045474,27.5383856560001 -12.28166476,27.538709263 -12.2812079029999,27.538767394 -12.281181897,27.539432619 -12.2808842969999,27.539813333 -12.28082719,27.5401940470001 -12.281074654,27.540727046 -12.281188868,27.541183903 -12.2811698319999,27.541469438 -12.2811698319999,27.541813414 -12.280970867,27.542059544 -12.280636833,27.5426180800001 -12.2803097199999,27.542922651 -12.280157435,27.5439886500001 -12.280214542,27.544331292 -12.280366827,27.544883327 -12.2806523629999,27.5450927200001 -12.280804648,27.5458922190001 -12.2808236839999,27.546349075 -12.2807475409999,27.546729789 -12.280766577,27.547281824 -12.281033076,27.547833859 -12.281033076,27.548195537 -12.280918862,27.5486333580001 -12.2806523629999,27.5489950360001 -12.280519113,27.5496993560001 -12.280290684,27.5502133200001 -12.280081292,27.550632105 -12.2799099709999,27.550644275 -12.2799083109999,27.5510508900001 -12.279852864,27.55145064 -12.279662507,27.5519074960001 -12.279491186,27.552440496 -12.279300829,27.5530115660001 -12.278996258,27.553430351 -12.2787297579999,27.5540073230001 -12.27835112,27.5548324910001 -12.2777053369999,27.554864061 -12.2776846949999,27.554915135 -12.277644724,27.5554100630001 -12.2773211169999,27.5559240260001 -12.27713076,27.555985655 -12.2771240979999,27.5566283470001 -12.277054617,27.5572945960001 -12.277016546,27.5576943450001 -12.277016546,27.5581702380001 -12.276902332,27.5584748090001 -12.2767690819999,27.5588503970001 -12.276638443,27.559039378 -12.2762776599999,27.559191663 -12.276068268,27.5594962340001 -12.275706589,27.5597246630001 -12.275402018,27.5598769480001 -12.2752116619999,27.5600673050001 -12.274811912,27.5601399560001 -12.2747722839999,27.5606954830001 -12.2744692699999,27.561076197 -12.274259877,27.561704374 -12.273898199,27.5617127850001 -12.273880327,27.56185666 -12.2735745919999,27.5619346300001 -12.273523912,27.5622373740001 -12.2733271279999,27.5630178370001 -12.273479414,27.5635889070001 -12.2735365209999,27.5635843860001 -12.2734671919999,27.5635318000001 -12.2726608789999,27.563722157 -12.2720327019999,27.563790581 -12.2720190169999,27.5642932280001 -12.2719184879999,27.5648452630001 -12.272204023,27.565321155 -12.2721849869999,27.5657780120001 -12.272089809,27.5658077680001 -12.272040214,27.5660635470001 -12.271613917,27.5664823320001 -12.2712903099999,27.5667297960001 -12.270909596,27.566788236 -12.27088622,27.5670153310001 -12.270795382,27.5670403820001 -12.2707578069999,27.5673960450001 -12.2702243109999,27.5674699570001 -12.2701767959999,27.567929044 -12.269881669,27.5679624860001 -12.269852686,27.5682145800001 -12.2696342049999,27.568232757 -12.2696294629999,27.5686524000001 -12.269519991,27.5693567210001 -12.269063134,27.5693601130001 -12.2690539279999,27.5694899710001 -12.268701456,27.5695583450001 -12.2686795769999,27.5699658630001 -12.268549171,27.5706321120001 -12.2683207429999,27.570697921 -12.2682659019999,27.5709747540001 -12.268035207,27.5708605400001 -12.267730636,27.570575005 -12.267521244,27.5704227190001 -12.2672737799999,27.570517898 -12.266854995,27.570517898 -12.266379102,27.5706005420001 -12.266328598,27.5706005420001 -12.266318489,27.570943184 -12.266109097,27.5712858270001 -12.265880669,27.5717617190001 -12.2658616329999,27.572370861 -12.26591874,27.572637361 -12.266071025,27.572922896 -12.266356561,27.573417824 -12.266661132,27.5736081810001 -12.26688956,27.573893716 -12.267365452,27.574179251 -12.267689059,27.5745409290001 -12.2678603799999,27.5750929640001 -12.2678603799999,27.5755688560001 -12.2679365229999,27.5756069280001 -12.268431451,27.5757972850001 -12.268716986,27.5760173850001 -12.268802647,27.576136358 -12.2689513629999,27.576552764 -12.2689513629999,27.5769096830001 -12.2689513629999,27.5773855750001 -12.2691595659999,27.5776235210001 -12.269397512,27.578129157 -12.269665201,27.5784265890001 -12.269605715,27.579705549 -12.2697246879999,27.580121955 -12.270319553,27.580746564 -12.270527756,27.5810439960001 -12.2706764719999,27.5813414290001 -12.2704682689999,27.5820255240001 -12.27028981,27.582130653 -12.270343656,27.5832449980001 -12.270914418,27.5833937140001 -12.271063135,27.584256269 -12.2708251889999,27.5846429310001 -12.270735959,27.5855947150001 -12.270587242,27.5861300940001 -12.270646729,27.5866357300001 -12.270944162,27.5871116220001 -12.271330824,27.587617257 -12.271330824,27.587817473 -12.271355851,27.5880997350001 -12.270945288,27.5883079380001 -12.270677599,27.5883466660001 -12.270673449,27.588390582 -12.2706169859999,27.588675375 -12.2705864719999,27.5892233930001 -12.270527756,27.590026462 -12.270735959,27.590881804 -12.270678936,27.591163291 -12.2703206799999,27.591225826 -12.27028566,27.5912459350001 -12.270260067,27.5919895170001 -12.269843661,27.59338745 -12.2693677689999,27.5946069240001 -12.2688323899999,27.595198071 -12.268853458,27.5956739640001 -12.268556025,27.5965662610001 -12.2681991059999,27.597499564 -12.267650105,27.5975775320001 -12.267604241,27.5979939380001 -12.267425782,27.599600074 -12.267187835,27.599956993 -12.267544755,27.6010277510001 -12.2678421869999,27.602039022 -12.2672473219999,27.6025744 -12.2669498889999,27.6039657750001 -12.266022306,27.6047522440001 -12.2654043659999,27.604760571 -12.2654021459999,27.604834888 -12.265343753,27.605727186 -12.2651058069999,27.607273836 -12.265760159,27.6075863180001 -12.2660205609999,27.6079876740001 -12.2663550239999,27.60995073 -12.2664739969999,27.6102178960001 -12.2663797029999,27.6109620010001 -12.266117078,27.6120922440001 -12.265819645,27.6136983810001 -12.265819645,27.6156019490001 -12.265819645,27.6172675720001 -12.2659981049999,27.6196915940001 -12.2660544779999,27.6198217130001 -12.2660575039999,27.622370082 -12.2659997599999,27.622382868 -12.268156731,27.625191025 -12.270162558,27.628285729 -12.2708502699999,27.6320681450001 -12.270391795,27.6350482300001 -12.270277176,27.6376271500001 -12.271939147,27.6398622140001 -12.276180038,27.6435300110001 -12.2785870289999,27.647828211 -12.282942539,27.650922915 -12.2848337469999,27.6546480220001 -12.285292221,27.657742726 -12.285292221,27.6590982860001 -12.2836585979999,27.6620552950001 -12.2853368999999,27.6691552950001 -12.2872369,27.7248552950001 -12.2900369,27.743439224 -12.2917354319999,27.7435379390001 -12.291676287,27.753037939 -12.293576287,27.7585379390001 -12.2942762869999,27.763837939 -12.294476287,27.776337939 -12.289276287,27.7784379390001 -12.287576287,27.7812379390001 -12.2854762869999,27.787137939 -12.2797762869999,27.7907379390001 -12.2766762869999,27.7972379390001 -12.271576287,27.8031379390001 -12.2668762869999,27.810737939 -12.263576287,27.8147379390001 -12.261176287,27.8203379390001 -12.250976287,27.8249379390001 -12.244576287,27.8321379390001 -12.242376287,27.840437939 -12.242076287,27.853037939 -12.2435762869999,27.8656379390001 -12.2480762869999,27.8697379390001 -12.2489762869999,27.9041379390001 -12.252476287,27.919237939 -12.2562762869999,27.9290379390001 -12.257776287,27.934337939 -12.260276287,27.942337939 -12.272676287,27.943237939 -12.2761762869999,27.9464379390001 -12.281976287)))',4326), 'Copperbelt');
